Skip to content

Queries

Overzicht van alle beschikbare queries met voorbeelden.
Endpoint: POST https://graphql.persmonitor.nl/graphql


sessionValid

Geeft terug of de token nog geldig is. Stuur de token mee in de header Authorization: Bearer <token>. Handig voor de frontend om te checken of de gebruiker nog als ingelogd moet worden getoond. Response is true of false. Zie Token of cookie: hoe stuur je mee? voor hoe je de token of session-cookie meestuurt.

Geen argumenten.

Voorbeeld:

graphql
query SessionValid {
  sessionValid
}

Variabelen: niet nodig. Header: Authorization: Bearer <token>. true = token geldig, false = niet ingelogd of token verlopen.


me

Geeft de huidige gebruiker terug op basis van de token. Stuur de token mee in de header Authorization: Bearer <token>. Zonder token of met ongeldige token: me is null. Zie Token of cookie: hoe stuur je mee? voor hoe je de token of session-cookie meestuurt.
Tip: gebruik sessionValid voor een snelle check; gebruik me als je de user-gegevens nodig hebt.

Geen argumenten.

Voorbeeld:

graphql
query Me {
  me {
    uuid
    displayName
    created
    changed
    email { address verified }
    hasPassword
    isAdmin
  }
}

Variabelen: niet nodig. Header: Authorization: Bearer <token>. isAdmin is true voor admin-accounts en bepaalt o.a. toegang tot alle environments.


mySessions

Geeft alle actieve sessies (AuthSessions) voor de huidige gebruiker terug. Handig voor een “Waar ben ik ingelogd?”-overzicht en om sessies op afstand te beëindigen. Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query MySessions {
  mySessions {
    uuid
    ipAddress
    userAgent
    lastActivityAt
    expiresAt
    isCurrent
  }
}

Combineer dit met deleteSession of deleteOtherSessions (zie Mutations) om sessies op te ruimen.


currentEnvironment

Geeft het environment terug dat momenteel aan je token is gekoppeld. De monitor-app gebruikt dit voor de environment-switcher.

Vereist: Authorization: Bearer <token>.

Default: Als de sessie nog geen environment heeft, kiest de API automatisch het eerste environment waar je toegang toe hebt (alfabetisch op org- en env-naam) en koppelt dat aan je sessie.

Geen argumenten.

graphql
query CurrentEnvironment {
  currentEnvironment {
    uuid
    name
  }
}

Gebruik de mutatie setCurrentEnvironment(environmentUuid: String!) om te wisselen.


p2000Messages

Haalt een lijst van P2000-berichten op. Ondersteunt paginering (first, page) en optioneel filter (filter).

Argumenten:

ArgumentTypeVerplichtBeschrijving
firstIntNee (default: 10)Aantal resultaten per pagina.
pageIntNee (default: 1)Paginanummer.
filterP2000MessageFilterInputNeeZie Filters: sended (datumbereik from/to) en/of capcodes (lijst capcode-UUIDs).

Voorbeeld:

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 (optioneel) – uitgebreide filter:

json
{
  "first": 10,
  "page": 1,
  "filter": {
    "sended": {
      "from": "2025-01-01T00:00:00Z",
      "to": "2025-12-31T23:59:59Z"
    },
    "capcodes": ["uuid-capcode-1", "uuid-capcode-2"]
  }
}

Je kunt alleen sended, alleen capcodes, of beide gebruiken. Alle opties staan in Filters.


p2000Message

Haalt één P2000-bericht op via UUID.

Argumenten:

ArgumentTypeVerplichtBeschrijving
uuidString!JaUUID van het bericht.

Voorbeeld:

graphql
query GetP2000Message($uuid: String!) {
  p2000Message(uuid: $uuid) {
    uuid
    message
    sended
    created
    changed
    capcodes {
      uuid
      name
    }
  }
}

Variabelen:

json
{
  "uuid": "plak-hier-de-uuid-van-een-bericht"
}

p2000Capcodes

Haalt een lijst van P2000-capcodes op. Ondersteunt paginering en optioneel filter.

Argumenten:

ArgumentTypeVerplichtBeschrijving
firstIntNee (default: 10)Aantal resultaten per pagina.
pageIntNee (default: 1)Paginanummer.
filterP2000CapcodeFilterInputNeeZie Filters: sended (datumbereik) en/of capcodes (lijst UUIDs).

Voorbeeld:

graphql
query GetP2000Capcodes($first: Int, $page: Int, $filter: P2000CapcodeFilterInput) {
  p2000Capcodes(first: $first, page: $page, filter: $filter) {
    uuid
    name
    created
    changed
    discipline {
      uuid
      name
    }
  }
}

Variabelen (optioneel) – met filter:

json
{
  "first": 20,
  "page": 1,
  "filter": {
    "sended": {
      "from": "2025-01-01T00:00:00Z",
      "to": "2025-12-31T23:59:59Z"
    },
    "capcodes": ["uuid-1", "uuid-2"]
  }
}

Zonder filter: "filter": {} of weglaten. Uitgebreide uitleg: Filters.


p2000Capcode

Haalt één P2000-capcode op via UUID.

Argumenten:

ArgumentTypeVerplichtBeschrijving
uuidString!JaUUID van de capcode.

Voorbeeld:

graphql
query GetP2000Capcode($uuid: String!) {
  p2000Capcode(uuid: $uuid) {
    uuid
    name
    created
    changed
    discipline {
      uuid
      name
    }
  }
}

Variabelen:

json
{
  "uuid": "plak-hier-de-uuid-van-een-capcode"
}

myOrganizations

Geeft alle organisaties terug waar de huidige gebruiker lid van is. Inclusief per organisatie de gekoppelde environments. Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query MyOrganizations {
  myOrganizations {
    uuid
    name
    created
    changed
    environments {
      uuid
      name
      organization { name }
    }
  }
}

De monitor-app gebruikt dit voor de organisatie- en environment-switcher.


channels

Geeft alle kanalen (e-mail, SMS, Telegram, webhook, etc.) terug voor het huidige environment. Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query Channels {
  channels {
    uuid
    type
    name
    created
    changed
    emailAddress
    verified
    phoneNumber
    url
    headers { name value }
  }
}

monitors

Geeft alle P2000-monitoren terug voor het huidige environment. Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query Monitors {
  monitors {
    uuid
    name
    description
    active
    type
    query
    location
    locationMode
    locationLiveSourceId
    radius
    channels
    notificationRules
    created
    changed
  }
}

query, channels en notificationRules zijn JSON-strings. query bevat de filtergroepen (array van condities). channels is een object per type (email, sms, telegram, etc.) met arrays van channel-UUIDs. notificationRules is een array van regels per kanaal.


monitor

Haalt één monitor op via UUID (binnen het huidige environment).

Argumenten:

ArgumentTypeVerplichtBeschrijving
uuidString!JaUUID van de monitor.
graphql
query Monitor($uuid: String!) {
  monitor(uuid: $uuid) {
    uuid
    name
    description
    active
    type
    query
    location
    locationMode
    locationLiveSourceId
    radius
    channels
    notificationRules
    created
    changed
  }
}

apiTokens

Geeft alle API-tokens terug voor het huidige environment. Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query ApiTokens {
  apiTokens {
    uuid
    name
    tokenPreview
    scopes
    expiresAt
    created
  }
}

tokenPreview is een korte weergave (bijv. eerste 4 + laatste 4 tekens). Het volledige token wordt alleen bij aanmaken getoond.


apiToken

Haalt één API-token op via UUID (binnen het huidige environment).

Argumenten:

ArgumentTypeVerplichtBeschrijving
uuidString!JaUUID van het token.
graphql
query ApiToken($uuid: String!) {
  apiToken(uuid: $uuid) {
    uuid
    name
    tokenPreview
    scopes
    expiresAt
    created
  }
}

apiScopes

Geeft alle beschikbare scopes terug voor API-tokens (bijv. auth:login, monitors:read). Vereist Authorization: Bearer <token>.

Geen argumenten.

graphql
query ApiScopes {
  apiScopes {
    name
    description
  }
}