Get the Mac
The Mac that sends for you: whether it is online, its setup checks, how many texts are waiting and today’s counts against the limits.
/v1/device
The Mac that sends for you: whether it is online, its setup checks, how many texts are waiting and today’s counts against the limits.
Needs a key with the account:read scope.
Example
/v1/devicecurl "https://usebluebot.com/api/v1/device" \
-H "Authorization: Bearer $BLUEBOT_API_KEY"Response
200: The Mac.
idstring or nullrequiredNull until a Mac is connected.
Starts with
dev_.object"device"requiredstatusstringrequiredonline(checked in within 2 minutes),offlineornever_connected.One of
online,offline,never_connected.namestring or nullrequirednumberstring or nullrequiredThe phone number Messages on the Mac sends from, when it can tell.
app_versionstring or nullrequiredmacos_versionstring or nullrequiredlast_seen_attimestamp or nullrequiredThe Mac’s last check-in.
last_sync_attimestamp or nullrequiredThe last time the Mac finished posting the texts it read from Messages.
offline_sincetimestamp or nullrequiredWhen the Mac went quiet, while it is offline.
paired_attimestamp or nullrequiredWhen this Mac was connected.
checksobjectrequiredThe Mac’s setup checks: Messages signed in, Full Disk Access, Text Message Forwarding, staying awake, FileVault.
Show its 5 fieldsHide its fields
messagesobjectrequiredShow its 2 fieldsHide its fields
statestringrequiredok,needs_you(something on the Mac needs fixing) orunknown.One of
ok,needs_you,unknown.detailstring or nullrequiredWhat the Mac saw, in words.
full_disk_accessobjectrequiredShow its 2 fieldsHide its fields
statestringrequiredok,needs_you(something on the Mac needs fixing) orunknown.One of
ok,needs_you,unknown.detailstring or nullrequiredWhat the Mac saw, in words.
forwardingobjectrequiredShow its 2 fieldsHide its fields
statestringrequiredok,needs_you(something on the Mac needs fixing) orunknown.One of
ok,needs_you,unknown.detailstring or nullrequiredWhat the Mac saw, in words.
awakeobjectrequiredShow its 2 fieldsHide its fields
statestringrequiredok,needs_you(something on the Mac needs fixing) orunknown.One of
ok,needs_you,unknown.detailstring or nullrequiredWhat the Mac saw, in words.
filevaultobjectrequiredShow its 2 fieldsHide its fields
statestringrequiredok,needs_you(something on the Mac needs fixing) orunknown.One of
ok,needs_you,unknown.detailstring or nullrequiredWhat the Mac saw, in words.
checks_okboolean or nullrequiredTrue when no check needs you.
transcriptionbooleanrequiredWhether voice memos are transcribed on this Mac.
held_countintegerrequiredQueued texts that are waiting on a hold.
queued_countintegerrequiredEvery queued text.
unconfirmed_countintegerrequiredTexts the Mac couldn’t confirm, waiting for you to settle them.
paused_untiltimestamp or nullrequiredWhile you have sending paused, until when.
todayobjectrequiredToday’s counts against the limits.
Show its 5 fieldsHide its fields
sentintegerrequiredTexts the Mac took today, in your time zone.
new_peopleintegerrequiredPeople texted for the first time today.
new_people_limitintegerrequiredYour new-people-per-day setting.
daily_limitintegerrequiredBlueBot’s ceiling on texts a day.
resets_attimestamprequiredThe next local midnight, when the counts start again.
{
"id": "dev_1Hq2LxW9cVbN3mKpRtYs0a",
"object": "device",
"status": "online",
"name": "Dana’s MacBook Air",
"number": "+15555550100",
"app_version": "1.0.0",
"macos_version": "15.1",
"last_seen_at": "2026-11-13T19:41:00.000Z",
"last_sync_at": "2026-11-13T19:41:00.000Z",
"offline_since": null,
"paired_at": "2026-11-01T15:00:00.000Z",
"checks": {
"messages": {
"state": "ok",
"detail": null
},
"full_disk_access": {
"state": "ok",
"detail": null
},
"forwarding": {
"state": "ok",
"detail": null
},
"awake": {
"state": "ok",
"detail": null
},
"filevault": {
"state": "ok",
"detail": null
}
},
"checks_ok": true,
"transcription": false,
"held_count": 0,
"queued_count": 0,
"unconfirmed_count": 0,
"paused_until": null,
"today": {
"sent": 14,
"new_people": 3,
"new_people_limit": 50,
"daily_limit": 1000,
"resets_at": "2026-11-14T05:00:00.000Z"
}
}Errors
Every refusal has the same envelope and a page of its own. These are the ones this operation can give.
| Code | Status | What it means |
|---|---|---|
| 401 | The request carried no key, or a key BlueBot doesn’t know: mistyped, revoked, or a test key sent to the live API. | |
| 403 | The key doesn’t carry the scope the endpoint needs. Each endpoint’s reference names its scope. | |
| 429 | Too many requests. A key may make 120 requests a minute. The RateLimit header says how many are left, and Retry-After how long to wait. | |
| 500 | Something went wrong on BlueBot’s side. It was reported. Send the request again; with an Idempotency-Key that is always safe. |
Try it
Call this operation from the page with your own key. The key stays in this tab and is forgotten when you leave.