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

# 複製貼文

> 將現有貼文複製並發布到新的社群平台

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", "launch", "business", "enterprise"]} maxPackRequired={false} />

<XByoNotice />

以相同的內容與設定將現有貼文複製並發布到新的社群平台。此端點讓你可以在不同的平台上或以不同的設定重複使用先前成功的貼文。

請務必在 [Authorization header](/apis/overview#authorization) 中加入你的 `API_KEY`，如需複製到 User Profile，也請加入 `PROFILE_KEY`。
你可以在 Ayrshare Developer Dashboard 的 API Key 頁面找到 API Key。

## Header 參數

<HeaderAPI />

## Body 參數

<ParamField body="postId" type="string" required>
  要複製的現有貼文 ID。這是原本 `/post` 端點回傳的 Ayrshare Post ID。
</ParamField>

<ParamField body="platforms" type="array" required>
  要將複製的內容發布到的社群平台。接受一個字串陣列，可用的值有：`bluesky`、`facebook`、`gmb`、`instagram`、`linkedin`、`pinterest`、`reddit`、`snapchat`、`telegram`、`threads`、`tiktok`、`twitter` 或 `youtube`。

  請注意：Facebook 粉絲專頁請使用 `facebook`，Google Business Profile 請使用 `gmb`。

  此處指定的平台會覆蓋原始貼文的平台設定 — 你必須明確指定要複製到哪些平台。
</ParamField>

<ParamField body="scheduleDate" type="string">
  複製貼文要排程的日期時間。接受 UTC 日期時間。

  例如使用 `YYYY-MM-DDThh:mm:ssZ` 格式，並以 `2026-07-08T12:30:00Z` 的形式傳送。
  更多範例請參閱 [utctime](https://www.utctime.net/)。

  若未提供，貼文會立即發布。
</ParamField>

<ParamField body="blueskyOptions" type="object">
  覆蓋原始貼文的 Bluesky 設定。請參閱 [Bluesky
  詳細說明](/apis/post/social-networks/bluesky)。
</ParamField>

<ParamField body="faceBookOptions" type="object">
  覆蓋原始貼文的 Facebook 設定。請參閱 [Facebook
  詳細說明](/apis/post/social-networks/facebook)。
</ParamField>

<ParamField body="gmbOptions" type="object">
  覆蓋原始貼文的 Google Business Profile 設定。請參閱 [Google Business Profile
  詳細說明](/apis/post/social-networks/google)。
</ParamField>

<ParamField body="instagramOptions" type="object">
  覆蓋原始貼文的 Instagram 設定。請參閱 [Instagram
  詳細說明](/apis/post/social-networks/instagram)。
</ParamField>

<ParamField body="linkedInOptions" type="object">
  覆蓋原始貼文的 LinkedIn 設定。請參閱 [LinkedIn
  詳細說明](/apis/post/social-networks/linkedin)。
</ParamField>

<ParamField body="pinterestOptions" type="object">
  覆蓋原始貼文的 Pinterest 設定。請參閱 [Pinterest
  詳細說明](/apis/post/social-networks/pinterest)。
</ParamField>

<ParamField body="redditOptions" type="object">
  覆蓋原始貼文的 Reddit 設定。請參閱 [Reddit
  詳細說明](/apis/post/social-networks/reddit)。
</ParamField>

<ParamField body="snapChatOptions" type="object">
  覆蓋原始貼文的 Snapchat 設定。請參閱 [Snapchat
  詳細說明](/apis/post/social-networks/snapchat)。
</ParamField>

<ParamField body="telegramOptions" type="object">
  覆蓋原始貼文的 Telegram 設定。請參閱 [Telegram
  詳細說明](/apis/post/social-networks/telegram)。
</ParamField>

<ParamField body="threadsOptions" type="object">
  覆蓋原始貼文的 Threads 設定。請參閱 [Threads
  詳細說明](/apis/post/social-networks/threads)。
</ParamField>

<ParamField body="tikTokOptions" type="object">
  覆蓋原始貼文的 TikTok 設定。請參閱 [TikTok
  詳細說明](/apis/post/social-networks/tiktok)。
</ParamField>

<ParamField body="twitterOptions" type="object">
  覆蓋原始貼文的 X/Twitter 設定。請參閱 [X/Twitter
  詳細說明](/apis/post/social-networks/x-twitter)。
</ParamField>

<ParamField body="youTubeOptions" type="object">
  覆蓋原始貼文的 YouTube 設定。請參閱 [YouTube
  詳細說明](/apis/post/social-networks/youtube)。
</ParamField>

<ParamField body="shortenLinks" type="boolean">
  覆蓋原始貼文的縮短網址設定。

  縮短網址功能[需要 Max Pack](/additional/maxpack)。
</ParamField>

<ParamField body="autoHashtag" type="object">
  覆蓋原始貼文的自動 hashtag 設定。詳情請參閱 [auto
  hashtags](/apis/post/overview#auto-hashtags)。
</ParamField>

<ParamField body="disableComments" type="boolean">
  覆蓋原始貼文的留言設定。僅適用於 Instagram、LinkedIn 與 TikTok。
</ParamField>

<ParamField body="firstComment" type="object">
  覆蓋原始貼文的首則留言設定。詳情請參閱 [首則
  留言](/apis/post/overview#first-comment)。
</ParamField>

<ParamField body="notes" type="string">
  為複製的貼文加入新的備註，這些備註會取代原始貼文的備註。備註僅供參考，
  不會影響貼文內容。
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
    "postId": "RhrbDtYh7hdSMc67zC8H",
    "platforms": ["twitter", "facebook", "linkedin"],
    "scheduleDate": "2026-07-08T12:30:00Z"
  }' \
  -X POST https://api.ayrshare.com/api/post/copy
  ```

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

  fetch("https://api.ayrshare.com/api/post/copy", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${API_KEY}`
    },
    body: JSON.stringify({
      postId: "RhrbDtYh7hdSMc67zC8H", // required
      platforms: ["twitter", "facebook", "linkedin"], // required
      scheduleDate: "2026-07-08T12:30:00Z", // optional
      faceBookOptions: {
        link: "https://example.com/new-link"
      }
    })
  })
    .then((res) => res.json())
    .then((json) => console.log(json))
    .catch(console.error);
  ```

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

  payload = {
      'postId': 'RhrbDtYh7hdSMc67zC8H',
      'platforms': ['twitter', 'facebook', 'linkedin'],
      'scheduleDate': '2026-07-08T12:30:00Z',
      'faceBookOptions': {
          'link': 'https://example.com/new-link'
      }
  }
  headers = {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer API_KEY'
  }

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

  print(r.json())
  ```

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

  $curl = curl_init();
  $data = [
      "postId" => "RhrbDtYh7hdSMc67zC8H",
      "platforms" => ["twitter", "facebook", "linkedin"],
      "scheduleDate" => "2026-07-08T12:30:00Z",
      "faceBookOptions" => [
          "link" => "https://example.com/new-link"
      ]
  ];

  curl_setopt_array($curl, [
      CURLOPT_URL => 'https://api.ayrshare.com/api/post/copy',
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      CURLOPT_POSTFIELDS => json_encode($data),
      CURLOPT_HTTPHEADER => [
          'Authorization: Bearer API_KEY',
          'Content-Type: application/json'
      ],
  ]);

  $response = curl_exec($curl);
  curl_close($curl);
  echo $response;
  ```

  ```go Go theme={"system"}
  package main

  import (
  	"bytes"
  	"encoding/json"
  	"log"
  	"net/http"
  )

  func main() {
  	message := map[string]interface{}{
  		"postId":       "RhrbDtYh7hdSMc67zC8H",
  		"platforms":    []string{"twitter", "facebook", "linkedin"},
  		"scheduleDate": "2026-07-08T12:30:00Z",
  		"faceBookOptions": map[string]interface{}{
  			"link": "https://example.com/new-link",
  		},
  	}

  	bytesRepresentation, err := json.Marshal(message)
  	if err != nil {
  		log.Fatalln(err)
  	}

  	req, _ := http.NewRequest("POST", "https://api.ayrshare.com/api/post/copy",
  		bytes.NewBuffer(bytesRepresentation))

  	req.Header.Add("Content-Type", "application/json; charset=UTF-8")
  	req.Header.Add("Authorization", "Bearer API_KEY")

  	res, err := http.DefaultClient.Do(req)
  	if err != nil {
  		log.Fatal("Error:", err)
  	}

  	res.Body.Close()
  }
  ```

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

  namespace PostCopyRequest_csharp
  {
    class PostCopy
    {
      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/copy";

              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);

              string json = "{\"postId\" : \"RhrbDtYh7hdSMc67zC8H\","
                  + "\"platforms\" : [ \"twitter\", \"facebook\", \"linkedin\" ],"
                  + "\"scheduleDate\" : \"2026-07-08T12:30:00Z\"}";
              var content = new StringContent(json, Encoding.UTF8, "application/json");

              try
              {
                  HttpResponseMessage response = await client.PostAsync(url, content);
                  response.EnsureSuccessStatusCode();

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

  ```ruby Ruby theme={"system"}
  require 'httparty'

  res = HTTParty.post("https://api.ayrshare.com/api/post/copy",
      headers: {Authorization: "Bearer API_KEY"},
      body: {
          postId: "RhrbDtYh7hdSMc67zC8H",
          platforms: ['twitter', 'facebook', 'linkedin'],
          scheduleDate: '2026-07-08T12:30:00Z',
          faceBookOptions: {
              link: 'https://example.com/new-link'
          }
      }).body

  puts res
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success - Immediate Post theme={"system"}
  {
     "status": "success",
     "copiedFrom": "RhrbDtYh7hdSMc67zC8H",
     "originalPost": "Today is a great day!",
     "errors": [],
     "postIds": [
         {
             "status": "success",
             "id": "1288899996423983106",
             "platform": "twitter",
             "postUrl": "https://x.com/handle/status/1288899996423983106"
         },
         {
             "status": "success",
             "id": "104923907983682_108329000309743",
             "platform": "facebook", 
             "postUrl": "https://www.facebook.com/104923907983682_108329000309743"
         },
         {
             "status": "success",
             "id": "urn:li:share:7282181682126807042",
             "postUrl": "https://www.linkedin.com/feed/update/urn:li:share:7282181682126807042",
             "owner": "urn:li:organization:77682157",
             "platform": "linkedin"
         }
     ],
     "id": "KpwxFmNj3kgQLa92vE5T"
  }
  ```

  ```json 200: Success - Scheduled Post theme={"system"}
  {
    "status": "scheduled",
    "scheduleDate": "2025-05-28T14:32:00Z",
    "id": "KpwxFmNj3kgQLa92vE5T",
    "refId": "7a8e2f15c94d73a6e2bf89dd4c847b9f2e3a6d18",
    "copiedFrom": "RhrbDtYh7hdSMc67zC8H",
    "originalPost": "Today is a great day!"
  }
  ```

  ```json 400: Bad Request theme={"system"}
  {
    "status": "error",
    "errors": [
      {
        "action": "post",
        "status": "error",
        "code": 156,
        "message": "Threads is not linked. Please confirm the linkage on the Social Accounts page in the dashboard. https://www.ayrshare.com/docs/dashboard/connect-social-accounts/overview",
        "platform": "threads"
      }
    ],
    "postIds": [],
    "id": "KpwxFmNj3kgQLa92vE5T",
    "refId": "7a8e2f15c94d73a6e2bf89dd4c847b9f2e3a6d18"
  }
  ```

  ```json 400: Bad Request - Missing Platforms theme={"system"}
  {
    "status": "error",
    "code": 163,
    "message": "Missing, empty, or not valid platforms parameter. Please verify sending an array of valid platforms. https://www.ayrshare.com/docs/apis/post",
    "details": "platforms parameter is required for copying posts"
  }
  ```

  ```json 400: Bad Request - Duplicate or Similar Content theme={"system"}
  {
    "status": "error",
    "errors": [
      {
        "action": "post",
        "status": "error",
        "code": 137,
        "message": "Duplicate or similar content posted within the same two day period. The social networks prohibit duplicate content and ban accounts that do not comply. https://www.ayrshare.com/docs/help-center/technical-support/dealing_with_duplicate_posts#dealing-with-duplicate-posts",
        "details": "Duplicate found in user profile: \"Primary Profile\", post id: e5ELaDhKjhJBU1z6dbud, and refId: 5da3de47a8e3b1d8c2bd319350aa7d4e85d4ec74",
        "verifyCheck": true,
        "platform": "twitter"
      }
    ],
    "postIds": [],
    "id": "KpwxFmNj3kgQLa92vE5T",
    "refId": "7a8e2f15c94d73a6e2bf89dd4c847b9f2e3a6d18"
  }
  ```
</ResponseExample>
