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.
Request body for POST /applications/1.0/drafts.
- Type: stringdescriptionmin length:1max length:1024required
Short description (max 1024 chars).
- Type: stringlaunch
Url max length:512Format: urirequiredURL to which LTI launch messages will be posted.
- Type: stringnamemin length:1max length:256required
Display name of the App; must be unique across the developer platform.
- Type: string · enumapplication
Type Type of the LTI application
values- learning
_app - assessment
- internal
- Type: string | null Format: uuidpublisher
Id Optional Publisher ID. Omit when the caller belongs to zero or one Publisher. Required when multiple memberships exist; the service returns 400 with a
nextActionotherwise.
- application/json
- application/json
- application/json
- application/json
- application/json
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"
}