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

# 刪除貼文

> 使用貼文 ID 刪除貼文

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

使用 [/post](/apis/post/post) 端點回傳的貼文 ID 來刪除貼文。
你可以刪除已發布與已排程的貼文，但依照社群網路 `platform` 不同，行為會有所差異：

<ul class="custom-bullets">
  <li>所有社群網路 `platforms` 的已排程貼文都可以被刪除。</li>

  <li>
    除了 Instagram 與 TikTok 之外，所有社群網路 `platforms` 的已發布貼文
    都可以被刪除。Instagram 與 TikTok 並未提供刪除已發布貼文的 API 支援。如果你
    需要在這些平台上刪除已發布的貼文，必須透過各平台的行動 App 手動刪除。
  </li>

  <li>
    Facebook 不允許透過 API 刪除圖片 story（影片 story 可以刪除）。如果你
    需要刪除圖片 story，請開啟 Facebook 行動 App 手動刪除。
  </li>
</ul>

<Info>
  Instagram 與 TikTok 不支援透過 API 刪除貼文。請開啟
  Instagram 或 TikTok 的行動 App 進行刪除。

  Facebook 不支援透過 API 刪除圖片 story。請開啟
  Facebook 行動 App 進行刪除。
</Info>

## Header 參數

<HeaderAPI noProfileKey={false} />

## Body 參數

<ParamField path="id" type="string" required>
  要刪除的貼文的 Ayrshare Post ID。

  若已傳送 `bulk` 或 `deleteAllScheduled` 參數則非必填。

  如果貼文為已排程且仍處於 `pending` 狀態，則該排程貼文會被刪除，且不會發布到各平台。

  如果貼文已發布到各平台，則會從各平台上刪除。
</ParamField>

<ParamField path="bulk" type="array">
  要批次刪除的貼文 ID 字串陣列。

  若未傳送 `id` 或 `deleteAllScheduled` 參數則為必填。
</ParamField>

<ParamField path="deleteAllScheduled" type="boolean" default={false}>
  若設為 `true`，會刪除該 User Profile 下所有仍處於 pending 狀態的排程貼文（即尚未發布到各平台的貼文）。

  若設為 `true`，`id` 與 `bulk` 參數會被忽略。

  <Tip>
    這會刪除所有排程貼文，請務必謹慎使用。
  </Tip>
</ParamField>

<ParamField path="markManualDeleted" type="boolean" default={false}>
  若設為 `true`，Ayrshare 會將該貼文標記為已刪除，且不會嘗試在各平台上實際刪除該貼文。

  常見的使用情境是當你已在各平台上手動刪除該貼文，並想在 Ayrshare 中將其標記為已刪除。

  在將貼文標記為已刪除之前，請確認該貼文確實已在社群網路上被手動刪除。
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API Key" \
  -H 'Content-Type: application/json' \
  -d '{"id": "Post ID"}' \
  -X DELETE https://api.ayrshare.com/api/post
  ```

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

  fetch("https://api.ayrshare.com/api/post", {
        method: "DELETE",
        headers: {
          "Content-Type": "application/json",
          "Authorization": `Bearer ${API_KEY}`
        },
        body: JSON.stringify({ id }),
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

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

  payload = {'id': 'Post ID'}
  headers = {'Content-Type': 'application/json',
          'Authorization': 'Bearer API_KEY'}

  r = requests.delete('https://api.ayrshare.com/api/post',
      json=payload,
      headers=headers)

  print(r.json())
  ```

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

  $apiUrl = 'https://api.ayrshare.com/api/post';
  $apiKey = 'API_KEY';  // Replace 'API_KEY' with your actual API key
  $postId = '7NFVK0QIXET5rCUS9tmf'; // Replace with your actual post ID

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

  $data = json_encode(['id' => $postId]);

  $curl = curl_init($apiUrl);
  curl_setopt_array($curl, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_CUSTOMREQUEST => 'DELETE',
      CURLOPT_HTTPHEADER => $headers,
      CURLOPT_POSTFIELDS => $data
  ]);

  $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.Text;
  using System.Threading.Tasks;

  namespace DeletePOSTRequest_csharp
  {
      class Delete
      {
          private static readonly HttpClient client = new HttpClient();

          static async Task Main(string[] args)
          {
              string API_KEY = "API_KEY";
              string url = "https://api.ayrshare.com/api/post";

              // Set up request headers
              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

              // Prepare JSON content
              string json = "{\"id\" : \"Post ID\"}";
              var content = new StringContent(json, Encoding.UTF8, "application/json");

              try
              {
                  // Create and send DELETE request with content
                  var request = new HttpRequestMessage
                  {
                      Method = HttpMethod.Delete,
                      RequestUri = new Uri(url),
                      Content = content
                  };

                  HttpResponseMessage response = await client.SendAsync(request);
                  response.EnsureSuccessStatusCode();

                  // Read response
                  string responseBody = await response.Content.ReadAsStringAsync();
                  Console.WriteLine(responseBody);
              }
              catch (HttpRequestException e)
              {
                  Console.WriteLine($"Error: {e.Message}");
              }
          }
      }
  }
  ```
</RequestExample>

<ResponseExample>
  ```javascript 200: Success theme={"system"}
  {
      "twitter": {
          "action": "delete",
          "status": "success",
          "id": "1288900099663775749" // Twitter Social Post ID
      },
      "facebook": {
          "action": "delete",
          "status": "success",
          "id": "104920007983682_108683297607743" // Facebook Social PostID
      },
      "status": "success"
  }
  ```

  ```json 200: Success with markManualDeleted theme={"system"}
  {
    "status": "success",
    "id": "p8Ee6xDPx8PRxsjtDXf3" // Ayrshare Post ID
  }
  ```

  ```json 400: ID Not Found theme={"system"}
  {
    "action": "delete",
    "status": "error",
    "code": 114,
    "message": "Delete id not found.",
    "id": "IdpUOyihLEpIx0d0N9mI" // Ayrshare Post ID used for delete, comment, analytics, etc.
  }
  ```

  ```json 400: Post Already Deleted theme={"system"}
  {
    "action": "delete",
    "status": "error",
    "code": 383,
    "message": "The post is already deleted.",
    "id": "p8Ee6xDPx8PRxsjtDXf3" // Ayrshare Post ID
  }
  ```

  ```json 400: Mark Manual Deleted Error theme={"system"}
  {
    "action": "delete",
    "status": "error",
    "code": 382,
    "message": "The post was not manually deleted at the social network. By using the markManualDeleted option, you are responsible for deleting the post at the social network. Please delete the post and try again.",
    "id": "DD3fA2DC4qe2T48hSdgs",
    "markManualDeleted": true
  }
  ```
</ResponseExample>
