API ouverte

Consommer l'API du RNOAE

Le référentiel expose ses données publiques par deux façades servant le même fond : REST et GraphQL. Lecture seule, accessible librement, sans authentification ni inscription.

REST

/api/v1

GraphQL

/graphql

Points d'accès REST

Public
  • GET /public/organizations

    Annuaire paginé et recherche

  • GET /public/organizations/{code}

    Fiche par code unique

  • GET /public/organizations/{code}/chart

    Organigramme, sans occupant

  • GET /public/organization-types

    Types, pour le filtre d'annuaire

  • GET /organization-geo-points

    Implantations pour la carte

Conventions

Enveloppe
{ data, meta } en liste, { data } à l'unité, { error } en échec.
Pagination
page et limit — 20 par défaut, 100 au plus.
Filtres
search, type, departmentId, sortBy, order. Un terme de recherche prime sur les autres filtres.
Encodage
Encodez le terme recherché (sant%C3%A9) : un octet accenté brut est refusé par un 400. La recherche distingue les accents.
Débit
10 requêtes par seconde et par adresse. Au-delà, 429 avec Retry-After : ralentissez, puis réessayez.

Exemples

Requête REST

curl "/api/v1/public/organizations?limit=20&search=sant%C3%A9" \
  -H "Accept: application/json"

La même chose en GraphQL

curl /graphql \
  -H "Content-Type: application/json" \
  -d '{"query":"{ publicOrganizations(limit:20){ data{ code name acronym } meta{ total } } }"}'

# publicOrganizations, publicOrganization(code),
# publicOrganizationTypes, publicOrganizationChart(code).
# Profondeur plafonnée : les hiérarchies sont servies à plat.

Réponse — identité, type, rattachement, implantation

{
  "data": [
    {
      "id": "09a91d61-2f8a-40c6-9e59-2f4ed8b8ff5c",
      "name": "Agence des Systèmes d'Information et du Numérique",
      "acronym": "ASIN",
      "code": "ASIN-DEV",
      "description": "…",
      "departmentId": "OUE",
      "city": "Cotonou",
      "active": true,
      "type":   { "id": "af4cf9f9-…", "code": "AGE", "label": "Agence d'État" },
      "parent": { "id": "8890791b-…", "code": "MND-DEV", "name": "Ministère du Numérique" }
    }
  ],
  "meta": { "page": 1, "limit": 20, "total": 9 }
}