Measured August 27, 2026
Benchmarks
Every latency number below comes from 236 real requests to the live FastAF API, sent one at a time, with the raw per-request records published alongside. Every competitor price comes from that competitor's own pricing page, read on October 18, 2026, with the link next to it.
Requests measured
236
across 15 endpoints
Usable responses
98.7%
stricter than HTTP 200: see method
Median latency
1689 ms
p95 9523 ms
How we measured
One script calls the production API at api.fastaf.co with an ordinary customer key and records, per request, the wall-clock time from sending it to holding the complete response body, the HTTP status, and whether the payload is actually usable.
That last part is the one that matters. A search that returns HTTP 200 carrying an empty result array is a failure for whoever called it, so it is counted as a failure here. Each endpoint has its own check: a search must carry at least one organic result, a transcript at least one segment, a profile a username, a screenshot more than 5 KB of image data.
- Requests run strictly sequentially, so no measurement is distorted by our own concurrency.
- Inputs rotate through a list of different queries and URLs, so nothing comes from a warm cache.
- Measured from a residential connection in Italy. Your latency will differ by the round trip from your machine.
- Percentiles are computed over usable responses only.
- The raw per-request records are published at /benchmark-raw.json, so every number on this page can be recomputed without trusting our summary.
Latency and usable-response rate by endpoint
The request count differs per endpoint because the run had a fixed credit budget, weighted towards the endpoints that get called most.
| Endpoint | Requests | Usable | p50 | p95 |
|---|---|---|---|---|
LinkedIn profile /v1/linkedin | 6 | 100% | 260 ms | 286 ms |
Web Scraping /v1/scrape | 40 | 100% | 768 ms | 2359 ms |
X profile /v1/x | 10 | 100% | 850 ms | 3182 ms |
Google SERP /v1/serp | 30 | 100% | 962 ms | 3535 ms |
Google Trends /v1/trends | 12 | 100% | 1266 ms | 2484 ms |
Google Maps /v1/maps | 15 | 100% | 1555 ms | 3751 ms |
Google Shopping /v1/shopping | 8 | 100% | 1558 ms | 5252 ms |
Amazon /v1/amazon | 30 | 100% | 1860 ms | 2880 ms |
Google Jobs /v1/jobs | 12 | 75% | 1889 ms | 4140 ms |
Google AI Mode /v1/ai | 6 | 100% | 1944 ms | 6842 ms |
YouTube transcript /v1/youtube | 20 | 100% | 2171 ms | 6198 ms |
Google News /v1/news | 15 | 100% | 2664 ms | 23550 ms |
Walmart /v1/walmart | 10 | 100% | 3606 ms | 5403 ms |
Screenshot /v1/screenshot | 10 | 100% | 3913 ms | 13354 ms |
Google Scholar /v1/scholar | 12 | 100% | 7879 ms | 21528 ms |
Fastest median: LinkedIn profile at 260 ms. Slowest: Google Scholar at 7879 ms. Endpoints that drive a real browser, or that ask a search engine to compose an answer, are slower by construction and no API removes that.
Why Google Jobs is not at 100%
Three of the twelve job searches in this run came back as HTTP 200 carrying a list holding one string, There are no jobs for this query, instead of listings. All three were the same query, and it reproduces: on the measurement dateproduct manager returned that message every time, whileproduct manager jobs returned ten real listings. Google does not show a jobs module for every phrasing, and no API can invent one. We count those as failures because that is what they are for the caller. The useful lesson is for your own code: check that the entries are objects with a title, not merely that the list is not empty.
Cost per 1,000 Google searches
What each provider charges when a plan's whole allowance goes to Google searches, cheapest published rate first. Two price columns, because a provider's entry offer and its largest plan are very different propositions: the first is what you pay to start, the second is the best rate that provider publishes anywhere.
| Provider | Turnaround | Entry offer | Best published rate | Source |
|---|---|---|---|---|
| DataForSEO | queue, about 5 min | $0.60 Standard, queued | $0.60 Standard, queued | page |
| Bright Data | real time | $1.50 Pay as you go | $1.31 Scale $499/mo | page |
| FastAF | real time | $2.50 Starter $10 | $1.33 Business $799 | page |
| Apify | real time | $1.80 From, pay per event | $1.80 From, pay per event | page |
| ScraperAPI | real time | $12.25 Hobby $49/mo | $2.30 Advanced $1,975/mo | page |
| SerpApi | real time | $25.00 Starter $25/mo | $3.75 Cloud 1M $3,750/mo | page |
How each row is derived: DataForSEO, Published per-SERP prices. One SERP is 10 organic results by default. Minimum account top-up is $50. Bright Data, Pay as you go rate published per 1,000 requests; the Scale plan includes 380,000 requests. FastAF, Prepaid credit packs valid 12 months; a Google search costs 5 credits and a plain page scrape 1. Apify, Pay per event, one event per scraped search results page. Published as a starting rate. ScraperAPI, Plans are credits; their docs price a Google search at 25 credits and a plain page at 1. SerpApi, Plans are counted in searches, one unit per search. No general page-scraping product.
Where the lower numbers come from: DataForSEO and Bright Data
DataForSEO's $0.60 is its standard, queued mode, answered in about five minutes rather than while you wait. Its real-time mode costs $2.00, more than every FastAF pack from Growth $29 up. Bright Data's $1.31 comes from its Scale $499/mo plan (380,000 searches), against our $1.33 on a one-time pack of 600,000 searches valid 12 months. The comparison is also narrower than what a pack actually buys: a FastAF pack is not a per-search price but one pool of credits spendable across all fifteen products, so search budget you do not use becomes page scrapes, Amazon lookups or transcripts instead of expiring as the wrong kind of unit. There is no subscription and no monthly commitment, and the account balance doubles as a hard spending cap for an autonomous agent.
ZenRows is not in the search table: their pricing page does not state which credit tier a Google search falls into. Serper is excluded: Pricing is rendered client-side and no figure beyond the 2,500 free queries was readable on their own site. Third-party quotes exist and were deliberately not used.
Cost per 1,000 page scrapes
The same arithmetic for one plain public page. SerpApi, DataForSEO's SERP API, Apify's search actor and Bright Data's SERP product are priced for search, so they are not in this table.
| Provider | Entry offer | Best published rate |
|---|---|---|
| ZenRows | $0.36 Build $16/mo | $0.09 Scale $456/mo |
| ScraperAPI | $0.49 Hobby $49/mo | $0.09 Advanced $1,975/mo |
| FastAF | $0.50 Starter $10 | $0.27 Business $799 |
Compare the mode you will actually use, not the cheapest row. On FastAF, JavaScript rendering takes a scrape from 1 credit to 5, premium mode to 10 and both to 25; on ZenRows, by their pricing page, the same steps are 5, 10 and 25.
What this page does not claim
- A usable response is not a stable one. Sending the identical query
graph neural networksto/v1/scholarsix times in a row on the measurement date returned 5, 10, 10, 8, 0 and 10 papers. Search engines are not databases, and the endpoints that read them inherit that. Retry an empty result before treating it as an answer. - We did not run competitors' APIs. Measuring someone else's latency fairly means matching plan, region and target, and we will not publish numbers we cannot stand behind. The price columns are arithmetic on published prices, nothing more.
- Latency depends on the site being fetched as much as on the API. A slow target is slow everywhere.
- A single day's sample says nothing about a bad week. These numbers get re-measured, and this page carries the date of the run it shows.
- Provider prices change. The date beside each one is the day we read it, not the day you are reading this.