---
title: "Initiate handoff"
method: POST
path: "/auth/handoff/initiate"
tags: ["Auth"]
---

# Initiate handoff

`POST /auth/handoff/initiate`

Start a handoff session to transfer authentication between devices. Returns a handoff code for device linking.

## Response `200`

Success

- HandoffInitiateResponse
  - `code` string, required — Handoff code to share with the receiving device
  - `expires_at` string, date-time, required — ISO 8601 timestamp when the handoff code expires
  - `poll_secret` string — Secret the initiating device must present to retrieve the token

## Other responses

- `400` — Bad Request - The request was malformed or contained invalid data
- `429` — Too Many Requests - You are being rate limited
- `500` — Internal Server Error - An unexpected error occurred

## Changes

- **2026-09-03** `fa36b1b48ca5` — 11 info
  - added the optional property `poll_secret` to the response with the `200` status
  - removed the `INVALID_PACK_TYPE` enum value from the `code` response property for the response status `400`
  - removed the `INVALID_PACK_TYPE` enum value from the `code` response property for the response status `500`
  - removed the `MAX_PACKS` enum value from the `code` response property for the response status `400`
  - …7 more

[Change history](https://skmtc.dev/fluxer/apis/fluxer-api/changes/auth/handoff/initiate/post.md)

---

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