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

# Post a Comment

> Add a comment to a published post

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="/docs/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 HeaderAPI = ({noProfileKey, profileKeyRequired}) => <>
    <ParamField header="Authorization" type="string" required>
      <a href="/docs/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="/docs/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="/docs/apis/overview#profile-key-format">Profile Key</a> of a User Profile.
          <br />
          <br />
          Format: <code>Profile-Key: PROFILE_KEY</code>
        </ParamField>)}
  </>;

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>;
};

<PlansAvailable plans={["premium"]} maxPackRequired={false} />

<XByoNotice />

Add a comment to a post with an Ayrshare Post ID (posts sent via Ayrshare) or a Social Post ID (posts sent outside of Ayrshare) using the Comments API.

<ul class="custom-bullets">
  <li>Comments added to an X Thread will be posted to the first Tweet.</li>
  <li>Instagram Story comments are not yet supported by Meta.</li>
  <li>See the `platforms` field below for supported platforms depending on the ID type.</li>
</ul>

<Note>
  Facebook, Instagram, and TikTok only let you comment on posts from your own connected account or page, for example a post you published directly in the Instagram app. On these platforms you cannot comment on other users' posts, even with the Social Post ID.

  On LinkedIn and X, Ayrshare does not check who owns the post. Whether a comment on another user's post succeeds depends on that network's rules and the post's reply settings. See [Commenting on Other Users' Social Posts](/docs/help-center/technical-support/commenting_on_another_user_post).
</Note>

Please see the [Comments Overview](/docs/apis/comments/overview) for more information on the different ID types.

Supported platforms: Bluesky, Facebook, Instagram, LinkedIn, Reddit, TikTok, X, and YouTube.

## Header Parameters

<HeaderAPI noProfileKey={false} />

## Body Parameters

<ParamField body="id" type="string" required>
  Ayrshare Post ID or Social Post ID from the [/post endpoint](/docs/apis/post/post).
</ParamField>

<ParamField body="comment" type="string" required>
  Text of the new comment to add to the post.
</ParamField>

<ParamField body="searchPlatformId" type="boolean" default={false}>
  Set to `true` if posting a comment using the [Social Post ID](/docs/apis/comments/overview#comments-with-social-post-id), which is the post `id` from the social networks.
</ParamField>

<ParamField body="platforms" type="array" required>
  Specify the platforms to add comments.

  If using an [Ayrshare Post ID](/docs/apis/comments/overview#comments-with-ayrshare-post-id) the supported platforms are: `bluesky`, `facebook`, `instagram`, `linkedin`, `reddit`, `tiktok`, `twitter`, `youtube`.

  If no platforms are specified, the comment will be published to all connected platforms that support comments.

  ```json Post a Comment with the Ayrshare Post ID theme={"system"}
  {
    "id": "Ut1fWU6XkqkMayHGnJZ", // Ayrshare Post ID
    "comment": "An amazing comment!", // required
    "platforms": [
      "bluesky",
      "facebook",
      "instagram",
      "linkedin",
      "reddit",
      "tiktok",
      "twitter",
      "youtube"
    ]
  }
  ```

  If using a [Social Post ID](/docs/apis/comments/overview#comments-with-social-post-id) the supported platforms are -only one platform allowed at a time : `facebook`, `instagram`, `linkedin`, `tiktok`, `twitter`.

  ```json Post a Comment with the Social Post ID theme={"system"}
  {
    "id": "1288899996423983105", // Social Post ID
    "comment": "An amazing comment!", // required
    "searchPlatformId": true, // required
    // facebook, instagram, linkedin, tiktok, twitter
    "platforms": ["facebook"] // Only specify one platform
  }
  ```
</ParamField>

<ParamField body="mediaUrls" type="array">
  Attach an image by providing the image URL for Facebook or X/Twitter.

  <Note>Only one image is supported in the `mediaUrls` field. Supported platforms are Facebook, LinkedIn, and X/Twitter.</Note>

  ```json Post a Comment with an Image theme={"system"}
  {
    "id": "Ut1fWU6XkqkMayHGnJZ", // Ayrshare Post ID
    "comment": "An amazing comment!", // required
    "platforms": ["facebook"], // Facebook, LinkedIn, or X/Twitter only
    "mediaUrls": ["https://img.ayrshare.com/gb.jpg"]
  }
  ```
</ParamField>

## @Mentions in Comments

You can include @mentions directly in the `comment` text string. There is no separate parameter for mentions. Simply add `@handle` in your comment text.

```json Comment with @Mention theme={"system"}
{
  "id": "Ut1fWU6XkqkMayHGnJZ",
  "comment": "Great post @CompanyName! Love this.",
  "platforms": ["linkedin", "twitter", "facebook"]
}
```

<Note>
  **LinkedIn Mentions:** LinkedIn mentions are resolved server-side by Ayrshare. Use the [LinkedIn Search endpoint](/docs/apis/listen/search/linkedin-search) to look up the correct vanity name or member name. For organizations, use `@handle`. For members, use `@vanity_name` or `@[Full Name]`.
</Note>

For detailed mention syntax and limitations per platform, see:

* [Bluesky mentions](/docs/apis/post/social-networks/bluesky#bluesky-mentions)
* [Facebook mentions](/docs/apis/post/social-networks/facebook#facebook-page-mentions)
* [Instagram mentions](/docs/apis/post/social-networks/instagram#instagram-mentions)
* [LinkedIn mentions](/docs/apis/post/social-networks/linkedin#linkedin-mentions)
* [Reddit mentions](/docs/apis/post/social-networks/reddit#reddit-mentions)
* [Threads mentions](/docs/apis/post/social-networks/threads#threads-mentions)
* [TikTok mentions](/docs/apis/post/social-networks/tiktok#tiktok-mentions)
* [X/Twitter mentions](/docs/apis/post/social-networks/x-twitter#mentions)
* [YouTube mentions](/docs/apis/post/social-networks/youtube#youtube-mentions)

See [Post Verification](/docs/testing/post-verification) for the platform-by-platform mention rules and recommendations.

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"id": "Ut1fWU6XkqkMayHGnJZ", "platforms": ["bluesky", "facebook", "instagram", "linkedin", "reddit", "tiktok", "twitter", "youtube"], "comment": "An amazing comment!"}' \
  -X POST https://api.ayrshare.com/api/comments
  ```

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

  fetch("https://api.ayrshare.com/api/comments", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${API_KEY}`,
    },
    body: JSON.stringify({
      id: "Ut1fWU6XkqkMayHGnJZ", // required
      platforms: ["bluesky", "facebook", "instagram", "linkedin", "reddit", "tiktok", "twitter", "youtube"], // required
      comment: "An amazing comment!", //required
    }),
  })
    .then((res) => res.json())
    .then((json) => console.log(json))
    .catch(console.error);
  ```

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

  payload = {'id': 'Ut1fWU6XkqkMayHGnJZ',
          'platforms': ['bluesky', 'facebook', 'instagram', 'linkedin', 'reddit', 'tiktok', 'twitter', 'youtube'],
          'comment': 'An amazing comment!'}
  headers = {'Content-Type': 'application/json',
          'Authorization': 'Bearer API_KEY'}

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

  print(r.json())
  ```

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

  $apiUrl = 'https://api.ayrshare.com/api/comments';
  $apiKey = 'API_KEY';  // Replace 'API_KEY' with your actual API key

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

  $data = json_encode([
      'id' => 'Ut1fWU6XkqkMayHGnJZ', // Replace with your actual post ID
      'platforms' => ['bluesky', 'facebook', 'instagram', 'linkedin', 'reddit', 'tiktok', 'twitter', 'youtube'],
      'comment' => 'An amazing comment!'
  ]);

  $curl = curl_init($apiUrl);
  curl_setopt_array($curl, [
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_POST => true,
      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);
  ```

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

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

  func main() {
  	message := map[string]interface{}{
  		"id":      "Ut1fWU6XkqkMayHGnJZ", // required
  		"platforms": []string{"bluesky", "facebook", "instagram", "linkedin", "reddit", "tiktok", "twitter", "youtube"}, // required
  		"comment": []string{"An amazing comment!"} // required
  	}

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

  	req, _ := http.NewRequest("POST", "https://api.ayrshare.com/api/comments",
  		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 CommentsPOSTRequest_csharp
  {
      class CommentsPOST
      {
          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/comments";

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

              string json = "{\"id\": \"Ut1fWU6XkqkMayHGnJZ\"," +
                  "\"platforms\": [\"bluesky\", \"facebook\", \"instagram\", \"linkedin\", \"reddit\", \"tiktok\", \"twitter\", \"youtube\"]," +
                  "\"comment\": [\"An amazing comment!\"]}";

              try
              {
                  var content = new StringContent(json, Encoding.UTF8, "application/json");
                  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}");
              }
          }
      }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
    "status": "success",
    "commentID": "IUDSCfdYfFkw_dWhW9PLI", // Ayrshare Comment ID. Used for replying to a comment.
    "id": "Ut1fWU6XkqlMayHGnJZ", // Ayrshare Post ID
    "bluesky": {
      "status": "success",
      "commentId": "at://did:plc:62musrcyanhro2lydyhlw7ci/app.bsky.feed.post/3lf4b4j3dqy2i",
      "cid": "bafyreiaoivcafelkpzhbbjco23pguyqmy7wucuvfxaifgj34qoyp7nrhhy",
      "comment": "Nice one this is",
      "platform": "bluesky",
      "postUrl": "https://bsky.app/profile/ayrshare.com/post/3lf4b4j3dqy2i"
    },
    "facebook": {
      "status": "success",
      "commentId": "358482752285927_363474831785719", // Facebook Social Comment ID
      "comment": "The best comment ever!",
      "platform": "facebook"
    },
    "instagram": {
      "status": "success",
      "commentId": "17060111860440276", // Instagram Social Comment ID
      "comment": "The best comment ever!",
      "platform": "instagram"
    },
    "linkedin": {
      "status": "success",
      "commentId": "urn:li:comment:(urn:li:activity:7141202289402236928,7141205176207503360)", // LinkedIn Social Comment ID
      "comment": "Someone's sitting in the shade today because someone planted a tree a long time ago. - Warren Buffett",
      "commentUrn": "urn:li:comment:(urn:li:activity:7141202289402236928,7141205176207503360)", // Social comment Id from LinkedIn
      "platform": "linkedin"
    },
    "tiktok": {
      "status": "success",
      "commentId": "7260964914699764524", // TikTok Social Comment ID
      "comment": "The best comment ever!",
      "platform": "tiktok",
      "videoId": "7260964048362310959"
    },
    "twitter": {
      "status": "success",
      "commentId": "1525632403262101648", // Twitter Social Comment ID
      "comment": "The best comment ever!",
      "postUrl": "https://twitter.com/ayrshare/status/1525632403262101648"
    },
    "youtube": {
      "status": "success",
      "commentId": "UgzIEZsDQKXgHsEnwTR4AaABAa", // YouTube Social Comment ID
      "comment": "The best comment ever!",
      "platform": "youtube"
    },
  }
  ```

  ```json 404: Not Linked & Success theme={"system"}
  {
    "commentId": "5GizKtM9TFRFFWNDgBZ",
    "twitter": {
      "status": "success",
      "commentId": "1842266484032016",
      "comment": "Having a meeting on this",
      "platform": "twitter",
      "postUrl": "https://twitter.com/ayrshare/status/18422664840320"
    },
    "action": "post",
    "status": "error",
    "code": 156,
    "message": "Instagram is not linked. Please confirm the linkage on the Social Accounts page in the dashboard.",
    "platform": "instagram",
    "id": "1w3QI6bU7KE9XyxrN0u", // Ayrshare Post ID
    "errors": [
      {
        "action": "post",
        "status": "error",
        "code": 156,
        "message": "Facebook is not linked. Please confirm the linkage on the Social Accounts page in the dashboard.",
        "platform": "facebook"
      },
      {
        "action": "post",
        "status": "error",
        "code": 156,
        "message": "Instagram is not linked. Please confirm the linkage on the Social Accounts page in the dashboard.",
        "platform": "instagram"
      }
    ]
  }
  ```

  ```json 400: Duplicate comment theme={"system"}
  {
    "twitter": {
      "action": "post",
      "status": "error",
      "code": 134,
      "message": "The social network detected duplicate content and blocked this post. Please change the content and try again.",
      "post": "Having a meeting on this",
      "detail": "You are not allowed to create a Tweet with duplicate content."
    },
    "code": 134,
    "status": "error",
    "id": "1w3QI6bU7KE9XyxrN", // Ayrshare Post ID
    "errors": [
      {
        "action": "post",
        "status": "error",
        "code": 134,
        "message": "The social network detected duplicate content and blocked this post. Please change the content and try again.",
        "post": "Having a meeting on this",
        "detail": "You are not allowed to create a Tweet with duplicate content.",
        "id": "1w3QI6bU7KE9XyxrN",
        "platform": "twitter"
      }
    ]
  }
  ```
</ResponseExample>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.