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

# Histórico de publicações

> Histórico de publicações do 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 />

Obtenha um histórico das publicações enviadas via Ayrshare, em ordem decrescente (das mais recentes para as mais antigas).

Com este endpoint você pode recuperar publicações de um intervalo de datas específico, por status, por rede social ou dos últimos n dias.

Valores do campo `status` do histórico:

<ul class="custom-bullets">
  <li>
    `awaiting approval`: publicações aguardando aprovação pelo [fluxo de
    aprovação](/apis/post/overview#approval-workflow).
  </li>

  <li>
    `deleted`: a publicação foi excluída. Observação: publicações excluídas só são retornadas com o
    filtro de status abaixo.
  </li>

  <li>`error`: ocorreu um erro em uma ou mais redes sociais.</li>
  <li>`paused`: uma publicação agendada que foi pausada.</li>
  <li>`pending`: a publicação ainda não foi processada. Normalmente uma publicação agendada.</li>
  <li>`success`: a publicação foi enviada com sucesso para todas as redes sociais.</li>
</ul>

Informações adicionais:

<ul class="custom-bullets">
  <li>
    O [Ayrshare Post ID](/apis/overview#ayrshare-post-id) é retornado no campo `id` da resposta.
  </li>

  <li>
    Para recuperar publicações originadas fora do Ayrshare, como as criadas manualmente
    diretamente na rede social, use o endpoint [history platform](/apis/history/history-platform).
  </li>

  <li>
    Se você precisar apenas de uma publicação individual, use o endpoint [post history by
    id](/apis/history/get-history-id).
  </li>

  <li>
    Os resultados JSON do endpoint de histórico são armazenados em cache por 1 minuto se o `limit`
    for maior que o valor padrão de 25.
  </li>
</ul>

## Parâmetros de cabeçalho

<HeaderAPI />

## Parâmetros de consulta

<ParamField query="limit" type="number" default={25}>
  Retorna as últimas <em>n</em> publicações. Por exemplo, se você quiser apenas a publicação mais recente, defina `limit=1`.
  Se não estiver presente, retornará todos os registros dentro de `lastDays`.

  Padrão: `25` publicações. Valor máximo: `1000`.
</ParamField>

<ParamField query="platforms" type="array">
  Filtra por plataformas de redes sociais. Valores de plataforma: `bluesky`, `facebook`, `gmb`,
  `instagram`, `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`,
  `twitter`, `youtube`. Observação: usa a lógica `OR`: `["facebook", "instagram"]` retorna
  publicações de qualquer uma.
</ParamField>

<ParamField query="startDate" type="string">
  Retorna publicações a partir desta data de início (inclusive). Data de início do histórico no
  formato ISO 8601. Por exemplo, use o formato `YYYY-MM-DDThh:mm:ssZ` e envie como
  `2026-07-08T12:30:00Z`. Veja [utctime](https://www.utctime.net/) para mais exemplos.
</ParamField>

<ParamField query="endDate" type="string">
  Retorna publicações até esta data final (inclusive). Data final do histórico no formato ISO
  8601\. Por exemplo, use o formato `YYYY-MM-DDThh:mm:ssZ` e envie como
  `2026-07-08T12:30:00Z`. Veja [utctime](https://www.utctime.net/) para mais exemplos.
</ParamField>

<ParamField query="lastDays" type="number" default={30}>
  Retorna as publicações dos últimos n dias pela data de publicação, ou seja, `scheduleDate`. Padrão: 30 dias.

  <ul class="custom-bullets">
    <li>`lastDays` será ignorado se `startDate` e `endDate` forem informados.</li>
    <li>Se o valor for 0, retornará todo o histórico de publicações.</li>
    <li>Se o valor for maior que 0, retornará as publicações dos últimos n dias.</li>

    <li>
      Por exemplo, `lastDays=5` retorna as publicações dos últimos 5 dias e `lastDays=0` retorna
      todas as publicações determinadas pelo `limit`.
    </li>
  </ul>
</ParamField>

<ParamField query="status" type="string">
  Filtra pelo status atual da publicação. Valores válidos: `success`, `error`, `processing`, `pending`, `paused`, `deleted` e `awaiting approval`.
  `processing` indica que a publicação está sendo enviada. `pending` indica que a publicação está agendada para uma data futura.

  <Info>
    Publicações excluídas não são retornadas por padrão. Elas só são retornadas com o filtro de status definido como `status=deleted`.
  </Info>
</ParamField>

<ParamField query="type" type="string">
  O tipo de publicação a recuperar: publicações enviadas imediatamente ou publicações agendadas
  usando o campo `scheduleDate`. Valores: `immediate` ou `scheduled`.
</ParamField>

<ParamField query="autoRepostId" type="string">
  Ao criar uma repostagem automática, um ID é atribuído para acompanhar essa série de publicações.
  Recupere publicações por auto repost ID ou use o valor `all` para obter todas as repostagens 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>
