Get an analysis Beta
One diagnosis in full, with every stage that ran and the traceroute when there is one.
Needs an X-API-Key header whose owner has access to uptime monitoring in the app. The call counts once against your daily quota. See Monitoring API: getting started for authentication, rate limits and errors.
Read-only: anything other than GET returns 405.
Path parameters
| Name | Type | Description |
|---|---|---|
id required | string | The monitor id. |
aid required | string | The analysis id, for example an_7c1e04b93af2d5608a. Get it from the analysis list. |
Request
Response
- {
- "analysis": {
- "id": "an_7c1e04b93af2d5608a",
- "monitorId": "mon_79ce3cf9c4fa56e98af4",
- "cause": "tls",
- "summary": "The certificate expired 2 days ago",
- "createdAt": "2026-09-16T22:28:04.117Z",
- "steps": [
- { "stage": "dns", "ok": true, "ms": 24, "detail": "203.0.113.10",
- "addresses": [{ "address": "203.0.113.10", "family": 4 }] },
- { "stage": "tcp", "ok": true, "ms": 31, "detail": "Connected to 203.0.113.10:443" },
- { "stage": "tls", "ok": false, "ms": 88, "detail": "TLSv1.3, issued by Let's Encrypt, expired 2 days ago",
- "error": "The certificate expired 2 days ago" }
- ],
- "traceroute": null
- },
- "usage": { "used": 55, "dailyLimit": 100, "tier": "free" }
- }
Response fields
The same fields as the list, plus:
| Field | Type | Description |
|---|---|---|
steps | object[] | Each stage that ran, in order, as { stage, ok, ms, detail, error }. The dns step also carries addresses, and an http step carries an excerpt of the reply. See the stages. |
steps[].ok | boolean | false on the stage that failed. Nothing after it runs. |
steps[].ms | integer | null | How long that stage took. |
steps[].error | string | Only on a stage that failed. |
traceroute | object | null | A traceroute as { host, address, hops }, attached when a connection failed and the checking server could run one. null otherwise. |
Errors
| Status | When |
|---|---|
401 | The API key is missing or invalid. |
403 | The key's owner doesn't have access to uptime monitoring, or the key isn't linked to a workspace. |
404 | No monitor with that id in your workspace, or no analysis with that id for this monitor. |
405 | Anything other than GET. |
429 | A rate limit or your daily quota was hit. Read Retry-After, in seconds. |
500, 503 | Something went wrong, or the API is temporarily unavailable. Try again. |
Errors are JSON: { "error": "message" }. See Monitoring API errors.
Related
- Diagnostics: what each stage means
- Traceroute: run one on demand
- Get a monitor: its current status