API-documentatie

Integreer EstaCaido met uw toepassingen

Aan de slag

Met de EstaCaido API beheer je je monitors, bekijk je incidenten, stel je meldingen in en meer vanuit je eigen code. Alle API-eindpunten gebruiken JSON voor verzoek en antwoord.

Basis-URL

https://www.estacaido.com/api/v1/

Limieten

Elk API-token kan maximaal 100 verzoeken per minuut doen. Verzoeken boven die limiet krijgen een 429 Too Many Requests-antwoord.

Authenticatie

Gebruik tokenauthenticatie voor alle API-verzoeken. Voeg je token toe aan de Authorization-header.

Authenticatietoken ophalen

POST /api/v1/auth/token/
Verzoek
curl -X POST https://www.estacaido.com/api/v1/auth/token/ \
  -H "Content-Type: application/json" \
  -d '{"username": "your@email.com", "password": "yourpassword"}'
Antwoord
{
  "token": "your-api-token-here"
}

Gebruik het token in de Authorization-header

Authorization: Token your-api-token-here

Monitors

Beheer je websitemonitors.

Monitors weergeven

GET /api/v1/monitors/
Antwoord
[
  {
    "id": 1,
    "name": "Production API",
    "company": {
      "id": 1,
      "website": "api.example.com"
    },
    "check_type": "http",
    "check_interval": 300,
    "is_active": true,
    "is_paused": false,
    "last_check_at": "2024-01-15T10:30:00Z",
    "created_at": "2024-01-01T00:00:00Z"
  }
]

Monitor maken

POST /api/v1/monitors/
Parameters
name Verplicht Naam van de monitor
domain Verplicht Te monitoren domein, bijvoorbeeld example.com
check_interval Optioneel Controle-interval in seconden, een van 30, 60, 300, 600, 900, 1800, 3600. Standaard: 300
check_type Optioneel Een van deze waarden: http, https, ping. Standaard: https

Monitor ophalen

GET /api/v1/monitors/{id}/

Monitor bijwerken

PUT /api/v1/monitors/{id}/

Monitor verwijderen

DELETE /api/v1/monitors/{id}/

Monitor pauzeren

POST /api/v1/monitors/{id}/pause/

Monitor hervatten

POST /api/v1/monitors/{id}/resume/

Monitorstatistieken ophalen

GET /api/v1/monitors/{id}/statistics/
Parameters
days Optioneel Aantal dagen. Standaard: 30

Incidenten

Bekijk storingen en hun geschiedenis.

Incidenten weergeven

GET /api/v1/incidents/
Parameters
status Optioneel Filter op status: ongoing, resolved
monitor Optioneel Filter op monitor-ID

Incident ophalen

GET /api/v1/incidents/{id}/

Meldingen

Stel meldingen in voor je monitors.

Meldingen weergeven

GET /api/v1/alerts/

Melding maken

POST /api/v1/alerts/
Parameters
monitor Verplicht Monitor-ID
alert_type Verplicht Een van deze waarden: email, sms, slack, discord, webhook, pagerduty, teams
recipients Verplicht Ontvangeradressen of webhook-URL's
alert_on_down Optioneel Melden als de site uitvalt (standaard: true)
alert_on_recovery Optioneel Melden als de site herstelt (standaard: true)

Melding bijwerken

PUT /api/v1/alerts/{id}/

Melding verwijderen

DELETE /api/v1/alerts/{id}/

Statuspagina's

Maak en beheer openbare statuspagina's.

Statuspagina's weergeven

GET /api/v1/status-pages/

Statuspagina maken

POST /api/v1/status-pages/
Parameters
title Verplicht Titel van de statuspagina
slug Verplicht URL-slug (bijv. mijn-statuspagina)
description Optioneel Beschrijving
is_public Optioneel Openbaar toegankelijk maken (standaard: true)

Teams

Beheer teamtoegang en samenwerking.

Teams weergeven

GET /api/v1/teams/

Team maken

POST /api/v1/teams/

Team ophalen

GET /api/v1/teams/{id}/

Codevoorbeelden

Python

import requests

API_TOKEN = 'your-api-token'
BASE_URL = 'https://www.estacaido.com/api/v1'

headers = {
    'Authorization': f'Token {API_TOKEN}',
    'Content-Type': 'application/json'
}

# List all monitors
response = requests.get(f'{BASE_URL}/monitors/', headers=headers)
monitors = response.json()
print(monitors)

# Create a new monitor
new_monitor = {
    'name': 'My Website',
    'domain': 'example.com',
    'check_interval': 300
}
response = requests.post(f'{BASE_URL}/monitors/', json=new_monitor, headers=headers)
print(response.json())

JavaScript

const API_TOKEN = 'your-api-token';
const BASE_URL = 'https://www.estacaido.com/api/v1';

const headers = {
    'Authorization': `Token ${API_TOKEN}`,
    'Content-Type': 'application/json'
};

// List all monitors
fetch(`${BASE_URL}/monitors/`, { headers })
    .then(res => res.json())
    .then(monitors => console.log(monitors));

// Create a new monitor
fetch(`${BASE_URL}/monitors/`, {
    method: 'POST',
    headers,
    body: JSON.stringify({
        name: 'My Website',
        domain: 'example.com',
        check_interval: 300
    })
})
.then(res => res.json())
.then(data => console.log(data));

cURL

# List all monitors
curl -X GET https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token"

# Create a new monitor
curl -X POST https://www.estacaido.com/api/v1/monitors/ \
  -H "Authorization: Token your-api-token" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Website", "domain": "example.com", "check_interval": 300}'

Klaar om te beginnen?

Meld je gratis aan en haal je API-token op om te beginnen met integreren.

Meld je gratis aan API-token ophalen