---
title: "Start device login"
method: POST
path: "/v1/login/device"
tags: ["Auth"]
---

# Start device login

`POST /v1/login/device`

Starts a CLI device login flow.

## Response `200`

Device login started.

- LoginStartResponse — Device login start response.
  - `loginUrl` string, uri, required
  - `verificationUri` string, uri, required
  - `deviceCode` string, required
  - `userCode` string, required
  - `intervalSeconds` integer, required
  - `expiresInSeconds` integer, required

## Other responses

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

## Changes

- **2026-07-03** `3f7925dc651d` — 4 breaking, 6 info
  - removed the required property `device_code` from the response with the `200` status
  - removed the required property `expires_in` from the response with the `200` status
  - removed the required property `interval` from the response with the `200` status
  - removed the required property `verification_uri` from the response with the `200` status
  - …6 more
- **2026-06-05** `3985c6090c91` — 22 breaking, 4 warning, 76 info
  - the response property `checkout_url` became nullable for the status `400`
  - the response property `checkout_url` became nullable for the status `401`
  - the response property `checkout_url` became nullable for the status `429`
  - the response property `checkout_url` became nullable for the status `500`
  - …98 more

[Change history](https://skmtc.dev/tovuk/apis/tovuk-api/changes/v1/login/device/post.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/ef06c3a9c42b/schema)
