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

# Copy a Post

> Sao chép một bài đăng hiện có sang các nền tảng mạng xã hội mới

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

Sao chép một bài đăng hiện có sang các nền tảng mạng xã hội mới với cùng nội dung và cài đặt. Endpoint này cho phép bạn tái sử dụng các bài đăng thành công trên các nền tảng khác nhau hoặc với các cấu hình khác nhau.

Vui lòng đảm bảo thêm `API_KEY` của bạn, và `PROFILE_KEY` nếu sao chép sang một User Profile, trong [header Authorization](/apis/overview#authorization).
API Key có thể được tìm thấy trong Ayrshare Developer Dashboard tại trang API Key.

## Tham số Header

<HeaderAPI />

## Tham số Body

<ParamField body="postId" type="string" required>
  ID của bài đăng hiện có cần sao chép. Đây là Ayrshare Post ID được trả về từ endpoint
  `/post` gốc.
</ParamField>

<ParamField body="platforms" type="array" required>
  Các nền tảng mạng xã hội để đăng nội dung đã sao chép. Chấp nhận một mảng String với các giá trị: `bluesky`, `facebook`, `gmb`, `instagram`, `linkedin`, `pinterest`, `reddit`, `snapchat`, `telegram`, `threads`, `tiktok`, `twitter`, hoặc `youtube`.

  Lưu ý: dùng `facebook` cho Facebook Pages, và `gmb` cho Google Business Profile.

  Các nền tảng được chỉ định ở đây sẽ ghi đè các nền tảng của bài đăng gốc — bạn phải chọn rõ ràng các nền tảng để sao chép sang.
</ParamField>

<ParamField body="scheduleDate" type="string">
  Thời gian để lên lịch bài đăng đã sao chép. Chấp nhận thời gian UTC.

  Ví dụ, sử dụng định dạng `YYYY-MM-DDThh:mm:ssZ` và gửi dưới dạng `2026-07-08T12:30:00Z`.
  Vui lòng xem [utctime](https://www.utctime.net/) để biết thêm ví dụ.

  Nếu không được cung cấp, bài đăng sẽ được xuất bản ngay lập tức.
</ParamField>

<ParamField body="blueskyOptions" type="object">
  Ghi đè cài đặt Bluesky của bài đăng gốc. Xem [chi tiết
  Bluesky](/apis/post/social-networks/bluesky).
</ParamField>

<ParamField body="faceBookOptions" type="object">
  Ghi đè cài đặt Facebook của bài đăng gốc. Xem [chi tiết
  Facebook](/apis/post/social-networks/facebook).
</ParamField>

<ParamField body="gmbOptions" type="object">
  Ghi đè cài đặt Google Business Profile của bài đăng gốc. Xem [chi tiết Google Business
  Profile](/apis/post/social-networks/google).
</ParamField>

<ParamField body="instagramOptions" type="object">
  Ghi đè cài đặt Instagram của bài đăng gốc. Xem [chi tiết
  Instagram](/apis/post/social-networks/instagram).
</ParamField>

<ParamField body="linkedInOptions" type="object">
  Ghi đè cài đặt LinkedIn của bài đăng gốc. Xem [chi tiết
  LinkedIn](/apis/post/social-networks/linkedin).
</ParamField>

<ParamField body="pinterestOptions" type="object">
  Ghi đè cài đặt Pinterest của bài đăng gốc. Xem [chi tiết
  Pinterest](/apis/post/social-networks/pinterest).
</ParamField>

<ParamField body="redditOptions" type="object">
  Ghi đè cài đặt Reddit của bài đăng gốc. Xem [chi tiết
  Reddit](/apis/post/social-networks/reddit).
</ParamField>

<ParamField body="snapChatOptions" type="object">
  Ghi đè cài đặt Snapchat của bài đăng gốc. Xem [chi tiết
  Snapchat](/apis/post/social-networks/snapchat).
</ParamField>

<ParamField body="telegramOptions" type="object">
  Ghi đè cài đặt Telegram của bài đăng gốc. Xem [chi tiết
  Telegram](/apis/post/social-networks/telegram).
</ParamField>

<ParamField body="threadsOptions" type="object">
  Ghi đè cài đặt Threads của bài đăng gốc. Xem [chi tiết
  Threads](/apis/post/social-networks/threads).
</ParamField>

<ParamField body="tikTokOptions" type="object">
  Ghi đè cài đặt TikTok của bài đăng gốc. Xem [chi tiết
  TikTok](/apis/post/social-networks/tiktok).
</ParamField>

<ParamField body="twitterOptions" type="object">
  Ghi đè cài đặt X/Twitter của bài đăng gốc. Xem [chi tiết
  X/Twitter](/apis/post/social-networks/x-twitter).
</ParamField>

<ParamField body="youTubeOptions" type="object">
  Ghi đè cài đặt YouTube của bài đăng gốc. Xem [chi tiết
  YouTube](/apis/post/social-networks/youtube).
</ParamField>

<ParamField body="shortenLinks" type="boolean">
  Ghi đè cài đặt rút gọn liên kết của bài đăng gốc.

  [Yêu cầu Max Pack](/additional/maxpack) cho tính năng rút gọn liên kết.
</ParamField>

<ParamField body="autoHashtag" type="object">
  Ghi đè cài đặt auto hashtag của bài đăng gốc. Xem [auto
  hashtags](/apis/post/overview#auto-hashtags) để biết chi tiết.
</ParamField>

<ParamField body="disableComments" type="boolean">
  Ghi đè cài đặt bình luận của bài đăng gốc. Chỉ khả dụng cho Instagram, LinkedIn, và TikTok.
</ParamField>

<ParamField body="firstComment" type="object">
  Ghi đè cài đặt bình luận đầu tiên của bài đăng gốc. Xem [bình luận đầu
  tiên](/apis/post/overview#first-comment) để biết chi tiết.
</ParamField>

<ParamField body="notes" type="string">
  Thêm ghi chú mới cho bài đăng đã sao chép. Các ghi chú này sẽ thay thế bất kỳ ghi chú nào từ bài đăng gốc. Ghi chú chỉ
  để tham khảo và không ảnh hưởng đến nội dung bài đăng.
</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>
