# Facebook Search Hashtag API (https://www.socialcrawl.dev/platforms/facebook/search-hashtag) > Returns public Facebook posts and videos that carry one hashtag. Facebook's video search matches a hashtag and its post search mostly matches the word, so each call runs both, /v1/facebook/search/videos for `#tag` and /v1/facebook/search/posts for `#tag` ranked by recency, and keeps only the rows whose text carries the exact hashtag (`#tractor` leaves out `#tractorlife` and the bare word). Rows are merged newest first, undated rows last, and a post found by both searches appears once. Each row in `data.items` is exactly the row the named search endpoint returns, with its `post` and `computed` blocks, plus `match_kind` (`hashtag`). Video rows carry what /v1/facebook/search/videos carries, so their counts and publish time are often null. `since` and `until` are sent as each search's `start_date` and `end_date`. Send `data.next_cursor` back as `cursor` for the next page; it is null when every search has run out. `data.legs` reports each search: its endpoint, status, rows returned and kept, credits and `request_id`. `data.excluded` counts the rows left out (`unmatched`, `self`, `duplicate`, `outside_window`). Each call is one page of each search, 1 credit each, so at most 2. TL;DR: `GET /v1/facebook/search/hashtag` costs Metered, 0-2 credits: each call reads one page of /v1/facebook/search/videos (1 credit) and /v1/facebook/search/posts (1 credit), each billed at that endpoint's own price exactly as a direct call is. A page that found nothing or failed costs nothing, and a page served from cache is free. A page is billed when it returned rows, even if none of them carried the hashtag; data.legs shows each page's charge and data.excluded what was left out. and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `hashtag` | yes | One hashtag, with or without the #: letters, digits and _, no spaces. | | `cursor` | no | data.next_cursor from the previous response, sent back verbatim for the next page. | | `since` | no | Only posts published on or after this date, YYYY-MM-DD (UTC). | | `until` | no | Only posts published on or before this date, YYYY-MM-DD (UTC); that whole day is included. | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/facebook/search/hashtag" \ --data-urlencode "hashtag=tractor" \ -H "x-api-key: sc_YOUR_API_KEY" ``` See the full Facebook API: https://www.socialcrawl.dev/platforms/facebook ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing