> For the complete documentation index, see [llms.txt](https://developers.mobilic.beta.gouv.fr/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.mobilic.beta.gouv.fr/guides/effectuer-une-requete-a-lapi.md).

# Effectuer une requête à l'API

## GraphQL

Contrairement aux architectures de type REST où le verbe HTTP et l'URI vont caractériser l'opération, toutes les requêtes à l'API GraphQL partageront le même verbe HTTP `POST` et le même URI.

{% hint style="info" %}
Cet URI unique dépend de l'environnement :&#x20;

* <https://api.mobilic.beta.gouv.fr/graphql> pour l'environnement de production
* <https://api.sandbox.mobilic.beta.gouv.fr/graphql> pour l'environnement bac à sable
  {% endhint %}

Le détail de l'opération sera précisé dans le corps JSON de la requête.

## Exemple simple <a href="#exemple-simple" id="exemple-simple"></a>

Toutes les actions réalisables sur l'API nécessitent d'avoir [créé un compte Mobilic](/guides/inscription-et-rattachement-des-salaries.md), et presque toutes requièrent d'être [authentifié](/guides/authentification.md).

Pour cet exemple basique, nous allons prendre une opération qui affiche l'email, le nom, et l'identifiant Mobilic de l'utilistateur, à l'aide de l'opération `me`

Le corps de la requête, au format JSON, doit contenir un champ `query` qui précise l'opération. La valeur de ce champ `query` est pour l'opération `me`:

```graphql
query {
    me {
        id
        lastName
        email
    }
}
```

Pour constituer le corps JSON de la requête, il suffit de mettre le texte de l'opération dans une chaîne de caractères, en échappant les guillemets à l'aide d'un anti-slash et en remplaçant les sauts de ligne par  :

```json
{
    \"query\": \"query {\n me {\n id\n lastName\n email\n }\n }\"
}
```

{% hint style="info" %}
Cette requête nécessite d'être authentifié, il faut donc rajouter les header HTTP d'authentification [décrit dans cette page](/guides/authentification.md#utilisation-des-jetons).
{% endhint %}

Pour soumettre la requête à l'API il est possible d'utiliser :

* la [console](https://mobilic.beta.gouv.fr/developers/playground) pour une expérience interactive. Voir le [guide de la console](/guides/utiliser-la-console.md).
* n'importe quelle librairie HTTP (`curl`, `requests` en `python`, ...)

### Via cURL <a href="#via-curl" id="via-curl"></a>

Il suffit de constituer le corps JSON de la requête à partir du champ `query`.

```bash
curl \
  -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer {access_token}" \
  -H "X-CLIENT-ID: {client_id}" \
  --data "{ \"query\": \"query {\n me {\n id\n lastName\n email\n }\n }\"}" \
  https://api.sandbox.mobilic.beta.gouv.fr/graphql
```

Pour plus d'informations sur la manière d'écrire des opérations GraphQL vous pouvez consulter notre [guide sur les opérations GraphQL](/guides/syntaxe-des-operations-graphql.md).
