CoreDash Uptime API ve MCP Araçları: Monitörler ve Kontroller
CoreDash API anahtarınla uptime monitörlerini listele, ekle, değiştir ve duraklat; kontrollerini REST veya MCP üzerinden oku.
CoreDash API üzerinden uptime monitörleri
CoreDash projelerinin uptime monitörlerini REST üzerinden, RUM verilerin için zaten kullandığın API anahtarıyla oku ve değiştir. Bir AI ajanı bunları MCP üzerinden okur.
Hızlı başlangıç
- Base URL
https://app.coredash.app/api/uptime/monitors, JSON alır, JSON döner. - Header
Authorization: Bearer cdk_your_key, proje anahtarı veya master key ile. - İlk çağrı:
GET /api/uptime/monitors, monitörlerini durumları ve son 7 günün uptime oranıyla listeler.
Uptime monitörleri için API anahtarları
Uptime endpoint'leri, CoreDash API ve Agency API anahtarlarını kabul eder.
| Anahtar | Şununla başlar | Gördüğü | Yeni monitörün eklendiği yer |
|---|---|---|---|
| Proje anahtarı | cdk_ | Yalnızca kendi projesinin monitörleri | Her zaman kendi projesi |
| Master key | cdk_master_ | Sahip olduğun veya davet edildiğin tüm projelerin monitörleri | project_id ile belirttiğin, sahibi olduğun proje |
Projenin kenar çubuğundaki Connect Your AI sayfasından bir proje anahtarı oluştur: isim ver ve Generate API key'e tıkla. Aynı anahtarlar proje ayarlarında API Keys (MCP) altında da yer alır. Bunları yalnızca proje sahipleri oluşturabilir. Master key ise ajans hesaplarında, kenar çubuğundaki Agency API sayfasından alınır. Projenin süresi dolduğunda, proje anahtarı her çağrıda 401 alır.
Projedeki bir konuk monitörleri okuyabilir. Monitör eklemek, değiştirmek, taşımak ve silmek için sahibi olduğun bir proje gerekir.
Claude gibi bir AI bağlantısının OAuth token'ı (mcp_at_) yalnızca okuma yapar. Bununla yapılan POST, PATCH ve DELETE çağrıları 403 alır.
Uptime endpoint'leri
| Metot ve yol | İşlevi | Döndürdüğü |
|---|---|---|
GET /api/uptime/monitors | Anahtarın görebildiği tüm monitörleri ada göre sıralı listeler. | 200, { "monitors": [...] }, her biri summary içerir |
POST /api/uptime/monitors | Yeni monitör ekler. İlk kontrol bir sonraki turda, :00 veya :30'da çalışır. | 201, { "monitor": {...} } |
GET /api/uptime/monitors/:id | Kontrolleriyle birlikte tek bir monitör; en yeniden eskiye. ?limit= kontrol sayısını belirler: varsayılan 300, en fazla 2100. | 200, { "monitor", "summary", "checks", "rum" } |
PATCH /api/uptime/monitors/:id | Gönderdiğin alanları değiştirir, kalanları olduğu gibi bırakır. | 200, { "monitor": {...} } |
DELETE /api/uptime/monitors/:id | Monitörü ve tüm kontrollerini siler. | 200, { "deleted": true } |
Origin IP ve header değerleri gizlidir. POST, PATCH ve GET /api/uptime/monitors/:id yanıtlarında dönerler. Liste ve MCP araçları origin_ip alanını hariç tutar ve her header değerini •••• olarak gösterir.
Monitör nesnesi
| Alan | Anlamı |
|---|---|
id | Monitörün id'si; yollardaki :id parametresi için. |
name, url | Uygulamadaki isim ve kontrol edilen URL. |
project_id | Monitörün ait olduğu CoreDash projesi. |
paused | Monitör kontrol edilmiyorken true. |
expect_status | Up sayılan HTTP durumu. Varsayılan 200. |
origin_check | Origin IP tanımlandığında true; böylece her tur doğrudan sunucuyu da kontrol eder. |
origin_ip | Sunucunun IP adresi. Yalnızca gizli verileri içeren yanıtlarda yer alır. |
headers | Ek istek header'ları, [{ "name", "value" }]. |
state | pending, up, failing, down, warn, blocked veya paused. Aşağıdaki durumlar tablosuna bak. |
last_check_at, last_up_at | Son kontrol turu ve up dönen son kontrol turu. |
down_since | Down durumundayken: ilk başarısız turun zamanı. Aksi halde null. |
last_down | Sona eren son kesinti, { "from", "to" } veya null. |
check_requested_at | Monitörü eklediğinde ayarlanır. Bir sonraki tur bunu temizler. |
last | Tür başına son kontrol: her biri bir kontrol nesnesi olan edge ve origin. Origin kontrolü Cloudflare header'larıyla yanıt verdiğinde origin_is_cdn değeri true olur; yani girdiğin IP sunucun değildir. |
cert_expires | Ziyaretçilerinin aldığı HTTPS sertifikasının süresinin dolacağı zaman. |
created_at | Monitörün eklendiği tarih. |
Summary ve rum alanları
Hem liste hem de tekil monitör bir summary içerir: rounds_7d ve down_rounds_7d son 7 günün turlarını sayar; uptime_7d down kontrolü olmayan turların yüzdesidir; recent ise en eskiden en yeniye son 48 turu ve her turun en kötü sonucunu tutar. Son 7 günde kontrolü olmayan bir monitörde summary: null olur.
Tekil monitör ayrıca rum alanı da taşır: kontrolcünün ttfb_ms değeriyle karşılaştırmak üzere, projenin RUM verilerinden gerçek ziyaretçilerinin son 7 gündeki p75 TTFB değeri. Projede RUM verisi yokken bu değer null olur.
GET /api/uptime/monitors/:id
Gerçek yanıtta recent 48 tur tutar; bu örnek son ikisini gösterir.
Kontrol nesnesi ve sonuçları
Her 30 dakikada bir kontrol turu tüm monitörleri sırayla iki sunucudan kontrol eder: :00'da scan1, :30'da scan2. Bir tur, URL'yi her zaman ziyaretçilerin ulaştığı şekilde, DNS ve CDN üzerinden kontrol eder (edge). Origin IP tanımlıysa doğrudan sunucunu da kontrol eder (origin). API'de turlar arasında bir monitörü kontrol edecek çağrı yoktur. Kontroller 30 gün saklanır.
Her kontrol CoreDash/1.0 (uptime; +https://www.coredash.app/bot) user agent'ını gönderir. Monitörün URL'si projenin kendi sitesindeyse (www ile veya www olmadan host ya da bir alt alan adı), kontrol ayrıca proje ayarlarındaki CoreDash bot token sekmesinde yer alan gizli değerinle X-CoreDash-Bot header'ını gönderir. Başka herhangi bir sitedeki monitöre token gönderilmez. Yönlendirmede token, tanımladığın headers kuralını izler: yalnızca yönlendirme monitörün host'unda kaldığı sürece iletilir. Senin eklediğin X-CoreDash-Bot adlı bir header varsa yoksayılır. CoreDash bot sayfası her ikisi hakkında da daha fazla bilgi sunar.
| Alan | Anlamı |
|---|---|
at, server | Sunucunun turu bildirdiği zaman ve turu hangi sunucunun çalıştırdığı: scan1 veya scan2. Tek turun kontrolleri aynı at değerini paylaşır. |
mode | edge veya origin. |
outcome | up, down, blocked veya warn. |
status | Yönlendirmelerden sonraki son yanıtın HTTP durumu. Yanıt alınamadığında null. |
ttfb_ms, total_ms, connect_ms | Time to First Byte ve toplam süre (ikisi de yönlendirmeleri kapsar) ile ilk istekteki bağlantı kurma süresi. |
redirects, final_url | İzlenen yönlendirme sayısı ve son yanıt veren URL. |
error, error_text | Kontrolün neden başarısız olduğu; aşağıdaki tablodan bir değer ve metin olarak. |
cloudflare, cache_status | Yanıtın Cloudflare üzerinden gelip gelmediği ve CDN'in cache header'ı (cf-cache-status veya x-cache). |
Bir kontrolün sonucu nasıl belirlenir
| Sonuç | Hangi durumda |
|---|---|
up | Durum kodu expect_status ile eşleştiğinde; ancak bu durum 403, 429 veya 500 ve üzeri ise öncelikle blocked ya da down sayılır. |
down | 500 veya üzeri bir durum kodu ya da bir error: dns, connect, connect_timeout (10 saniye içinde bağlantı yok), timeout (30 saniye içinde tam yanıt yok), tls, redirects (5'ten fazla) veya network. |
blocked | 403, 429 veya bir Cloudflare challenge: bir güvenlik duvarı kontrolcüyü durdurdu. Asla kesinti süresi sayılmaz. CoreDash'e güvenlik duvarında izin ver. |
warn | Diğer tüm durumlar; örneğin bir deploy sonrasında ödeme sayfasında dönen 404 gibi. Ayrıca invalid_ip ve invalid_url: URL veya yönlendirme özel ya da ayrılmış bir adrese çıkıyorsa veya yönlendirme bir URL olmayan bir şeye işaret ediyorsa. Kontrolcü bunlara istek atmaz. |
Bir turun kontrolleri arasındaki en kötü sonuç, monitörün durumunu belirler; en kötüden en iyiye: down, blocked, warn, up.
Monitör durumları
state | Uygulamada | Anlamı |
|---|---|---|
pending | Waiting for first check | Eklendi; ilk tur henüz çalışmadı. |
up | Up | Son tur beklenen durumu aldı. |
failing | Failing | Bir tur başarısız oldu. Bir tur daha başarısız olursa down olur. |
down | Down | Üst üste iki başarısız tur; yani her iki sunucu da başarısız olduğunu gördü. |
warn | Unexpected status | Son tur warn döndü. |
blocked | Blocked | Bir güvenlik duvarı kontrolcüyü durdurdu. |
paused | Paused | paused değerini false yapana kadar kontrol edilmez. |
Aboneliği sona eren bir projedeki monitör, ayarlarını ve son durumunu korur. Proje ödemesi tekrar yapılana kadar kontrol edilmez.
Monitör ekle, değiştir ve sil
POST /api/uptime/monitors
| Alan | Kurallar |
|---|---|
url | POST isteğinde zorunludur. Kullanıcı adı veya parola içermeyen tam bir http veya https URL'si. |
name | En fazla 80 karakter; daha uzun isimler kesilir. POST isteğinde boş bırakılırsa: URL'nin host'u alınır. PATCH isteğinde boş bırakılırsa: eski isim kalır veya aynı PATCH yeni bir url gönderiyorsa yeni host kullanılır. |
project_id | Master key ile zorunludur: aktif bir deneme süresi veya ücretli aboneliği bulunan, sahibi olduğun bir proje. Proje anahtarı bu alanı yok sayar ve kendi projesini kullanır. |
origin_ip | Sunucunun public IPv4 veya IPv6 adresi. Origin kontrolünü ekler: DNS ve CDN'i atlayarak doğrudan bu IP'ye gider. "" veya null bu kontrolü kaldırır. |
headers | En fazla 5 ek istek header'ı, [{ "name", "value" }]. İsimler: harfler, sayılar ve tire; en fazla 64 karakter. Değerler: en fazla 256 karakter, daha uzun olanlar kesilir. Yönlendirmelerde yalnızca monitörün host'unda (www ile veya www olmadan) kalındığı sürece iletilir. Alt alan adları dahil başka herhangi bir host'a yapılan yönlendirmede bu header'ların hiçbiri gönderilmez. |
expect_status | Up sayılan durum kodu, 100 ile 599 arası. Varsayılan 200. 403, 429 veya 500 ve üzeri hiçbir durum kodu asla up sayılmaz. |
paused | true kontrolleri durdurur, false yeniden başlatır. |
Yanıt 201 döner; yeni monitör, origin IP ve header değerleri dahildir:
PATCH /api/uptime/monitors/:id
Yalnızca değiştirdiğin alanları gönder. headers listenin tamamının yerine geçer; bu yüzden korumak istediğin tüm header'ları gönder. Şu istek bir monitörü duraklatır:
Master key ile project_id, monitörü POST ile aynı kurallara göre taşır.
DELETE /api/uptime/monitors/:id
Bunun geri dönüşü yoktur. Kontrolleri durdurup geçmişi korumak için PATCH ile { "paused": true } gönder.
Uptime API hataları ve limitleri
Hatalar { "error": "..." } formatında ve şu durumlardan biriyle döner:
| Durum | Hangi durumda |
|---|---|
400 | Gövde bir kuralı ihlal ediyor. Hangi kural olduğunu error belirtir; aşağıya bak. |
401 | Unauthorized: anahtar yok, bilinmeyen, iptal edilmiş ya da süresi dolmuş bir anahtar veya süresi dolmuş bir projeye bağlı anahtar. |
403 | This token can only read. Use a CoreDash API key to change monitors.: bir OAuth token'ı (mcp_at_) ile POST, PATCH veya DELETE yapıldığında. Konuk olduğun bir projedeki monitörde PATCH veya DELETE çalıştırmak, Only the project's owners can change its monitors mesajıyla 403 alır. |
404 | Monitor not found: id mevcut değil veya anahtar bu monitörü göremiyor. |
405 | Method not allowed. |
400 error | Çözüm |
|---|---|
Choose a project for this monitor | Master key ile birlikte project_id gönder. |
project not found | project_id sahibi olduğun bir proje değil. Konuklar oraya monitör ekleyemez veya taşıyamaz. |
This project's subscription has ended | Monitör eklemek veya taşımak için ücretli bir proje ya da devam eden bir deneme süresi gerekir. |
A project can have up to 25 monitors | Önce birini sil veya başka bir proje kullan. |
A monitor must belong to a project | PATCH isteğine project_id dahil etme ya da sahibi olduğun bir proje gönder. |
url can't contain a username or password | Basic auth için headers içinde bir Authorization header'ı gönder. |
origin_ip is not an IP address, origin_ip must be a public IP address | Doğrudan sunucunun kendi public adresini kullan. |
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 | Mesajda belirtilen alanı düzelt. Kuralları POST altındaki alan tablosunda bulabilirsin. |
Limitler: Proje başına 25 monitör, monitör başına 5 ek header, tekil monitör GET çağrısı başına 2100 kontrol ve 30 günlük kontrol geçmişi.
Uptime MCP araçları
https://app.coredash.app/api/mcp adresindeki CoreDash MCP sunucusu, RUM araçlarının yanında iki uptime aracına ve anahtarının erişebildiği projeler için list_projects aracına sahiptir. Üçü de yalnızca okuma yapar. Monitör eklemek, değiştirmek veya silmek için uygulamayı ya da CoreDash API anahtarıyla yukarıdaki REST endpoint'lerini kullan. Araçlar project_id gerektirmez: bir proje anahtarı kendi projesini okur; master key veya Claude gibi bir OAuth bağlantısı ise sahip olduğun ya da davet edildiğin tüm projeleri okur.
| Araç | Ajanına sor | Döndürdüğü |
|---|---|---|
list_projects | "Hangi siteleri görebiliyorsun?" | project_id, name, url ve role (owner veya guest) içeren { "projects": [...] }. |
list_uptime_monitors | "Her şey çalışıyor mu?" | Origin IP ve header değerleri maskelenmiş { "monitors": [...] }. |
get_uptime_monitor | "Ödeme sayfası bu hafta down oldu mu, ne zamandan beri?" | { "monitor", "summary", "checks" }. monitor_id ve limit (varsayılan 100, en fazla 1000) alır; summary bu kontroller üzerinden rounds, down_rounds ve uptime_pct değerlerini verir. |
Yanıt, CoreDash API'sinin JSON-RPC sarmalayıcısıdır ve sonuç result.content[0].text içinde JSON string olarak döner. Bilinmeyen bir monitör burada { "error": "Monitor not found" } verir ve result.isError değeri true olur.
Uptime ve CoreDash API hakkında daha fazlası
- Uptime izleme: CoreDash'in neleri kontrol ettiği ve uygulamada gördüklerin.
- CoreDash API: proje anahtarları, JSON-RPC formatı ve RUM araçları.
- Agency API: REST üzerinden master key'ler ve projeler.
- CoreDash bot: user agent,
X-CoreDash-Botheader'ı ve adresler. - CoreDash'e güvenlik duvarında izin ver: Blocked yazan bir monitör için.