Documentation Index

Fetch the complete documentation index at: https://docs.thrivelearning.com/llms.txt

Use this file to discover all available pages before exploring further.

Re-issue upload URLs for a content's pending items

Prev Next
Get
/contents/{id}/upload-urls

Coming soon. This endpoint is not available yet, and the details below may change before release.

Issues fresh presigned PUT URLs for any of this content's items that are still waiting for their file.

You do not need this on the happy path — create, update and the bulk job all hand you upload URLs directly. It exists because presigned URLs expire: use it when a URL has lapsed before you managed to upload, or when you are resuming an upload later.

Items that already have their file are not included in the response.

Security
HTTP
Type basic

HTTP Basic authentication using your Tenant ID and API secret.

  • Username is the Tenant ID (i.e. eu-west-2_AbcdEfghI)
  • Password is the API secret you would have received.

You can also authenticate using OAuth 2.0 client credentials (oauth2 security scheme) instead of Basic auth.

OAuth

OAuth 2.0 client credentials authentication.

Use the following token endpoints (replace :tenantId with your Tenant ID):

  • Public API access tokens

    • Staging: https://public.api.learnstaging.link/oauth2/token/:tenantId
    • Production: https://public.api.learn.link/oauth2/token/:tenantId
    • Staging MEA: https://public.api.meastaging.learn.tech/oauth2/token/:tenantId
    • Production MEA: https://public.api.mea.learn.tech/oauth2/token/:tenantId
  • Webhooks access tokens

    • Staging: https://user.api.learnstaging.link/oauth2/token/:tenantId
    • Production: https://user.api.learn.link/oauth2/token/:tenantId
    • Staging MEA: https://user.api.meastaging.learn.tech/oauth2/token/:tenantId
    • Production MEA: https://user.api.mea.learn.tech/oauth2/token/:tenantId

All access tokens must be sent using the Authorization: Bearer <access_token> header.

Scopes

For API access (non-webhooks), the following scopes are available:

  • api/all – Full read and write access to the API.
  • api/read – Read-only access to the API.
  • api/write – Write access to the API.

For webhooks, the following scopes are available:

  • api/webhooks – Access to webhook functionality.
  • api/all – Full read and write access to the API, including webhooks.

Tokens must include appropriate scopes for the endpoints you wish to call.

FlowClient Credentials
Token URLhttps://public.api.learn.link/oauth2/token/:tenantId
Path parameters
id
stringRequired

Unique identifier of the content item

Pattern^[0-9a-fA-F]{24}$
Example5f9d88d6e1b2a34c56d78902
Responses
200

Fresh presigned upload URLs for the content's pending items

uploadUrls

Fresh URLs for one pending item

Only items still awaiting a file are listed. An empty array means every item already has one.

{
  "signedPutUrls": [
    {
      "uploadId": "4f1c2b7e-9a3d-4c8e-b2f1-6d0a7c5e3b91",
      "url": "https://s3.example.com/uploads/4f1c2b7e?X-Amz-Signature=..."
    }
  ]
}
Expand All
object

Freshly issued presigned URLs for a content's pending items.

signedPutUrls
Array of object (SignedPutUrl)

One entry per item still awaiting its file. Empty when every item already has one.

object

A presigned URL to PUT one item's file to.

uploadId
string

The uploadId you supplied for the item this URL belongs to

Example4f1c2b7e-9a3d-4c8e-b2f1-6d0a7c5e3b91
url
string

The presigned URL. Time-limited — upload promptly.

Examplehttps://s3.example.com/uploads/4f1c2b7e?X-Amz-Signature=...
401

Unauthorized

object

Unauthorized

status
number
Example401.0
error
string
ExampleUnauthorized
message
string
403

Forbidden

object

Forbidden

status
number
Example403.0
error
string
ExampleForbidden
message
string #deprecatedtemplate# #additional-property-template#
OneOf
string
string
object
object
404

Not Found

object

Not found

status
number
Example404.0
error
string
ExampleNot Found
message
string #deprecatedtemplate# #additional-property-template#
OneOf
string
string
object
object
502

Bad Gateway

object

The request could not be completed because a service it depends on failed. For write operations the content was not modified.

status
number
Example502.0
error
string
ExampleBad Gateway
message
string
ExampleThe request could not be completed because a service it depends on is unavailable. Please retry shortly.
default

An unexpected error has occurred

When any default error occurs it may be a system failure and persistent errors may require support.

Expand All
object
id
string
ExampleUNIQUEREFERENCE111000
timestamp
string
Example2020-03-09T22:18:26.625Z
eventType
string
Valid values[ "user_joined", "user_updated", "user_suspended" ]
message
object (InternalServerError)

The server is unable to process the request

status
number
Example500.0
error
string
ExampleInternal Server Error