---
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`

---

[API](https://skmtc.net/trycourier/apis/courier.md) · [All operations](https://skmtc.net/trycourier/apis/courier/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trycourier/courier/versions/04f69fbf96a5/schema)
