15:59:52 p2000.page beheer

P2000.page API

Documentatie voor ontwikkelaars

Met de API haal je de nieuwste P2000-meldingen op in JSON, gefilterd op regio, dienst, capcode of zoekwoord. Je hebt een eigen API-sleutel nodig. Die krijg je direct na het afsluiten van een abonnement op je API-pagina.

1. Snel beginnen

Eén verzoek, de 50 nieuwste meldingen:

https://service.p2000.page/api-JOUW_SLEUTEL

Alleen brandweer in twee regio's:

https://service.p2000.page/api-JOUW_SLEUTEL/r/06~17/d/brandweer

2. Je sleutel

Je sleutel staat in de link, direct na api-:

https://service.p2000.page/api-JOUW_SLEUTEL

Filters zet je erachter als /naam/waarde, zoveel als je wilt en in elke volgorde, bijvoorbeeld:

https://service.p2000.page/api-JOUW_SLEUTEL/r/06/d/brandweer/pr/1

De gewone schrijfwijze met een vraagteken werkt ook: …/api-JOUW_SLEUTEL?r=06&d=brandweer&pr=1.

Zet je sleutel nooit in code die in de browser van bezoekers draait (JavaScript op een website, een openbare app-repository). Iedereen kan hem daar uitlezen. Haal de meldingen op via je eigen server en geef ze vanaf daar door aan je website of app.

3. Filters

Meerdere waarden scheid je met een tilde ~. Zonder filters krijg je de nieuwste meldingen van heel Nederland.

ParameterBetekenisVoorbeeld
rRegio's (twee cijfers, zie de lijst hieronder)/r/06~17
dDiensten: brandweer, ambulance, politie, mmt, lifeliner, knrm, bruggen/d/brandweer~ambulance
kCapcodes (7 cijfers) en/of zoekwoorden die je extra wilt zien, naast je regio/dienst-filter. Zonder r of d krijg je alleen deze./k/0611072~Zwolle
ktCapcodes en/of zoekwoorden als enige filter: alleen meldingen met deze capcodes of woorden (binnen je regio/dienst als je die ook opgeeft)/kt/0611072~0620591
plaatsjeZoekwoorden uit k/kt zoeken in de plaatsnaam in plaats van in de meldingstekst/kt/Zwolle/plaatsje/1
oGrote opschalingen: zonder regio alleen grote opschalingen, met regio ook grote opschalingen buiten je regio/o/1
prAlleen meldingen met prioriteit 1 (spoed)/pr/1
loAlleen meldingen met een bekende locatie/lo/1

Zoekwoorden mogen letters, cijfers, spaties en - bevatten, maximaal 60 tekens per woord.

Regio's

Gebruik de nummers 01 t/m 26 en 28. De naam van de regio staat in elke melding in het veld vr.

4. Het antwoord

Je krijgt een JSON-lijst met maximaal 50 meldingen, nieuwste eerst. Alle waarden zijn tekst (ook getallen).

[
  {
    "uid": "3f2c…",
    "link": "https://p2000.page/u-3f2c…/7",
    "timestamp": "1792751330",
    "datum": "23-10-2026",
    "tijd": "14:28:50",
    "korttijd": "14:28u",
    "melding": "P 1 BDH-01 Brand woning Dorpsstraat Zwolle",
    "plaats": "Zwolle",
    "regios": "R06",
    "vr": "IJsselland",
    "dienst": "Brandweer",
    "prio": "1",
    "capcodes": "0611072 0620591",
    …
  }
]
VeldInhoud
uidUnieke code van de melding (gebruik deze om dubbele meldingen over te slaan)
linkLink naar de melding op p2000.page
timestampTijdstip als Unix-tijd (seconden)
datum, tijd, korttijdDatum (dd-mm-jjjj), tijd (uu:mm:ss) en korte tijd (uu:mmu)
meldingDe tekst van de P2000-melding
plaatsPlaats van de melding
regiosRegiocode(s), bijvoorbeeld R06
vr, regioNaam van de veiligheidsregio
dienstBrandweer, Ambulance, Politie, MMT, KNRM, Lifeliner of bruggen
prioPrioriteit; 1 = spoed
groot1 bij een grote opschaling
grip, soortopschalingGRIP-niveau (0 = geen) en soort opschaling
capcodesDe capcodes van de melding, gescheiden door spaties
capcodes_jsonDe capcodes met hun omschrijving, als JSON-tekst
voertuigen_jsonDe betrokken voertuigen, als JSON-tekst (kan leeg zijn)
locatieAdres of locatie (Onbekend als die er niet is)
latlong, plaats_latlonCoördinaten van de locatie en van de plaats (kan leeg zijn)
kruising1 als de locatie een kruising is
ambu, groep, antiespamExtra kenmerken van p2000.page (0 of 1)

5. Limieten

Elk pakket heeft een maximaal aantal verzoeken per dag. De teller begint elke nacht om 00:00 uur (Nederlandse tijd) opnieuw. Bij elk antwoord krijg je de koppen X-RateLimit-Limit en X-RateLimit-Remaining mee.

PakketVerzoeken per dagOphalen kan dan
Hobby 2.000 elke 44 seconden, de hele dag
Hobby Plus 20.000 elke 5 seconden, de hele dag
Hobby Pro 100.000 elke seconde, de hele dag
Commercieel commercieel 200.000 elke seconde, de hele dag

Tip: haal niet vaker op dan nodig. Een nieuwe melding verschijnt meestal binnen enkele seconden; elke 5–10 seconden ophalen is voor de meeste apps ruim voldoende.

6. Foutcodes

Bij een fout krijg je ook een lijst met één "melding" waarin de uitleg staat (veld melding), zodat een app die de fout direct kan tonen.

CodeBetekenisWat te doen
200GeluktEen lege lijst [] betekent: geen meldingen voor dit filter.
401Sleutel ontbreekt, klopt niet of je abonnement is verlopenControleer je sleutel en je abonnement op je API-pagina.
403Sleutel geblokkeerdNeem contact met ons op.
429Daglimiet bereikt, of te veel foute sleutels vanaf jouw IP-adresWacht tot de kop Retry-After (seconden) voorbij is, of kies een groter pakket.
503Tijdelijk onderhoudProbeer het over een minuut opnieuw.

7. Voorbeelden

curl

curl "https://service.p2000.page/api-JOUW_SLEUTEL/r/06/d/brandweer"

PHP

<?php
$sleutel = "JOUW_SLEUTEL";   // liever uit een configuratiebestand
$context = stream_context_create(["http" => ["timeout" => 10]]);
$json = file_get_contents("https://service.p2000.page/api-" . $sleutel . "/r/06/d/brandweer", false, $context);
$meldingen = json_decode($json, true) ?? [];

foreach ($meldingen as $m) {
    echo $m["korttijd"] . " " . $m["melding"] . " (" . $m["plaats"] . ")\n";
}

Python

import requests

sleutel = "JOUW_SLEUTEL"   # liever uit een configuratiebestand
antwoord = requests.get(f"https://service.p2000.page/api-{sleutel}",
                        params={"r": "06", "d": "brandweer"}, timeout=10)
antwoord.raise_for_status()
for m in antwoord.json():
    print(m["korttijd"], m["melding"], m["plaats"])

JavaScript (Node.js, op je eigen server)

const sleutel = process.env.P2000_SLEUTEL;   // bijv. JOUW_SLEUTEL
const antwoord = await fetch(`https://service.p2000.page/api-${sleutel}/r/06/d/brandweer`);
const meldingen = await antwoord.json();
meldingen.forEach((m) => console.log(m.korttijd, m.melding, m.plaats));

Alleen nieuwe meldingen verwerken

Onthoud welke uid's je al hebt gezien en sla die over. Zo krijg je elke melding maar één keer, ook als je vaak ophaalt.

8. Regels in het kort

  • Je sleutel is persoonlijk: deel hem niet en maak een nieuwe als hij is uitgelekt.
  • Hobby-pakketten zijn alleen voor niet-commercieel gebruik. Met het pakket Commercieel mag je de API in je eigen commerciële app of website gebruiken.
  • Doorverkopen of doorgeven is nooit toegestaan: je mag de API, je sleutel of de gegevens niet als eigen API, datafeed of dataset aan anderen aanbieden.
  • De gegevens komen uit openbare P2000-berichten en kunnen onvolledig of vertraagd zijn. Gebruik ze nooit voor beslissingen over noodhulp – bel bij nood altijd 112.

De volledige regels staan in de algemene voorwaarden. Vragen? Mail naar info@p2000.page.