For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Developer Tools
CommunityContact UsConsole
HomeDocsAPI Reference
HomeDocsAPI Reference
  • API Reference
    • GETDevice Information
    • POSTHeartbeat ping
    • POSTCreate C2C asset
    • POSTCreate C2C asset
    • POSTRequest upload URLs for real-time upload
    • POSTCreate a Comment from a C2C device
      • POSTRequest device code
      • POSTDevice Token Exchange
      • POSTRevoke Device Authorization

© 2026 Adobe Inc. All rights reserved.

TermsPrivacyDo not sell or share my personal information
Developer-friendly docs for your API
Logo
Developer Tools
CommunityContact UsConsole
API ReferenceAuthentication

Request device code

POST
https://api.frame.io/v2/auth/device/code
POST
/v2/auth/device/code
1import requests
2
3headers = {
4 'x-client-platypus-enabled': 'true',
5 'x-client-version': '1.0.0'
6}
7
8data = {
9 'client_id': 'your-client-id',
10 'client_secret': 'your-client-secret',
11 'scope': 'asset_create offline'
12}
13
14response = requests.post(
15 'https://api.frame.io/v2/auth/device/code',
16 headers=headers,
17 data=data
18)
19
20result = response.json()
21print(result)
200Successful
1{
2 "device_code": "a1b2C3d4E5f6G7h8I9j0K1L2M3N4O5P6Q7R8S9T0U1V2W3X4Y5Z6a7b8c9d0e1f2g3h4i5j6k7",
3 "expires_in": 120,
4 "interval": 5,
5 "name": "my-device-abc123",
6 "user_code": "987654",
7 "verification_uri": "https://next.frame.io/pair",
8 "verification_uri_complete": "https://next.frame.io/pair/987654"
9}
Was this page helpful?
Previous

Device Token Exchange

Next

Headers

x-client-versionstringOptionalDefaults to 0.0.0

Firmware or software version of a C2C integration. Will be used to determine the correct Device Model configuration for the device when multiple are available. Must be a valid semantic version.

For more on semantic versions, see here: https://semver.org/

x-client-platypus-enabledenumOptional
Enable URL Pairing mode for C2C device code requests. Set to 'true' to enable.
Allowed values:

Request

client_idstringRequired
A unique identifier for the physical hardware device. This value needs to be guaranteed to be unique for the device. This could be a serial number or a randomly generated UUID.
client_secretstringRequired
This will be issued to you by Frame.io support and identifies the your device model. This value should be kept secret from the user, and should be encrypted at rest
scopestringRequiredformat: "asset_create offline"

Space-delimited list of permissions being requested. Hardware devices can request the following scopes: ‘asset_create’ (create assets), ‘offline’ (refresh tokens). Typically both are requested together.

Response

Successful request
device_codestring>=1 character
The device code should be hidden from the user, and is used to identify this authorization request when polling to see if the user has entered their code successfully.
expires_indouble<=120
The number of seconds until this code expires.
intervaldouble
How long the we should wait between polling requests to see if the user has entered the code.
namestring>=1 character
The name of the device we are trying to connect.
user_codestring>=1 character

The six-digit code the user will enter into Frame.io to pair the device to a project.

verification_uristringformat: "uri"
The URL where the user should go to enter the pairing code.
verification_uri_completestringformat: "uri"

A complete URL with the user code pre-filled, which can be used to streamline the pairing process.