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

既存の投稿を同じコンテンツと設定で新しいソーシャルメディアプラットフォームに複製します。このエンドポイントを使用すると、成功した投稿を異なるプラットフォームや異なる構成で再利用できます。

User Profile に複製する場合は、`API_KEY` と `PROFILE_KEY` を [Authorization ヘッダー](/apis/overview#authorization) に必ず追加してください。
API Key は Ayrshare Developer Dashboard の API Key ページで確認できます。

## Header Parameters

<HeaderAPI />

## Body Parameters

<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 Pages の場合は `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">
  元の投稿の自動ハッシュタグ設定を上書きします。詳細は [auto
  hashtags](/apis/post/overview#auto-hashtags) を参照してください。
</ParamField>

<ParamField body="disableComments" type="boolean">
  元の投稿のコメント設定を上書きします。Instagram、LinkedIn、TikTok でのみ利用可能です。
</ParamField>

<ParamField body="firstComment" type="object">
  元の投稿のファーストコメント設定を上書きします。詳細は [first
  comment](/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>
