Start a device-code CLI authorization
const url = 'https://api.aetherpush.com/v1/auth/cli/device';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"deviceId":"example","deviceName":"Ubuntu ThinkBook","clientName":"example","clientVersion":"example","clientPlatform":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.aetherpush.com/v1/auth/cli/device \ --header 'Content-Type: application/json' \ --data '{ "deviceId": "example", "deviceName": "Ubuntu ThinkBook", "clientName": "example", "clientVersion": "example", "clientPlatform": "example" }'The fallback for machines that cannot open a browser or bind a
loopback port: SSH sessions, containers, locked-down hosts. The CLI
prints the user code and polls POST /v1/auth/cli/token with
grantType: device_code.
The user code is short by design, so it is protected by a 10-minute expiry and strict rate limiting on the activation endpoint rather than by entropy.
Parameters
Section titled “Parameters”Header Parameters
Section titled “Header Parameters”Client version, used when the body omits clientVersion.
Request Body
Section titled “Request Body”object
Responses
Section titled “Responses”Device authorization created.
RFC 8628 device authorization response. Field names follow the RFC, not the rest of this API.
object
High-entropy secret the CLI polls with. Never shown to the user.
Short code the user types into the activation page.
Seconds until the request expires.
Minimum seconds between polls. Polling faster earns a slow_down response.
Example
{ "user_code": "K27P-B744", "verification_uri": "https://dashboard.aetherpush.com/activate", "verification_uri_complete": "https://dashboard.aetherpush.com/activate?user_code=K27P-B744", "expires_in": 600, "interval": 5}Too many authorization requests from this address.
object
Human-readable error message.
Unique identifier for the request, also exposed as the X-Request-Id response header.
Example
{ "error": "The requested resource was not found.", "requestId": "req_abc123"}Internal server error.
object
Human-readable error message.
Unique identifier for the request, also exposed as the X-Request-Id response header.
Example
{ "error": "The requested resource was not found.", "requestId": "req_abc123"}