Appearance
Persmonitor GraphQL API – volledige specificatie (voor AI/LLM)
Deze pagina bevat de volledige API-specificatie in één document. Geschikt voor AI-assistenten en LLMs: één URL, geen navigatie nodig.
Endpoint: POST https://graphql.persmonitor.nl/graphql
Body: JSON met query (verplicht) en optioneel variables. Geen authenticatie.
1. Algemeen
- Method: POST
- URL: https://graphql.persmonitor.nl/graphql
- Content-Type: application/json
- Body:
{ "query": "<GraphQL document>", "variables": { ... } }—variablesis optioneel. - Authenticatie: Geen (later mogelijk Bearer of API-key).
Voorbeeld (curl):
bash
curl -X POST https://graphql.persmonitor.nl/graphql \
-H "Content-Type: application/json" \
-d '{"query":"query { __typename }"}'2. Queries
2.1 p2000Messages
Lijst P2000-berichten. Paginering: first (default 10), page (default 1). Optioneel filter: filter (type P2000MessageFilterInput).
P2000MessageFilterInput: sended (object met from en to, beide ISO-8601 verplicht), capcodes (array van capcode-UUIDs). Beide velden optioneel.
GraphQL:
graphql
query GetP2000Messages($first: Int, $page: Int, $filter: P2000MessageFilterInput) {
p2000Messages(first: $first, page: $page, filter: $filter) {
uuid
message
sended
created
changed
capcodes { uuid name }
}
}Variabelen (voorbeeld):
json
{
"first": 10,
"page": 1,
"filter": {
"sended": { "from": "2025-01-01T00:00:00Z", "to": "2025-12-31T23:59:59Z" },
"capcodes": ["uuid-1", "uuid-2"]
}
}2.2 p2000Message
Eén P2000-bericht op UUID. Argument: uuid (String!, verplicht).
graphql
query GetP2000Message($uuid: String!) {
p2000Message(uuid: $uuid) {
uuid message sended created changed
capcodes { uuid name }
}
}Variabelen: { "uuid": "<bericht-uuid>" }
2.3 p2000Capcodes
Lijst P2000-capcodes. Paginering: first, page. Optioneel filter: filter (type P2000CapcodeFilterInput).
P2000CapcodeFilterInput: sended (object met from en to, ISO-8601), capcodes (array van UUIDs). Beide optioneel.
graphql
query GetP2000Capcodes($first: Int, $page: Int, $filter: P2000CapcodeFilterInput) {
p2000Capcodes(first: $first, page: $page, filter: $filter) {
uuid name created changed
discipline { uuid name }
}
}Variabelen (voorbeeld): { "first": 20, "page": 1, "filter": { "sended": { "from": "2025-01-01T00:00:00Z", "to": "2025-12-31T23:59:59Z" } } }
2.4 p2000Capcode
Eén P2000-capcode op UUID. Argument: uuid (String!, verplicht).
graphql
query GetP2000Capcode($uuid: String!) {
p2000Capcode(uuid: $uuid) {
uuid name created changed discipline { uuid name }
}
}Variabelen: { "uuid": "<capcode-uuid>" }
3. Mutations
3.1 register
Maakt organisatie, environment en user in één keer. Input: RegisterInput! — velden: email (verplicht), password (optioneel), organizationName, environmentName, displayName (alle optioneel).
graphql
mutation Register($input: RegisterInput!) {
register(input: $input) {
user { uuid displayName created email { address verified } hasPassword }
organization { uuid name }
environment { uuid name }
}
}Variabelen (minimaal): { "input": { "email": "[email protected]" } }
Met wachtwoord: { "input": { "email": "[email protected]", "password": "secret" } }
Volledig: { "input": { "email": "...", "password": "...", "organizationName": "...", "environmentName": "default", "displayName": "..." } }
3.2 createOrganization
Input: CreateOrganizationInput! — veld name.
graphql
mutation CreateOrganization($input: CreateOrganizationInput!) {
createOrganization(input: $input) { uuid name created changed }
}Variabelen: { "input": { "name": "Mijn Bedrijf" } }
3.3 createEnvironment
Input: CreateEnvironmentInput! — velden organizationUuid, name.
graphql
mutation CreateEnvironment($input: CreateEnvironmentInput!) {
createEnvironment(input: $input) {
uuid name created changed organization { uuid name }
}
}Variabelen: { "input": { "organizationUuid": "<org-uuid>", "name": "production" } }
3.4 createP2000Message
Input: CreateP2000MessageInput! — velden: message, sended (ISO-8601), optioneel capcodes (array van objecten met name).
graphql
mutation CreateP2000Message($input: CreateP2000MessageInput!) {
createP2000Message(input: $input) {
uuid message sended created capcodes { uuid name }
}
}Variabelen: { "input": { "message": "A1 DIA ...", "sended": "2025-10-09T14:30:00Z", "capcodes": [{ "name": "0100001" }] } }
4. Filtertypes (samenvatting)
- DateRangeInput:
from(DateTime!, ISO-8601),to(DateTime!, ISO-8601). - P2000MessageFilterInput:
sended(DateRangeInput),capcodes([String]). Voor query p2000Messages. - P2000CapcodeFilterInput:
sended(DateRangeInput),capcodes([String]). Voor query p2000Capcodes.
5. Overzicht operaties
| Type | Operaties |
|---|---|
| Queries | p2000Messages, p2000Message, p2000Capcodes, p2000Capcode |
| Mutations | register, createOrganization, createEnvironment, createP2000Message |
Alle requests: POST https://graphql.persmonitor.nl/graphql met JSON body { "query": "...", "variables": { ... } }.