CoreDash-oppetids-API og MCP-verktøy: monitorer og sjekker
List, legg til, endre og pause oppetidsmonitorer med CoreDash-API-nøkkelen din, og les sjekkene deres over REST eller MCP.
Oppetidsmonitorer over CoreDash-API-et
Les og endre oppetidsmonitorene i CoreDash-prosjektene dine over REST, med API-nøkkelen du allerede bruker til RUM-dataene dine. En AI-agent leser dem over MCP.
Hurtigstart
- Base-URL
https://app.coredash.app/api/uptime/monitors, JSON inn og JSON ut. - Header
Authorization: Bearer cdk_your_key, med en prosjektnøkkel eller en masternøkkel. - Første kall:
GET /api/uptime/monitorslister monitorene dine med tilstand og oppetid de siste 7 dagene.
curl https://app.coredash.app/api/uptime/monitors \
-H "Authorization: Bearer cdk_your_key"
API-nøkler for oppetidsmonitorer
Oppetidsendepunktene godtar nøklene fra CoreDash-API-et og Agency-API-et.
| Nøkkel | Starter med | Ser | En ny monitor havner i |
|---|---|---|---|
| Prosjektnøkkel | cdk_ | Monitorene i sitt eget prosjekt | Sitt eget prosjekt, alltid |
| Masternøkkel | cdk_master_ | Monitorene i alle prosjekter du eier eller er invitert til | Prosjektet du oppgir i project_id, et du eier |
Opprett en prosjektnøkkel på siden Connect Your AI i sidefeltet til prosjektet ditt: gi den et navn og klikk på Generate API key. De samme nøklene finner du i prosjektinnstillingene dine under API Keys (MCP). Kun prosjektets eiere kan opprette dem. En masternøkkel henter du fra siden Agency API i sidefeltet, på agency-kontoer. Når et prosjekt har utløpt, får prosjektnøkkelen 401 på alle kall.
En gjest i et prosjekt kan lese monitorene. Å legge til, endre, flytte og slette dem krever et prosjekt du eier.
OAuth-tokenet til en AI-tilkobling som Claude (mcp_at_) kan bare lese. POST, PATCH og DELETE med det får 403.
Oppetidsendepunkter
| Metode og sti | Hva den gjør | Returnerer |
|---|---|---|
GET /api/uptime/monitors | Lister alle monitorer nøkkelen har tilgang til, sortert etter navn. | 200, { "monitors": [...] }, hver med en summary |
POST /api/uptime/monitors | Legger til en monitor. Første sjekk kjører i neste runde, ved :00 eller :30. | 201, { "monitor": {...} } |
GET /api/uptime/monitors/:id | Én monitor med sjekkene sine, nyeste først. ?limit= angir antall sjekker: standard 300, maksimalt 2100. | 200, { "monitor", "summary", "checks", "rum" } |
PATCH /api/uptime/monitors/:id | Endrer feltene du sender, og lar resten stå. | 200, { "monitor": {...} } |
DELETE /api/uptime/monitors/:id | Sletter monitoren og alle sjekkene dens. | 200, { "deleted": true } |
Origin-IP-en og header-verdiene er hemmelige. De returneres fra POST, PATCH og GET /api/uptime/monitors/:id. Listen og MCP-verktøyene utelater origin_ip og viser alle header-verdier som ••••.
Monitor-objektet
| Felt | Betydning |
|---|---|
id | Monitorens ID, for :id i stiene. |
name, url | Navnet i appen og URL-en som sjekkes. |
project_id | CoreDash-prosjektet monitoren tilhører. |
paused | true så lenge monitoren ikke sjekkes. |
expect_status | HTTP-statusen som regnes som oppe. Standard 200. |
origin_check | true når en origin-IP er satt, slik at hver runde også sjekker selve serveren. |
origin_ip | Serverens IP. Bare i svarene som inneholder hemmeligheter. |
headers | De ekstra request-headerne, [{ "name", "value" }]. |
state | pending, up, failing, down, warn, blocked eller paused. Se tilstandstabellen nedenfor. |
last_check_at, last_up_at | Siste runde, og forrige runde som var oppe. |
down_since | Når den er nede: tidspunktet for den første feilede runden. Ellers null. |
last_down | Siste nedetid som ble avsluttet, { "from", "to" }, eller null. |
check_requested_at | Settes når du legger til monitoren. Neste runde nullstiller feltet. |
last | Siste sjekk per type: edge og origin, begge som et sjekkobjekt. origin_is_cdn er true hvis origin-sjekken svarte med Cloudflare-headere, slik at IP-en du oppga ikke er serveren din. |
cert_expires | Når HTTPS-sertifikatet de besøkende får, utløper. |
created_at | Når monitoren ble lagt til. |
Feltene summary og rum
Både listen og den enkelte monitoren har en summary: rounds_7d og down_rounds_7d teller rundene de siste 7 dagene, uptime_7d er prosentandelen av disse rundene uten en nede-sjekk, og recent inneholder de siste 48 rundene, eldste først, hver med rundens dårligste utfall. En monitor uten sjekker de siste 7 dagene har summary: null.
Den enkelte monitoren har også rum: TTFB ved p75 som faktiske besøkende fikk de siste 7 dagene, hentet fra prosjektets RUM-data, for sammenligning med sjekkerens ttfb_ms. Den er null så lenge prosjektet mangler RUM-data.
GET /api/uptime/monitors/:id
curl "https://app.coredash.app/api/uptime/monitors/6ad68c7a844fad80b752fd16?limit=2" \
-H "Authorization: Bearer cdk_your_key"
{
"monitor": {
"id": "6ad68c7a844fad80b752fd16",
"name": "Checkout",
"url": "https://www.example.com/checkout/",
"project_id": "655f1f77bcf86cd799439011",
"paused": false,
"expect_status": 200,
"origin_check": true,
"origin_ip": "203.0.113.10",
"headers": [{ "name": "X-Staging-Auth", "value": "k7Qp2vX9mR4tL8wZ" }],
"state": "up",
"last_check_at": "2026-10-20T08:00:09.000Z",
"last_up_at": "2026-10-20T08:00:09.000Z",
"down_since": null,
"last_down": { "from": "2026-10-18T19:00:11.000Z", "to": "2026-10-18T20:00:10.000Z" },
"check_requested_at": null,
"last": {
"edge": { "at": "2026-10-20T08:00:09.000Z", "server": "scan1", "mode": "edge", "outcome": "up", "status": 200, "ttfb_ms": 212, "total_ms": 388, "connect_ms": 14, "redirects": 0, "final_url": "https://www.example.com/checkout/", "error": null, "error_text": null, "cloudflare": true, "cache_status": "DYNAMIC" },
"origin": { "at": "2026-10-20T08:00:09.000Z", "server": "scan1", "mode": "origin", "outcome": "up", "status": 200, "ttfb_ms": 640, "total_ms": 702, "connect_ms": 9, "redirects": 0, "final_url": "https://www.example.com/checkout/", "error": null, "error_text": null, "cloudflare": false, "cache_status": null },
"origin_is_cdn": false
},
"cert_expires": "2027-01-02T23:59:59.000Z",
"created_at": "2026-10-06T09:12:41.000Z"
},
"summary": {
"rounds_7d": 336,
"down_rounds_7d": 2,
"uptime_7d": 99.4,
"recent": [
{ "at": "2026-10-20T07:30:10.000Z", "outcome": "up" },
{ "at": "2026-10-20T08:00:09.000Z", "outcome": "up" }
]
},
"checks": [
{ "at": "2026-10-20T08:00:09.000Z", "server": "scan1", "mode": "edge", "outcome": "up", "status": 200, "ttfb_ms": 212, "total_ms": 388, "connect_ms": 14, "redirects": 0, "final_url": "https://www.example.com/checkout/", "error": null, "error_text": null, "cloudflare": true, "cache_status": "DYNAMIC" },
{ "at": "2026-10-20T08:00:09.000Z", "server": "scan1", "mode": "origin", "outcome": "up", "status": 200, "ttfb_ms": 640, "total_ms": 702, "connect_ms": 9, "redirects": 0, "final_url": "https://www.example.com/checkout/", "error": null, "error_text": null, "cloudflare": false, "cache_status": null }
],
"rum": { "ttfb_p75": 1920, "rating": "poor", "period": "last 7 days" }
}
I det faktiske svaret inneholder recent 48 runder; dette eksempelet viser de to siste.
Sjekkobjektet og utfallene
Hvert 30. minutt sjekker en runde alle monitorer, vekselvis fra to servere: scan1 ved :00, scan2 ved :30. En runde sjekker alltid URL-en slik besøkende når den, via DNS og CDN-et ditt (edge). Med en origin-IP sjekker den også serveren din direkte (origin). API-et har ingen kall for å sjekke en monitor mellom runder. Sjekkene lagres i 30 dager.
Hver sjekk sender user-agenten CoreDash/1.0 (uptime; +https://www.coredash.app/bot). Ligger monitorens URL på nettstedet til prosjektet ditt (hosten, med eller uten www, eller et subdomene), sender sjekken også headeren X-CoreDash-Bot med den hemmelige verdien til prosjektet ditt, fra CoreDash bot token-fanen i prosjektinnstillingene dine. En monitor på et annet nettsted får ingen token. Ved en redirect følger tokenet regelen for headers du har satt: det blir bare med så lenge redirecten holder seg på monitorens host. En egen header med navnet X-CoreDash-Bot droppes. CoreDash-bot-siden har mer om begge deler.
| Felt | Betydning |
|---|---|
at, server | Når serveren rapporterte runden, og hvilken server som kjørte den: scan1 eller scan2. Sjekkene i én runde deler samme at. |
mode | edge eller origin. |
outcome | up, down, blocked eller warn. |
status | HTTP-statusen til det siste svaret, etter redirects. null hvis ingenting svarte. |
ttfb_ms, total_ms, connect_ms | Time to First Byte og totaltid, begge inkludert redirects, samt tid for å koble til ved første request. |
redirects, final_url | Antall redirects som ble fulgt, og URL-en som svarte til slutt. |
error, error_text | Hvorfor sjekken feilet, som en verdi fra tabellen under og som tekst. |
cloudflare, cache_status | Om svaret kom via Cloudflare, og CDN-ets cache-header (cf-cache-status eller x-cache). |
Hvordan en sjekk får utfallet sitt
| Utfall | Når |
|---|---|
up | Statusen er lik expect_status, med mindre denne statusen er 403, 429 eller 500 eller høyere: disse regnes først som blocked eller down. |
down | En status på 500 eller høyere, eller en error: dns, connect, connect_timeout (ingen tilkobling innen 10 sekunder), timeout (ikke fullstendig svar innen 30 sekunder), tls, redirects (mer enn 5) eller network. |
blocked | En 403, en 429 eller en Cloudflare-challenge: en brannmur stoppet sjekkeren. Regnes aldri som nedetid. Slipp CoreDash gjennom brannmuren din. |
warn | Enhver annen status, for eksempel en 404 på en checkout etter en release. Også invalid_ip og invalid_url: URL-en eller en redirect fører til en privat eller reservert adresse, eller en redirect peker på noe som ikke er en URL. Sjekkeren gjør ingen request mot disse. |
Det verste utfallet blant sjekkene i en runde avgjør monitorens tilstand, fra verst til best: down, blocked, warn, up.
Monitortilstander
state | I appen | Betyr |
|---|---|---|
pending | Venter på første sjekk | Lagt til; den første runden har ikke kjørt ennå. |
up | Oppe | Siste runde fikk forventet status. |
failing | Feiler | Én runde feilet. Én til gjør den nede. |
down | Nede | To feilede runder på rad, så begge serverne registrerte at den feilet. |
warn | Uventet status | Siste runde returnerte warn. |
blocked | Blokkert | En brannmur stoppet sjekkeren. |
paused | Pauset | Sjekkes ikke før du setter paused til false. |
En monitor i et prosjekt der abonnementet har utløpt, beholder innstillingene sine og sin siste tilstand. Den sjekkes ikke før prosjektet er betalt igjen.
Legg til, endre og slett en monitor
POST /api/uptime/monitors
curl -X POST https://app.coredash.app/api/uptime/monitors \
-H "Authorization: Bearer cdk_master_your_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.example.com/checkout/",
"name": "Checkout",
"project_id": "655f1f77bcf86cd799439011",
"origin_ip": "203.0.113.10",
"headers": [{ "name": "X-Staging-Auth", "value": "k7Qp2vX9mR4tL8wZ" }],
"expect_status": 200
}'
| Felt | Regler |
|---|---|
url | Påkrevd ved POST. En fullstendig http- eller https-URL, uten brukernavn eller passord. |
name | Opptil 80 tegn; lengre navn kuttes. Tom ved POST: URL-ens host. Tom ved PATCH: det gamle navnet beholdes, eller den nye hosten dersom samme PATCH sender en ny url. |
project_id | Påkrevd med en masternøkkel: et prosjekt du eier, med et betalt abonnement eller en aktiv prøveperiode. En prosjektnøkkel ignorerer feltet og bruker sitt eget prosjekt. |
origin_ip | En offentlig IPv4- eller IPv6-adresse til serveren din. Legger til origin-sjekken: rett til denne IP-en, forbi DNS og CDN-et. "" eller null fjerner den. |
headers | Opptil 5 ekstra request-headere, [{ "name", "value" }]. Navn: bokstaver, tall og bindestreker, opptil 64 tegn. Verdier: opptil 256 tegn, lengre verdier kuttes. Ved en redirect blir de bare med så lenge den holder seg på monitorens host, med eller uten www. En redirect til enhver annen host, inkludert et subdomene, får ingen av dem. |
expect_status | Statusen som regnes som oppe, 100 til 599. Standard 200. En 403, en 429 eller enhver status på 500 eller høyere regnes aldri som oppe. |
paused | true stopper sjekkene, false starter dem igjen. |
Svaret er 201 med den nye monitoren, inkludert origin-IP og header-verdier:
{
"monitor": {
"id": "6ad68c7a844fad80b752fd16",
"name": "Checkout",
"url": "https://www.example.com/checkout/",
"project_id": "655f1f77bcf86cd799439011",
"paused": false,
"expect_status": 200,
"origin_check": true,
"origin_ip": "203.0.113.10",
"headers": [{ "name": "X-Staging-Auth", "value": "k7Qp2vX9mR4tL8wZ" }],
"state": "pending",
"last_check_at": null,
"last_up_at": null,
"down_since": null,
"last_down": null,
"check_requested_at": "2026-10-20T09:12:41.000Z",
"last": {},
"cert_expires": null,
"created_at": "2026-10-20T09:12:41.000Z"
}
}
PATCH /api/uptime/monitors/:id
Send bare feltene du endrer. headers erstatter hele listen, så send med alle headere du vil beholde. Dette pauser en monitor:
curl -X PATCH https://app.coredash.app/api/uptime/monitors/6ad68c7a844fad80b752fd16 \
-H "Authorization: Bearer cdk_your_key" \
-H "Content-Type: application/json" \
-d '{ "paused": true }'
Med en masternøkkel flytter project_id monitoren, etter de samme reglene som ved POST.
DELETE /api/uptime/monitors/:id
curl -X DELETE https://app.coredash.app/api/uptime/monitors/6ad68c7a844fad80b752fd16 \
-H "Authorization: Bearer cdk_your_key"
Dette kan ikke angres. Vil du stoppe sjekkene og beholde historikken, sender du { "paused": true } med PATCH.
Feil og begrensninger i oppetids-API-et
Feil returneres som { "error": "..." } med en av disse statuskodene:
| Status | Når |
|---|---|
400 | Bodyen bryter en regel. error oppgir hvilken, se nedenfor. |
401 | Unauthorized: ingen nøkkel, en ukjent, tilbakekalt eller utløpt nøkkel, eller en nøkkel knyttet til et utløpt prosjekt. |
403 | This token can only read. Use a CoreDash API key to change monitors.: en POST, PATCH eller DELETE med et OAuth-token (mcp_at_). En PATCH eller DELETE på en monitor i et prosjekt der du er gjest, får 403 med Only the project's owners can change its monitors. |
404 | Monitor not found: ID-en finnes ikke, eller nøkkelen har ikke tilgang til denne monitoren. |
405 | Method not allowed. |
400 error | Løsning |
|---|---|
Choose a project for this monitor | Send project_id med en masternøkkel. |
project not found | project_id er ikke et prosjekt du eier. Gjester kan ikke legge til monitorer eller flytte dem dit. |
This project's subscription has ended | Å legge til eller flytte en monitor krever et betalt prosjekt eller en aktiv prøveperiode. |
A project can have up to 25 monitors | Slett en først, eller bruk et annet prosjekt. |
A monitor must belong to a project | Utelat project_id fra PATCH, eller oppgi et prosjekt du eier. |
url can't contain a username or password | For basic auth: send en Authorization-header i headers. |
origin_ip is not an IP address, origin_ip must be a public IP address | Bruk den offentlige adressen til selve serveren. |
url must be a full http or https URL, e.g. https://www.example.com/, url must start with http:// or https://, headers must be a list of {name, value}, at most 5 headers, "…" isn't a valid header name (letters, numbers and dashes only), expect_status must be an HTTP status code | Fiks feltet meldingen nevner. Reglene står i felttabellen under POST. |
Begrensninger: 25 monitorer per prosjekt, 5 ekstra headere per monitor, 2100 sjekker per GET av én monitor, og 30 dagers sjekkhistorikk.
MCP-verktøy for oppetid
CoreDash MCP-serveren på https://app.coredash.app/api/mcp har to oppetidsverktøy ved siden av RUM-verktøyene, pluss list_projects for prosjektene nøkkelen din når. Alle tre har bare lesetilgang. For å legge til, endre eller slette en monitor bruker du appen eller REST-endepunktene over med en CoreDash-API-nøkkel. Verktøyene trenger ingen project_id: en prosjektnøkkel leser sitt eget prosjekt, og en masternøkkel eller en OAuth-tilkobling som Claude leser alle prosjekter du eier eller ble invitert til.
| Verktøy | Spør agenten din | Returnerer |
|---|---|---|
list_projects | «Hvilke nettsteder kan du se?» | { "projects": [...] } med project_id, name, url og role (owner eller guest). |
list_uptime_monitors | «Er alt oppe?» | { "monitors": [...] }, med maskert origin-IP og maskerte header-verdier. |
get_uptime_monitor | «Var kassen nede denne uken, og fra når?» | { "monitor", "summary", "checks" }. Tar monitor_id og limit (standard 100, maksimalt 1000); summary gir rounds, down_rounds og uptime_pct for disse sjekkene. |
curl -X POST https://app.coredash.app/api/mcp \
-H "Authorization: Bearer cdk_your_key" \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "get_uptime_monitor",
"arguments": { "monitor_id": "6ad68c7a844fad80b752fd16", "limit": 48 }
}
}'
Svaret er JSON-RPC-wrapperen til CoreDash-API-et, med resultatet som en JSON-streng i result.content[0].text. En ukjent monitor gir { "error": "Monitor not found" } der, og result.isError er true.
Mer om oppetid og CoreDash-API-et
- Oppetidsovervåking: hva CoreDash sjekker og hva du ser i appen.
- CoreDash-API-et: prosjektnøkler, JSON-RPC-formatet og RUM-verktøyene.
- Agency-API-et: masternøkler og prosjekter over REST.
- CoreDash-bot: user-agenten,
X-CoreDash-Bot-headeren og adressene. - Slipp CoreDash gjennom brannmuren din: for en monitor som står som Blokkert.