---
title: "Add single token to user"
method: PUT
path: "/users/{user_id}/tokens/{token}"
tags: ["Device Tokens"]
---

# Add single token to user

`PUT /users/{user_id}/tokens/{token}`

Registers one device token for a user against a provider key, overwriting the token if it already exists. Push sends resolve tokens per user.

## Path parameters

- `user_id` string, required
- `token` string, required

## Request body

- UsersAddSingleTokenBody — Request body for adding a single token. The token value itself is provided via the path parameter, so it is omitted from the body.
  - `provider_key` 'firebase-fcm' | 'apn' | 'expo' | 'onesignal', required
  - `expiry_date` union
    - string
    - boolean
  - `properties` unknown
  - `device` UsersDevice
    - `app_id` string, nullable — Id of the application the token is used for
    - `ad_id` string, nullable — Id of the advertising identifier
    - `device_id` string, nullable — Id of the device the token is associated with
    - `platform` string, nullable — The device platform i.e. android, ios, web
    - `manufacturer` string, nullable — The device manufacturer
    - `model` string, nullable — The device model
  - `tracking` UsersTracking
    - `os_version` string, nullable — The operating system version
    - `ip` string, nullable — The IP address of the device
    - `lat` string, nullable — The latitude of the device
    - `long` string, nullable — The longitude of the device

## Response `204`

## Other responses

- `400`

## Changes

- **2026-03-04** `44c2e612f5d4` — 1 warning
  - removed the request property `token`
- **2025-11-07** `71020f2e0980` — 2 breaking
  - the request property `token` became not nullable
  - the request property `token` became required
- **2025-10-15** `e67d02739533` — 2 info
  - api tag `Device Tokens` added
  - api tag `UsersTokens` removed

[Change history](https://skmtc.dev/trycourier/apis/courier/changes/users/:user_id/tokens/:token/put.md)

---

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