`POST /api/resources/{id}/test` — run the per-kind reachability probe and return `{ ok, message }`. An obviously broken config (missing host / URL) maps to 400; a transport-level failure maps to 200 + `ok: false` so the UI can render a red badge with the message.
POST
/api/resources/{id}/test
const url = 'https://example.com/api/resources/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/test';const options = {method: 'POST'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/resources/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/testParameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”id
required
string format: uuid
Responses
Section titled “Responses”Media typeapplication/json
The shape returned from POST /api/resources/{id}/test (#626 §7 — the
Resource status probe): a green/red badge (ok), a short human message
(message, the failure detail the UI renders) and checked_at, the time
the probe ran. checked_at is stamped by the HTTP handler (the probe helpers
themselves are clock-free), so it is None only in a direct service call that
does not set it.
object
checked_at
string | null format: date-time
message
required
string
ok
required
boolean
Examplegenerated
{ "checked_at": "2026-04-15T12:00:00Z", "message": "example", "ok": true}