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

# Historique des publications

> Historique des publications Ayrshare

export const XByoNotice = () => <Info>
  <strong>Targeting X/Twitter?</strong> Starting March 31, 2026, all X operations require your own API credentials. After linking X via OAuth, include these 2 headers in your request:
  <br /><br />
  <code>X-Twitter-OAuth1-Api-Key</code> — Your API Key (Consumer Key)<br />
  <code>X-Twitter-OAuth1-Api-Secret</code> — Your API Key Secret (Consumer Secret)
  <br /><br />
  <strong>One-time setup per Ayrshare account.</strong> You create one X Developer App and reuse the same API Key and Secret across every sub-profile / end-user you link. You do <em>not</em> create a new app per customer.
  <br /><br />
  Not linked yet? See the <a href="/dashboard/connect-social-accounts/x-twitter-byo-keys">full setup guide</a> to connect your X account.
  <br /><br />
  Your keys are never logged or stored by Ayrshare.
</Info>;

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "business") {
      displayPlans = ["Launch", "Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "Launch", "Business", "Enterprise"];
    }
  }
  return <Note>
Available on {displayPlans.length === 1 ? "the " : ""}
{displayPlans.join(", ").replace(/\b\w/g, l => l.toUpperCase())}{" "}
{displayPlans.length > 1 ? "plans" : "plan"}.

{maxPackRequired && <span onClick={() => window.open('https://www.ayrshare.com/docs/additional/maxpack', '_self')} className="flex items-center mt-2 cursor-pointer">
 <span className="px-1.5 py-0.5 rounded text-sm" style={{
    backgroundColor: '#C264B6',
    color: 'white',
    fontSize: '12px'
  }}>
   Max Pack required
 </span>
</span>}
</Note>;
};

export const HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/apis/overview#authorization">API Key</a> of the Primary Profile.
      <br />
      <br />
      Format: <code>Authorization: Bearer API_KEY</code>
    </ParamField>
    {!noProfileKey && (profileKeyRequired ? <ParamField header="Profile-Key" type="string" required>
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField> : <ParamField header="Profile-Key" type="string">
          <a href="/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

<XByoNotice />

Obtenez un historique des publications envoyées via Ayrshare, par ordre décroissant (de la plus récente à la plus ancienne).

Avec ce point de terminaison, vous pouvez récupérer les publications d'une plage de dates spécifique, d'un statut, d'un réseau social ou des n derniers jours.

Valeurs des champs `status` de l'historique :

<ul class="custom-bullets">
  <li>
    `awaiting approval` : Les publications sont en attente d'approbation via le [workflow
    d'approbation](/apis/post/overview#approval-workflow).
  </li>

  <li>
    `deleted` : La publication a été supprimée. Remarque : les publications supprimées ne sont renvoyées qu'avec le filtre de requête
    de statut. Veuillez consulter ci-dessous.
  </li>

  <li>`error` : Une erreur s'est produite avec un ou plusieurs réseaux sociaux.</li>
  <li>`paused` : Une publication planifiée qui a été mise en pause.</li>
  <li>`pending` : La publication n'a pas encore été traitée. Il s'agit généralement d'une publication planifiée.</li>
  <li>`success` : La publication a été envoyée avec succès à tous les réseaux sociaux.</li>
</ul>

Informations complémentaires :

<ul class="custom-bullets">
  <li>
    L'[ID de publication Ayrshare](/apis/overview#ayrshare-post-id) est renvoyé dans le champ `id` de la réponse.
  </li>

  <li>
    Pour récupérer les publications provenant de l'extérieur d'Ayrshare, telles que les publications créées manuellement directement
    sur le réseau social, utilisez le point de terminaison [history platform](/apis/history/history-platform).
  </li>

  <li>
    Si seule une publication individuelle est requise, utilisez le point de terminaison [post history by
    id](/apis/history/get-history-id).
  </li>

  <li>
    Les résultats JSON du point de terminaison de l'historique sont mis en cache pendant 1 minute si la `limit` est supérieure à la
    valeur par défaut de 25.
  </li>
</ul>

## Paramètres d'en-tête

<HeaderAPI />

## Paramètres de requête

<ParamField query="limit" type="number" default={25}>
  Renvoie les <em>n</em> dernières publications. Par exemple, si vous ne souhaitez que la publication la plus récente, définissez `limit=1`.
  Si absent, renvoie tous les enregistrements contenus dans `lastDays`.

  Par défaut : `25` publications. Valeur maximale : `1000`.
</ParamField>

<ParamField query="platforms" type="array">
  Filtrer par plateformes de réseaux sociaux. Valeurs de plateforme : `bluesky`, `facebook`, `gmb`, `instagram`,
  `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter`,
  `youtube`. Remarque : utilise la logique `OR` : `["facebook", "instagram"]` renvoie les publications de l'un ou l'autre.
</ParamField>

<ParamField query="startDate" type="string">
  Renvoie les publications à partir de cette date de début incluse. Date de début pour l'historique au format ISO 8601.
  Par exemple, utilisez le format `YYYY-MM-DDThh:mm:ssZ` et envoyez sous forme de `2026-07-08T12:30:00Z`. Veuillez consulter
  [utctime](https://www.utctime.net/) pour plus d'exemples.
</ParamField>

<ParamField query="endDate" type="string">
  Renvoie les publications jusqu'à cette date de fin incluse. Date de fin pour l'historique au format ISO 8601. Par
  exemple, utilisez le format `YYYY-MM-DDThh:mm:ssZ` et envoyez sous forme de `2026-07-08T12:30:00Z`. Veuillez consulter
  [utctime](https://www.utctime.net/) pour plus d'exemples.
</ParamField>

<ParamField query="lastDays" type="number" default={30}>
  Renvoie les publications des n derniers jours par date de publication, c'est-à-dire `scheduleDate`. Par défaut 30 jours.

  <ul class="custom-bullets">
    <li>Le `lastDays` sera ignoré si `startDate` et `endDate` sont fournis.</li>
    <li>Si la valeur est zéro 0, renvoie l'historique complet des publications.</li>
    <li>Si la valeur est supérieure à 0, renvoie les publications des n derniers jours.</li>

    <li>
      Par exemple, `lastDays=5` renvoie les publications des 5 derniers jours et `lastDays=0` renvoie toutes les publications
      déterminées par la `limit`.
    </li>
  </ul>
</ParamField>

<ParamField query="status" type="string">
  Filtrer par statut actuel de la publication. Valeurs valides : `success`, `error`, `processing`, `pending`, `paused`, `deleted` et `awaiting approval`.
  Processing indique que la publication est en cours d'envoi. Pending indique que la publication est planifiée pour être publiée à une date future.

  <Info>
    Les publications supprimées ne sont pas renvoyées par défaut. Elles ne sont renvoyées qu'avec le filtre de requête de statut défini sur `status=deleted`.
  </Info>
</ParamField>

<ParamField query="type" type="string">
  Le type de publication à récupérer, soit les publications envoyées immédiatement, soit les publications planifiées à l'aide du champ
  `scheduleDate`. Valeurs : `immediate` ou `scheduled`.
</ParamField>

<ParamField query="autoRepostId" type="string">
  Lors de la création d'une republication automatique, un ID est attribué pour suivre cette série de publications.
  Récupérez les publications par ID de republication automatique ou utilisez la valeur `all` pour obtenir toutes les republications automatiques.
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET https://api.ayrshare.com/api/history?startDate=2025-01-01T12:30:00Z&endDate=2025-03-01T12:30:00&limit=100
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";

  fetch("https://api.ayrshare.com/api/history?startDate=2025-01-01T12:30:00Z&endDate=2025-03-01T12:30:00&limit=100", {
        method: "GET",
        headers: {
          "Authorization": `Bearer ${API_KEY}`
        }
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

  ```python Python theme={"system"}
  import requests

  headers = {'Authorization': 'Bearer API_KEY'}

  r = requests.get('https://api.ayrshare.com/api/history?startDate=2025-01-01T12:30:00Z&endDate=2025-03-01T12:30:00&limit=100', headers=headers)

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php

  $apiUrl = 'https://api.ayrshare.com/api/history?startDate=2025-01-01T12:30:00Z&endDate=2025-03-01T12:30:00&limit=100';
  $apiKey = 'API_KEY';  // Replace 'API_KEY' with your actual API key

  $headers = [
      'Content-Type: application/json',
      'Authorization: Bearer ' . $apiKey,
  ];

  $curl = curl_init($apiUrl);
  curl_setopt_array($curl, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER => $headers
  ]);

  $response = curl_exec($curl);

  if ($response === false) {
      echo 'Curl error: ' . curl_error($curl);
  } else {
      echo json_encode(json_decode($response), JSON_PRETTY_PRINT);
  }

  curl_close($curl);

  ```

  ```csharp C# theme={"system"}
  using System;
  using System.Net.Http;
  using System.Threading.Tasks;

  namespace HistoryGETRequest_csharp
  {
  class History
  {
      static async Task Main(string[] args)
      {
          string API_KEY = "API_KEY";
          string url = "https://api.ayrshare.com/api/history?startDate=2025-01-01T12:30:00Z&endDate=2025-03-01T12:30:00&limit=100";

          using (var client = new HttpClient())
          {
              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

              try
              {
                  var response = await client.GetStringAsync(url);
                  Console.WriteLine(response);
              }
              catch (HttpRequestException ex)
              {
                  Console.WriteLine($"Error: {ex.Message}");
              }
          }
      }
  }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
    "history": [
      {
          "errors": [],
          "post": "This is the  post I sent",
          "platforms": [
              "twitter",
              "facebook"
          ],
          "postIds": [
              {
                  "status": "success",
                  "id": "1288968500063775749",    // Twitter Social Post ID
                  "platform": "twitter"
              },
              {
                  "id": "104923907983682_108683297607743", // Facebook Social Post ID
                  "status": "success",
                  "platform": "facebook"
              }
          ],
          "urls": [],
          "type": "now",
          "notes": "Approved by John Smith",  // Reference notes set via /post
          "created": "2022-05-20T17:25:06Z",
          "status": "deleted",
          "scheduleDate": {    // In a future release changed to "scheduleDate": "2020-11-05T12:21:29Z"
              "_seconds": 1604578889,
              "_nanoseconds": 211000000,
              "utc": "2020-11-05T12:21:29Z"
          },
          "id": "rhn6u7wwz2WxGv6MZGK9" // Ayrshare Top-Level Post ID
      },
      {
          "status": "success",
          "platforms": [
              "twitter",
              "facebook"
          ],
          "created": "2022-05-20T17:25:06Z",
          "post": "Sometimes we need to take a break for lunch.",
          "scheduleDate": {    // In a future release changed to "scheduleDate": "2020-11-05T12:21:29Z"
              "_seconds": 1604578889,
              "_nanoseconds": 211000000,
              "utc": "2020-11-05T12:21:29Z"
          },
          "type": "now",
          "postIds": [
              {
                  "platform": "twitter",
                  "id": "1288890036000983105", // Twitter Social Post ID
                  "status": "success"
              },
              {
                  "id": "104923907983682_108329970009742", // Facebook Social Post ID
                  "status": "success",
                  "platform": "facebook",
                  "isVideo": true // Video post
              }
          ],
          "errors": [],
          "urls": [],
          "id": "wWIY0OEirdNeYSJYm1Xa" // Ayrshare Post ID
      },
      {   // Awaiting approval post - Approved by user
          "approved": true,
          "approvedBy": "9abf1426d6ce9122ef11c7222e1",
          "approvedDate": "2025-06-06T12:28:12Z",
          "created": "2025-06-06T12:27:56Z",
          "errors": [],
          "id": "sujQsrXtroJU0NEOlY38",
          "mediaUrls": [],
          "platforms": [
              "twitter"
          ],
          "post": "I failed my way to success. - Thomas Edison",
          "postIds": [
              {
                  "status": "success",
                  "id": "193096515330813",
                  "postUrl": "https://twitter.com/RetiretyHQ/status/19309651533081",
                  "platform": "twitter"
              }
          ],
          "profileTitle": "Primary Profile",
          "refId": "9abf1426d6ce9122ef11c7222e1",
          "requiresApproval": true,
          "scheduleDate": "2025-06-06T12:27:56Z",
          "shortenLinks": false,
          "status": "success",
          "type": "now"
      },
      {   // Awaiting approval post - Rejected by user
          "approved": false,
          "created": "2025-06-06T12:23:48Z",
          "id": "XL5xHeNK8HGTg07qxzmd",
          "mediaUrls": [],
          "platforms": [
              "twitter"
          ],
          "post": " Honesty is the first chapter in the book of wisdom. - Thomas Jefferson",
          "profileTitle": "Primary Profile",
          "refId": "9abf1426d6ce9122ef11c72bd62eddw2",
          "rejectedBy": "9abf1426d6ce9122ef11c7222e1",
          "rejectedDate": "2025-06-06T12:23:58Z",
          "requiresApproval": true,
          "scheduleDate": "2025-06-06T12:23:48Z",
          "shortenLinks": false,
          "status": "awaiting approval",
          "type": "now"
      }
          
     ],
      "refId": "9abf1426d6ce9122ef11c72bd62e59807c5cc083",
      "count": 100,
      "lastUpdated": "2025-04-05T22:44:14.209Z",
      "nextUpdate": "2025-04-05T22:45:14.209Z"
  }
  ```

  ```json 400: History not found theme={"system"}
  {
    "action": "history",
    "status": "error",
    "code": 221,
    "message": "History not found for the past 30 days. Please see the docs on how to retrieve additional history. .../ayrshare.com/rest-api/endpoints/history#list-history-of-sent-and-scheduled-posts"
  }
  ```
</ResponseExample>
