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

By TwitterAPI.io Team•14 min read
Bar chart of Firecrawl credits per operation: scrape, crawl and map 1 credit, search 2 per 10 results, JSON format 5, JSON plus ZDR 6, x.com URL 30 and x.com URL with JSON 34 credits
Firecrawl's published credit costs per operation. A single x.com request uses 30 credits, the same as 30 ordinary page scrapes.
TL;DR
  • 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.

Of 169 X posts naming Firecrawl and a price term, the share that compare it with another tool (collected in 2026)

40.2%

01 — Section

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.

PlanMonthly priceAnnual billingCredits / monthConcurrent browsers
Free$0, no cardn/a1,0002
Hobby$19/month$16/month billed annually ($190/year)5,0005
Standard$99/month$83/month billed annually ($990/year)100,00025
Growth$399/month$333/month billed annually ($3,990/year)500,00050
Scale$749/month$599/month billed annually ($7,190/year)1,000,000100

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.

02 — Section

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.

Operation or optionCreditsNotes from the billing docs
Scrape1 per pagemarkdown, HTML or structured output
Crawl1 per pageeach crawled page also pays its scrape options
Map1 per callURL discovery only, no content
Search2 per 10 resultsrounded up (11 results = 4 credits); scraping results adds page costs
JSON format (LLM extraction)+4 per pagealso question, highlights, audio and video formats
PDF parsing+1 per PDF pageper page of the PDF, not per file
Zero Data Retention+1 per pageJSON plus ZDR = 6 credits per page
PII redaction+4 per pageJSON plus PII redaction = 9 credits per page
Enhanced proxy+0billed as a basic 1-credit request
Interact2 to 7 per browser minute7 with a prompt, 2 for code-only; 1-minute minimum
Monitor1 per page per checkan erroring page is still charged the base credit
Agentdynamic5 free runs a day, then token-based pricing

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.

03 — Section

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.

PlanPlan credits, monthlyPlan credits, annual$5 top-up packPer 1,000 pages via top-up
Hobby$3.80$3.201,000 credits$5.00
Standard$0.99$0.832,000 credits$2.50
Growth$0.80$0.672,500 credits$2.00
Scale$0.75$0.605,000 credits$1.00

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.

Grouped bar chart of Firecrawl cost per 1,000 basic pages: Hobby $3.80 monthly, $3.20 annual, $5.00 via top-up; Standard $0.99, $0.83, $2.50; Growth $0.80, $0.67, $2.00; Scale $0.75, $0.60, $1.00
USD per 1,000 one-credit pages by plan and billing route, computed from Firecrawl's published plan prices and $5 pack sizes.
04 — Section

Rate limits, concurrency, rollover and refunds

Price is one limit; throughput is the other. Firecrawl publishes per-minute limits by endpoint group alongside concurrency.

Plan/scrape, /map, /search/crawl and /agent/interactMax queued jobs
Free10/min2/min2/min50,000
Hobby100/min20/min20/min50,000
Standard500/min100/min100/min50,000
Growth5,000/min1,000/min1,000/min100,000
Scale10,000/min2,000/min1,500/min200,000+

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.

05 — Section

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.

PlanPrice per x.com request (monthly billing)x.com requests per month of plan credits
Hobby$0.114166
Standard$0.02973,333
Growth$0.023916,666
Scale$0.022533,333

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.

06 — Section

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.

Way to read XUnitPriceReturns
Firecrawl x.com URL, Standard planper request$0.0297 (30 credits)Grok summary and structured data for one profile or post
X API pay-per-usage rate cardper post read$0.005 ($5 per 1,000 posts)raw posts; capped at 3M post reads a month, Enterprise above
TwitterAPI.io tweet endpointsper tweet returned$0.15 per 1,000 tweets ($0.003 per 20-tweet page)raw posts with counts, author object and next_cursor

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.

python
"""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)")
07 — Section

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.

Theme in the post textPostsShare of 169
Compares Firecrawl with another tool6840.2%
Credits, top-ups, running out5934.9%
Cost complaint (expensive, burns, adds up)3621.3%
Self-hosting or open source3118.3%
Free tier or free credits2414.2%
Hackathon or promo credits74.1%

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.

Horizontal bar chart of themes in 169 X posts about Firecrawl pricing: comparison with another tool 40.2%, credits and top-ups 34.9%, cost complaint 21.3%, self-hosting 18.3%, free tier 14.2%, hackathon or promo credits 4.1%
Themes in 169 X posts that name Firecrawl and a price term, by keyword rules (a post can carry several), collected in 2026.
08 — Section

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.

09 — Section

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.

python
"""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.

10 — Questions

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.

11 — Further reading

Continue

Sources & further reading
More from this series

Writing about something you built with TwitterAPI.io? Our community rewards program pays API credits for honest tutorials, build logs and videos.

Build it

Stop reading. Start building.

Starter credits cover real testing on real data. Google sign-in, no card, no application queue.

Get an API key

Already building with TwitterAPI.io? Publish an honest tutorial or build log about it and earn up to $200 a month in API credits.