Firecrawl Pricing: Plans, Credit Costs and What an X (Twitter) URL Costs

- Plans: Free 1,000 credits/month ($0, no card), Hobby $19/month (5,000), Standard $99/month (100,000), Growth $399/month (500,000), Scale $749/month (1,000,000), Enterprise custom.
- Annual billing: $16, $83, $333 and $599 a month for the same four paid plans.
- Credit costs: scrape or crawl 1 credit per page, map 1 per call, search 2 per 10 results, JSON format +4 per page, PDF +1 per PDF page, interact 2 to 7 per browser minute.
- Top-ups: $5 packs of 1,000 / 2,000 / 2,500 / 5,000 credits on Hobby / Standard / Growth / Scale, so overage costs more per page than plan credits on every tier.
- x.com URLs are billed at 30 credits per request (1 base + 29 for the Grok X Query), or 34 with JSON, and return AI-processed output, not raw post rows.
- Our study: of 169 recent X posts that name Firecrawl and a price term, 40.2% compare it with another tool and 34.9% talk about credits; the official account mentions pricing, credits or free usage in 27.8% of its own posts.
Firecrawl turns web pages into markdown, HTML or structured JSON for LLM pipelines, and every one of those operations draws from a monthly pool of credits. The plan price is only half of the answer: what you actually pay depends on which operations you run, whether pages need JSON extraction, whether you overflow into $5 top-up packs, and whether any of your URLs are on x.com, which Firecrawl bills on a separate Grok-based rate.
This page sticks to Firecrawl's own numbers: every plan, every credit cost, the rate limits, the rollover and refund rules, and a worked estimate. It does not repeat the list of Firecrawl replacements; our Firecrawl alternatives page covers Crawl4AI, Apify, Jina Reader, Browser Use and ScrapingBee and the x.com test, and is linked below. We add two things the pricing summaries miss: the x.com line item, priced against a per-tweet X data API, and a study of 715 posts collected on X in 2026 about how Firecrawl's users and Firecrawl itself talk about price.
40.2%
Firecrawl plans and prices
Firecrawl sells five self-serve tiers plus Enterprise. Each tier is a monthly credit allotment, a concurrency limit (how many pages Firecrawl processes for you at once) and a set of per-minute rate limits. The figures below are as listed on firecrawl.dev/pricing and in the billing docs at docs.firecrawl.dev/billing, read this year.
Enterprise. Custom credits and price, with dedicated support, an SLA, bulk discounts, zero data retention and SSO, through Firecrawl's sales team.
Free plan. The Free tier includes every core endpoint (scrape, crawl, map, search, extract, batch scrape, interact and monitor) with the same credit costs as paid plans, but no pay-as-you-go, so requests return HTTP 402 once the 1,000 monthly credits are gone. Firecrawl also documents a keyless tier for scrape, search and interact that is capped per IP address per day instead of by credits.
Marketing shorthand. The pricing page translates each allotment into pages or searches: 1,000 pages or 500 searches on Free, 5,000 pages or 2,500 searches on Hobby, 100,000 pages or 50,000 searches on Standard, 500,000 pages or 250,000 searches on Growth, and 1,000,000 pages or 500,000 searches on Scale. Those conversions assume plain 1-credit scrapes and 2-credit searches; any option that adds credits shrinks them.
What each operation costs in credits
Credits are the unit of usage, and the costs are the same on every plan. The base costs are low; the add-ons are where a bill grows, because they stack per page.
What counts as a charge. Firecrawl bills when it returns a document, not when the target site returns a success code. A page that comes back as 403 Forbidden or 404 Not Found is still a document and still costs 1 credit plus options, so the docs advise checking metadata.statusCode and stopping retries on URLs that are consistently blocked. A scrape that fails outright, with no document at all, costs 0 credits.
Crawls bill as they run. Crawl and batch scrape jobs are charged page by page as each completes, so the full cost can appear minutes or hours after you submit. Omitting limit on a crawl lets it run to the default of 10,000 pages; pass an explicit limit when you want a ceiling.
LinkedIn URLs are answered by third-party data providers chosen in your enrichment settings and cost what they charge (5 to 40 credits per profile or company page in the published table), in place of the 1-credit scrape.
Cost per 1,000 pages on each plan
Dividing each plan's price by its credits gives the price of a 1-credit page. Top-up packs are sold in $5 increments at a plan-specific size, which makes overage cost more per page than the plan's own credits on every tier.
The Hobby to Standard step is the big one. Moving from Hobby to Standard multiplies the credits by 20 for about 5.2 times the price, so a Hobby team that regularly buys more than about 16 top-up packs a month ($80 of overage on top of $19) is paying more than Standard would cost.
Add-ons change the math per page. A page scraped with JSON format costs 5 credits, so 100,000 Standard credits cover 20,000 JSON pages, not 100,000. A JSON page with zero data retention costs 6 credits.

Rate limits, concurrency, rollover and refunds
Price is one limit; throughput is the other. Firecrawl publishes per-minute limits by endpoint group alongside concurrency.
Rollover. Plan credits reset each month and do not roll over by default. Annual Scale plans roll unused plan credits over one month and annual Enterprise plans two months. Yearly plans are billed once a year but still reset credits monthly.
Top-up expiry. Credits you buy (pay-as-you-go or the Load more credits button) stay until used, but expire at the end of the billing period if you cancel the subscription. A monthly pay-as-you-go limit, rounded down to whole $5 increments, caps automatic top-ups; credits bought by hand do not count against it.
Upgrades and downgrades. Upgrades charge the full new price immediately with no proration and reset the billing cycle; unused credits from the old plan carry over. Downgrades take effect at the next renewal, and unused time is not refunded.
Spend control per key. Each API key can carry its own credit cap, which stops one service or agent from draining the team balance.
Firecrawl and x.com: the 30-credit line item
Firecrawl's billing docs carve out X separately. Requests to x.com, twitter.com and mobile.twitter.com profile and post URLs are not scraped like other pages: Firecrawl sends them through xAI's Grok API and its internal tools (x_search, thread fetch and web search restricted to x.com). Each such request costs 1 base credit plus 29 credits for the Grok X Query, 30 in total, or 34 when JSON format is also enabled.
What comes back. Firecrawl describes the result as Grok-generated structured data, thread context and summaries, and notes that capabilities differ from standard scraping. Its own docs point readers who need raw structured data at scale to X's Enterprise API.
Why it matters for a budget. One x.com URL costs the same 30 credits as 30 ordinary page scrapes, and the free plan's 1,000 credits cover 33 x.com requests. If your pipeline mixes general web pages with occasional X links, this line is small; if X is the main source, it dominates the bill and the unit is one AI-processed answer per request, not a page of posts.
What our earlier test found. On our Firecrawl alternatives page, a logged-out fetch of a public x.com profile returned 5 of the account's 20 latest posts, a rounded follower count and no cursor, while search and reply URLs returned a login page, which is why generic crawlers route X through a separate path at all.
Getting X posts as rows: the per-tweet bill
When the job is reading X (timelines, keyword searches, replies, followers) rather than summarizing a page, a structured X data API returns JSON with exact counts and a cursor, billed per result. On TwitterAPI.io, tweet endpoints such as /twitter/user/last_tweets and /twitter/tweet/advanced_search cost 15 credits per tweet returned, which is $0.15 per 1,000 tweets ($1 = 100,000 credits). A full page of 20 tweets costs $0.003; the 15-credit minimum means a search that returns nothing costs $0.00015. Profiles are $0.18 per 1,000. No X account is needed for reads.
Against the official rate card. X's pay-per-usage rate card on docs.x.com/x-api/getting-started/pricing lists $0.005 per post read and $0.010 per user read, with $20 of credits on a first saved card plus a match of the first auto-recharge up to $50. At $5 against $0.15 per 1,000 posts, that is about 33 times the per-tweet price.
Throughput. TwitterAPI.io allows 0.2 requests per second before the first payment, 20 once paid, 50 on Scale, 500 on Business and up to 1,000 on request. New accounts that pass the automatic bot check get up to $1 of free credits (at most 100,000 credits, no card, one per person or network, expiring after 31 days); purchased credits never expire. Subscription plans (Starter $29, Builder $99, Pro $199, Scale $499, Business $1,499 a month) are on the pricing page.
For agent builders. The same data is reachable from Claude, Cursor and other MCP clients through the hosted server at https://mcp.twitterapi.io/mcp with an Authorization: Bearer header carrying your key, so an agent can read X without a crawler in the loop.
"""firecrawl_cost.py - estimate a monthly Firecrawl bill from its published rate card.
Plan prices, credit allotments and $5 top-up pack sizes as listed on firecrawl.dev/pricing.
Credit costs per operation as listed on docs.firecrawl.dev/billing.
"""
PLANS = [ # name, USD/month (monthly billing), credits/month, credits per $5 top-up
("Hobby", 19, 5_000, 1_000),
("Standard", 99, 100_000, 2_000),
("Growth", 399, 500_000, 2_500),
("Scale", 749, 1_000_000, 5_000),
]
def credits_needed(pages, json_pages=0, searches_of_10=0, x_urls=0):
# 1 credit per scraped page, +4 when the page uses JSON format,
# 2 credits per 10 search results, 30 credits per x.com URL (1 base + 29 Grok X Query)
return pages + 4 * json_pages + 2 * searches_of_10 + 30 * x_urls
def bill(credits):
rows = []
for name, usd, included, per_pack in PLANS:
extra = max(0, credits - included)
packs = -(-extra // per_pack) # round up to whole $5 packs
rows.append((name, usd + 5 * packs, packs))
return rows
need = credits_needed(pages=40_000, json_pages=5_000, searches_of_10=2_000, x_urls=500)
print(f"credits needed: {need:,}")
for name, total, packs in bill(need):
print(f"{name:9s} ${total:>8,.2f}/month ({packs} top-up packs)")
What 715 posts on X say about Firecrawl pricing
We read X itself to see how pricing shows up in the conversation around Firecrawl. Three samples, collected in 2026: the latest 400 posts naming Firecrawl, 215 posts naming Firecrawl next to a price word (pricing, credits, cost, expensive, free tier, plan, self-host and similar), and the latest 100 posts on Firecrawl's official account, which had 101,484 followers at collection time.
Price is a minority topic, but a steady one. Firecrawl is talked about a lot: the 400 latest posts spanned 36.8 hours, about 260.9 posts a day, and 66.0% were replies. Only 10.0% of them used a price, credit or plan term. None of the 400 mentioned Twitter, x.com or tweets, so the X line item is not yet something users discuss.
When people do talk price, they compare. Of the 169 posts that name Firecrawl and a price term in the text (after removing search matches that only hit a handle), 40.2% also name another tool such as Crawl4AI, Jina, Apify, Exa, Tavily or Perplexity, and 34.9% are about credits, top-ups or running out. 57 of the 169 quote a dollar amount.
Self-hosting is part of the price story. 18.3% of the pricing posts mention self-hosting or open source. Firecrawl's core repository is public on GitHub under the AGPL-3.0 license, so running it yourself is a real option, with the trade-off that you take on the browsers, proxies and queue it otherwise runs for you.
The official account sells with launches and free usage. Over 105 days, Firecrawl's account posted 100 times: 54 original posts or quotes and 46 reposts. 63.0% of its own posts used launch wording (introducing, launched, now live, shipped), 27.8% mentioned pricing, credits or free usage, 79.6% carried media, and none mentioned X or Twitter. Its own posts drew a median of 323.5 likes and 34,040.5 views.

Which Firecrawl plan fits which workload
Trying it out. The Free plan's 1,000 credits a month (no card) are enough to test scrape, search and crawl on real sites. The 10 requests per minute limit on scrape and the missing pay-as-you-go rule it out for anything scheduled.
A side project or a small agent. Hobby at $19/month gives 5,000 credits and 5 concurrent browsers. Watch top-ups: at 1,000 credits per $5, overage on Hobby costs $5.00 per 1,000 pages.
A production RAG or research pipeline. Standard at $99/month gives 100,000 credits, 25 concurrent browsers and 500 scrapes a minute. If most pages use JSON extraction, budget 5 credits a page, which is 20,000 JSON pages a month.
Heavy crawling. Growth and Scale lower the per-page price to $0.80 and $0.75 per 1,000 on monthly billing, and Scale is the only self-serve plan whose annual version rolls unused credits over one month.
Mostly X data. If the URLs you send are mostly x.com, each request is 30 credits and returns an AI-processed answer; a per-tweet X data API returns the posts themselves at $0.15 per 1,000 tweets returned. Many pipelines use both: Firecrawl for the open web, an X endpoint for timelines and searches.
How we collected this
Question. When people on X talk about Firecrawl, how much of the conversation is about price, what do the pricing posts say, and how often does Firecrawl's official account talk about pricing, credits or free usage?
Accounts and queries. The official organization account firecrawl (timeline via /twitter/user/last_tweets), and two Latest searches via /twitter/tweet/advanced_search: firecrawl -is:retweet, and firecrawl plus price words (pricing, price, credits, cost, expensive, cheap, free tier, plan, subscription, self-host). Pricing posts were kept only when the post text itself named Firecrawl and a price term.
Window and sample. The most recent matching posts at collection time, collected in 2026: 400 posts over 36.8 hours, 215 posts over 20.1 days (169 kept), and 100 timeline posts over 105 days, 715 posts in all, from 40 requests at a data cost of about $0.11.
Method. Themes come from keyword rules on post text (listed in the study's analyze script); a post can carry several themes. Firecrawl prices come from its pricing page and billing docs, read this year, and the per-1,000-page figures are simple division.
What the sample cannot show. Keyword rules do not read intent or sarcasm, and the price-word search also catches listicles that mention Firecrawl in passing. A few weeks of posts is a snapshot, not a trend. Nothing here measures what Firecrawl returns for a given URL; the x.com description comes from Firecrawl's own documentation.
Privacy. Aggregates only. Search results come mostly from private individuals, so their raw pages were not kept; the stored sample holds de-identified rows with no ids, URLs, text or handles. Only the official Firecrawl account is named.
"""x_posts_cost.py - pull an account's latest posts as structured JSON and print the bill.
pip install requests
export TWITTERAPI_IO_API_KEY=... # from the twitterapi.io dashboard
python x_posts_cost.py firecrawl 3
Price: 15 credits per tweet returned ($0.15 per 1,000 tweets; $1 = 100,000 credits).
A full 20-tweet page costs $0.003. No X account needed for reads.
"""
import os
import sys
import requests
API = "https://api.twitterapi.io"
HEADERS = {"X-API-Key": os.environ["TWITTERAPI_IO_API_KEY"]}
def latest_posts(user_name, max_pages=3):
posts, cursor = [], ""
for _ in range(max_pages):
params = {"userName": user_name}
if cursor:
params["cursor"] = cursor
r = requests.get(f"{API}/twitter/user/last_tweets", headers=HEADERS, params=params, timeout=30)
r.raise_for_status()
body = r.json()
if body.get("status") == "error":
raise SystemExit(body.get("msg"))
data = body.get("data") or {}
posts.extend(data.get("tweets", []))
if not body.get("has_next_page"):
break
cursor = body.get("next_cursor", "")
return posts
if __name__ == "__main__":
user = sys.argv[1] if len(sys.argv) > 1 else "firecrawl"
pages = int(sys.argv[2]) if len(sys.argv) > 2 else 3
posts = latest_posts(user, pages)
for t in posts[:5]:
print(t["createdAt"], t["likeCount"], t["viewCount"], t["text"][:80].replace("\n", " "))
credits = 15 * len(posts)
print(f"{len(posts)} posts, {credits:,} credits = ${credits / 100_000:.4f}")
# Same number of post reads on the X API pay-per-usage rate card: $0.005 each
print(f"X API pay-per-usage list price for the same reads: ${0.005 * len(posts):.2f}")
Researching this?Free starter credits cover end-to-end testing — Google sign-in, no card. Get a key.
Questions readers ask
How much does Firecrawl cost?
Firecrawl has a free plan with 1,000 credits a month and four paid self-serve plans: Hobby $19/month (5,000 credits), Standard $99/month (100,000), Growth $399/month (500,000) and Scale $749/month (1,000,000). Annual billing costs $16, $83, $333 and $599 a month. Enterprise is custom.
How many credits does a Firecrawl scrape use?
A basic scrape or crawled page is 1 credit. JSON format (LLM extraction) adds 4, PDF parsing adds 1 per PDF page, zero data retention adds 1, and PII redaction adds 4. Search costs 2 credits per 10 results, map 1 credit per call.
Is Firecrawl free?
The Free plan includes 1,000 credits a month with no card, 2 concurrent browsers and 10 scrape requests a minute. It has no pay-as-you-go, so requests return HTTP 402 once the credits run out. The open-source repository can also be self-hosted under the AGPL-3.0 license.
Do unused Firecrawl credits roll over?
Plan credits reset every month and do not roll over by default. Annual Scale plans roll unused plan credits over one month and annual Enterprise plans two months. Purchased top-up credits stay until used but expire if you cancel the subscription.
What happens when I run out of Firecrawl credits?
On a paid plan with pay-as-you-go on, Firecrawl adds a $5 pack and charges your card: 1,000 credits on Hobby, 2,000 on Standard, 2,500 on Growth and 5,000 on Scale. You can cap these with a monthly pay-as-you-go limit. On the Free plan requests stop with HTTP 402.
Does Firecrawl charge for failed or blocked pages?
Firecrawl charges when it returns a document, so a page that comes back as 403 or 404 still costs 1 credit plus options. A scrape that returns no document at all costs nothing. Check metadata.statusCode and stop retrying URLs that keep failing.
Can Firecrawl scrape Twitter (X)?
Firecrawl routes x.com and twitter.com URLs through xAI's Grok API at 30 credits per request (34 with JSON) and returns Grok-generated summaries and structured data rather than raw posts. For posts as rows with exact counts and cursors, a structured X data API bills per tweet returned, $0.15 per 1,000 tweets on TwitterAPI.io.
Is annual billing worth it on Firecrawl?
Annual billing lowers each paid plan by roughly 16 to 20 percent ($16 instead of $19 on Hobby, $599 instead of $749 on Scale), and annual Scale is the only self-serve plan whose unused credits roll over a month. Credits still reset monthly on yearly plans.
Continue
- X API pay-per-usage pricing and credits (docs.x.com)
- X API post search introduction (docs.x.com)
- Firecrawl open-source repository, AGPL-3.0 (GitHub)
- TwitterAPI.io documentation: introduction and pricing
- TwitterAPI.io advanced search endpoint reference
- X (Twitter) API hub: endpoints, pricing and guides
- Firecrawl alternatives tested on X
- Apify pricing and what X scraping costs there
- Web scraping vs an API for X data
- Exa pricing for AI search
- Tavily API for agents, and where X fits
- Twitter (X) MCP server for Claude and Cursor
- TwitterAPI.io pay-per-use pricing
- 01Pipedream Pricing in 2026: Connect Plans, Credits and the Workflows Shutdown
- 02Cloudflare Pay per Crawl: How the HTTP 402 Handshake Works, and What It Means for Twitter (X) Data
- 03ScrapingBee Pricing in 2026: Plans, Credit Costs and Alternatives
- 04LunarCrush API: What It Returns, What It Costs, and When Raw Twitter (X) Data Is the Better Input
- 05SerpApi Pricing: Every Plan, the Real Cost per Search, and the Alternatives
- 06Google Antigravity Pricing: Free Tier, Pro and Ultra Quotas, and What X Users Report
- 07Genspark Pricing in 2026: Plans, Credits per Task, and What Twitter (X) Says About the Cost
- 08Firecrawl Alternatives in 2026, and What Each Can Read From Twitter (X)
Writing about something you built with TwitterAPI.io? Our community rewards program pays API credits for honest tutorials, build logs and videos.
Stop reading. Start building.
Starter credits cover real testing on real data. Google sign-in, no card, no application queue.
Get an API keyAlready building with TwitterAPI.io? Publish an honest tutorial or build log about it and earn up to $200 a month in API credits.