Verify a session token
Verifies a session token from the extension frontend and returns its member. Tokens of other extensions, expired tokens, and tokens of an earlier extension generation fail with NOT_FOUND. checks evaluates collection and entry actions for the member, in collections the extension can read (restricted collections included), so the backend can authorize the member's request.
Authentication
extensionTokenhttp, bearer, JWTAn extension JWT signed with the extension's registered key: iss is the registry name, sub the ext_ ID (omitted for app-level operations), aud the instance API URL, and exp at most 5 minutes after iat.
Request body *
application/jsonBodyobject2 fields
token*stringchecksarray of object2 fields
collectionID*any ofCollection to check; null for the top level
Options
Any of
Option 1string
Option 2null
actions*array of any ofCollection and entry actions that the member must be able to take
Options
Any of
Option 1string
"collection:read", "collection:create-child", "collection:update", "collection:move", "collection:delete", "collection:set-restricted", "collection:manage-restricted-access", "collection:set-publishing", "publishing:publish-tree", "publishing:unpublish-tree"Option 2string
"entry:create", "entry:read", "entry:update", "entry:move", "entry:delete", "version:read", "version:create", "version:update", "version:revert", "publishing:read", "publishing:publish", "publishing:unpublish"Responses
200OKapplication/json
Bodyobject5 fields
workspaceID*stringworkspacePlan*stringThe workspace's effective plan, e.g. free or pro; pro when the instance has no billing
version*stringThe extension version the session was issued for
member*object3 fields
id*stringID of the membership
userID*stringID of the user
profile*object4 fields
id*stringnamestringimagestringemailstringOnly with the read:memberships permission
checks*array of objectResults of the requested checks, in their order
3 fields
collectionID*any ofOptions
Any of
Option 1string
Option 2null
allowed*booleanWhether the member and the extension can take every action
denied*array of any ofActions that are not allowed
Options
Any of
Option 1string
"collection:read", "collection:create-child", "collection:update", "collection:move", "collection:delete", "collection:set-restricted", "collection:manage-restricted-access", "collection:set-publishing", "publishing:publish-tree", "publishing:unpublish-tree"Option 2string
"entry:create", "entry:read", "entry:update", "entry:move", "entry:delete", "version:read", "version:create", "version:update", "version:revert", "publishing:read", "publishing:publish", "publishing:unpublish"400Bad Requestapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"BAD_REQUEST"status*constant400message*string"Bad Request"dataValidationErrorData2 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
issuesarray of ValidationIssue3 fields
message*stringcodestringpatharray of any ofOptions
Any of
Option 1string
Option 2number
Option 3object
key*any ofOptions
Any of
Option 1string
Option 2number
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany401Unauthorizedapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"UNAUTHORIZED"status*constant401message*string"Unauthorized"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany403Forbiddenapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"FORBIDDEN"status*constant403message*string"Forbidden"dataForbiddenErrorData4 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
missingPermissionsarray of stringrequiredPlanconstant"pro"actionstringThe requested action that was denied
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany404Not Foundapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"NOT_FOUND"status*constant404message*string"Not Found"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany409Conflictapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"CONFLICT"status*constant409message*string"Conflict"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany429Too Many Requestsapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"TOO_MANY_REQUESTS"status*constant429message*string"Too Many Requests"dataRateLimitErrorData3 fields
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
limitstringThe limit that was reached: a short-term rate limit, or a monthly API call, AI credit, or spending limit
"rate", "api-calls", "ai-credits", "spending"retryAfterSecondsnumberMinimum delay before another attempt, in seconds. Also sent in Retry-After.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany500Internal Server Errorapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"INTERNAL_SERVER_ERROR"status*constant500message*string"Internal Server Error"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany503Service Unavailableapplication/json
Bodyone ofOptions
One of
Option 1object
defined*constanttruecode*constant"SERVICE_UNAVAILABLE"status*constant503message*string"Service Unavailable"dataErrorData1 field
hintsarray of stringSuggested next steps. Wording can change; use error codes and structured data for program logic.
Option 2object
defined*constantfalsecode*stringstatus*numbermessage*stringdataany