Pular para o conteúdo

List devices for an app​

GET
/v1/apps/{app_id}/devices

Lists devices for an app. Filters: ?q= (external_user_id/id substring, exact token, or key:value tags), ?status= (ok|off|invalid), ?platform= (ios|android|web), ?activity= (active|inactive), ?sort= (last_seen|first_seen), plus the legacy ?external_user_id=, ?search= and ?subscribed=. ?include=counts adds total, per-status counts and version meta on the first page only (no cursor).

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)
ou
RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório

Parâmetros de Consulta

q

Search: external_user_id or id substring, exact push token, or key:value tag

Tipo
string
status

Filter by derived push status: ok, off or invalid

Tipo
string
platform

Filter by platform: ios, android or web

Tipo
string
activity

Activity filter: active (seen in 7 days) or inactive (30d+ or never)

Tipo
string
sort

Sort: last_seen or first_seen (default created_at)

Tipo
string
include

Comma-separated extras; counts adds total, per-status counts and meta (first page only)

Tipo
string
external_user_id

Filter by external user ID (exact match; ignored when search is present)

Tipo
string
search

Search by device ID (substring) or external user ID (exact) or tags (substring); takes precedence over external_user_id

Tipo
string
subscribed

Filter by subscription state: true or false

Tipo
string
limit

Page size (1-100, default 50)

Tipo
integer
cursor

Pagination cursor

Tipo
string

Respostas​

{"items": [deviceResponse], "next_cursor": string|null, "total": int, "counts": {all, ok, off, invalid}} (total, counts and meta only with include=counts and no cursor)

application/json
JSON
{
}

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


Register a device​

POST
/v1/apps/{app_id}/devices

Registers (upserts) a device token for the App. SDK-facing: authenticated by REST or Client key, never an admin session. On re-registration of an existing token, omitted external_user_id and tags keep their stored values; an explicit empty tags object clears tags.

Autorizações​

RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)
ou
ClientKeyAuth

App Client key (ck_...). Device-facing calls only.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório

Corpo da Requisição​

application/json
JSON
{
  
"external_user_id": "string",
  
"platform": "string",
  
"tags": {
  
  
"additionalProperties": null
  
},
  
"token": "string"
}

Respostas​

Created

application/json
JSON
{
  
"app_id": "string",
  
"app_version": "string",
  
"country": "string",
  
"created_at": "string",
  
"device_model": "string",
  
"device_os": "string",
  
"email": "string",
  
"external_user_id": "string",
  
"first_seen_at": "string",
  
"first_session_at": "string",
  
"id": "string",
  
"language": "string",
  
"last_seen_at": "string",
  
"last_session_at": "string",
  
"last_unsubscribed_at": "string",
  
"permission_status": "string",
  
"phone": "string",
  
"platform": "string",
  
"push_status": "string",
  
"push_token_masked": "string",
  
"sdk_name": "string",
  
"sdk_version": "string",
  
"session_count": 0,
  
"session_time_seconds": 0,
  
"subscribed": true,
  
"tags": {
  
  
"additionalProperties": null
  
},
  
"timezone_id": "string",
  
"token": "string",
  
"updated_at": "string"
}

Playground​

Autorização
Variáveis
Chave
Valor
Corpo

Exemplos​


Summarize an app's devices​

GET
/v1/apps/{app_id}/devices/summary

Returns lifetime device counts for an App: total, per platform, and per subscription state (soft-deleted devices excluded).

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)
ou
RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório

Respostas​

OK

application/json
JSON
{
  
"android": 0,
  
"ios": 0,
  
"subscribed": 0,
  
"total": 0,
  
"unsubscribed": 0
}

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


List distinct tag keys for an app's devices​

GET
/v1/apps/{app_id}/devices/tags

Returns the distinct tag keys in use across an App's devices, each with up to 10 distinct sample values, capped at 200 keys.

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)
ou
RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório

Respostas​

{"keys": [tagKeyResponse]}

application/json
JSON
{
}

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


Get a device​

GET
/v1/apps/{app_id}/devices/{id}

Fetches a single device by ID, scoped to the App, with matched segments, 30-day sends, push status, token error and version metadata.

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)
ou
RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório
id*

Device ID

Tipo
string
Obrigatório

Respostas​

OK

application/json
JSON
{
  
"app_id": "string",
  
"app_version": "string",
  
"country": "string",
  
"created_at": "string",
  
"device_model": "string",
  
"device_os": "string",
  
"email": "string",
  
"external_user_id": "string",
  
"first_seen_at": "string",
  
"first_session_at": "string",
  
"id": "string",
  
"language": "string",
  
"last_seen_at": "string",
  
"last_session_at": "string",
  
"last_unsubscribed_at": "string",
  
"latest_app_version": "string",
  
"min_rich_version": "string",
  
"permission_status": "string",
  
"phone": "string",
  
"platform": "string",
  
"push_status": "string",
  
"push_token_masked": "string",
  
"sdk_name": "string",
  
"sdk_version": "string",
  
"segments": [
  
  
{
  
  
  
"id": "string",
  
  
  
"name": "string"
  
  
}
  
],
  
"sends_30d": 0,
  
"session_count": 0,
  
"session_time_seconds": 0,
  
"subscribed": true,
  
"tags": {
  
  
"additionalProperties": null
  
},
  
"timezone_id": "string",
  
"token": "string",
  
"token_error": "string",
  
"updated_at": "string"
}

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


Delete a device​

DELETE
/v1/apps/{app_id}/devices/{id}

Soft-deletes a device. Session-only (no REST/Client key path). Its delivery history is kept; the device disappears from lists and segments.

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório
id*

Device ID

Tipo
string
Obrigatório

Respostas​

No Content

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


Update a device​

PATCH
/v1/apps/{app_id}/devices/{id}

Updates a device's subscription flag, tags, external user ID, app version, session telemetry, country, or profile fields (device_os, device_model, sdk_version, sdk_name, permission_status, last_unsubscribed_at, email, phone, timezone_id, language). Absent fields are unchanged. external_user_id, country, email and phone accept null to clear the stored value; an empty external_user_id ("") is unchanged. When authenticated by a Client key, the request must also carry the device's own token as proof of ownership.

Autorizações​

RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)
ou
ClientKeyAuth

App Client key (ck_...). Device-facing calls only.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório
id*

Device ID

Tipo
string
Obrigatório

Corpo da Requisição​

application/json
JSON
{
  
"app_version": "string",
  
"country": "string",
  
"device_model": "string",
  
"device_os": "string",
  
"email": "string",
  
"external_user_id": "string",
  
"first_session_at": "string",
  
"language": "string",
  
"last_session_at": "string",
  
"last_unsubscribed_at": "string",
  
"permission_status": "string",
  
"phone": "string",
  
"sdk_name": "string",
  
"sdk_version": "string",
  
"session_count": 0,
  
"session_time_seconds": 0,
  
"subscribed": true,
  
"tags": {
  
  
"additionalProperties": null
  
},
  
"timezone_id": "string",
  
"token": "string"
}

Respostas​

OK

application/json
JSON
{
  
"app_id": "string",
  
"app_version": "string",
  
"country": "string",
  
"created_at": "string",
  
"device_model": "string",
  
"device_os": "string",
  
"email": "string",
  
"external_user_id": "string",
  
"first_seen_at": "string",
  
"first_session_at": "string",
  
"id": "string",
  
"language": "string",
  
"last_seen_at": "string",
  
"last_session_at": "string",
  
"last_unsubscribed_at": "string",
  
"permission_status": "string",
  
"phone": "string",
  
"platform": "string",
  
"push_status": "string",
  
"push_token_masked": "string",
  
"sdk_name": "string",
  
"sdk_version": "string",
  
"session_count": 0,
  
"session_time_seconds": 0,
  
"subscribed": true,
  
"tags": {
  
  
"additionalProperties": null
  
},
  
"timezone_id": "string",
  
"token": "string",
  
"updated_at": "string"
}

Playground​

Autorização
Variáveis
Chave
Valor
Corpo

Exemplos​


List a device's recent deliveries​

GET
/v1/apps/{app_id}/devices/{id}/deliveries

Returns the device's deliveries from the last 30 days, newest first, scoped to the App. status is delivered|opened|failed|pending; reason is the classified provider error code of a failed delivery (null otherwise); is_test marks a dashboard test send; template_name is null for an ad-hoc notification.

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)
ou
RESTKeyAuth

App REST key (rk_...). Server-to-server calls.

Tipo
HTTP (bearer)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório
id*

Device ID

Tipo
string
Obrigatório

Parâmetros de Consulta

limit

Page size (1-20, default 6)

Tipo
integer

Respostas​

OK

application/json
JSON
{
  
"items": [
  
  
{
  
  
  
"id": "string",
  
  
  
"is_test": true,
  
  
  
"reason": "string",
  
  
  
"sent_at": "string",
  
  
  
"status": "string",
  
  
  
"template_name": "string",
  
  
  
"title": "string"
  
  
}
  
]
}

Playground​

Autorização
Variáveis
Chave
Valor

Exemplos​


Send a test push to a device​

POST
/v1/apps/{app_id}/devices/{id}/test

Session-only. Creates an is_test notification and delivery for the device and enqueues it through the normal queue. 422 device_not_reachable when the device cannot receive push; 429 beyond 10/min per user and app.

Autorizações​

SessionAuth

Admin session cookie set by POST /v1/auth/login. Dashboard-only management.

Tipo
API Key (cookie: notti_session)

Parâmetros​

Parâmetros de Caminho

app_id*

App ID

Tipo
string
Obrigatório
id*

Device ID

Tipo
string
Obrigatório

Corpo da Requisição​

application/json
JSON
{
  
"body": "string",
  
"title": "string"
}

Respostas​

{"delivery_id": string, "status": "pending"}

application/json
JSON
{
}

Playground​

Autorização
Variáveis
Chave
Valor
Corpo

Exemplos​


Desenvolvido por VitePress OpenAPI