Skip to content

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": { ... } }variables is 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

TypeOperaties
Queriesp2000Messages, p2000Message, p2000Capcodes, p2000Capcode
Mutationsregister, createOrganization, createEnvironment, createP2000Message

Alle requests: POST https://graphql.persmonitor.nl/graphql met JSON body { "query": "...", "variables": { ... } }.