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.

Arjen Karel Core Web Vitals Consultant
Arjen Karel - linkedin
Last update: 2026-10-20

Trusted by market leaders · Client results

snvvpnwhowhatwearworkivaerasmusmcadevintahappyhorizonnestleharvardperionmarktplaatsebaynina caremy work featured on web.devcompareloopearplugsdpg mediafotocasamonarchkpnaleteiasaturn

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/monitors lister 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økkelStarter medSerEn ny monitor havner i
Prosjektnøkkelcdk_Monitorene i sitt eget prosjektSitt eget prosjekt, alltid
Masternøkkelcdk_master_Monitorene i alle prosjekter du eier eller er invitert tilProsjektet 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 stiHva den gjørReturnerer
GET /api/uptime/monitorsLister alle monitorer nøkkelen har tilgang til, sortert etter navn.200, { "monitors": [...] }, hver med en summary
POST /api/uptime/monitorsLegger 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/:idEndrer feltene du sender, og lar resten stå.200, { "monitor": {...} }
DELETE /api/uptime/monitors/:idSletter 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

FeltBetydning
idMonitorens ID, for :id i stiene.
name, urlNavnet i appen og URL-en som sjekkes.
project_idCoreDash-prosjektet monitoren tilhører.
pausedtrue så lenge monitoren ikke sjekkes.
expect_statusHTTP-statusen som regnes som oppe. Standard 200.
origin_checktrue når en origin-IP er satt, slik at hver runde også sjekker selve serveren.
origin_ipServerens IP. Bare i svarene som inneholder hemmeligheter.
headersDe ekstra request-headerne, [{ "name", "value" }].
statepending, up, failing, down, warn, blocked eller paused. Se tilstandstabellen nedenfor.
last_check_at, last_up_atSiste runde, og forrige runde som var oppe.
down_sinceNår den er nede: tidspunktet for den første feilede runden. Ellers null.
last_downSiste nedetid som ble avsluttet, { "from", "to" }, eller null.
check_requested_atSettes når du legger til monitoren. Neste runde nullstiller feltet.
lastSiste 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_expiresNår HTTPS-sertifikatet de besøkende får, utløper.
created_atNå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.

FeltBetydning
at, serverNår serveren rapporterte runden, og hvilken server som kjørte den: scan1 eller scan2. Sjekkene i én runde deler samme at.
modeedge eller origin.
outcomeup, down, blocked eller warn.
statusHTTP-statusen til det siste svaret, etter redirects. null hvis ingenting svarte.
ttfb_ms, total_ms, connect_msTime to First Byte og totaltid, begge inkludert redirects, samt tid for å koble til ved første request.
redirects, final_urlAntall redirects som ble fulgt, og URL-en som svarte til slutt.
error, error_textHvorfor sjekken feilet, som en verdi fra tabellen under og som tekst.
cloudflare, cache_statusOm svaret kom via Cloudflare, og CDN-ets cache-header (cf-cache-status eller x-cache).

Hvordan en sjekk får utfallet sitt

UtfallNår
upStatusen er lik expect_status, med mindre denne statusen er 403, 429 eller 500 eller høyere: disse regnes først som blocked eller down.
downEn 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.
blockedEn 403, en 429 eller en Cloudflare-challenge: en brannmur stoppet sjekkeren. Regnes aldri som nedetid. Slipp CoreDash gjennom brannmuren din.
warnEnhver 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

stateI appenBetyr
pendingVenter på første sjekkLagt til; den første runden har ikke kjørt ennå.
upOppeSiste runde fikk forventet status.
failingFeilerÉn runde feilet. Én til gjør den nede.
downNedeTo feilede runder på rad, så begge serverne registrerte at den feilet.
warnUventet statusSiste runde returnerte warn.
blockedBlokkertEn brannmur stoppet sjekkeren.
pausedPausetSjekkes 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
  }'
FeltRegler
urlPåkrevd ved POST. En fullstendig http- eller https-URL, uten brukernavn eller passord.
nameOpptil 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_idPå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_ipEn 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.
headersOpptil 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_statusStatusen 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.
pausedtrue 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:

StatusNår
400Bodyen bryter en regel. error oppgir hvilken, se nedenfor.
401Unauthorized: ingen nøkkel, en ukjent, tilbakekalt eller utløpt nøkkel, eller en nøkkel knyttet til et utløpt prosjekt.
403This 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.
404Monitor not found: ID-en finnes ikke, eller nøkkelen har ikke tilgang til denne monitoren.
405Method not allowed.
400 errorLøsning
Choose a project for this monitorSend project_id med en masternøkkel.
project not foundproject_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 monitorsSlett en først, eller bruk et annet prosjekt.
A monitor must belong to a projectUtelat project_id fra PATCH, eller oppgi et prosjekt du eier.
url can't contain a username or passwordFor basic auth: send en Authorization-header i headers.
origin_ip is not an IP address, origin_ip must be a public IP addressBruk 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 codeFiks 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øySpør agenten dinReturnerer
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

CoreDash-oppetids-API og MCP-verktøy: monitorer og sjekker Core Web Vitals CoreDash-oppetids-API og MCP-verktøy: monitorer og sjekker