MeldingsMonitor API
Versie 1.0 — Volledige toegang tot meldingen, capcodes en voertuigen.
1. Authenticatie
De MeldingsMonitor API gebruikt Bearer Tokens (Laravel Sanctum) voor authenticatie. U kunt tokens aanmaken via uw API-instellingen.
Voeg het token toe aan elke request als Authorization header:
GET /api/v1/incidents HTTP/1.1
Host: meldingsmonitor.nl
Authorization: Bearer uw-api-token
Accept: application/json
Belangrijk: Bewaar uw token veilig. Het wordt slechts één keer getoond bij aanmaak. Bij verlies kunt u het token intrekken en een nieuw token aanmaken.
2. Base URL
https://meldingsmonitor.nl/api/v1
3. Rate Limits
Rate limits zijn afhankelijk van uw abonnement. De limieten worden meegestuurd als response headers.
| Abonnement | Requests/min | Requests/dag | Historie |
|---|---|---|---|
| Developer | 30 | 5.000 | 30 dagen |
| Developer Pro | 60 | 25.000 | 90 dagen |
Response headers:
X-RateLimit-Limit— Maximale requests in de huidige periodeX-RateLimit-Remaining— Resterende requestsRetry-After— Seconden wachten bij overschrijding (429 status)
4. Paginering
De API gebruikt cursor-based paginering. Elke lijst-response bevat een meta object met een next_cursor waarde.
Parameters:
per_page— Aantal resultaten per pagina (standaard 25, max 50)cursor— Cursor voor de volgende pagina (uit vorige response)
GET /api/v1/incidents?per_page=10
GET /api/v1/incidents?per_page=10&cursor=eyJpZCI6MTIz...
5. Meldingen (Incidents)
/api/v1/incidents
Lijst met meldingen, gesorteerd op datum (nieuwste eerst).
Filters
| Parameter | Type | Omschrijving |
|---|---|---|
priority | string | Filter op prioriteit (P1, P2, A1, etc.) |
city | string | Filter op plaatsnaam (gedeeltelijke match) |
discipline | integer | Filter op discipline ID |
capcode | string | Filter op capcode (exact) |
date_from | date | Startdatum (beperkt door abonnement) |
date_to | date | Einddatum |
search | string | Zoek in meldingstekst |
Voorbeeld response
{
"data": [
{
"id": 12345,
"occurred_at": "2026-02-13T14:30:00+00:00",
"message": "P 1 BRT-01 DIA: Ja BR Gebouw Stationsstr Eext",
"priority": "P1",
"category": "Brand",
"street": "Stationsstraat",
"city": "Eext",
"postal_code": "9463 TH",
"latitude": "53.18765432",
"longitude": "6.72543210",
"disciplines": [{"id": 1, "name": "Brandweer"}],
"capcodes": [{"id": 10, "capcode": "0120901", "description": "Brandweer Eext", "location": "Eext"}],
"vehicles": [{"id": 5, "call_sign": "03-4231", "type": "Tankautospuit", "description": "...", "location": "Eext"}],
"created_at": "2026-02-13T14:30:01+00:00",
"updated_at": "2026-02-13T14:30:05+00:00"
}
],
"meta": {...},
"links": {"next": "...", "prev": null}
}
/api/v1/incidents/{id}
Enkele melding ophalen met alle gerelateerde data.
6. Capcodes
/api/v1/capcodes
Lijst met capcodes.
Filters
| Parameter | Type | Omschrijving |
|---|---|---|
discipline_id | integer | Filter op discipline |
search | string | Zoek op capcode, beschrijving of locatie |
Voorbeeld response
{
"data": [
{
"id": 10,
"capcode": "0120901",
"description": "Brandweer Eext",
"location": "Eext",
"discipline": {"id": 1, "name": "Brandweer"},
"created_at": "2026-01-01T00:00:00+00:00",
"updated_at": "2026-01-15T12:00:00+00:00"
}
],
"meta": {...},
"links": {"next": "...", "prev": null}
}
/api/v1/capcodes/{id}
Enkele capcode ophalen met discipline informatie.
7. Voertuigen (Vehicles)
/api/v1/vehicles
Lijst met voertuigen.
Filters
| Parameter | Type | Omschrijving |
|---|---|---|
type | string | Filter op voertuigtype |
search | string | Zoek op roepnummer, beschrijving of locatie |
Voorbeeld response
{
"data": [
{
"id": 5,
"call_sign": "03-4231",
"type": "Tankautospuit",
"description": "Tankautospuit Eext",
"location": "Eext",
"created_at": "2026-01-01T00:00:00+00:00",
"updated_at": "2026-02-10T08:30:00+00:00"
}
],
"meta": {...},
"links": {"next": "...", "prev": null}
}
/api/v1/vehicles/{id}
Enkel voertuig ophalen.
8. Webhooks
Webhooks stellen u in staat real-time notificaties te ontvangen bij nieuwe meldingen of wijzigingen. U kunt webhook-endpoints beheren via de API of via uw dashboard.
Beschikbare events
| Event | Omschrijving |
|---|---|
incident.created | Nieuwe melding aangemaakt |
incident.updated | Melding bijgewerkt (locatie, categorie) |
vehicle.updated | Voertuig bijgewerkt |
capcode.updated | Capcode bijgewerkt |
Webhook beheer endpoints
/api/v1/webhooks
— Alle endpoints ophalen
/api/v1/webhooks
— Nieuw endpoint registreren
/api/v1/webhooks/{id}
— Endpoint bijwerken
/api/v1/webhooks/{id}
— Endpoint verwijderen
Webhook payload
{
"event": "incident.created",
"timestamp": "2026-02-13T14:30:00+00:00",
"data": {
"id": 12345,
"occurred_at": "2026-02-13T14:29:45+00:00",
"message": "P 1 BRT-01 DIA: Ja BR Gebouw Stationsstr Eext",
"priority": "P1",
"city": "Eext",
"disciplines": ["Brandweer"],
"capcodes": [{"id": 10, "capcode": "0120901", "description": "Brandweer Eext"}],
"vehicles": [{"id": 5, "call_sign": "03-4231", "type": "Tankautospuit"}]
}
}
Signature verificatie
Elke webhook bevat een X-Webhook-Signature header waarmee u de authenticiteit kunt verifiëren:
X-Webhook-Signature: sha256=berekende-hmac-hash
Voorbeeld verificatie in PHP:
$payload = file_get_contents('php://input');
$signature = $_SERVER['HTTP_X_WEBHOOK_SIGNATURE'] ?? '';
$expected = 'sha256=' . hash_hmac('sha256', $payload, $yourSecret);
if (!hash_equals($expected, $signature)) {
http_response_code(401);
exit('Invalid signature');
}
Retries & deactivering
- Bij een mislukte levering wordt maximaal 3 keer opnieuw geprobeerd (na 10s, 60s, 300s).
- Na 10 opeenvolgende mislukkingen wordt het endpoint automatisch gedeactiveerd.
- U kunt een gedeactiveerd endpoint opnieuw activeren via de API of het dashboard.
9. Foutcodes
| Code | Betekenis | Omschrijving |
|---|---|---|
| 401 | Unauthorized | Ongeldig of ontbrekend API-token |
| 403 | Forbidden | Geen API-toegang in uw abonnement |
| 404 | Not Found | Resource niet gevonden |
| 422 | Validation Error | Ongeldige parameters of datumbereik overschreden |
| 429 | Too Many Requests | Rate limit overschreden |
10. Voorwaarden
Het gebruik van de MeldingsMonitor API is onderhevig aan onze API-voorwaarden. Door de API te gebruiken gaat u akkoord met deze voorwaarden.