API GraphQL

Pour être informé des évolutions de l'API, vous pouvez vous inscrire à notre newsletter dédiée

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.)

Présentation de l'API

3 minutes pour tout savoir de notre API

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

Point d'entrée de l'API

L'API est accessible à l'adresse https://www.demarches-simplifiees.fr/api/v2/graphql (cette adresse n'est pas visitable dans un navigateur). 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.

Éditeur de requêtes en ligne

Une fois authentifié en tant qu'administrateur disposant d'un token, vous pouvez également accéder à l'éditeur de requêtes en ligne (attention, ne confondez pas cette adresse avec celle de l'endpoint, qui ressemble):

https://www.demarches-simplifiees.fr/graphql

Vous êtes un organisme public, un intégrateur, une SSII ou un éditeur, et vous souhaitez tester l'API Graph QL

Vous devez effectuer une démarche auprès des équipes DS et pour cela remplir une demande à l'adresse suivante.

Votre demande sera examinée, et vous recevrez un token de test, ainsi qu'un accès à un formulaire de test qui vous permettra d'effectuer des saisies de dossiers puis de tester les 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/api/v2/graphql
Le point d'entrée de l'API GraphQL.
Request
Response
Request
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
Response
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

Pour tester que tout fonctionne bien

Pour tester l'API, le plus simple est d'effectuer une requête curl telle que ci dessous. Le principe est le même avec un autre client HTTP: remplacez votre_token et votre_id_de_demarche par les valeurs souhaitez, et n'oubliez pas de préciser le content-type :

curl 'https://www.demarches-simplifiees.fr/api/v2/graphql' \ --header "Authorization: Bearer votre_token" \ --header 'Content-Type: application/json' \ --data '{"query":"query{\n demarche(number: votre_id_de_demarche) {\n id,\n dossiers { nodes {\n id\n demandeur { ... on PersonnePhysique { \n civilite \n nom \n prenom \n } ... on PersonneMorale { siret }\n } }\n }\n } \n}"}'

Vous devriez alors obtenir des informations en sortie. S'il y a des dossiers dans votre démarche, cette requête vous donne les noms des demandeurs. Si la démarche s'adresse à des entreprises, vous aurez le numéro SIRET des demandeurs.

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

Voici une requête plus lisible, mais plus complexe, qui va chercher beaucoup d'informations sur les dossiers

query getDemarche($demarcheNumber: Int = 1234) {
demarche(number: $demarcheNumber) {
id
number
title
champDescriptors {
id
type
label
}
dossiers(first: 10) {
nodes {
id
number
datePassageEnConstruction
datePassageEnInstruction
dateTraitement
dateDerniereModification
usager {
email
}
demandeur {
... on PersonnePhysique {
civilite
nom
prenom
}
... on PersonneMorale {
siret
naf
entreprise {
siren
dateCreation
}
association {
rna
dateCreation
}
}
}
messages {
attachment {
filename
url
}
body
createdAt
}
avis {
attachment {
url
filename
}
dateQuestion
dateReponse
expert {
email
}
instructeur {
email
}
question
reponse
}
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 {
file {
byteSize
checksum
contentType
filename
url
}
}
... on CarteChamp {
geoAreas {
source
geometry {
type
coordinates
}
}
}
... on SiretChamp {
etablissement {
siret
naf
entreprise {
siren
dateCreation
}
association {
rna
dateCreation
}
}
}
}
}
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.

Pour être informé des évolutions de l'API, vous pouvez vous inscrire à notre newsletter dédiée