desks
POST
https://api.gaiadesk.net/v1 /desks/{id}/wake Scope desks:writeRing the desk's doorbell and ask its LAN siblings to Wake-on-LAN it.
Rings every doorbell socket the desk holds and asks up to three awake desks of the same account on its network to send it a Wake-on-LAN packet. With wait_s, waits up to that long for the desk to come online and says whether it woke. A desk that is already online is not rung. A desk with nothing to ring answers 409 unreachable (no_wake_path).
Parameters
idstringpathrequiredThe desk's nine-digit id.
Idempotency-KeystringheaderUp to 255 printable ASCII characters. A retry with the same key and the same request within 24 hours gets the first answer again (
Idempotent-Replayed: true); the same key with a different request is refused (usage, idempotency_key_reused).Request body
application/json
wait_sintegerWait up to this many seconds for the desk to come online (default 0, at most 90, inside Cloudflare's 100-second request limit).
{
"wait_s": 0
}Code samples
cURL
curl -X POST "https://api.gaiadesk.net/v1/desks/{id}/wake" \
-H "Authorization: Bearer $GAIADESK_API_KEY" \
-H "Idempotency-Key: <value>" \
-H "Content-Type: application/json" \
-d '{"wait_s":0}'TypeScript
Python
Go
PHP
Ruby
Java
Responses
200 Rung (and, with
wait_s, whether it came online in time).Example
{
"desk_id": "string",
"online": true,
"woke": true,
"already_online": true,
"rang": {
"doorbell": 0,
"lan_helpers": 0
},
"waited_ms": 0
}Schema
desk_idstringrequiredonlinebooleanrequiredwokebooleanrequiredIt came online after this ring, within
wait_s.already_onlinebooleanrequiredrangobjectrequiredShow child parameters
doorbellintegerrequiredlan_helpersintegerrequiredwaited_msintegerrequiredHeaders
X-Request-IdstringThis request's id (
req_…), also in every error body. Quote it to support.Idempotent-Replayedstringtrue when this answer is a stored one, replayed for a repeated Idempotency-Key.400 The request is malformed (
usage).Example
{
"error": {
"desk": "string",
"kind": "string",
"message": "string",
"reason": "string",
"request_id": "string",
"status": 0
},
"e2e": {
"v": 0,
"events": [
{
"seq": 0,
"nonce": "string",
"ciphertext": "string"
}
]
}
}Schema
errorError & objectrequiredThe CLI's error object plus this request's id.
Show child parameters
deskstringThe desk it concerned, when there was one.
kindstringrequiredThe six kinds a program branches on. Stable: a new kind would be a breaking change, so match with a wildcard arm anyway.
messagestringrequiredreasonstringThe finer cause:
offline, unknown_desk, not_online, network, not_signed_in, timeout, local, …request_idstringrequiredstatusintegerOnly in a held body (
GaiaDesk-Held) — the HTTP status this failure would have had, had its 200 not been sent already.e2eobjectAn end-to-end encrypted operation's events; the last opens to the desk's real error (its
message here is a placeholder).Show child parameters
vintegerrequiredeventsApiE2eFrame[]requiredShow child parameters
seqintegerrequirednoncestringrequiredciphertextstringrequired401 No credential, or one that does not verify (
refused, unauthenticated).Same as 400 · POST /desks/{id}/wake
403 The credential lacks the scope, or may not use this API (
refused).Same as 400 · POST /desks/{id}/wake
404 No such desk or resource visible to the caller (
unreachable, unknown_desk).Same as 400 · POST /desks/{id}/wake
429 Over this key's rate limit (
refused, rate_limited).Same as 400 · POST /desks/{id}/wake
Headers
Retry-AfterintegerSeconds to wait before trying again.
RateLimit-LimitintegerRequests allowed per window for this key.
RateLimit-RemainingintegerRequests left in the current window.
RateLimit-ResetintegerSeconds until the window resets.
Updated