CoreDash Uptime API och MCP-verktyg: monitorer och kontroller

Lista, lägg till, ändra och pausa uptime-monitorer med din CoreDash API-nyckel, och läs deras kontroller via REST eller MCP.

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

Trusted by market leaders · Client results

workivasnvnina careloopearplugsmy work featured on web.devsaturnharvarderasmusmcwhowhatweardpg mediafotocasavpnkpnebayhappyhorizonperionadevintanestlemarktplaatsmonarchcomparealeteia

Uptime-monitorer via CoreDash API

Läs och ändra dina CoreDash-projekts uptime-monitorer via REST, med API-nyckeln du redan använder för din RUM-data. En AI-agent läser dem via MCP.

Snabbstart

  • Bas-URL https://app.coredash.app/api/uptime/monitors, JSON in och JSON ut.
  • Headern Authorization: Bearer cdk_your_key, med en projektnyckel eller masternyckel.
  • Första anropet: GET /api/uptime/monitors listar dina monitorer med deras status och de senaste 7 dagarnas uptime.
curl https://app.coredash.app/api/uptime/monitors \
  -H "Authorization: Bearer cdk_your_key"

API-nycklar för uptime-monitorer

Uptime-slutpunkterna tar nycklarna från CoreDash API och Agency API.

NyckelBörjar medSerEn ny monitor hamnar i
Projektnyckelcdk_Det egna projektets monitorerAlltid det egna projektet
Masternyckelcdk_master_Monitorerna i alla projekt du äger eller bjudits in tillProjektet du anger i project_id, ett som du äger

Skapa en projektnyckel på sidan Connect Your AI i projektets sidomeny: ge den ett namn och klicka på Generate API key. Samma nycklar finns i projektinställningarna under API Keys (MCP). Endast projektets ägare kan skapa dem. En masternyckel hämtas från sidan Agency API i sidomenyn, på agency-konton. När ett projekt har löpt ut får dess projektnyckel 401 vid varje anrop.

En gäst i ett projekt kan läsa dess monitorer. För att lägga till, ändra, flytta och ta bort dem krävs ett projekt du äger.

OAuth-tokenet från en AI-anslutning som Claude (mcp_at_) kan bara läsa. POST, PATCH och DELETE med det ger 403.

Uptime-slutpunkter

Metod och sökvägVad den görReturnerar
GET /api/uptime/monitorsListar alla monitorer som nyckeln kan se, sorterade efter namn.200, { "monitors": [...] }, var och en med en summary
POST /api/uptime/monitorsLägger till en monitor. Första kontrollen körs i nästa runda, vid :00 eller :30.201, { "monitor": {...} }
GET /api/uptime/monitors/:idEn enskild monitor med sina kontroller, nyast först. ?limit= anger antalet kontroller: standardvärde 300, som mest 2100.200, { "monitor", "summary", "checks", "rum" }
PATCH /api/uptime/monitors/:idÄndrar fälten du skickar och lämnar resten orörda.200, { "monitor": {...} }
DELETE /api/uptime/monitors/:idTar bort monitorn och alla dess kontroller.200, { "deleted": true }

Origin-IP och headervärdena är hemligheter. De returneras från POST, PATCH och GET /api/uptime/monitors/:id. Listan och MCP-verktygen utelämnar origin_ip och visar varje headervärde som ••••.

Monitor-objektet

FältBetydelse
idMonitorns id, för :id i sökvägarna.
name, urlNamnet i appen och URL:en som kontrolleras.
project_idCoreDash-projektet som monitorn tillhör.
pausedtrue så länge monitorn inte kontrolleras.
expect_statusHTTP-statusen som räknas som up. Standardvärde 200.
origin_checktrue när en origin-IP är angiven, så att varje runda även kontrollerar själva servern.
origin_ipServerns IP-adress. Endast i svaren som innehåller hemligheter.
headersExtra request-headers, [{ "name", "value" }].
statepending, up, failing, down, warn, blocked eller paused. Se statustabellen nedan.
last_check_at, last_up_atSenaste rundan, och senaste rundan som svarade up.
down_sinceNär den är nere: tidpunkten för den första misslyckade rundan. Annars null.
last_downDet senaste driftavbrottet som avslutades, { "from", "to" }, eller null.
check_requested_atSätts när du lägger till monitorn. Nästa runda rensar det.
lastSenaste kontrollen per typ: edge och origin, var och en ett check-objekt. origin_is_cdn är true när origin-kontrollen svarade med Cloudflare-headers, vilket betyder att IP-adressen du angav inte är din server.
cert_expiresNär HTTPS-certifikatet som dina besökare möts av går ut.
created_atNär monitorn lades till.

Fälten summary och rum

Både listan och den enskilda monitorn innehåller en summary: rounds_7d och down_rounds_7d räknar de senaste 7 dagarnas rundor, uptime_7d är procentandelen av dessa rundor utan en down-kontroll, och recent innehåller de senaste 48 rundorna, äldst först, med det sämsta utfallet för varje runda. En monitor utan kontroller under de senaste 7 dagarna har summary: null.

Den enskilda monitorn innehåller även rum: TTFB vid p75 som dina verkliga besökare fick under de senaste 7 dagarna, hämtat från projektets RUM-data, för att jämföra med checkerns ttfb_ms. Fältet är null så länge projektet saknar 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 verkliga svaret innehåller recent 48 rundor; det här exemplet visar de två senaste.

Check-objektet och dess utfall

Var 30:e minut kontrollerar en runda alla monitorer, från två servrar i tur och ordning: scan1 vid :00, scan2 vid :30. En runda kontrollerar alltid URL:en på samma sätt som besökarna når den, via DNS och ditt CDN (edge). Med en origin-IP kontrolleras även din server direkt (origin). API:et saknar anrop för att kontrollera en monitor mellan rundor. Kontroller sparas i 30 dagar.

Varje kontroll skickar user-agenten CoreDash/1.0 (uptime; +https://www.coredash.app/bot). Ligger monitorns URL på ditt projekts egen webbplats (dess host, med eller utan www, eller en subdomän) skickar kontrollen även headern X-CoreDash-Bot med ditt projekts hemliga värde, från fliken CoreDash bot token i dina projektinställningar. En monitor på någon annan webbplats får ingen token. Vid en omdirigering följer denna token regeln för dina angivna headers: den följer bara med så länge omdirigeringen stannar på monitorns host. En egen header med namnet X-CoreDash-Bot tas bort. Sidan CoreDash bot har mer information om båda.

FältBetydelse
at, serverNär servern rapporterade rundan, och vilken server som körde den: scan1 eller scan2. Kontrollerna i en runda delar samma at.
modeedge eller origin.
outcomeup, down, blocked eller warn.
statusHTTP-status för det sista svaret, efter omdirigeringar. null när inget svarade.
ttfb_ms, total_ms, connect_msTime to First Byte och total tid, båda inklusive omdirigeringar, samt anslutningstid för den första requesten.
redirects, final_urlAntalet följda omdirigeringar och den URL som svarade sist.
error, error_textVarför kontrollen misslyckades, som ett värde från tabellen nedan och i textform.
cloudflare, cache_statusOm svaret gick via Cloudflare, samt CDN:ets cache-header (cf-cache-status eller x-cache).

Hur en kontroll får sitt utfall

UtfallNär
upStatusen matchar expect_status, såvida inte statusen är 403, 429 eller 500 eller högre: dessa räknas i första hand som blocked eller down.
downEn status på 500 eller högre, eller ett error: dns, connect, connect_timeout (ingen anslutning inom 10 sekunder), timeout (inget fullständigt svar inom 30 sekunder), tls, redirects (fler än 5) eller network.
blockedEn 403, 429 eller en Cloudflare-challenge: en brandvägg stoppade checkern. Räknas aldrig som driftstopp. Släpp igenom CoreDash i brandväggen.
warnAlla andra statuskoder, som en 404 i kassan efter en release. Även invalid_ip och invalid_url: URL:en eller en omdirigering leder till en privat eller reserverad adress, eller så pekar en omdirigering på något som inte är en URL. Checkern gör inga anrop till dessa.

Det sämsta utfallet bland en rundas kontroller avgör monitorns status, från sämst till bäst: down, blocked, warn, up.

Monitorstatusar

stateI appenBetyder
pendingVäntar på första kontrollenTillagd; första rundan har inte körts ännu.
upUppeSenaste rundan fick förväntad status.
failingFallerarEn runda misslyckades. En till gör den down.
downNereTvå misslyckade rundor i rad, så båda servrarna såg den misslyckas.
warnOväntad statusSenaste rundan svarade warn.
blockedBlockeradEn brandvägg stoppade checkern.
pausedPausadKontrolleras inte förrän du sätter paused till false.

En monitor i ett projekt vars prenumeration har löpt ut behåller sina inställningar och sin senaste status. Den kontrolleras inte igen förrän projektet är betalt.

Lägg till, ändra och ta bort 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
  }'
FältRegler
urlObligatoriskt vid POST. En fullständig http- eller https-URL, utan användarnamn eller lösenord.
nameUpp till 80 tecken; längre namn klipps av. Tomt vid POST: URL:ens host. Tomt vid PATCH: det gamla namnet behålls, eller den nya hosten om samma PATCH skickar en ny url.
project_idKrävs med en masternyckel: ett projekt du äger, med en betald prenumeration eller en aktiv provperiod. En projektnyckel ignorerar detta och använder sitt eget projekt.
origin_ipEn publik IPv4- eller IPv6-adress till din server. Lägger till origin-kontrollen: direkt till denna IP-adress, förbi DNS och CDN:et. "" eller null tar bort den.
headersUpp till 5 extra request-headers, [{ "name", "value" }]. Namn: bokstäver, siffror och bindestreck, upp till 64 tecken. Värden: upp till 256 tecken, längre klipps av. Vid en omdirigering följer de bara med så länge den stannar på monitorns host, med eller utan www. En omdirigering till någon annan host, inklusive en subdomän, får inga av dem.
expect_statusStatusen som räknas som up, 100 till 599. Standardvärde 200. En 403, 429 eller någon status på 500 eller högre räknas aldrig som up.
pausedtrue stoppar kontrollerna, false startar dem igen.

Svaret är 201 med den nya monitorn, inklusive origin-IP och headervärden:

{
  "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

Skicka bara de fält du ändrar. headers ersätter hela listan, så skicka med alla headers du vill behålla. Detta pausar 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 masternyckel flyttar project_id monitorn, enligt samma regler som vid POST.

DELETE /api/uptime/monitors/:id

curl -X DELETE https://app.coredash.app/api/uptime/monitors/6ad68c7a844fad80b752fd16 \
  -H "Authorization: Bearer cdk_your_key"

Det går inte att ångra. För att stoppa kontrollerna och behålla historiken skickar du { "paused": true } med PATCH.

Fel och gränser i Uptime API

Fel returneras som { "error": "..." } med en av följande statuskoder:

StatusNär
400Bodyn bryter mot en regel. error anger vilken, se nedan.
401Unauthorized: nyckel saknas, okänd, återkallad eller utgången nyckel, eller en nyckel kopplad till ett projekt som har löpt ut.
403This token can only read. Use a CoreDash API key to change monitors.: en POST, PATCH eller DELETE med ett OAuth-token (mcp_at_). En PATCH eller DELETE på en monitor i ett projekt där du är gäst får 403 med Only the project's owners can change its monitors.
404Monitor not found: id:t finns inte, eller så kan nyckeln inte se monitorn.
405Method not allowed.
400 errorÅtgärd
Choose a project for this monitorSkicka project_id med en masternyckel.
project not foundAngivet project_id är inte ett projekt du äger. Gäster kan inte lägga till monitorer eller flytta dem dit.
This project's subscription has endedFör att lägga till eller flytta en monitor krävs ett betalt projekt eller en aktiv provperiod.
A project can have up to 25 monitorsTa bort en först, eller använd ett annat projekt.
A monitor must belong to a projectUteslut project_id ur din PATCH, eller skicka ett projekt du äger.
url can't contain a username or passwordFör basic auth skickar du en Authorization-header i headers.
origin_ip is not an IP address, origin_ip must be a public IP addressAnvänd själva serverns publika adress.
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Åtgärda fältet som meddelandet anger. Dess regler finns i fälttabellen under POST.

Gränser: 25 monitorer per projekt, 5 extra headers per monitor, 2100 kontroller per GET för en enskild monitor och 30 dagars kontrollhistorik.

MCP-verktyg för uptime

CoreDash MCP-server på https://app.coredash.app/api/mcp har två uptime-verktyg vid sidan av RUM-verktygen, plus list_projects för projekten din nyckel når. Alla tre kan enbart läsa. För att lägga till, ändra eller ta bort en monitor använder du appen eller REST-slutpunkterna ovan med en CoreDash API-nyckel. Verktygen behöver inget project_id: en projektnyckel läser sitt eget projekt, medan en masternyckel eller en OAuth-anslutning som Claude läser alla projekt du äger eller bjudits in till.

VerktygFråga din agentReturnerar
list_projects”Vilka sajter kan du se?”{ "projects": [...] } med project_id, name, url och role (owner eller guest).
list_uptime_monitors”Är allt uppe?”{ "monitors": [...] }, med maskerad origin-IP och maskerade headervärden.
get_uptime_monitor”Låg kassan nere den här veckan, och sedan när?”{ "monitor", "summary", "checks" }. Tar monitor_id och limit (standardvärde 100, som mest 1000); summary ger rounds, down_rounds och uptime_pct för dessa kontroller.
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 är JSON-RPC-wrappern från CoreDash API, med resultatet som en JSON-sträng i result.content[0].text. En okänd monitor ger { "error": "Monitor not found" } där, och result.isError är true.

Mer om uptime och CoreDash API

CoreDash Uptime API och MCP-verktyg: monitorer och kontroller Core Web Vitals CoreDash Uptime API och MCP-verktyg: monitorer och kontroller