POST /register

Available

Upsert a device and read the current app config, Firebase config, and policy.

POSThttps://ctrlapp.krdcode.com/api/public/sdk/v1/register
Auth: Bearer <PUBLISHABLE_KEY>

Body cap 32 KiB. All fields except device_uid are optional.

Body

json
{
  "device_uid": "<DEVICE_ID>",             // required, 1..200 chars
  "hardware_id": "<optional stable id>",   // used to dedupe reinstalls
  "platform": "ios" | "android" | "web" | "...",
  "os_version": "17.4.1",
  "app_version": "1.2.3",
  "model": "iPhone15,3",
  "locale": "en-US",
  "timezone": "America/New_York",
  "push_token": "<APNs / FCM token>",
  "push_platform": "apns" | "fcm",
  "external_user_id": "<optional stable user id>",
  "tags": { "tier": "gold" }
}

200 response

json
{
  "device_id": "<uuid>",           // server-assigned; store it
  "config": {
    "is_blocked": false,
    "block_message": null,
    "min_app_version": null
  },
  "firebase_config": { /* nullable */ } ,
  "policy": { /* privacy / screen-capture policy */ }
}

The response does NOT echo device_uid. Persist device_id if you need to reference the server row later.

Errors

  • 400 — invalid body.
  • 401 — bad key / signature.
  • 402"Device quota exceeded for this app's plan".
  • 413 — body over 32 KiB.
  • 500"Register failed" after retries.
Back to top