> ## Documentation Index
> Fetch the complete documentation index at: https://www.ayrshare.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Vue d'ensemble de l'API GraphQL

> Interrogez les opérations de réseaux sociaux Ayrshare prises en charge via un point de terminaison GraphQL unique.

L'API GraphQL expose un sous-ensemble pris en charge des fonctionnalités REST d'Ayrshare via un point de terminaison unique. Chaque champ exposé appelle le même contrôleur sous-jacent que son équivalent REST, de sorte que l'authentification, les droits d'accès, les quotas et les données de réponse suivent le comportement REST. L'API REST reste l'API la plus complète ; utilisez le schéma ou l'Explorer pour voir exactement quelles opérations GraphQL prend en charge.

Ce qu'elle apporte, c'est la possibilité de demander plusieurs choses en une seule requête et de découvrir la surface GraphQL actuellement prise en charge à partir du schéma lui-même, sans lire la documentation page par page. Le schéma décrit chaque champ de requête pris en charge ainsi que les sélections typées disponibles sur les réponses structurées ; les opérations qui renvoient l'enveloppe REST sous forme de `JSON` conservent l'intégralité de ce payload.

```
https://api.ayrshare.com/graphql
```

Envoyez un `POST` avec un corps JSON contenant une `query`, exactement comme avec n'importe quel point de terminaison GraphQL. `GET` et `DELETE` renvoient `405 Method Not Allowed` : les requêtes via `GET` sont facultatives dans la spécification GraphQL et ne sont pas prises en charge ici.

<h2 id="your-first-query">
  Votre première requête
</h2>

```bash theme={"system"}
curl -X POST https://api.ayrshare.com/graphql \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "{ postHistory(lastDays: 7) }"}'
```

La réponse est la même enveloppe JSON que celle renvoyée par le [point de terminaison REST d'historique](/docs/apis/history/get-history), encapsulée dans le champ `data` de GraphQL :

```json theme={"system"}
{
  "data": {
    "postHistory": {
      "history": [
        { "id": "RkQ8uXg2jT7bNd1Wq0Ya", "status": "success", "post": "Hello world" }
      ],
      "refId": "9d2a7c41f0b8e6d35a1c",
      "count": 1,
      "lastUpdated": "2026-09-24T12:00:00.000Z",
      "nextUpdate": "2026-09-24T12:00:00.000Z"
    }
  }
}
```

<h2 id="asking-for-several-things-at-once">
  Demander plusieurs choses à la fois
</h2>

La raison de recourir à GraphQL, c'est une requête comme celle-ci, qui nécessiterait quatre appels REST :

```graphql theme={"system"}
{
  history: postHistory(lastDays: 7)
  accounts: user
  comments: comments(id: "abc123")
  analytics: socialAnalytics(platforms: [INSTAGRAM])
}
```

Un seul aller-retour renvoie les quatre. Notez qu'il s'agit de **quatre champs d'opération racine et de quatre appels API pour la facturation**, et non d'un seul. La sélection de champs de réponse imbriqués n'ajoute pas d'appels : consultez [Limites et facturation](/docs/apis/graphql/limits).

<h2 id="authentication">
  Authentification
</h2>

Identique à REST. Envoyez votre API Key sous forme de bearer token :

```
Authorization: Bearer YOUR_API_KEY
```

Si votre compte utilise des User Profiles, les opérations qui exposent `profileKey` peuvent sélectionner un profil de deux manières :

<ul class="custom-bullets">
  <li>Envoyez <code>Profile-Key</code> comme valeur par défaut pour toute la requête.</li>
  <li>Passez <code>profileKey</code> sur un champ individuel pour remplacer cette valeur par défaut, ce qui permet à une même requête d'agir sur plusieurs profils.</li>
</ul>

L'argument du champ l'emporte lorsque les deux sont présents. Les champs de niveau compte ou réservés au compte principal n'exposent pas `profileKey` et peuvent rejeter un en-tête `Profile-Key` ; par exemple, `createProfile` doit utiliser l'API Key principale sans cet en-tête. Vérifiez la définition de schéma de chaque champ pour connaître sa portée, et consultez [Gérer plusieurs utilisateurs](/docs/multiple-users/business-plan-overview) pour comprendre le fonctionnement des Profile Keys.

<h2 id="try-it-without-writing-code">
  Essayez sans écrire de code
</h2>

Le [GraphQL Explorer](https://app.ayrshare.com/graphql-explorer) est un navigateur interactif du schéma actuel. Il liste chaque opération GraphQL disponible avec ses arguments et ses descriptions, propose l'autocomplétion pendant la saisie et exécute les requêtes sur votre compte.

Vous n'avez pas besoin d'API Key pour parcourir le schéma : le schéma est public, tout comme cette documentation. Vous en avez besoin d'une pour exécuter une requête, car chaque opération passe par la même authentification que REST.

<h2 id="should-you-use-graphql-or-rest">
  Faut-il utiliser GraphQL ou REST ?
</h2>

REST reste l'interface principale, celle autour de laquelle sont construits la majeure partie de notre documentation, nos [SDK](/docs/packages-guides/overview) et nos intégrations. Tournez-vous vers GraphQL lorsque :

<ul class="custom-bullets">
  <li>Vous avez besoin de plusieurs données sans lien entre elles et souhaitez les obtenir en un seul aller-retour.</li>
  <li>Vous voulez des noms d'opérations, des arguments, des objets d'entrée, des enums et des sélections de réponse typées lisibles par une machine. La plupart des réponses restent en <code>JSON</code> afin de conserver l'enveloppe REST complète ; <code>createPost</code> renvoie actuellement un <code>PostResult</code> typé.</li>
  <li>Vous explorez l'API et voulez voir ce qui existe sans naviguer entre les pages de documentation.</li>
</ul>

Restez sur REST lorsque :

<ul class="custom-bullets">
  <li>Vous téléversez des fichiers. Les octets des médias ne peuvent pas transiter par une requête GraphQL : consultez <a href="/docs/apis/graphql/using-the-api#uploading-media">Téléverser des médias</a> pour la méthode prise en charge.</li>
  <li>Vous utilisez l'un de nos <a href="/docs/packages-guides/overview">SDK ou intégrations no-code</a>, qui communiquent en REST.</li>
  <li>Vous souhaitez le moins de dépendances possible. Un appel REST ne nécessite rien d'autre qu'un client HTTP.</li>
</ul>

Les deux interfaces sont prises en charge côte à côte, et vous pouvez les combiner librement dans une même intégration.

<h2 id="read-next">
  À lire ensuite
</h2>

<ul class="custom-bullets">
  <li>[Utiliser l'API](/docs/apis/graphql/using-the-api) : trouver les opérations, les types d'arguments et téléverser des médias.</li>
  <li>[Erreurs](/docs/apis/graphql/errors) : quels échecs modifient le statut HTTP, pourquoi les opérations échouées renvoient tout de même HTTP 200, et comment gérer le succès partiel.</li>
  <li>[Limites et facturation](/docs/apis/graphql/limits) : plafonds de taille des requêtes et mode de décompte des requêtes.</li>
</ul>
