CoreDash Uptime-API og MCP-værktøjer: monitors og tjek

List, tilføj, ændr og sæt uptime-monitors på pause med din CoreDash-API-nøgle, og læs deres tjek via REST eller MCP.

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

Trusted by market leaders · Client results

comparedpg medialoopearplugsmonarchadevintanestleharvardkpnperionfotocasaaleteiasaturnhappyhorizonworkivawhowhatwearmy work featured on web.devnina carevpnsnverasmusmcmarktplaatsebay

Uptime-monitors via CoreDash API'et

Læs og rediger dine CoreDash-projekters uptime-monitors via REST med den API-nøgle, du allerede bruger til dine RUM-data. En AI-agent læser dem via MCP.

Hurtig start

  • Base-URL https://app.coredash.app/api/uptime/monitors, JSON ind og JSON ud.
  • Header Authorization: Bearer cdk_your_key med en projektnøgle eller en masternøgle.
  • Første kald: GET /api/uptime/monitors lister dine monitors med deres tilstand og de seneste 7 dages oppetid.
curl https://app.coredash.app/api/uptime/monitors \
  -H "Authorization: Bearer cdk_your_key"

API-nøgler til uptime-monitors

Uptime-endpoints accepterer nøglerne fra CoreDash API'et og Agency API'et.

NøgleBegynder medSerEn ny monitor oprettes i
Projektnøglecdk_Monitors i sit eget projektAltid sit eget projekt
Masternøglecdk_master_Monitors i alle projekter, du ejer eller er inviteret tilProjektet du angiver i project_id, som du ejer

Opret en projektnøgle på siden Connect Your AI i dit projekts sidepanel: Giv den et navn, og klik på Generate API key. De samme nøgler findes i dine projektindstillinger under API Keys (MCP). Kun projektets ejere kan oprette dem. En masternøgle hentes fra siden Agency API i sidepanelet på agency-konti. Når et projekt er udløbet, får dets projektnøgle 401 på alle kald.

En gæst på et projekt kan kun læse dets monitors. At tilføje, ændre, flytte og slette dem kræver et projekt, du selv ejer.

OAuth-tokenet fra en AI-forbindelse som Claude (mcp_at_) kan kun læse. POST, PATCH og DELETE med det giver 403.

Uptime-endpoints

Metode og stiHvad den gørReturnerer
GET /api/uptime/monitorsLister alle monitors, nøglen har adgang til, sorteret efter navn.200, { "monitors": [...] }, hver med et summary
POST /api/uptime/monitorsOpretter en monitor. Første tjek kører i næste runde, ved :00 eller :30.201, { "monitor": {...} }
GET /api/uptime/monitors/:idEn enkelt monitor med dens tjek, nyeste først. ?limit= angiver antallet af tjek: standard 300, højst 2100.200, { "monitor", "summary", "checks", "rum" }
PATCH /api/uptime/monitors/:idÆndrer de felter, du sender, og bevarer resten.200, { "monitor": {...} }
DELETE /api/uptime/monitors/:idSletter monitoren og alle dens tjek.200, { "deleted": true }

Origin-IP'en og headerværdierne er hemmelige. De returneres ved POST, PATCH og GET /api/uptime/monitors/:id. Listen og MCP-værktøjerne udelader origin_ip og viser alle headerværdier som ••••.

Monitor-objektet

FeltBetydning
idMonitorens id, bruges til :id i stierne.
name, urlNavnet i appen og den URL, der tjekkes.
project_idDet CoreDash-projekt, monitoren tilhører.
pausedtrue, så længe monitoren ikke tjekkes.
expect_statusDen HTTP-status, der tæller som oppe. Standard er 200.
origin_checktrue, når der er angivet en origin-IP, så hver runde også tjekker selve serveren.
origin_ipServerens IP-adresse. Vises kun i de svar, der indeholder hemmelige værdier.
headersEkstra request-headers, [{ "name", "value" }].
statepending, up, failing, down, warn, blocked eller paused. Se tabellen over tilstande nedenfor.
last_check_at, last_up_atSidste runde, og den seneste runde der svarede oppe.
down_sinceVed nedetid: tidspunktet for den første fejlede runde. Ellers null.
last_downDet seneste overståede nedbrud, { "from", "to" }, eller null.
check_requested_atSættes, når du opretter monitoren. Næste runde rydder feltet.
lastDet seneste tjek pr. type: edge og origin, hver især et tjek-objekt. origin_is_cdn er true, hvis origin-tjekket svarede med Cloudflare-headers, så den indtastede IP ikke er din server.
cert_expiresHvornår det HTTPS-certifikat, dine besøgende modtager, udløber.
created_atHvornår monitoren blev oprettet.

Felterne summary og rum

Både listen og den enkelte monitor indeholder et summary: rounds_7d og down_rounds_7d tæller runderne de seneste 7 dage, uptime_7d er procentdelen af disse runder uden et down-tjek, og recent indeholder de seneste 48 runder, ældste først, hver med rundens værste udfald. En monitor uden tjek de seneste 7 dage har summary: null.

Den enkelte monitor indeholder også rum: p75 TTFB for dine reelle besøgende de seneste 7 dage, baseret på projektets RUM-data, til sammenligning med tjekkerens ttfb_ms. Værdien er null, så længe projektet ikke har nogen 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 rigtige svar indeholder recent 48 runder; dette eksempel viser de to seneste.

Tjek-objektet og dets udfald

Hvert 30. minut tjekker en runde alle monitors på skift fra to servere: scan1 ved :00, scan2 ved :30. En runde tjekker altid URL'en på samme måde, som besøgende tilgår den – via DNS og dit CDN (edge). Med en origin-IP tjekker den også din server direkte (origin). API'et har intet kald til at tjekke en monitor mellem runderne. Tjek gemmes i 30 dage.

Hvert tjek sender user-agenten CoreDash/1.0 (uptime; +https://www.coredash.app/bot). Ligger monitorens URL på dit projekts eget site (dets host, med eller uden www, eller et subdomæne), sender tjekket også headeren X-CoreDash-Bot med dit projekts hemmelige værdi fra fanen CoreDash bot token i dine projektindstillinger. En monitor på et hvilket som helst andet site får intet token. Ved et redirect følger tokenet reglen for de headers, du har angivet: Det sendes kun med, så længe dit redirect bliver på monitorens host. En af dine egne headers ved navn X-CoreDash-Bot fjernes. CoreDash-botsiden forklarer mere om begge dele.

FeltBetydning
at, serverHvornår serveren rapporterede runden, og hvilken server der kørte den: scan1 eller scan2. Tjekkene i samme runde deler samme at.
modeedge eller origin.
outcomeup, down, blocked eller warn.
statusHTTP-status for det seneste svar efter redirects. null, hvis intet svarede.
ttfb_ms, total_ms, connect_msTime to First Byte og samlet tid, begge inklusive redirects, samt forbindelsestiden ved første request.
redirects, final_urlAntallet af fulgte redirects og den URL, der svarede sidst.
error, error_textHvorfor tjekket fejlede – som en værdi fra tabellen nedenfor og som tekst.
cloudflare, cache_statusOm svaret kom via Cloudflare, og CDN'ets cache-header (cf-cache-status eller x-cache).

Sådan får et tjek sit udfald

UdfaldHvornår
upStatussen svarer til expect_status, medmindre denne status er 403, 429 eller 500 eller derover: Disse tæller først som blocked eller down.
downEn status på 500 eller derover, eller en error: dns, connect, connect_timeout (ingen forbindelse inden for 10 sekunder), timeout (intet komplet svar inden for 30 sekunder), tls, redirects (mere end 5) eller network.
blockedEn 403, en 429 eller et Cloudflare-challenge: En firewall blokerede tjekkeren. Tælles aldrig som nedetid. Luk CoreDash igennem din firewall.
warnEnhver anden status, f.eks. en 404 på et checkout efter en release. Også invalid_ip og invalid_url: URL'en eller et redirect fører til en privat eller reserveret adresse, eller et redirect peger på noget, der ikke er en URL. Tjekkeren sender ikke requests til disse.

Det dårligste udfald blandt en rundes tjek afgør monitorens tilstand, fra værst til bedst: down, blocked, warn, up.

Monitorens tilstande

stateI appenBetydning
pendingWaiting for first checkOprettet; første runde har ikke kørt endnu.
upUpSidste runde fik den forventede status.
failingFailingÉn runde fejlede. Én mere gør den down.
downDownTo fejlede runder i træk, så begge servere har registreret fejlen.
warnUnexpected statusSidste runde returnerede warn.
blockedBlockedEn firewall blokerede tjekkeren.
pausedPausedTjekkes ikke, før du sætter paused til false.

En monitor i et projekt, hvor abonnementet er udløbet, beholder sine indstillinger og sin seneste tilstand. Den tjekkes ikke igen, før projektet er betalt.

Tilføj, rediger og slet 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åkrævet ved POST. En komplet http- eller https-URL uden brugernavn eller adgangskode.
nameOp til 80 tegn; længere navne afkortes. Tom ved POST: URL'ens host. Tom ved PATCH: Det gamle navn beholdes, eller den nye host, hvis samme PATCH sender en ny url.
project_idPåkrævet med en masternøgle: et projekt, du ejer, med et aktivt abonnement eller en aktiv prøveperiode. En projektnøgle ignorerer feltet og bruger sit eget projekt.
origin_ipEn offentlig IPv4- eller IPv6-adresse på din server. Tilføjer origin-tjekket: direkte til denne IP, udenom DNS og CDN. "" eller null fjerner det.
headersOp til 5 ekstra request-headers, [{ "name", "value" }]. Navne: bogstaver, tal og bindestreger, op til 64 tegn. Værdier: op til 256 tegn, længere værdier afkortes. Ved et redirect sendes de kun med, så længe det forbliver på monitorens host, med eller uden www. Et redirect til enhver anden host, inklusive et subdomæne, modtager ingen af dem.
expect_statusDen status, der tæller som oppe, 100 til 599. Standard er 200. En 403, 429 eller enhver status på 500 eller derover tæller aldrig som oppe.
pausedtrue stopper tjekkene, false starter dem igen.

Svaret er 201 med den nye monitor, inklusive origin-IP og headerværdier:

{
  "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 kun de felter, du ændrer. headers erstatter hele listen, så send alle headers, du vil beholde. Dette sætter en monitor på pause:

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øgle flytter project_id monitoren efter de samme regler 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"

Handlingen kan ikke fortrydes. Vil du stoppe tjekkene og beholde historikken, sender du { "paused": true } med PATCH.

Fejl og begrænsninger i uptime-API'et

Fejl returneres som { "error": "..." } med en af disse statuskoder:

StatusHvornår
400Request-bodyen overtræder en regel. error angiver hvilken, se nedenfor.
401Unauthorized: Ingen nøgle, en ukendt, tilbagekaldt eller udløbet nøgle, eller en nøgle knyttet til et udløbet projekt.
403This token can only read. Use a CoreDash API key to change monitors.: Et POST, PATCH eller DELETE med et OAuth-token (mcp_at_). Et PATCH eller DELETE på en monitor i et projekt, hvor du er gæst, får 403 med Only the project's owners can change its monitors.
404Monitor not found: ID'et findes ikke, eller nøglen har ikke adgang til monitoren.
405Method not allowed.
400 errorLøsning
Choose a project for this monitorSend project_id med en masternøgle.
project not foundproject_id tilhører ikke et projekt, du ejer. Gæster kan hverken tilføje monitors eller flytte dem dertil.
This project's subscription has endedOprettelse eller flytning af en monitor kræver et betalt projekt eller en aktiv prøveperiode.
A project can have up to 25 monitorsSlet en monitor først, eller brug et andet projekt.
A monitor must belong to a projectUdelad project_id i PATCH-kaldet, eller angiv et projekt, du ejer.
url can't contain a username or passwordTil basic auth sender du en Authorization-header i headers.
origin_ip is not an IP address, origin_ip must be a public IP addressBrug den offentlige adresse på 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 codeRet feltet, der nævnes i fejlmeddelelsen. Reglerne findes i felttabellen under POST.

Begrænsninger: 25 monitors pr. projekt, 5 ekstra headers pr. monitor, 2100 tjek pr. GET på en enkelt monitor og 30 dages tjekhistorik.

Uptime MCP-værktøjer

CoreDash MCP-serveren på https://app.coredash.app/api/mcp har to uptime-værktøjer ved siden af RUM-værktøjerne, samt list_projects til de projekter, din nøgle har adgang til. Alle tre har kun læseadgang. Vil du oprette, ændre eller slette en monitor, bruger du appen eller REST-endpoints herover med en CoreDash API-nøgle. Værktøjerne kræver intet project_id: En projektnøgle læser sit eget projekt, mens en masternøgle eller en OAuth-forbindelse som Claude læser alle projekter, du ejer eller er inviteret til.

VærktøjSpørg din agentReturnerer
list_projects"Hvilke sites kan du se?"{ "projects": [...] } med project_id, name, url og role (owner eller guest).
list_uptime_monitors"Er alt oppe?"{ "monitors": [...] }, med maskeret origin-IP og maskerede headerværdier.
get_uptime_monitor"Var checkout nede i denne uge, og siden hvornår?"{ "monitor", "summary", "checks" }. Modtager monitor_id og limit (standard 100, maksimalt 1000); summary returnerer rounds, down_rounds og uptime_pct for disse tjek.
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 fra CoreDash API'et med resultatet som en JSON-streng i result.content[0].text. En ukendt monitor returnerer { "error": "Monitor not found" } dér, og result.isError er true.

Mere om uptime og CoreDash API'et

CoreDash Uptime-API og MCP-værktøjer: monitors og tjek Core Web Vitals CoreDash Uptime-API og MCP-værktøjer: monitors og tjek