---
title: "Start a device-code claim flow for a full billed key"
method: POST
path: "/v1/keys/request"
tags: ["provisioning"]
---

# Start a device-code claim flow for a full billed key

`POST /v1/keys/request`

## Request

- Base URL: `https://api.primateintelligence.ai`
- URL: `https://api.primateintelligence.ai/v1/keys/request`
- Auth: none declared

Stage 2 of the key lifecycle. Optional auth (test or live key accepted, or none). Returns a `device_code` and `claim_url`. Direct the user to `claim_url` to sign in; poll `GET /v1/keys/request/{code}` until status changes from `pending`. Key is delivered once in the claim response; subsequent polls return 410.

## Response `202`

Device code issued.

- DeviceCodeRequest
  - `object` 'device_code_request', required
  - `device_code` string, required: Opaque code; use as path param when polling.
  - `claim_url` string, uri, required: Open in browser for the user to approve.
  - `expires_at` string, date-time, required
  - `poll_interval` integer, required: Seconds between polls.
  - `instructions` string

## Other responses

- `503`: db_unavailable

---

[API](https://skmtc.dev/primateintelligence/apis/primate-vision-api.md) · [All operations](https://skmtc.dev/primateintelligence/apis/primate-vision-api/llms.txt) · [OpenAPI document](https://skmtc.dev/primateintelligence/apis/primate-vision-api/revisions/aa51b01dc8ad?raw)
