Skip to content
FreeTicketDocs
Esc
↑↓navigate↵open⌘Jpreview

CLI poll: exchanges the device_code for an API key once approved

Public endpoint (no auth): credential bootstrap for the Device Authorization Grant (RFC 8628).

POST/auth/device/token
Request body
requiredapplication/json
device_codestringrequired
min length 1
grant_typestring
Responses
200

Approved: delivers the ft_live_… API key exactly once and consumes the row.

access_tokenstringrequired
token_typestringrequired
userobjectrequired
Show properties
idstringrequired
emailstringrequired
rolestringrequired
Allowed:SUPER_ADMINADMINSTAFFVIEWERMINCULTURA
workspacesWorkspace[]required
Show properties
Array of Workspace
idstringrequired
namestringrequired
slugstringrequired
400

RFC 8628 status: authorization_pending | slow_down | expired_token | access_denied | invalid_request.

errorstringrequired
Allowed:authorization_pendingslow_downexpired_tokenaccess_deniedinvalid_request
Try it
Server
Bodyapplication/json
Request
curl -X POST 'https://admin.appfreeticket.com/api/v1/auth/device/token' \
  -H 'Content-Type: application/json' \
  -d '{
  "device_code": "string",
  "grant_type": "urn:ietf:params:oauth:grant-type:device_code"
}'
Response
{
  "access_token": "string",
  "token_type": "Bearer",
  "user": {
    "id": "string",
    "email": "string",
    "role": "SUPER_ADMIN"
  },
  "workspaces": [
    {
      "id": "string",
      "name": "string",
      "slug": "string"
    }
  ]
}