Register device
POST {{baseUrl}}/devices/{{deviceId}}
Registers (or updates) the driver’s device metadata. Source: models/devices.ts insert() — upserts by device_id.
Response: 200 with the saved Device row, mirroring whatever fields were sent in the request body plus server-set created_at/last_updated timestamps.
Request body
Section titled “Request body”{ "device_id": "{{deviceId}}", "brand": "Apple", "device_name": "jp's iPhone", "model": "iPhone15,2", "manufacturer": "Apple", "carrier": "Verizon", "build_number": "123", "bundle_name": "com.firstdelivery.runner", "timezone": "America/New York", "last_firmware_update": "2026-01-01T00:00:00.000Z", "first_time_install": "2026-01-01T00:00:00.000Z", "phone_number": "", "is_tablet": false, "version": null}Examples
Section titled “Examples”curl --request POST 'https://api.firstdelivery.com/api/devices/REPLACE_WITH_DEVICE_ID' \ --header 'Content-Type: application/json' \ --data '{ "device_id": "{{deviceId}}", "brand": "Apple", "device_name": "jp'\''s iPhone", "model": "iPhone15,2", "manufacturer": "Apple", "carrier": "Verizon", "build_number": "123", "bundle_name": "com.firstdelivery.runner", "timezone": "America/New York", "last_firmware_update": "2026-01-01T00:00:00.000Z", "first_time_install": "2026-01-01T00:00:00.000Z", "phone_number": "", "is_tablet": false, "version": null}'const response = await fetch("https://api.firstdelivery.com/api/devices/REPLACE_WITH_DEVICE_ID", { "method": "POST", "headers": { "Content-Type": "application/json" }, "body": "{\n \"device_id\": \"{{deviceId}}\",\n \"brand\": \"Apple\",\n \"device_name\": \"jp's iPhone\",\n \"model\": \"iPhone15,2\",\n \"manufacturer\": \"Apple\",\n \"carrier\": \"Verizon\",\n \"build_number\": \"123\",\n \"bundle_name\": \"com.firstdelivery.runner\",\n \"timezone\": \"America/New York\",\n \"last_firmware_update\": \"2026-01-01T00:00:00.000Z\",\n \"first_time_install\": \"2026-01-01T00:00:00.000Z\",\n \"phone_number\": \"\",\n \"is_tablet\": false,\n \"version\": null\n}"})const data = await response.json()import requests
response = requests.request( "POST", "https://api.firstdelivery.com/api/devices/REPLACE_WITH_DEVICE_ID", headers={ 'Content-Type': 'application/json'}, data="{\n \"device_id\": \"{{deviceId}}\",\n \"brand\": \"Apple\",\n \"device_name\": \"jp's iPhone\",\n \"model\": \"iPhone15,2\",\n \"manufacturer\": \"Apple\",\n \"carrier\": \"Verizon\",\n \"build_number\": \"123\",\n \"bundle_name\": \"com.firstdelivery.runner\",\n \"timezone\": \"America/New York\",\n \"last_firmware_update\": \"2026-01-01T00:00:00.000Z\",\n \"first_time_install\": \"2026-01-01T00:00:00.000Z\",\n \"phone_number\": \"\",\n \"is_tablet\": false,\n \"version\": null\n}",)response.raise_for_status()Saved responses
Section titled “Saved responses”{ "device_id": "REPLACE_WITH_DEVICE_ID", "user_id": "8e17d5db-da6e-453c-966f-bfc72c125094", "brand": "Apple", "device_name": "jp's iPhone", "model": "iPhone15,2", "manufacturer": "Apple", "carrier": "Verizon", "build_number": 123, "bundle_name": "com.firstdelivery.runner", "timezone": "America/New York", "last_firmware_update": "2026-01-01T00:00:00.000Z", "first_time_install": "2026-01-01T00:00:00.000Z", "phone_number": "", "is_tablet": false, "version": null, "created_at": "2026-06-22T14:00:00.000Z", "last_updated": "2026-06-22T14:00:00.000Z"}
