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

# Search Hashtags

> Find public Instagram Media that has been tagged with specific hashtags

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

Search based on a hashtag keyword to get a list of Instagram media posts that have been tagged with that hashtag.

<ul className="custom-bullets">
  <li>
    You can query a maximum of 30 unique hashtags on behalf of an Instagram Business or Creator
    Account within a rolling, 7-day period. Once you query a hashtag, it will count against this
    limit for 7 days. Subsequent queries on the same hashtag within this time frame will not count
    against your limit, and will not reset its initial query 7-day timer.
  </li>

  <li>You cannot comment on hashtagged media objects discovered through the API.</li>
  <li>Hashtags on Stories are not supported.</li>
  <li>Emojis in hashtag queries are not supported.</li>

  <li>
    The API will return an error for any requests that include hashtags that we have deemed
    sensitive or offensive.
  </li>
</ul>

## Header Parameters

<HeaderAPI noProfileKey />

## Query Parameters

<ParamField query="keyword" type="string" required>
  The keyword to search for matching hashtags.

  ```bash Search for the hashtag "wisdom" theme={"system"}
  https://api.ayrshare.com/api/hashtags/search?keyword=wisdom
  ```
</ParamField>

<ParamField query="searchType" type="string" default="top">
  The type of search to perform. Valid values: `top`, `recent`. Top will return the most popular
  hashtags. Recent will return the most recent hashtags. Default: `top`.
</ParamField>

<RequestExample>
  ```bash cURL theme={"system"}
  curl \
  -H "Authorization: Bearer API_KEY" \
  -X GET https://api.ayrshare.com/api/hashtags/search?keyword=wisdom&searchType=top
  ```

  ```javascript JavaScript theme={"system"}
  const API_KEY = "API_KEY";
  fetch("https://api.ayrshare.com/api/hashtags/search?keyword=wisdom&searchType=top", {
        method: "GET",
        headers: {
          "Authorization": `Bearer ${API_KEY}`
        }
      })
        .then((res) => res.json())
        .then((json) => console.log(json))
        .catch(console.error);
  ```

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

  headers = {'Authorization': 'Bearer API_KEY'}

  r = requests.get('https://api.ayrshare.com/api/hashtags/search?keyword=wisdom&searchType=top', 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(
      'GET',
      'https://api.ayrshare.com/api/hashtags/search?keyword=wisdom&searchType=top',
      [
          'headers' => [
              'Content-Type'      => 'application/json',
              'Authorization'     => 'Bearer API_KEY'
          ]
      ]
  );

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

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

  namespace HashtagsSearchGETRequest_csharp
  {
  class HashtagsSearch
  {
      static async Task Main(string[] args)
      {
          string API_KEY = "API_KEY";
          string url = "https://api.ayrshare.com/api/hashtags/search?keyword=wisdom&searchType=top";

          using (var client = new HttpClient())
          {
              client.DefaultRequestHeaders.Add("Authorization", "Bearer " + API_KEY);
              
              try
              {
                  var response = await client.GetStringAsync(url);
                  Console.WriteLine(response);
              }
              catch (HttpRequestException ex)
              {
                  Console.WriteLine($"Error: {ex.Message}");
              }
          }
      }
  }
  }
  ```
</RequestExample>

<ResponseExample>
  ```json 200: Success theme={"system"}
  {
      "status": "success",
      "hashtag": {
          "id": "17843798701036069",
          "name": "wisdom"
      },
      "searchResults": [
           {
              "caption": "🙂96% Percent of People have no clue this method exists ... For manifesting money , there is powerful a manifestation technique it changes your beliefs on reality in the deepest level of the subconscious mind it literally changed my life give it an honest try . Click the link in our bio to see if this works for you too . (worked for me )",
              "children": {
                  "data": [
                      {
                          "id": "18364392676136006"
                      },
                      {
                          "id": "18008030660493382"
                      },
                      {
                          "id": "17866325790184001"
                      }
                  ]
              },
              "commentsCount": 174,
              "id": "17861532840277137",
              "likeCount": 1389,
              "mediaType": "CAROUSEL_ALBUM",
              "mediaUrl": "https://scontent-sjc3-1.cdninstagram.com/v/t51.29350-15/466382723_420103424530861_7360358065352125344_n.jpg?_nc_cat=109&ccb=1-7&_nc_sid=18de74&_nc_ohc=c-_PWScwGQAQ7kNvgFPrTeK&_nc_zt=23&_nc_ht=scontent-sjc3-1.cdninstagram.com&edm=APCawUEEAAAA&_nc_gid=AT1Ax3hZh5lt3kJskGj3Hj6&oh=00_AYBDkqi4pSdedYxDfUnAm9c93AlyXabWzJM81UySCuIpDg&oe=67406A28",
              "permalink": "https://www.instagram.com/p/DCdDF6_Sa31/",
              "timestamp": "2024-11-17T01:22:29+0000"
          },
          {
              "caption": "🙂96% Percent of People have no clue this method exists ... For manifesting money , there is powerful a manifestation technique it changes your beliefs on reality in the deepest level of the subconscious mind it literally changed my life give it an honest try . Click the link in our bio to see if this works for you too . (worked for me )",
              "children": {
                  "data": [
                      {
                      "id": "17854668297321577"
                  },
                  {
                      "id": "17953717721743238"
                  }
              ]
          },
              "commentsCount": 40,
              "id": "18054468655821869",
              "likeCount": 371,
              "mediaType": "CAROUSEL_ALBUM",
              "mediaUrl": "https://scontent-sjc3-1.cdninstagram.com/v/t51.29350-15/467316183_1100515004943506_6021956524402070992_n.jpg?_nc_cat=101&ccb=1-7&_nc_sid=18de74&_nc_ohc=LQVF-7HyOE4Q7kNvgEPZ98d&_nc_zt=23&_nc_ht=scontent-sjc3-1.cdninstagram.com&edm=APCawUEEAAAA&_nc_gid=AT1Ax3hZh5lt3kJskGj3Hj6&oh=00_AYArRIS7xth-eI3rRWlvLhMklRJLBIH5rZ66akHfuSnxjg&oe=6740726A",
              "permalink": "https://www.instagram.com/p/DCdDZb5SzUj/",
              "timestamp": "2024-11-17T01:25:09+0000"
          },
          {
              "caption": "Setting intentions rather than expectations is a valuable way to keep you from overthinking, help you stay closer to reality, and move with mental clarity. \n\nYou can develop this kind of mindful skill by joining my 8-week "Slow School" live online course. It starts Dec 3rd. Check the link in my bio to learn more 🖤",
              "children": {
                  "data": [
                      {
                          "id": "18471207271027384"
                      },
                      {
                          "id": "17875576494200786"
                      }
                  ]
              },
              "commentsCount": 33,
              "id": "18057421303730368",
              "likeCount": 5601,
              "mediaType": "CAROUSEL_ALBUM",
              "mediaUrl": "https://scontent-sjc3-1.cdninstagram.com/v/t51.2885-15/467022186_992465279306045_4614070861842639887_n.jpg?_nc_cat=105&ccb=1-7&_nc_sid=18de74&_nc_ohc=pchds80KU9oQ7kNvgEaCWkZ&_nc_zt=23&_nc_ht=scontent-sjc3-1.cdninstagram.com&edm=APCawUEEAAAA&oh=00_AYDqG9VA4vJzBvXw6nzFTXc7rU0xVnsTJBOpptBbCEI9Gw&oe=67408C3D",
              "permalink": "https://www.instagram.com/p/DCZT369M_07/",
              "timestamp": "2024-11-15T14:32:12+0000"
          },
          "count": 25,
          "lastUpdated": "2024-11-19T20:09:02.830Z",
          "nextUpdate": "2024-11-19T20:20:02.830Z"
      ]
  }
  ```

  ```json 400: Bad Request theme={"system"}
  {
    "action": "hashtag search",
    "status": "error",
    "code": 380,
    "message": "Error searching Instagram Hashtags. Could not find a matching hashtag"
  }
  ```
</ResponseExample>
