---
title: "Revoke native APNs registrations for one device"
method: DELETE
path: "/api/v1/me/apns-devices/{deviceId}"
tags: ["Account"]
---

# Revoke native APNs registrations for one device

`DELETE /api/v1/me/apns-devices/{deviceId}`

## Request

- Base URL: `https://spoonjoy.app`
- URL: `https://spoonjoy.app/api/v1/me/apns-devices/{deviceId}`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `__session`
  - OAuth 2 (authorization code, authorization URL `https://spoonjoy.app/oauth/authorize`, token URL `https://spoonjoy.app/oauth/token`, scopes: `account:write`)

## Path parameters

- `deviceId` string, required

## Query parameters

- `clientMutationId` string

## Headers

- `X-Client-Mutation-Id` string
- `X-Request-Id` string

## Request body

- AccountDeleteMutationRequest
  - `clientMutationId` string, required

## Response `200`

Success

- ApnsDeviceRevokeEnvelope
  - `ok` unknown, required
  - `requestId` string, required
  - `data` ApnsDeviceRevokeData, required
    - `revoked` boolean, required
    - `revokedCount` integer, required
    - `device` ApnsDevice, required
      - `id` string, required
      - `deviceId` string, required
      - `platform` 'ios' | 'ipados' | 'macos', required
      - `environment` 'development' | 'production', required
      - `tokenPrefix` string, required: First characters of the APNs token for diagnostics. The full token is never returned.
      - `deviceName` string, nullable, required
      - `appVersion` string, nullable, required
      - `enabledAt` string, date-time, required
      - `revokedAt` string, date-time, nullable, required
      - `lastRegisteredAt` string, date-time, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `devices` ApnsDevice[], required
      - `id` string, required
      - `deviceId` string, required
      - `platform` 'ios' | 'ipados' | 'macos', required
      - `environment` 'development' | 'production', required
      - `tokenPrefix` string, required: First characters of the APNs token for diagnostics. The full token is never returned.
      - `deviceName` string, nullable, required
      - `appVersion` string, nullable, required
      - `enabledAt` string, date-time, required
      - `revokedAt` string, date-time, nullable, required
      - `lastRegisteredAt` string, date-time, required
      - `createdAt` string, date-time, required
      - `updatedAt` string, date-time, required
    - `mutation` MutationMetadata, required
      - `clientMutationId` string, required
      - `replayed` boolean, required

## Other responses

- `400`: Errors: invalid_json, validation_error
- `401`: Errors: authentication_required, invalid_token
- `403`: Errors: insufficient_scope
- `404`: Errors: not_found
- `405`: Errors: method_not_allowed
- `409`: Errors: idempotency_conflict, idempotency_in_progress
- `429`: Errors: rate_limited
- `500`: Errors: internal_error
- `503`: Errors: temporarily_unavailable

---

[API](https://skmtc.dev/spoonjoy/apis/spoonjoy-api.md) · [All operations](https://skmtc.dev/spoonjoy/apis/spoonjoy-api/llms.txt) · [OpenAPI document](https://skmtc.dev/spoonjoy/apis/spoonjoy-api/revisions/b96eb5d4697d?raw)
