Register a draft application

​

Registers a new application in draft status and provisions OAuth client credentials for the client credentials flow.

The response includes applicationId, appUrn, publisherId, the non-secret productionCredentials (and, on the happy path, sandboxCredentials), and a single secretClaimUrl. No clientSecret is returned inline (ITD 9): opening secretClaimUrl forces a Google-IdP SSO sign-in and reveals every minted secret once. The accompanying securityNote warns agents not to open the URL on the developer's behalf.

If your account is linked to more than one publisher, include publisherId in the request body. If you belong to zero or one publisher, omit publisherId and the platform assigns or creates the appropriate publisher.

Body·

required
application/json

Request body for POST /applications/1.0/drafts.

  • Short description (max 1024 chars).

  • URL to which LTI launch messages will be posted.

  • Display name of the App; must be unique across the developer platform.

  • Type of the LTI application

    values
    learning_appassessmentinternal
  • Optional Publisher ID. Omit when the caller belongs to zero or one Publisher. Required when multiple memberships exist; the service returns 400 with a nextAction otherwise.

Responses

  • application/json
  • application/json
  • application/json
  • application/json
  • application/json
Request Example for post/applications/1.0/drafts
curl https://platform.dev.timeback.com/applications/1.0/drafts \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Authorization: Bearer YOUR_SECRET_TOKEN' \
  --data '{
  "name": "",
  "description": "",
  "launchUrl": "",
  "applicationType": "learning_app",
  "publisherId": null
}'
{
  "appUrn": "urn:uuid:53f0d94d-786d-409a-b5eb-7a6c1db8957b",
  "applicationId": "123e4567-e89b-12d3-a456-426614174000",
  "publisherId": "123e4567-e89b-12d3-a456-426614174000",
  "productionCredentials": {
    "clientId": "string",
    "tokenUrl": "https://example.com",
    "scopes": [
      "string"
    ]
  },
  "sandboxCredentials": {
    "clientId": "string",
    "tokenUrl": "https://example.com",
    "scopes": [
      "string"
    ]
  },
  "sandboxStatus": "provisioned",
  "secretClaimUrl": "https://example.com",
  "securityNote": "string"
}