Weergave
P2000 meldingen ophalen
Haal Nederlandse P2000-meldingen op via GraphQL: recente berichten, filters (discipline, tekst, regio, …) en meldingen gekoppeld aan een kazerne.
Live endpoint: POST https://graphql.persmonitor.nl/graphql
Auth: Authorization: Bearer <api-token> (verplicht)
Nog aan het prototypen?
Gebruik eerst demo/p2000-messages.json. Zelfde response-vorm, geen token. Live data: account + API-plan.
Recente meldingen
graphql
query RecentP2000($first: Int!) {
p2000Messages(first: $first) {
uuid
message
messageReadable
sended
discipline {
name
}
urgency {
uuid
slug
name
}
url
}
}bash
curl -X POST https://graphql.persmonitor.nl/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <api-token>" \
-d '{"query":"query { p2000Messages(first: 10) { uuid message sended discipline { name } urgency { uuid slug name } url } }"}'Filteren
Filters via filter (P2000MessageFilterInput). Combinaties worden AND-gecombineerd. Optioneel: p2000MessagesCount voor het totaal.
graphql
query FilteredMessages($first: Int!, $filter: P2000MessageFilterInput) {
p2000Messages(first: $first, filter: $filter) {
uuid
message
sended
discipline {
name
}
urgency {
uuid
slug
name
}
}
p2000MessagesCount(filter: $filter)
}Veelgebruikte filters
| Filter | Voorbeeld | Betekenis |
|---|---|---|
disciplines | ["brandweer"] | Minstens één van deze disciplines |
urgencies | ["spoed"] | Minstens één urgentie-slug (zie Urgentiewaarden) |
keyword | "A2" | Zoekwoord in de meldingstekst |
sended | { from, to } | Verzendtijd (ISO-8601) |
fireStation | { slug: "asten" } | Meldingen via alarmcodes van die kazerne |
vehicle | { number: "16-1630" } | Meldingen waarbij dit voertuig is opgeroepen |
exerciseType | "geen" | Alleen echte meldingen (geen oefening/proefalarm) |
Voorbeeld: alleen brandweer
json
{
"first": 25,
"filter": {
"disciplines": ["brandweer"],
"exerciseType": "geen"
}
}Voorbeeld: spoed (urgentie-slug)
json
{
"first": 25,
"filter": {
"urgencies": ["spoed"],
"exerciseType": "geen"
}
}Voorbeeld: gepaste spoed (urgentie-slug)
json
{
"first": 25,
"filter": {
"urgencies": ["gepaste-spoed"],
"exerciseType": "geen"
}
}Urgentiewaarden
| Context | Veld | Type | Waarden |
|---|---|---|---|
GraphQL P2000Message | urgency | P2000Urgency of null | Object { uuid, slug, name }. name is de weergavenaam (Spoed, Gepaste spoed); slug is de sleutel (spoed, gepaste-spoed). uuid kan een lege string zijn. null = normale melding. Zie demo. |
Filter P2000MessageFilterInput | urgencies | [String] | Urgentie-slugs (minstens één match). |
Webhook v2 data | urgencies | [String] | Zelfde slugs als filter.urgencies. |
Webhook v1 content | urgency | object | { "name": "<urgentie-slug>" } (bijv. "spoed"). |
Urgentie-slugs voor filter en webhook v2 (filter.urgencies / data.urgencies):
| Slug | name (weergave) |
|---|---|
spoed | Spoed |
gepaste-spoed | Gepaste spoed |
Oefeningen vallen niet onder urgentie: gebruik filter.exerciseType (bijv. "geen" of "oefening") naast urgencies waar nodig.
Voorbeeld: de test-webhook in Webhooks krijgt "urgencies": ["spoed"]. In de demo-JSON staat urgency.name op Spoed of Gepaste spoed, of urgency is null bij een melding zonder match; vergelijk in code op slug, niet op name.
Meldingen per kazerne
"Alles van een kazerne" is een filter op meldingen: berichten waarbij minstens één gekoppelde alarmcode aan die kazerne hangt (fireStation met slug of uuid).
Gebruik de slug of uuid van de kazerne (in demo: velden in fire-stations.json, bijvoorbeeld "slug": "kazerne-demo-noord").
graphql
query StationMessages($first: Int!, $filter: P2000MessageFilterInput) {
p2000Messages(first: $first, filter: $filter) {
uuid
message
sended
discipline {
name
}
urgency {
uuid
slug
name
}
url
}
p2000MessagesCount(filter: $filter)
}json
{
"first": 50,
"filter": {
"fireStation": { "slug": "asten" },
"exerciseType": "geen"
}
}bash
curl -X POST https://graphql.persmonitor.nl/graphql \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <api-token>" \
-d '{"query":"query($first:Int!,$filter:P2000MessageFilterInput){p2000Messages(first:$first,filter:$filter){uuid message sended discipline { name } urgency { uuid slug name } } p2000MessagesCount(filter:$filter)}","variables":{"first":20,"filter":{"fireStation":{"slug":"asten"},"exerciseType":"geen"}}}'Eén melding
graphql
query OneMessage($uuid: String!) {
p2000Message(uuid: $uuid) {
uuid
message
sended
discipline {
name
}
urgency {
uuid
slug
name
}
url
}
}Push i.p.v. pollen
Voor realtime notificaties: configureer een webhook-kanaal in de Monitor. Payload-voorbeelden: Webhooks.
Van demo naar productie
- Demo JSON laden
- Queries schrijven tegen api-for-llms
- Prijzen → registreren + plan met API
- API-token aanmaken, Bearer meesturen
Zie ook: Webhooks · Voor AI-tools · API-gebruik