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.)
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 :
Introduction aux concepts et raisons d'être de GraphQL (en français)
Documentation officielle de la spécification GraphQL (en anglais)
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.
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 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.
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
.
{"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"}}]}
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.
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) {idnumbertitlechampDescriptors {idtypelabel}dossiers(first: 10) {nodes {idnumberdatePassageEnConstructiondatePassageEnInstructiondateTraitementdateDerniereModificationusager {}demandeur {... on PersonnePhysique {civilitenomprenom}... on PersonneMorale {siretnafentreprise {sirendateCreation}association {rnadateCreation}}}messages {attachment {filenameurl}bodycreatedAt}avis {attachment {urlfilename}dateQuestiondateReponseexpert {}instructeur {}questionreponse}champs {idlabel... on TextChamp {value}... on DecimalNumberChamp {value}... on IntegerNumberChamp {value}... on CheckboxChamp {value}... on DateChamp {value}... on DossierLinkChamp {dossier {id}}... on MultipleDropDownListChamp {values}... on LinkedDropDownListChamp {primaryValuesecondaryValue}... on PieceJustificativeChamp {file {byteSizechecksumcontentTypefilenameurl}}... on CarteChamp {geoAreas {sourcegeometry {typecoordinates}}}... on SiretChamp {etablissement {siretnafentreprise {sirendateCreation}association {rnadateCreation}}}}}pageInfo {hasNextPageendCursor}}}}
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