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

# Auto Hashtags

> Add the most relevant hashtags to your post

export const PlansAvailable = ({plans = [], maxPackRequired}) => {
  let displayPlans = plans;
  if (plans && plans.length === 1) {
    const lowerCasePlan = plans[0].toLowerCase();
    if (lowerCasePlan === "basic") {
      displayPlans = ["Basic", "Premium", "Business", "Enterprise"];
    } else if (lowerCasePlan === "business") {
      displayPlans = ["Business", "Enterprise"];
    } else if (lowerCasePlan === "premium") {
      displayPlans = ["Premium", "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"]} />

When creating your post, add relevant hashtags by either embedding them within the text or placing them at the end.
Our advanced AI system will analyze your content to generate appropriate hashtags based on the subject matter.
Although you can use any language for your post, writing in English typically yields the best results for our hashtag generation process.

## Header Parameters

<HeaderAPI />

## Body Parameters

<ParamField body="post" type="string" required>
  Post text to add the hashtags. Max length 1,000 characters.
</ParamField>

<ParamField body="position" type="string">
  validate
</ParamField>

<ParamField body="max" type="integer" default={2}>
  Integer of max number of Hashtags to add. Max value range 1 to 10. Note: Instagram allows a maximum of 5 hashtags per post.
</ParamField>

<ParamField body="language" type="string">
  Specify the [language code](/iso-codes/language) of the language of the post to assist the hashtag algorithm.

  ```json theme={"system"}
  {
    "language": "fr"
  }
  ```
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_Key" \
  -d '{"post": "Today is a great day!", "max": 3, "position": "auto"}'
  -X POST https://api.ayrshare.com/api/hashtags/auto
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";
  fetch(`https://api.ayrshare.com/api/hashtags/auto`, {
        method: "POST",
        headers: {
          "Authorization": `Bearer ${API_KEY}`
        },
        body: JSON.stringify({
          post: "Today is a great day!", // required
          max: 3,           // optional, range 1-5
          position: "auto"  // optional, "auto" or "end"
        })
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

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

  payload = {
          'post': 'Today is a great day!',
          'max': 3,           # optional, range 1-5
          'position': 'auto'  # optional, 'auto' or 'end'
  }
  headers = {'Content-Type': 'application/json',
          'Authorization': 'Bearer API_KEY'}

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

  print(r.json())
  ```

  ```php PHP theme={"system"}
  <?php
  require 'vendor/autoload.php';// Composer auto-loader using Guzzle. See .../guzzlephp.org/en/stable/overview.html

  $client = new GuzzleHttp\Client();
  $res = $client->request(
      'POST',
      'https://api.ayrshare.com/api/hashtags/auto',
      [
          'headers' => [
              'Content-Type'  => 'application/json',
              'Authorization' => 'Bearer API_KEY'
          ],
          'json' => [
              'post' => 'Today is a great day!',
              'max'  => 3,
              'position' => 'auto'
          ]
      ]
  );

  echo json_encode(json_decode($res->getBody()), JSON_PRETTY_PRINT);
  ```
</RequestExample>

<ResponseExample>
  ```javascript 200 Hashtagged Post Returned theme={"system"}
  {
      post: "Disney’s trouble with Oswald the #LuckyRabbit is a great lesson #ForStartups in a crisis"
  }
  ```
</ResponseExample>
