CoreDash Uptime-API ja MCP-työkalut: monitorit ja tarkistukset
Listaa, lisää, muokkaa ja tauota uptime-monitoreja CoreDash-API-avaimellasi, ja lue niiden tarkistuksia REST:in tai MCP:n kautta.
Uptime-monitorit CoreDash-API:n kautta
Lue ja muokkaa CoreDash-projektiesi uptime-monitoreja REST:in kautta samalla API-avaimella, jota käytät jo RUM-datalle. AI-agentti lukee ne MCP:n kautta.
Pikaopas
- Base-URL
https://app.coredash.app/api/uptime/monitors, JSON sisään ja JSON ulos. - Header
Authorization: Bearer cdk_your_key, joko projektiavaimella tai master-avaimella. - Ensimmäinen kutsu:
GET /api/uptime/monitorslistaa monitorisi, niiden tilan ja viimeisen 7 päivän uptimen.
curl https://app.coredash.app/api/uptime/monitors \
-H "Authorization: Bearer cdk_your_key"
Uptime-monitorien API-avaimet
Uptime-endpointit hyväksyvät CoreDash API:n ja Agency API:n avaimet.
| Avain | Alkaa | Näkee | Uusi monitori menee kohteeseen |
|---|---|---|---|
| Projektiavain | cdk_ | Oman projektinsa monitorit | Aina omaan projektiinsa |
| Master-avain | cdk_master_ | Kaikkien omistamiesi tai sinulle jaettujen projektien monitorit | Omistamaasi projektiin, jonka ilmoitat kentässä project_id |
Luo projektiavain projektisi sivupalkin Connect Your AI -sivulla: anna sille nimi ja klikkaa Generate API key. Samat avaimet löytyvät projektin asetuksista kohdasta API Keys (MCP). Vain projektin omistajat voivat luoda niitä. Master-avaimen saa sivupalkin Agency API -sivulta agency-tileillä. Kun projekti on vanhentunut, sen projektiavain saa koodin 401 jokaisella kutsulla.
Projektin vierailija voi vain lukea sen monitoreja. Niiden lisääminen, muuttaminen, siirtäminen ja poistaminen vaatii omistamasi projektin.
AI-yhteyden, kuten Clauden, OAuth-tokenilla (mcp_at_) on vain lukuoikeus. Kutsut POST, PATCH ja DELETE saavat sen kanssa koodin 403.
Uptime-endpointit
| Metodi ja polku | Mitä se tekee | Palauttaa |
|---|---|---|
GET /api/uptime/monitors | Listaa kaikki avaimelle näkyvät monitorit nimen mukaan lajiteltuna. | 200, { "monitors": [...] }, jokaisessa summary |
POST /api/uptime/monitors | Lisää monitorin. Ensimmäinen tarkistus suoritetaan seuraavalla kierroksella, :00 tai :30. | 201, { "monitor": {...} } |
GET /api/uptime/monitors/:id | Yksittäinen monitori tarkistuksineen, uusimmat ensin. ?limit= määrittää tarkistusten määrän: oletus 300, enintään 2100. | 200, { "monitor", "summary", "checks", "rum" } |
PATCH /api/uptime/monitors/:id | Muuttaa lähetetyt kentät ja jättää muut ennalleen. | 200, { "monitor": {...} } |
DELETE /api/uptime/monitors/:id | Poistaa monitorin ja kaikki sen tarkistukset. | 200, { "deleted": true } |
Origin-IP ja headerien arvot ovat salaisia. Ne palautetaan kutsuista POST, PATCH ja GET /api/uptime/monitors/:id. Listaus ja MCP-työkalut jättävät kentän origin_ip pois ja näyttävät jokaisen headerin arvona ••••.
Monitor-objekti
| Kenttä | Merkitys |
|---|---|
id | Monitorin id, jota käytetään polkujen parametrina :id. |
name, url | Sovelluksessa näkyvä nimi ja tarkistettava URL. |
project_id | CoreDash-projekti, johon monitori kuuluu. |
paused | true, kun monitoria ei tarkisteta. |
expect_status | HTTP-tila, joka lasketaan toimivaksi. Oletus 200. |
origin_check | true, kun origin-IP on määritetty, jolloin jokainen kierros tarkistaa myös itse palvelimen. |
origin_ip | Palvelimen IP-osoite. Mukana vain vastauksissa, jotka sisältävät salaisia tietoja. |
headers | Ylimääräiset pyynnön headerit, [{ "name", "value" }]. |
state | pending, up, failing, down, warn, blocked tai paused. Katso alla oleva tilataulukko. |
last_check_at, last_up_at | Viimeisin kierros ja viimeisin kierros, jolloin tila oli up. |
down_since | Alhaalla ollessa: ensimmäisen epäonnistuneen kierroksen ajankohta. Muutoin null. |
last_down | Viimeisin päättynyt käyttökatko, { "from", "to" }, tai null. |
check_requested_at | Asetetaan monitoria lisättäessä. Seuraava kierros nollaa sen. |
last | Viimeisin tarkistus tyypeittäin: edge ja origin, kumpikin oma check-objektinsa. origin_is_cdn on true, kun origin-tarkistus vastasi Cloudflaren headereilla, jolloin antamasi IP ei ole oma palvelimesi. |
cert_expires | Ajankohta, jolloin kävijöille tarjottava HTTPS-sertifikaatti vanhenee. |
created_at | Ajankohta, jolloin monitori lisättiin. |
Kentät summary ja rum
Sekä listaus että yksittäinen monitori sisältävät kentän summary. Siinä rounds_7d ja down_rounds_7d laskevat viimeisen 7 päivän kierrokset, ja uptime_7d on niiden kierrosten prosenttiosuus, joissa ei ollut yhtään down-tarkistusta. Kenttä recent sisältää viimeiset 48 kierrosta vanhimmasta alkaen, kunkin kyseisen kierroksen huonoimmalla tuloksella. Jos monitorilla ei ole tarkistuksia viimeisen 7 päivän ajalta, arvo on summary: null.
Yksittäinen monitori sisältää myös kentän rum: oikeiden kävijöiden viimeisen 7 päivän TTFB p75-tasolla projektin RUM-datasta, jota voi verrata tarkistimen arvoon ttfb_ms. Arvo on null, kun projektilla ei ole RUM-dataa.
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" }
}
Oikeassa vastauksessa recent sisältää 48 kierrosta; tässä esimerkissä näytetään kaksi viimeisintä.
Check-objekti ja sen tulokset
Kaikki monitorit tarkistetaan 30 minuutin välein kahdelta palvelimelta vuorotellen: scan1 ajassa :00 ja scan2 ajassa :30. Kierros tarkistaa URL-osoitteen aina niin kuin kävijät sen avaavat, DNS:n ja CDN:n kautta (edge). Jos origin-IP on määritetty, se tarkistaa myös palvelimesi suoraan (origin). API:ssa ei ole kutsua monitorin tarkistamiseen kierrosten välillä. Tarkistukset säilytetään 30 päivää.
Jokainen tarkistus lähettää user agentin CoreDash/1.0 (uptime; +https://www.coredash.app/bot). Kun monitorin URL on projektisi omalla sivustolla (sen host-osoitteessa www-etuliitteellä tai ilman, tai aliverkkotunnuksessa), tarkistus lähettää myös headerin X-CoreDash-Bot projektisi salaisella arvolla, joka löytyy projektin asetuksista CoreDash bot token -välilehdeltä. Muiden sivustojen monitorit eivät saa tokenia. Uudelleenohjauksessa token noudattaa samaa sääntöä kuin asettamasi headers: se kulkee mukana vain niin kauan kuin uudelleenohjaus pysyy monitorin host-osoitteessa. Oma X-CoreDash-Bot-niminen headerisi pudotetaan pois. Molemmista kerrotaan lisää CoreDash bot -sivulla.
| Kenttä | Merkitys |
|---|---|
at, server | Ajankohta, jolloin palvelin raportoi kierroksen, ja kumpi palvelin sen suoritti: scan1 vai scan2. Saman kierroksen tarkistuksilla on sama at-arvo. |
mode | edge tai origin. |
outcome | up, down, blocked tai warn. |
status | Viimeisen vastauksen HTTP-tila uudelleenohjausten jälkeen. null, jos mikään ei vastannut. |
ttfb_ms, total_ms, connect_ms | Time to First Byte ja kokonaisaika (molemmat uudelleenohjaukset mukaan lukien) sekä ensimmäisen pyynnön yhteyden muodostusaika. |
redirects, final_url | Seurattujen uudelleenohjausten määrä ja viimeisenä vastannut URL. |
error, error_text | Syy tarkistuksen epäonnistumiseen alla olevan taulukon arvona ja tekstinä. |
cloudflare, cache_status | Tuliko vastaus Cloudflaren kautta, sekä CDN:n cache-header (cf-cache-status tai x-cache). |
Miten tarkistuksen tulos määräytyy
| Tulos | Milloin |
|---|---|
up | Tila vastaa arvoa expect_status, paitsi jos kyseinen tila on 403, 429 tai vähintään 500: nämä katsotaan ensisijaisesti tiloiksi blocked tai down. |
down | Tila 500 tai suurempi, tai jokin error: dns, connect, connect_timeout (ei yhteyttä 10 sekunnissa), timeout (ei täyttä vastausta 30 sekunnissa), tls, redirects (yli 5 uudelleenohjausta) tai network. |
blocked | 403, 429 tai Cloudflare-haaste: palomuuri esti tarkistimen. Tätä ei koskaan lasketa käyttökatkoksi. Päästä CoreDash palomuurisi läpi. |
warn | Mikä tahansa muu tila, kuten kassan 404 julkaisun jälkeen. Myös invalid_ip ja invalid_url: URL tai uudelleenohjaus johtaa yksityiseen tai varattuun osoitteeseen, tai uudelleenohjaus osoittaa kohteeseen, joka ei ole URL. Tarkistin ei tee pyyntöjä näihin osoitteisiin. |
Kierroksen tarkistusten huonoin tulos määrää monitorin tilan järjestyksessä huonoimmasta parhaaseen: down, blocked, warn, up.
Monitorin tilat
state | Sovelluksessa | Merkitys |
|---|---|---|
pending | Odottaa ensimmäistä tarkistusta | Lisätty; ensimmäistä kierrosta ei ole vielä suoritettu. |
up | Toiminnassa | Viimeisin kierros sai odotetun tilan. |
failing | Vikaantuu | Yksi kierros epäonnistui. Vielä yksi tekee tilaksi down. |
down | Alhaalla | Kaksi epäonnistunutta kierrosta peräkkäin, joten molemmat palvelimet totesivat sen epäonnistuneen. |
warn | Odottamaton tila | Viimeisin kierros palautti tilan warn. |
blocked | Estetty | Palomuuri esti tarkistimen. |
paused | Tauolla | Ei tarkisteta, ennen kuin asetat kentän paused arvoksi false. |
Jos projektin tilaus on päättynyt, monitori säilyttää asetuksensa ja viimeisimmän tilansa. Sitä ei tarkisteta ennen kuin projekti on jälleen maksettu.
Lisää, muuta ja poista monitori
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
}'
| Kenttä | Säännöt |
|---|---|
url | Pakollinen POST-kutsussa. Täydellinen http- tai https-URL ilman käyttäjätunnusta tai salasanaa. |
name | Enintään 80 merkkiä; pidemmät nimet katkaistaan. Tyhjä POST-kutsussa: URL-osoitteen host. Tyhjä PATCH-kutsussa: vanha nimi säilyy, tai uusi host, jos samassa PATCH-kutsussa lähetetään uusi url. |
project_id | Pakollinen master-avaimella: omistamasi projekti, jolla on maksullinen tilaus tai käynnissä oleva kokeilujakso. Projektiavain jättää kentän huomiotta ja käyttää omaa projektiaan. |
origin_ip | Palvelimesi julkinen IPv4- tai IPv6-osoite. Lisää origin-tarkistuksen: suoraan tähän IP-osoitteeseen ohi DNS:n ja CDN:n. "" tai null poistaa sen. |
headers | Enintään 5 ylimääräistä pyynnön headeria, [{ "name", "value" }]. Nimet: kirjaimia, numeroita ja yhdysmerkkejä, enintään 64 merkkiä. Arvot: enintään 256 merkkiä, pidemmät katkaistaan. Uudelleenohjauksessa ne kulkevat mukana vain niin kauan kuin se pysyy monitorin host-osoitteessa, www-etuliitteellä tai ilman. Uudelleenohjaus mihin tahansa muuhun hostiin, aliverkkotunnus mukaan lukien, ei saa yhtäkään niistä. |
expect_status | Tila, joka lasketaan toimivaksi, 100–599. Oletus 200. Koodia 403, 429 tai mitään vähintään 500:n tilaa ei koskaan lasketa toimivaksi. |
paused | true pysäyttää tarkistukset, false käynnistää ne uudelleen. |
Vastaus on 201 uuden monitorin kera, mukaan lukien origin-IP ja headerien arvot:
{
"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
Lähetä vain ne kentät, joita muutat. headers korvaa koko listan, joten lähetä kaikki säilytettävät headerit. Tämä asettaa monitorin tauolle:
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 }'
Master-avaimella project_id siirtää monitorin samojen sääntöjen mukaan kuin POST-kutsussa.
DELETE /api/uptime/monitors/:id
curl -X DELETE https://app.coredash.app/api/uptime/monitors/6ad68c7a844fad80b752fd16 \
-H "Authorization: Bearer cdk_your_key"
Toimintoa ei voi kumota. Jos haluat pysäyttää tarkistukset ja säilyttää historian, lähetä { "paused": true } PATCH-kutsulla.
Uptime API:n virheet ja rajoitukset
Virheet palautetaan muodossa { "error": "..." } jollakin näistä tilakoodeista:
| Tila | Milloin |
|---|---|
400 | Pyyntörunko rikkoo jotain sääntöä. Kenttä error kertoo syyn, katso alta. |
401 | Unauthorized: avain puuttuu, avain on tuntematon, peruttu tai vanhentunut, tai avain liittyy vanhentuneeseen projektiin. |
403 | This token can only read. Use a CoreDash API key to change monitors.: POST-, PATCH- tai DELETE-kutsu OAuth-tokenilla (mcp_at_). PATCH tai DELETE monitorille projektissa, jossa olet vierailijana, palauttaa 403:n viestillä Only the project's owners can change its monitors. |
404 | Monitor not found: id-tunnistetta ei löydy tai avaimella ei ole pääsyä kyseiseen monitoriin. |
405 | Method not allowed. |
400 error | Korjaus |
|---|---|
Choose a project for this monitor | Lähetä project_id master-avaimen kanssa. |
project not found | project_id ei ole omistamasi projekti. Vierailijat eivät voi lisätä monitoreja tai siirtää niitä sinne. |
This project's subscription has ended | Monitorin lisääminen tai siirtäminen vaatii maksullisen projektin tai käynnissä olevan kokeilujakson. |
A project can have up to 25 monitors | Poista ensin jokin monitori tai käytä toista projektia. |
A monitor must belong to a project | Jätä project_id pois PATCH-kutsusta tai anna omistamasi projekti. |
url can't contain a username or password | Käytä basic authia varten Authorization-headeria kentässä headers. |
origin_ip is not an IP address, origin_ip must be a public IP address | Käytä itse palvelimen julkista osoitetta. |
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 | Korjaa viestin ilmoittama kenttä. Sen säännöt löytyvät POST-kohdan kenttätaulukosta. |
Rajoitukset: 25 monitoria projektia kohden, 5 ylimääräistä headeria monitoria kohden, 2100 tarkistusta yksittäisen monitorin GET-kutsussa ja 30 päivän tarkistushistoria.
Uptime MCP -työkalut
CoreDash MCP -palvelin osoitteessa https://app.coredash.app/api/mcp tarjoaa RUM-työkalujen rinnalla kaksi uptime-työkalua sekä työkalun list_projects niille projekteille, joihin avaimellasi on pääsy. Kaikki kolme ovat vain lukemiseen. Jos haluat lisätä, muuttaa tai poistaa monitorin, käytä sovellusta tai yllä olevia REST-endpointteja CoreDash API -avaimella. Työkalut eivät tarvitse kenttää project_id: projektiavain lukee omaa projektiaan, ja master-avain tai OAuth-yhteys (kuten Claude) lukee kaikkia projekteja, jotka omistat tai joihin sinut on kutsuttu.
| Työkalu | Kysy agentiltasi | Palauttaa |
|---|---|---|
list_projects | ”Mitä sivustoja näet?” | { "projects": [...] } kentillä project_id, name, url ja role (owner tai guest). |
list_uptime_monitors | ”Onko kaikki toiminnassa?” | { "monitors": [...] }, jossa origin-IP ja headerien arvot on maskattu. |
get_uptime_monitor | ”Oliko kassa alhaalla tällä viikolla, ja mistä lähtien?” | { "monitor", "summary", "checks" }. Ottaa vastaan parametrit monitor_id ja limit (oletus 100, enintään 1000); summary antaa kentät rounds, down_rounds ja uptime_pct näiden tarkistusten ajalta. |
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 }
}
}'
Vastaus on CoreDash API:n JSON-RPC-kääre, jossa tulos on JSON-merkkijonona kentässä result.content[0].text. Tuntematon monitori antaa siinä arvon { "error": "Monitor not found" }, ja result.isError on true.
Lisää uptimesta ja CoreDash API:sta
- Uptime-seuranta: mitä CoreDash tarkistaa ja mitä näet sovelluksessa.
- CoreDash API: projektiavaimet, JSON-RPC-muoto ja RUM-työkalut.
- Agency API: master-avaimet ja projektit RESTin kautta.
- CoreDash bot: user agent,
X-CoreDash-Bot-header ja osoitteet. - Päästä CoreDash palomuurisi läpi: monitorille, jonka tilana on Estetty.