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

# Historial de publicaciones

> Historial de publicaciones de 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 />

Obtén el historial de publicaciones enviadas a través de Ayrshare, en orden descendente (de más reciente a más antigua).

Con este endpoint puedes recuperar publicaciones de un rango de fechas concreto, un estado, una red social o de los últimos n días.

Valores del campo `status` en el historial:

<ul class="custom-bullets">
  <li>
    `awaiting approval`: Las publicaciones están a la espera de aprobación mediante el [flujo de
    aprobación](/apis/post/overview#approval-workflow).
  </li>

  <li>
    `deleted`: La publicación se ha eliminado. Nota: las publicaciones eliminadas solo se devuelven cuando
    se aplica el filtro de estado en la consulta. Consulta más abajo.
  </li>

  <li>`error`: Se produjo un error en una o varias redes sociales.</li>
  <li>`paused`: Una publicación programada que se ha pausado.</li>
  <li>`pending`: La publicación aún no se ha procesado. Suele tratarse de una publicación programada.</li>
  <li>`success`: La publicación se envió correctamente a todas las redes sociales.</li>
</ul>

Información adicional:

<ul class="custom-bullets">
  <li>
    El [ID de publicación de Ayrshare](/apis/overview#ayrshare-post-id) se devuelve en el campo `id` de la respuesta.
  </li>

  <li>
    Para recuperar publicaciones creadas fuera de Ayrshare, como las publicadas manualmente directamente
    en la red social, utiliza el endpoint [history platform](/apis/history/history-platform).
  </li>

  <li>
    Si solo necesitas una publicación concreta, utiliza el endpoint [historial de publicación por
    id](/apis/history/get-history-id).
  </li>

  <li>
    Los resultados JSON del endpoint de historial se almacenan en caché durante 1 minuto si `limit` es
    mayor que el valor por defecto de 25.
  </li>
</ul>

## Parámetros de cabecera

<HeaderAPI />

## Parámetros de consulta

<ParamField query="limit" type="number" default={25}>
  Devuelve las últimas <em>n</em> publicaciones. Por ejemplo, si solo quieres la publicación más reciente, usa `limit=1`.
  Si no se indica, devolverá todos los registros incluidos en `lastDays`.

  Valor por defecto: `25` publicaciones. Valor máximo: `1000`.
</ParamField>

<ParamField query="platforms" type="array">
  Filtra por plataformas de redes sociales. Valores de plataforma: `bluesky`, `facebook`, `gmb`, `instagram`,
  `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter`,
  `youtube`. Nota: utiliza lógica `OR`: `["facebook", "instagram"]` devuelve publicaciones de cualquiera de ellas.
</ParamField>

<ParamField query="startDate" type="string">
  Devuelve las publicaciones desde esta fecha de inicio inclusive. Fecha de inicio del historial en formato ISO 8601.
  Por ejemplo, usa el formato `YYYY-MM-DDThh:mm:ssZ` y envíalo como `2026-07-08T12:30:00Z`. Consulta
  [utctime](https://www.utctime.net/) para ver más ejemplos.
</ParamField>

<ParamField query="endDate" type="string">
  Devuelve las publicaciones hasta esta fecha de finalización inclusive. Fecha de finalización del historial en formato ISO 8601.
  Por ejemplo, usa el formato `YYYY-MM-DDThh:mm:ssZ` y envíalo como `2026-07-08T12:30:00Z`. Consulta
  [utctime](https://www.utctime.net/) para ver más ejemplos.
</ParamField>

<ParamField query="lastDays" type="number" default={30}>
  Devuelve las publicaciones de los últimos n días según la fecha de publicación, es decir, `scheduleDate`. Valor por defecto: 30 días.

  <ul class="custom-bullets">
    <li>`lastDays` se ignora si se proporcionan `startDate` y `endDate`.</li>
    <li>Si el valor es 0, se devolverá todo el historial de publicaciones.</li>
    <li>Si el valor es mayor que 0, se devolverán las publicaciones de los últimos n días.</li>

    <li>
      Por ejemplo, `lastDays=5` devuelve las publicaciones de los últimos 5 días y `lastDays=0` devuelve todas
      las publicaciones limitadas por `limit`.
    </li>
  </ul>
</ParamField>

<ParamField query="status" type="string">
  Filtra por el estado actual de la publicación. Valores válidos: `success`, `error`, `processing`, `pending`, `paused`, `deleted` y `awaiting approval`.
  `processing` indica que la publicación se está enviando en ese momento. `pending` indica que la publicación está programada para publicarse en una fecha futura.

  <Info>
    Las publicaciones eliminadas no se devuelven por defecto. Solo se devuelven cuando se aplica el filtro de estado en la consulta con `status=deleted`.
  </Info>
</ParamField>

<ParamField query="type" type="string">
  El tipo de publicación a recuperar: publicaciones enviadas inmediatamente o publicaciones programadas
  mediante el campo `scheduleDate`. Valores: `immediate` o `scheduled`.
</ParamField>

<ParamField query="autoRepostId" type="string">
  Al crear una repetición automática se asigna un ID para hacer seguimiento de esa serie de publicaciones.
  Recupera publicaciones por ID de auto repost o utiliza el valor `all` para obtener todas las repeticiones automáticas.
</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>
