---
title: "Poll device login for token"
method: POST
path: "/v1/auth/device/token"
tags: ["Auth"]
---

# Poll device login for token

`POST /v1/auth/device/token`

Poll with the `device_code` secret. Returns pending until the browser OAuth step completes, then delivers the `so_` token exactly once.

## Request body

- object
  - `device_code` string, required

## Response `200`

Pending or approved

- union
  - object
    - `status` 'pending', required
    - `interval` integer, required
  - object
    - `status` 'approved', required
    - `token` string, required — Bearer token (so_…), shown once.
    - `user_id` string, required
    - `warn` string — Present when expected_email did not match signed-in email.

## Other responses

- `400` — expired_token, access_denied, or invalid_grant

---

[API](https://skmtc.net/shareout/apis/shareout-rest-api.md) · [All operations](https://skmtc.net/shareout/apis/shareout-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/shareout/shareout-rest-api/revisions/804359ead65a/schema)
