Updates an assigned goal definition and reconciles the assignee set to match assignees. assigner is required (LMS ref of an active tenant user). api-service resolves all refs, then impersonates the assigner on goals-service with the api-service role (manager/authorityToken checks are skipped). Goal status is derived from task completion and cannot be set on this path.
This is a full-field replace, not a sparse PATCH. tasks and assignees are the complete desired sets — omitted tasks or assignees are removed. Optional fields left out keep their current value; send an explicit null to clear them (description, dueDate, boostToLevel).
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 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
- Staging:
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
- Staging:
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.
The goal definition ID
LMS reference of the acting assigner. The tenant must have an active user with that LMS ref; it becomes createdBy on newly assigned goals.
Full desired assignee LMS-ref set after reconciliation
Name of a skill that already exists in the organisation. A name that is not a skill is rejected with 422.
When sent, must be an enabled skill level value for the tenant. The 422 lists the accepted values. A tenant with no skill levels configured accepts the defaults: Beginner (1024), Intermediate (2048) and Advanced (3072). A tenant can define different ones.
Existing task id. Omit to create a new task.
Empty or omitted for basic tasks; required and non-empty for content tasks. Each id must be a 24-character hex ObjectId of content that exists in the tenant. A missing id is rejected with 422.
Existing task id. Omit to create a new task.
Existing task id. Omit to create a new task.
The updated goal definition
An assigned goal definition shared across assignees.
Unauthorized
Unauthorized
Forbidden
Forbidden
Not Found
Not found
Unsupported Media Type — Content-Type must be application/json
The request could not be processed due to a validation error
Unprocessable Content
Unprocessable Content
Bad Gateway
The request could not be completed because a service it depends on failed. For write operations the content was not modified.
Internal Server Error
Internal Server Error