API GraphQL

L'API GraphQL de demarches-simplifiees.fr permet de consulter :

  • les informations d'une démarche,

  • la liste et les détails des dossiers d'une démarche,

  • les détails d'un dossier spécifique.

Elle permet également de modifier certaines informations d'un dossier :

  • Envoyer un message à l'usager d'un dossier ;

  • Changer l'état d'un dossier (accepté, refusé, etc.)

Aperçu général de GraphQL

Cette API suit le paradigme GraphQL. Pour plus d'informations sur le fonctionnement de GraphQL en général, vous pouvez consulter les liens suivants :

Accéder à l'API GraphQL de demarches-simplifiees.fr

L'API est accessible à l'adresse https://www.demarches-simplifiees.fr/api/v2/graphql. Elle renvoie des données au format JSON, à travers un transport HTTPS.

Pour construire une requête et interpréter les réponses, consultez la documentation complète du schéma de l'API.

Authentification

Tous les appels sont authentifiés et doivent donc fournir un jeton valide qui est accessible dans la partie profil de l'administrateur. Ce jeton doit être fourni dans l'en-tête HTTP Authorization de la requête.

Authorization: Bearer token=valeur_du_jeton.

post
GraphQL

https://www.demarches-simplifiees.fr/v2/graphql
Le point d'entrée de l'API GraphQL.
Request
Response
Headers
Content-Type
required
string
application/json
Authorization
required
string
Le jeton de l'administrateur
Body Parameters
query
required
string
La requête GraphQL
variables
optional
object
Les variables de la requête
200: OK
Cake successfully retrieved.
{
"data": {
"dossier": {
"id": "RG9zc2llci0xMDMyODgy",
"number": "1032882"
}
},
"errors": [
{
"message": "Field 'dosier' doesn't exist on type 'Query'",
"locations": [
{
"line": 2,
"column": 3
}
],
"path": [
"query getDossier",
"dosier"
],
"extensions": {
"code": "undefinedField",
"typeName": "Query",
"fieldName": "dosier"
}
}
]
}

Exemple de requête

Récupérer les informations d'une démarche, et les dossiers associés :

query getDemarche($demarcheNumber: Int!) {
demarche(number: $demarcheNumber) {
id
number
title
champDescriptors {
id
type
label
}
dossiers(first: 10) {
nodes {
id
number
datePassageEnConstruction
datePassageEnInstruction
dateTraitement
dateDerniereModification
usager {
email
}
champs {
id
label
... on TextChamp {
value
}
... on DecimalNumberChamp {
value
}
... on IntegerNumberChamp {
value
}
... on CheckboxChamp {
value
}
... on DateChamp {
value
}
... on DossierLinkChamp {
dossier {
id
}
}
... on MultipleDropDownListChamp {
values
}
... on LinkedDropDownListChamp {
primaryValue
secondaryValue
}
... on PieceJustificativeChamp {
url
}
... on CarteChamp {
geoAreas {
source
geometry {
type
coordinates
}
}
}
}
}
pageInfo {
hasNextPage
endCursor
}
}
}
}

Pour plus d'informations sur le format des requêtes et des réponses, consultez la documentation complète du schéma de l'API.