Skip to main content
POST
/
v0
/
cli
/
device-codes
/
{device_code}
/
approval
Approve a CLI sign-in
curl --request POST \
  --url https://api.sumvin.com/v0/cli/device-codes/{device_code}/approval \
  --header 'Content-Type: application/json' \
  --header 'x-juno-jwt: <api-key>' \
  --data '
{
  "user_code": "ABCD-EFGH"
}
'
{
  "_links": {
    "exchange": {
      "href": "/v0/cli/personal-access-tokens",
      "method": "POST"
    },
    "self": {
      "href": "/v0/cli/device-codes/x3k9...redacted...q7"
    }
  },
  "status": "pending"
}

Authorizations

x-juno-jwt
string
header
required

JWT issued by Dynamic Labs or Privy. Sent in the x-juno-jwt header on every authenticated request.

Headers

x-juno-jwt
string | null

JWT token from x-juno-jwt header

x-juno-orgid
string | null

Tenant org ID for multi-tenant auth

X-Timestamp-Format
string

Controls how timestamp fields are serialized in JSON response bodies.

Default (header omitted or any other value): epoch milliseconds as integers. iso8601: UTC ISO 8601 strings of the form YYYY-MM-DDTHH:MM:SSZ.

Example: with X-Timestamp-Format: iso8601, the field value 1704067200000 becomes "2024-01-01T00:00:00Z".

Affected fields (recursively, in dicts and arrays): any field whose name ends in _at, plus the literal field names timestamp, period_start, and period_end. All other fields are passed through unchanged.

Only iso8601 is recognized. Any other value (or omitting the header) yields the default epoch-ms representation; the server does not reject unknown values, so this is documented as an example rather than an enum to keep generated clients permissive.

Example:

"iso8601"

Path Parameters

device_code
string
required

Body

application/json

Body for POST /v0/cli/device-codes/{device_code}/approval.

The user supplies the short code shown by the CLI; the server matches it against the pending request and binds the request to the calling user.

user_code
string
required

The short code displayed by the CLI for the user to confirm.

Required string length: 1 - 16

Response

Sign-in approved

Current status of a CLI sign-in request while it is still actionable.

HAL-style hypermedia links for navigation and available actions.

status
enum<string>
required

Current lifecycle state of the sign-in request.

Available options:
pending,
approved,
exchanged,
denied,
expired