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

# Posts History

> 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 />

Ayrshare 経由で送信された投稿の履歴を、降順(最新から古い順)で取得します。

このエンドポイントを使用すると、特定の日付範囲、ステータス、ソーシャルネットワーク、または直近 n 日間の投稿を取得できます。

履歴の `status` フィールドの値:

<ul class="custom-bullets">
  <li>
    `awaiting approval`: 投稿は[承認ワークフロー](/apis/post/overview#approval-workflow) による承認を待機中です。
  </li>

  <li>
    `deleted`: 投稿は削除されました。注: 削除された投稿は status クエリフィルタを使用した場合にのみ返されます。下記をご覧ください。
  </li>

  <li>`error`: 1 つ以上のソーシャルネットワークでエラーが発生しました。</li>
  <li>`paused`: 一時停止されたスケジュール済み投稿。</li>
  <li>`pending`: 投稿はまだ処理されていません。通常はスケジュール済み投稿です。</li>
  <li>`success`: すべてのソーシャルネットワークへの投稿が正常に完了しました。</li>
</ul>

補足情報:

<ul class="custom-bullets">
  <li>
    [Ayrshare Post ID](/apis/overview#ayrshare-post-id) はレスポンスの `id` フィールドで返されます。
  </li>

  <li>
    ソーシャルネットワークで直接手動作成された投稿など、Ayrshare 以外で作成された投稿を取得するには、[history platform](/apis/history/history-platform) エンドポイントを使用します。
  </li>

  <li>
    単一の投稿のみが必要な場合は、[post history by id](/apis/history/get-history-id) エンドポイントを使用します。
  </li>

  <li>
    `limit` が既定値の 25 より大きい場合、history エンドポイントの JSON 結果は 1 分間キャッシュされます。
  </li>
</ul>

## ヘッダーパラメータ

<HeaderAPI />

## クエリパラメータ

<ParamField query="limit" type="number" default={25}>
  直近 <em>n</em> 件の投稿を返します。例えば最新の投稿のみが必要な場合は `limit=1` を指定します。
  指定がない場合は `lastDays` 内のすべてのレコードを返します。

  既定値: `25` 件。最大値: `1000`。
</ParamField>

<ParamField query="platforms" type="array">
  ソーシャルネットワークプラットフォームでフィルタします。プラットフォームの値: `bluesky`、`facebook`、`gmb`、`instagram`、
  `linkedin`、`pinterest`、`reddit`、`snapchat`、`telegram`、`threads`、`tiktok`、`twitter`、
  `youtube`。注: `OR` ロジックを使用します。`["facebook", "instagram"]` はいずれかからの投稿を返します。
</ParamField>

<ParamField query="startDate" type="string">
  この開始日を含めて以降の投稿を返します。履歴の開始日は ISO 8601 形式で指定します。
  例えば `YYYY-MM-DDThh:mm:ssZ` 形式を使用し、`2026-07-08T12:30:00Z` のように送信します。追加の例は
  [utctime](https://www.utctime.net/) をご覧ください。
</ParamField>

<ParamField query="endDate" type="string">
  この終了日を含めて以前の投稿を返します。履歴の終了日は ISO 8601 形式で指定します。
  例えば `YYYY-MM-DDThh:mm:ssZ` 形式を使用し、`2026-07-08T12:30:00Z` のように送信します。追加の例は
  [utctime](https://www.utctime.net/) をご覧ください。
</ParamField>

<ParamField query="lastDays" type="number" default={30}>
  投稿の公開日(`scheduleDate`)を基準として、直近 n 日間の投稿を返します。既定値は 30 日。

  <ul class="custom-bullets">
    <li>`startDate` と `endDate` が指定されている場合、`lastDays` は無視されます。</li>
    <li>値がゼロ 0 の場合、投稿履歴のすべてを返します。</li>
    <li>0 より大きい値の場合、直近 n 日間の投稿を返します。</li>

    <li>
      例えば `lastDays=5` は直近 5 日間の投稿を返し、`lastDays=0` は `limit` により決定される
      すべての投稿を返します。
    </li>
  </ul>
</ParamField>

<ParamField query="status" type="string">
  投稿の現在のステータスでフィルタします。有効な値: `success`、`error`、`processing`、`pending`、`paused`、`deleted`、および `awaiting approval`。
  Processing は投稿が現在送信中であることを示します。Pending は投稿が将来の日時に投稿されるようスケジュールされていることを示します。

  <Info>
    削除された投稿は既定では返されません。`status=deleted` のように status クエリフィルタを設定した場合にのみ返されます。
  </Info>
</ParamField>

<ParamField query="type" type="string">
  取得する投稿の種類。即時送信された投稿、または `scheduleDate` フィールドを用いてスケジュールされた投稿のいずれか。値: `immediate` または `scheduled`。
</ParamField>

<ParamField query="autoRepostId" type="string">
  自動再投稿を作成すると、そのシリーズの投稿を追跡するための ID が割り当てられます。
  自動再投稿 ID で投稿を取得するか、すべての自動再投稿を取得するには `all` を指定します。
</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>
