---
title: "Poll device login"
method: GET
path: "/v1/login/device/{device_code}"
tags: ["Auth"]
---

# Poll device login

`GET /v1/login/device/{device_code}`

Polls a CLI device login until complete, pending, or expired.

## Path parameters

- `device_code` string, required

## Response `200`

Device login poll result.

- LoginPollResponse — Device login poll response.
  - `status` 'pending' | 'authorized' | 'expired', required
  - `token` string, nullable, required
  - `expires_at` string, date-time, required

## Other responses

- `400` — Bad request.
- `401` — Unauthorized.
- `429` — Too many requests.
- `500` — Internal server error.

## Changes

- **2026-06-05** `3985c6090c91` — 24 breaking, 5 warning, 75 info
  - for the `path` request parameter `device_code`, the maxLength was decreased from `512` to `128`
  - for the `path` request parameter `device_code`, the minLength was increased from `0` to `1`
  - the response property `checkout_url` became nullable for the status `400`
  - the response property `checkout_url` became nullable for the status `401`
  - …100 more

[Change history](https://skmtc.dev/tovuk/apis/tovuk-api/changes/v1/login/device/:device_code/get.md)

---

[API](https://skmtc.dev/tovuk/apis/tovuk-api.md) · [All operations](https://skmtc.dev/tovuk/apis/tovuk-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/tovuk/tovuk-api/revisions/369fdc4d9aee/schema)
