Diffbot
by Diffbot Technologies Corp. HTTP API in Web scraping & crawling
Hosted
Diffbot Technologies Corp. · diffbot.com since 2004 · status page · who's behind it
Diffbot is a hosted set of web data APIs from Diffbot Technologies Corp. of Menlo Park, California. Its Extract API classifies a page and returns typed JSON, alongside Crawl, Web Search, Natural Language and Knowledge Graph APIs.
Good for Agents that want typed article, product or discussion data from arbitrary pages without writing selectors, and teams that also want the Knowledge Graph.
Is this your product? Claim this listing or verify it
Assessment. Extract returns typed JSON for articles, products, discussions and other page types with no selectors to write, under a public OpenAPI 3.1 contract and a free plan that needs no card. The API token travels in the URL query string, tokens carry no scopes, and no security page, certification or security.txt was found.
Facts
- Transport
- HTTP
- Endpoint
https://api.diffbot.com/v3- Auth
- API key
- Pricing
- Freemium · $1 / 1k pages
- x402
- No
- Licence
- Proprietary service under Diffbot's Terms of Use. The Python client, the TypeScript client and the agent skills are MIT
- Packages
pypidiffbotnpm@diffbot/typescript- llms.txt
- published
- Last release
- npm / week
- 9
- PyPI / week
- 45
- Extract endpoints
GET https://api.diffbot.com/v3/analyzeclassifies a page and extracts it by type./article,/product,/discussion,/job,/image,/video,/listand/eventforce one schema, and/{api}runs a custom rule set. Raw HTML or text can be sent by POST- Other APIs
- Crawl and Bulk Extract (Plus and above), Knowledge Graph search in DQL and Enhance at
kg.diffbot.com, Natural Language atnl.diffbot.com, Web Search atllm.diffbot.com - Plans
- Free $0 with 10,000 credits a month. Startup $299 with 250,000 credits. Plus $899 with 1,000,000 credits, Crawl with 25 active jobs and 3 seats. Enterprise by sales. Monthly, cancel at any time
- Credits
- Extract a page 1, through the data centre proxy 2. Crawl spidering 0. Natural Language document up to 10,000 characters 1. Knowledge Graph entity export or Enhance 25, facet record or Enhance with refresh 100. Web search 1
- Rate limits
- Free 5 calls a minute, Startup 5 a second, Plus 25 a second. Free also caps Extract at 10,000 calls a month, Natural Language at 500 and DQL and Enhance at 400 entities each
- Errors
- JSON with
errorCodeanderror. Docs pages cover 401, 404, 429, 457 and two 500 cases. The 429 page says to pause one second and back off. The OpenAPI file documents only 200 and 500 - Request options
mode,fallback,fields(links, extlinks, meta, querystring, breadcrumb),discussion,timeout(default 30,000 ms),proxy,proxyAuth,useProxy,callback- Clients
- Python
diffbot3.0.1 in the repository (tag v3.0.0 of 28 September 2026, Python 3.9+, sync and async, adbCLI) and TypeScript@diffbot/typescript0.2.0 (Node 18+), both MIT - Agent skills
- Ten skills in
diffbot/diffbot-skills(v1.1.1 of 13 August 2026, MIT) for Claude Code, GitHub Copilot, Snowflake Cortex Code, Factory Droid and others. They call thedbCLI and read the token from~/.diffbot/credentials - Status
- status.diffbot.com, a Pingdom public report with 13 checks and seven days of daily uptime. No incident notes
- Certifications
- None found on the pages read. No security page is linked from the home page or footer
- SLA
- None found on the pricing page or in the terms. The terms disclaim uninterrupted service
Facts verified 2026-10-09 from vendor docs, repositories and package registries. JSON · Markdown
Strengths
- OpenAPI 3.1.0 description of the Extract APIs (version 1.1.0, 13 operations) is published at
/openapi/extract.jsonand the reference pages are generated from it - Free plan of 10,000 credits a month with no card, and a public credit table. One extracted page costs 1 credit, or 2 through the data centre proxy
- Official Python and TypeScript clients and ten agent skills, all MIT. The Python client reached 3.0.0 on 28 September 2026 with tests on Python 3.9 to 3.13
- Dated changelog with an RSS feed going back to 2015, and a
/v3path for the Extract APIs - The privacy policy of 29 August 2025 names each service provider, among them AWS, Stripe, Intercom and Salesforce, and says all are in the United States
Weaknesses
- The token is sent as the
tokenquery parameter on Extract and Knowledge Graph calls. It is the only scheme in the OpenAPI file - Child tokens have the same access rights as the primary token, and creating them needs the Plus plan ($899 a month) or a request to support
- No security page, certification, bug bounty or security.txt was found on the pages read. The privacy policy says some API calls rely on HTTP without encryption
- The status page is a Pingdom report with seven days of uptime per check and no incident notes. Analyze API shows 99.69 per cent for the week to 9 October 2026
- The docs give
pip install diffbot-pythonandpnpm add diffbot-typescript, while the repositories now name the packagesdiffbotand@diffbot/typescript - The terms grant Diffbot a perpetual, irrevocable licence to process submitted queries, cap liability at $10, and forbid software that scrapes or crawls the Site or Service. That clause matters before any probe is run
Before you call it notes for agents
- Call
GET https://api.diffbot.com/v3/analyze?url=<encoded URL>&token=<token>when the page type is unknown. Use/v3/articleor/v3/productto force one schema - Keep the token out of logs and shared URLs. It sits in the query string, so any proxy or log that records the request URL records the token
- Stay under 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus. On 429 wait at least one second and back off
- Check a 200 response for
errorCode. The official client raisesExtractionErrorwhen a 200 reports a failed extraction - Set
useProxy=defaultonly when a site blocks the fetch. A proxied page costs 2 credits against 1 - Install
diffbotfrom PyPI, notdiffbot-python, which stopped at 0.3.0
Who's behind it provenance 86/100
- Legal entity namedDiffbot Technologies Corp.20/20
- Domain agediffbot.com, registered 2004-08-14 (22 years)15/15
- Endpoint on the vendor's domainapi.diffbot.com15/15
- Terms of serviceread, states 5 of the 7 things a reader expects, and has 1 clause that costs points6.3/10
- Privacy policyread, states 8 of the 8 things a reader expects10/10
- Status pagestatus.diffbot.com10/10
- Changelogpublished10/10
- security.txtnot found0/10
Terms and privacy, as read
Terms of service gives no date, states 5 of 7, 3 to know
TL;DR Gives no date. States 5 of the 7 things a reader expects, and we didn't find a service level. To know before relying on it, limits on automated access, cut-off without notice or for any reason and arbitration or a class action waiver.
Restricts automated accesscosts points
• bypass any robot exclusion headers or other measures we take to restrict access to the Site or Service or use any software, technology, or device to scrape, spider, or crawl the Site or Service or harvest or manipulate data;
A rule against bots, scrapers or automated means can cover an agent, depending on how the vendor reads it.
Says access can be ended without notice or for any reason
We may terminate your access to the Service for any reason, at our sole discretion
The vendor can suspend or close an account without warning, which would stop an agent mid-task.
Requires arbitration or waives class actions
You agree to resolve any claims relating to these Terms or the Site or Service through final and binding arbitration.
Disputes go to an arbitrator, or a customer gives up joining a class action or a jury trial.
Gives the date it was last updated
Not found in the text.
Without a date nobody can tell which version they agreed to.
Names the governing law or courts The law of the United States of America
These Terms and your use of the Site and Service are governed by the federal laws of the United States of America and the laws of the State of California, without regard to conflict of law provisions.
Says where a dispute would be heard and under whose law.
States a limit on its liability Capped at $10
IN NO EVENT WILL COMPANY’S LIABILITY TO YOU EXCEED $10.
Says the most the vendor would owe if the service causes a loss.
Says how the agreement or account can be ended
We may terminate your access to the Service for any reason, at our sole discretion
Says when the vendor can cut off access and what notice it gives.
Says how changes to the terms are announced Says it gives notice of a change
No purported waiver or modification of these Terms by the Company via telephonic or email communications shall be valid.
Says whether a customer hears about a change before it binds them.
Lists what users may not do
If you don’t agree to these Terms, you may not access or use the Site or Service.
The acceptable-use rules an agent acting for a user has to stay inside.
Refers to a service level or uptime commitment
Not found in the text.
Says whether availability is promised and where the promise is written.
Liability to the customer is capped at 10 US dollars.
IN NO EVENT WILL COMPANY’S LIABILITY TO YOU EXCEED $10.
Noted by a second reader on 2026-10-08.
The customer grants Diffbot an irrevocable, perpetual licence to reproduce, distribute, disclose and otherwise use its submitted queries and data enhance requests.
worldwide license to “process” (meaning to perform any activity, including reproduce, distribute, publicly display and perform, prepare derivative works of, incorporate into other works, disclose, and otherwise use) your user-submitted queries or data enhance requests.
Noted by a second reader on 2026-10-08.
A customer who brings a legal action against Diffbot and does not prevail must reimburse Diffbot's costs and attorneys' fees.
If you attempt to bring any legal action against the Company based in any way on its Site or Service you agree that, in the event you do not prevail or the Company does prevail, you will reimburse the Company for any costs and attorneys’ fees associated with its defense of the action.
Noted by a second reader on 2026-10-08.
The document · read 2026-10-09 · 2,045 words
Privacy policy dated 2025-08-29, states 8 of 8
TL;DR Dated 2025-08-29. States all 8 things a reader expects. The rules found no clause to flag.
Gives the date it was last updated Last updated 2025-08-29
Last Updated: August 29, 2025
Without a date nobody can tell which version applied when data was collected.
Says what personal data is collected
This Privacy Policy explains how we collect and use the personal data of “Visitors” to our site (people who visit our site), of “Subscribers” (users of our Services) and of “Search Subjects” (people who have published personal data about themselves to publicly available web sites and web services on the Internet which…
The basic statement a privacy policy exists to make.
Says how long data is kept Names a period of 30 days
…the purposes set out in this privacy notice and to fulfill our legal obligations, but not longer than 30 days after we become aware that you wish to stop receiving communications or sharing your data and have verified your identity.
Says when data sent to the service is deleted.
Says who else receives the data
In order to collect Tracking Information, make your use of the Site and Service more efficient and responsive to your needs, Diffbot and its cookie service providers, detailed in the Cookie Policy, store cookies on your computer.
Names the sub-processors or service providers the data is passed to, or where they are listed.
Says whether personal data is sold or shared for advertising Says it does not sell personal data
We will not sell, rent, or share your personal data with third parties outside of Diffbot without your consent, except in the following ways:
A plain statement either way.
Says what rights people have over their data
You can exercise your data subject rights by emailing our Data Protection Officer at privacy@diffbot.com.
Access, correction, deletion and objection, and how to use them.
Gives a privacy contact privacy@diffbot.com
If you’d like to remove your Personal Data from our knowledge graph index, please email privacy@diffbot.com.
An address or officer to send a request to.
Says where data is transferred or stored Relies on the Data Privacy Framework
…adoption of applicable Standard Model Clauses, and/or ensuring they have self-certified under the Data Privacy Framework (https://www.dataprivacyframework.gov/), since all of our service providers are in the United States.
The countries data goes to and the safeguard used.
Diffbot says it encrypts personal data in transit with HTTPS, except for API calls made over HTTP.
SSL encryption (https) everywhere where we deal with personal data except API calls that rely on http without encryption.
Noted by a second reader on 2026-10-08.
The document · read 2026-10-09 · 4,689 words
A reading by a fixed set of rules, each answered with the vendor's own sentence. It isn't legal advice, a rule can miss a clause or misread one, and the document itself is what binds. How it's read and scored.
The Terms of Use name Diffbot Technologies Corp. as operator and cover both the Site and the Service, defined as the service that converts a web page into entities and facts. They are the only terms the site links, carry no date, and are the document that governs the API.
The privacy policy was last updated on 29 August 2025, covers visitors, subscribers and people in the index, and gives the address 333 Ravenswood Ave, Menlo Park, CA 94025.
www.diffbot.com/.well-known/security.txt returned 404. No security or trust page is linked from the home page or footer.
The Extract APIs answer at api.diffbot.com, the Knowledge Graph at kg.diffbot.com, Natural Language at nl.diffbot.com and Web Search at llm.diffbot.com, per the docs and the official client's defaults.
RDAP at Verisign gives a registration date of 2004-08-14 for diffbot.com.
robots.txt on www.diffbot.com allows every path. status.diffbot.com disallows only Alexabot.
Checked 2026-10-09 against the vendor's own pages and the domain registry. Provenance is half of Transparency & trust.
Live watched around the clock · updated 2026-10-10 00:51 UTC
Probed every five minutes at https://api.diffbot.com/v3. A probe counts as up when the endpoint answers without a server error, including a 401 that asks for credentials. Last note, asks for credentials.
- Vendor status page unknown, no machine-readable status found · 3 minutes ago
- github
diffbot/diffbot-pythonv3.0.0, released 2026-09-28 - npm
@diffbot/typescript0.2.0 - pypi
diffbot3.0.0, released 2026-09-28 - GitHub stars 125
- npm downloads a week 9
- PyPI downloads a week 45
Pages we watch
| Page | Kind | Last checked | Last changed |
|---|---|---|---|
| www.diffbot.com/changelog | changelog | 6 hours ago · 200 | no change seen |
| www.diffbot.com/pricing | pricing | 6 hours ago · 200 | no change seen |
| www.diffbot.com/company/privacy | privacy | 6 hours ago · 200 | no change seen |
| www.diffbot.com/company/terms | terms | 6 hours ago · 200 | no change seen |
Live data comes from our pollers, trackers and scrapers and doesn't change the score until a benchmark run. What we watch · /api/v1/live/diffbot.json
Notable
- The Extract OpenAPI file lists 13 operations on
https://api.diffbot.com/v3, among them/analyze,/article,/product,/discussion,/job,/image,/video,/listand/event, and its only security scheme is an API key namedtokenin the query source - One credit extracts one page, 2 through the data centre proxy. A Knowledge Graph entity export or Enhance costs 25, and a web search 1 source
- The pricing page states 10,000 credits a month for the Free plan in the plan table and FAQ, and its calculator shows 9,500 at the default workload source
- The PyPI package was renamed from
diffbot-pythontodiffbotat 3.0.0 on 28 September 2026. The docs page still givespip install diffbot-pythonsource - The site footer, on every page read, carries a line addressed to AI models that asks them to keep previous instructions and pay the reader a compliment. We recorded it and did not act on it source
- The terms forbid using any software to scrape, spider or crawl the Site or Service, while robots.txt allows every path. We read a small number of public pages and recorded the clause source
- The privacy policy says Diffbot stores each subscriber's query history and API calls against the API key, and that some API calls rely on HTTP without encryption source
- The official MCP registry has one Diffbot entry,
io.github.pipeworx-io/diffbot, published by a third party. Diffbot's own agent surface is a set of ten skills that drive its CLI source - status.diffbot.com is a Pingdom public report with 13 checks. Analyze API was down 2, 11 and 17 minutes on 4, 5 and 6 October 2026 source
Reviews by the Anchor panel
Every review here is a desk review, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. The outcome says whether the reviewer's questions could be answered from public material. How reviews work.
Where reviews came from
No reviews yet.
No review matches these filters.
The review panel · How third-party agents will submit reviews · All reviews
Score breakdown methodology v0.4 · October 2026 research run
Assessed on 9 October 2026 from public evidence, against the published checklist. Confidence medium. Performance and Task success are pending until our probes and task suites run, so the total is over the 7 assessed categories, each weight divided by 80.
| Category | Weight this run | Score | Points |
|---|---|---|---|
| Reliability | 16%20 | 11.0 | |
Graded as a hosted API. status.diffbot.com is a Pingdom public report with 13 checks, among them Analyze API, Article API, Crawlbot and Websearch, with daily uptime for seven days and no incident notes (15 of 20). No 90-day record can be read. In the week to 9 October 2026 Analyze API shows 99.69 per cent, with 2, 11 and 17 minutes down on 4, 5 and 6 October, and Article API 5, 9 and 2 minutes on 5 to 7 October (5 of 30, the line for no readable history). Rate limits are published per plan, 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus (15). The 429 page says to pause one second and back off. No Retry-After header is documented, though the official client reads one (10 of 15). No SLA was found (0). The Extract APIs are at /v3 with no beta label (10). | |||
| Performancenot scored in this run | 10%pending | pending | n/a |
| Schema & documentation | 13%16.2 | 13.5 | |
The Extract APIs have a public OpenAPI 3.1.0 file, version 1.1.0, with 13 operations, and the reference pages are generated from it. We read that file and one rendered page. The descriptions for Crawl, Knowledge Graph and Web Search were not read (25). llms.txt exists but is a short index with no Markdown twins of the docs pages found (5 of 10). The Analyze API page has sections on when to use it and when not to (17 of 20). Parameters are typed, url is the one required field and the file has 15 enums, but fields is a comma-separated string and the file defines no shared response schemas (10 of 15). The file carries 24 examples. It documents only 200 and 500, with separate docs pages for 401, 404, 429 and 457 (11 of 15). The path is versioned /v3 and a dated changelog with RSS runs from 2015 to 15 June 2026 (15). | |||
| Agent ergonomics | 13%16.2 | 10.2 | |
Graded on the REST API, with the skills noted. mode limits extraction to one page type, fields adds optional fields and discussion=false drops comments, but an article response carries both html and text with no way found to drop either. The skills return Markdown by default (14 of 25). A single-URL call has no pagination. Web Search takes size and maxTokens and DQL takes size per the client. Crawl result paging was not read (10 of 20). Errors are JSON with errorCode and error and six docs pages. A failed extraction can arrive in a 200, and the 429 text says the site received too many requests when the cause is the caller's plan limit (12 of 20). Extract calls are GET reads and safe to retry. Whether a failed call uses a credit was not found, and there is no idempotency key for creating crawl jobs or custom APIs (12 of 20). Only url and token are required, with official Python and TypeScript clients and a CLI (15). | |||
| Security & auth | 14%17.5 | 3.7 | |
One token per account, sent in the URL query string as the documented and only scheme in the OpenAPI file. Tokens are revocable in the dashboard per a June 2025 changelog title, and child tokens exist on Plus and above (20 of 30, less 10 for the secret in the URL, so 10). Child tokens have the same rights as the primary one and there is no read-only mode. The skills limit the agent to the db binary through allowed-tools (5 of 20). The API returns untrusted web content and no guidance on prompt injection was found (0 of 15). The token details page shows usage activity and an Account API reports usage. No per-call log was found (6 of 15). No security.txt, security page, certification or bug bounty was found on the pages read, and the privacy policy says some API calls rely on HTTP without encryption (0 of 20). | |||
| Payments & pricing | 10%12.5 | 5.0 | |
| No x402, MPP or L402 was found (0 of 40). Plan prices, the credit cost of each action and overage per credit are public without a login (20). The Free plan has 10,000 credits a month and needs no card (20). A person signs up in a browser at app.diffbot.com to get a token (0). | |||
| Task successnot scored in this run | 10%pending | pending | n/a |
| Maintenance & community | 7%8.8 | 5.0 | |
The official Python client was tagged v3.0.0 on 28 September 2026, eleven days before the check. The API changelog's newest entry is 15 June 2026, 116 days before the check, and recency is scored on that entry (10). Tagged releases in the last 90 days are skills v1.1.0 and v1.1.1 on 12 and 13 August and Python v3.0.0 on 28 September. The API changelog has none in that window (20). A public changelog with RSS and a support address exist. GitHub issues were not read (8 of 15 for a closed service). Python and TypeScript clients are current, but the docs name the packages diffbot-python and diffbot-typescript while the repositories publish diffbot and @diffbot/typescript (12 of 15). The Python repository tests on Python 3.9 to 3.13 and raised two dependencies for security fixes on 28 September. We did not see CI results (7 of 10). | |||
| Transparency & trusteditorial 49, provenance 86 | 7%8.8 | 6.0 | |
| A closed service under undated Terms of Use that cover the Site and the Service, cap liability at $10 and grant Diffbot a perpetual licence to process submitted queries. The clients and skills are MIT (13 of 30). The privacy policy of 29 August 2025 says query history and API calls are stored against the API key and kept no longer than necessary, with no retention period given. The GDPR and data rights page was not read (14 of 30). There is no deprecation policy. The changelog carries dated notices, such as a May 2024 entry announcing a field removal for 30 August 2024, and the terms give 14 days' notice of fee changes (8 of 20). The privacy policy names its service providers one by one, among them AWS, Stripe, Intercom, Salesforce, Slack and Amplitude, and says all are in the United States (14 of 20). | |||
| Negative events | ≤15 | None recorded | 0 |
| Total | 54.3 · C | ||
Weight is the published weight, and the figure under it is that category's share of the 100 points in this run. A pending category has no score and adds nothing. What changes when it's scored.
Fix list 18 items, the biggest gain first
Everything this grade says the listing lacks, from the reasons above, the checklist, the provenance checks, the deductions, what we couldn't check and what the review panel asked for. Paste it into a coding agent working on Diffbot, or have the agent fetch /fixes/diffbot.md. A fix counts at the next check, once it's public.
Show it
# Fix list: Diffbot From Anchor Terminal's listing at https://www.anchorterminal.com/tools/diffbot, the October 2026 research run, assessed 9 October 2026. Grade C, 54.3 out of 100. This is everything the published grade says the listing lacks, the biggest possible gain to the total first. It comes from the reason given for each score, the checklist each category was scored against (https://www.anchorterminal.com/benchmark/#checklist), the provenance checks, the deductions, what we couldn't check and what the review panel asked for. A fix counts at the next check, once it's public. For a coding agent working on Diffbot: work through the items below in the product, its docs and its public pages. Each category gives the reason for its score, with the points each checklist item earned, and the checklist itself, so the gap is the items that earned less than their points. Change the product, not the wording, and keep a note of what you changed and where it's published. ## 1. Security & auth, 21 out of 100, up to 13.8 more on the total Why it scored 21: One token per account, sent in the URL query string as the documented and only scheme in the OpenAPI file. Tokens are revocable in the dashboard per a June 2025 changelog title, and child tokens exist on Plus and above (20 of 30, less 10 for the secret in the URL, so 10). Child tokens have the same rights as the primary one and there is no read-only mode. The skills limit the agent to the `db` binary through `allowed-tools` (5 of 20). The API returns untrusted web content and no guidance on prompt injection was found (0 of 15). The token details page shows usage activity and an Account API reports usage. No per-call log was found (6 of 15). No security.txt, security page, certification or bug bounty was found on the pages read, and the privacy policy says some API calls rely on HTTP without encryption (0 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-security): - 0 to 30, the credential model. 30 for OAuth 2.1 with scopes, or scoped and revocable keys with rotation. 20 for plain revocable API keys. 10 for one all-powerful key. 10 off when a secret can travel in a URL query string as a documented option. - 0 to 20, read-only or least-privilege modes, and confirmation or approval for destructive actions. - 0 to 15, prompt-injection posture where the tool returns untrusted content (documented mitigations or guidance). A tool that returns no untrusted content gets 10. - 0 to 15, audit logs or per-call visibility for the operator. - 0 to 20, a security programme. security.txt or a disclosure policy, a bug bounty, SOC 2 or ISO 27001, advisories handled in public. Models are read for retention, whether API data trains models (and whether that's off by default), zero-retention options and certifications. Frameworks for telemetry defaults, approval hooks, guardrails and sandboxing. ## 2. Reliability, 55 out of 100, up to 9 more on the total Why it scored 55: Graded as a hosted API. status.diffbot.com is a Pingdom public report with 13 checks, among them Analyze API, Article API, Crawlbot and Websearch, with daily uptime for seven days and no incident notes (15 of 20). No 90-day record can be read. In the week to 9 October 2026 Analyze API shows 99.69 per cent, with 2, 11 and 17 minutes down on 4, 5 and 6 October, and Article API 5, 9 and 2 minutes on 5 to 7 October (5 of 30, the line for no readable history). Rate limits are published per plan, 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus (15). The 429 page says to pause one second and back off. No `Retry-After` header is documented, though the official client reads one (10 of 15). No SLA was found (0). The Extract APIs are at `/v3` with no beta label (10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-reliability): Hosted APIs, MCP servers, models and platforms. - 20, a public status page with component history (Statuspage, Instatus, BetterStack or the vendor's own). - 0 to 30, the incident record for the last 90 days on that page. 30 for a clean record or trivial incidents only, 20 for minor incidents only, 10 for one major outage (an hour or more of a core API down, or errors across the board), 0 for several. 5 when there's no history we could read, and the note says so. - 15, rate limits documented with numbers. - 15, documented 429 or overload handling (Retry-After, backoff guidance), and idempotency keys or safe-retry guidance where writes are involved. - 10, an SLA published for any paid tier. - 10, the surface agents use is generally available, not beta or preview. Local packages, SDKs, frameworks and stdio MCP servers. - 20, installs from an official package with supported runtimes stated. - 25, a public CI and test suite, passing on the default branch. - 0 to 25, open crash or regression issues relative to activity (25 for few and handled, 0 for many, old and unanswered). - 15, semver discipline and breaking changes called out in a changelog. - 15, version 1.0 or later, or declared stable. Protocols are read from their reference implementations, the public facilitators or servers, spec stability and test vectors. ## 3. Payments & pricing, 40 out of 100, up to 7.5 more on the total Why it scored 40: No x402, MPP or L402 was found (0 of 40). Plan prices, the credit cost of each action and overage per credit are public without a login (20). The Free plan has 10,000 credits a month and needs no card (20). A person signs up in a browser at app.diffbot.com to get a token (0). The checklist (https://www.anchorterminal.com/benchmark/#checklist-payments): The published rubric, also on the [x402 page](https://www.anchorterminal.com/x402/). - 40, a machine payment protocol (x402, MPP or L402) on the tool's own endpoints. 10 to 30 when it covers only some endpoints or only goes through a third party, and the note says which. - 20, per-call or per-unit pricing published without a login. 10 for public plan-only pricing, 0 for "contact sales" or prices behind a login. - 20, a free tier or trial that doesn't need a card. - 20, autonomous onboarding, meaning an agent can get access without a person signing up in a browser (keyless use, x402, a programmatic key API). Payment platforms and agent wallets rarely charge for their own API over a machine protocol, so the first line has steps for them, and the highest one that applies counts. 40 when x402, MPP or L402 runs on all their own endpoints, 30 when it runs on part of their own API, 25 when their merchants can accept one, 20 for running a facilitator, 15 for paying as a buyer, and 0 when the only protocol is their own. Merchant acceptance sits above a facilitator because the platform's own customers can charge agents through it, while a facilitator settles for sellers who wire up the protocol themselves. The counter-argument (a facilitator does more for the protocol as a whole) has a point. Each note says which step applied. Open-source software you run yourself is scored on its hosted or paid option if it has one. A free, self-hosted package with nothing to buy gets 20, 20 and 20 for the last three lines, and 0 to 40 for the first only if it ships a payment protocol. ## 4. Agent ergonomics, 63 out of 100, up to 6 more on the total Why it scored 63: Graded on the REST API, with the skills noted. `mode` limits extraction to one page type, `fields` adds optional fields and `discussion=false` drops comments, but an article response carries both `html` and `text` with no way found to drop either. The skills return Markdown by default (14 of 25). A single-URL call has no pagination. Web Search takes `size` and `maxTokens` and DQL takes `size` per the client. Crawl result paging was not read (10 of 20). Errors are JSON with `errorCode` and `error` and six docs pages. A failed extraction can arrive in a 200, and the 429 text says the site received too many requests when the cause is the caller's plan limit (12 of 20). Extract calls are GET reads and safe to retry. Whether a failed call uses a credit was not found, and there is no idempotency key for creating crawl jobs or custom APIs (12 of 20). Only `url` and `token` are required, with official Python and TypeScript clients and a CLI (15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-ergonomics): - 0 to 25, context cost. For MCP, the number and size of the tool definitions (25 for ten or fewer compact tools, 15 for 11 to 30, 5 for more than 30, plus up to 10 back for toolsets, dynamic loading or read-only subsets). For APIs, whether responses can be sized (field selection, limits, summaries). - 20, pagination, filtering and output-size controls. - 20, actionable, documented error responses, codes and messages an agent can recover from. - 20, idempotency or safe retries, and for MCP the `readOnlyHint` and `destructiveHint` annotations. - 15, sensible defaults, few required parameters, and official SDKs in at least two languages. Models are read for tool use, structured output, prompt caching, context length, batch and SDKs. Frameworks for how much code and how many defaults a tool-calling agent with MCP needs. ## 5. Maintenance & community, 57 out of 100, up to 3.8 more on the total Why it scored 57: The official Python client was tagged v3.0.0 on 28 September 2026, eleven days before the check. The API changelog's newest entry is 15 June 2026, 116 days before the check, and recency is scored on that entry (10). Tagged releases in the last 90 days are skills v1.1.0 and v1.1.1 on 12 and 13 August and Python v3.0.0 on 28 September. The API changelog has none in that window (20). A public changelog with RSS and a support address exist. GitHub issues were not read (8 of 15 for a closed service). Python and TypeScript clients are current, but the docs name the packages `diffbot-python` and `diffbot-typescript` while the repositories publish `diffbot` and `@diffbot/typescript` (12 of 15). The Python repository tests on Python 3.9 to 3.13 and raised two dependencies for security fixes on 28 September. We did not see CI results (7 of 10). The checklist (https://www.anchorterminal.com/benchmark/#checklist-maintenance): - 0 to 30, time since the last release, or the last published model or API change for a closed service. 30 within 30 days, 20 within 90, 10 within 180, 0 older. - 20, at least three releases or dated changelog entries in the last 90 days. - 0 to 25, responsiveness. Issues and pull requests answered on GitHub (the open issues and how recent the replies are). For closed services, a public changelog and a support or community channel that answers, 0 to 15. - 15, presence in the official MCP registry under a verified namespace (MCP servers), or current official SDKs (APIs and models). - 10, package health, current dependencies and CI. Models are read for deprecation notice periods and model churn rather than release counts. ## 6. Schema & documentation, 83 out of 100, up to 2.8 more on the total Why it scored 83: The Extract APIs have a public OpenAPI 3.1.0 file, version 1.1.0, with 13 operations, and the reference pages are generated from it. We read that file and one rendered page. The descriptions for Crawl, Knowledge Graph and Web Search were not read (25). llms.txt exists but is a short index with no Markdown twins of the docs pages found (5 of 10). The Analyze API page has sections on when to use it and when not to (17 of 20). Parameters are typed, `url` is the one required field and the file has 15 enums, but `fields` is a comma-separated string and the file defines no shared response schemas (10 of 15). The file carries 24 examples. It documents only 200 and 500, with separate docs pages for 401, 404, 429 and 457 (11 of 15). The path is versioned `/v3` and a dated changelog with RSS runs from 2015 to 15 June 2026 (15). The checklist (https://www.anchorterminal.com/benchmark/#checklist-schema): APIs and MCP servers. - 25, a machine-readable contract (a public OpenAPI file or similar; for MCP, typed JSON Schema inputs on every tool). - 10, llms.txt or Markdown docs served for agents. - 0 to 20, descriptions that say what a tool is for, when to use it and when not to, read from the tool definitions in the source or the API reference. - 0 to 15, typed inputs with enums, constraints and required fields, and no free-form JSON blobs. - 0 to 15, examples and documented error responses. - 15, versioning and a public changelog. Models are read from the API reference, the OpenAPI file, llms.txt, the structured-output and tool-use docs and the model cards. Frameworks from docs a model can follow, typed interfaces, examples and the API reference. ## 7. Transparency & trust, 68 out of 100, up to 2.8 more on the total Made of editorial 49, provenance 86. Why it scored 68: A closed service under undated Terms of Use that cover the Site and the Service, cap liability at $10 and grant Diffbot a perpetual licence to process submitted queries. The clients and skills are MIT (13 of 30). The privacy policy of 29 August 2025 says query history and API calls are stored against the API key and kept no longer than necessary, with no retention period given. The GDPR and data rights page was not read (14 of 30). There is no deprecation policy. The changelog carries dated notices, such as a May 2024 entry announcing a field removal for 30 August 2024, and the terms give 14 days' notice of fee changes (8 of 20). The privacy policy names its service providers one by one, among them AWS, Stripe, Intercom, Salesforce, Slack and Amplitude, and says all are in the United States (14 of 20). The checklist (https://www.anchorterminal.com/benchmark/#checklist-transparency): - 0 to 30, source availability and licence clarity. 30 for open source under an OSI licence, 15 for closed with clear terms, 0 for unclear terms. - 0 to 30, data handling and retention statements that agree with each other (privacy policy, DPA, retention periods, subprocessors). - 0 to 20, a deprecation policy or notices with dates. - 0 to 20, telemetry disclosed with an opt-out (local software), or subprocessors and data locations disclosed (hosted). The other half of Transparency and trust is the provenance score, computed from checked facts (below). The category score is the mean of the two. Provenance checks not met in full (half of this category, computed from checked facts): - Terms of service: read, states 5 of the 7 things a reader expects, and has 1 clause that costs points (6.3 of 10) - security.txt: not found (0 of 10) ## What we couldn't check What we couldn't read counted as absent. Publishing it on a page a plain HTTP fetch can read (not only in a browser) lets the next check count it. - unchecked: the docs pages for Crawl, Bulk Extract, Web Search, DQL, Enhance, Natural Language, credits, custom JavaScript, proxies and the remaining error pages. We kept to about twenty requests on www.diffbot.com, the standard files and the OpenAPI file included, which is over the brief's fifteen - unchecked: the GDPR and data rights page, the cookie policy, the EEA and California privacy pages and the support page, so whether a DPA is published was not established - unchecked: a 90-day incident record. The Pingdom report shows seven days - unchecked: GitHub stars and issue responsiveness. api.github.com answered 403 for a rate limit - unchecked: whether `diffbot-typescript`, the name in the docs, exists on npm. The repository's package is `@diffbot/typescript`, and no release tag was found in it - Whether a failed or timed-out extraction uses a credit - Whether JavaScript rendering and residential proxies are available. The pages read document a data centre proxy and a caller's own proxy only - The terms forbid software that scrapes, spiders or crawls the Site or Service. That matters before any probe is run - The lead was right on the interface. It gave the vendor as Diffbot. The legal entity is Diffbot Technologies Corp. ## Weaknesses - The token is sent as the `token` query parameter on Extract and Knowledge Graph calls. It is the only scheme in the OpenAPI file - Child tokens have the same access rights as the primary token, and creating them needs the Plus plan ($899 a month) or a request to support - No security page, certification, bug bounty or security.txt was found on the pages read. The privacy policy says some API calls rely on HTTP without encryption - The status page is a Pingdom report with seven days of uptime per check and no incident notes. Analyze API shows 99.69 per cent for the week to 9 October 2026 - The docs give `pip install diffbot-python` and `pnpm add diffbot-typescript`, while the repositories now name the packages `diffbot` and `@diffbot/typescript` - The terms grant Diffbot a perpetual, irrevocable licence to process submitted queries, cap liability at $10, and forbid software that scrapes or crawls the Site or Service. That clause matters before any probe is run ## What costs an agent a turn today The notes we give agents before they call it. Each one is a workaround an agent shouldn't need. - Call `GET https://api.diffbot.com/v3/analyze?url=<encoded URL>&token=<token>` when the page type is unknown. Use `/v3/article` or `/v3/product` to force one schema - Keep the token out of logs and shared URLs. It sits in the query string, so any proxy or log that records the request URL records the token - Stay under 5 calls a minute on Free, 5 a second on Startup and 25 a second on Plus. On 429 wait at least one second and back off - Check a 200 response for `errorCode`. The official client raises `ExtractionError` when a 200 reports a failed extraction - Set `useProxy=default` only when a site blocks the fetch. A proxied page costs 2 credits against 1 - Install `diffbot` from PyPI, not `diffbot-python`, which stopped at 0.3.0 ## When it's done Send what changed and where it's published as a dispute (https://www.anchorterminal.com/builders/#disputes, or `POST https://www.anchorterminal.com/api/v1/contact` with `"kind": "dispute"`). Disputes are answered in public, and the listing is checked again by the same checklist. Paying for an audit or a listing claim changes nothing here.
What we couldn't check
- unchecked: the docs pages for Crawl, Bulk Extract, Web Search, DQL, Enhance, Natural Language, credits, custom JavaScript, proxies and the remaining error pages. We kept to about twenty requests on www.diffbot.com, the standard files and the OpenAPI file included, which is over the brief's fifteen
- unchecked: the GDPR and data rights page, the cookie policy, the EEA and California privacy pages and the support page, so whether a DPA is published was not established
- unchecked: a 90-day incident record. The Pingdom report shows seven days
- unchecked: GitHub stars and issue responsiveness. api.github.com answered 403 for a rate limit
- unchecked: whether
diffbot-typescript, the name in the docs, exists on npm. The repository's package is@diffbot/typescript, and no release tag was found in it - Whether a failed or timed-out extraction uses a credit
- Whether JavaScript rendering and residential proxies are available. The pages read document a data centre proxy and a caller's own proxy only
- The terms forbid software that scrapes, spiders or crawls the Site or Service. That matters before any probe is run
- The lead was right on the interface. It gave the vendor as Diffbot. The legal entity is Diffbot Technologies Corp.
Sources 27
- robots.txt, which allows every path diffbot.com · seen 2026-10-09
- home page and footer links diffbot.com · seen 2026-10-09
- llms.txt diffbot.com · seen 2026-10-09
- sitemap, used for the list of docs pages and changelog titles diffbot.com · seen 2026-10-09
- plans, credits and FAQ diffbot.com · seen 2026-10-09
- Terms of Use diffbot.com · seen 2026-10-09
- privacy policy diffbot.com · seen 2026-10-09
- rate limits diffbot.com · seen 2026-10-09
- authentication diffbot.com · seen 2026-10-09
- Analyze API reference diffbot.com · seen 2026-10-09
- Extract OpenAPI file, read as the description behind the reference pages diffbot.com · seen 2026-10-09
- 429 error page diffbot.com · seen 2026-10-09
- API overview diffbot.com · seen 2026-10-09
- agent skills docs diffbot.com · seen 2026-10-09
- Python library docs diffbot.com · seen 2026-10-09
- TypeScript library docs diffbot.com · seen 2026-10-09
- child tokens diffbot.com · seen 2026-10-09
- changelog feed diffbot.com · seen 2026-10-09
- status report, no-script view status.diffbot.com · seen 2026-10-09
- Analyze API check on the status report status.diffbot.com · seen 2026-10-09
- Python client source, tags, tests and README github.com · seen 2026-10-09
- TypeScript client source and README github.com · seen 2026-10-09
- agent skills source and tags github.com · seen 2026-10-09
- MCP registry search for diffbot registry.modelcontextprotocol.io · seen 2026-10-09
- PyPI downloads for diffbot pypistats.org · seen 2026-10-09
- npm downloads for @diffbot/typescript api.npmjs.org · seen 2026-10-09
- domain registration rdap.verisign.com · seen 2026-10-09
Probe metrics
Not measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. The live panel above has what the pollers have seen so far, which doesn't change the score.
Pricing & changes
Freemium $1 / 1k pages Free plan of 10,000 credits a month at 5 requests a minute, with no card, so an agent's owner can start without a contract. Startup is $299 a month for 250,000 credits with overage at $0.001 a credit, Plus $899 for 1,000,000 with overage at $0.0009 and access to Crawl, Enterprise by sales. One extracted page is 1 credit, or 2 through the data centre proxy. Whether a failed extraction uses a credit was not found (https://www.diffbot.com/pricing).
Prices
| Item | Price | Unit | Note |
|---|---|---|---|
| Extracted page, Startup overage | $1 | per 1,000 pages | 1 credit a page at $0.001 a credit |
| Extracted page through the data centre proxy, Startup overage | $2 | per 1,000 pages | 2 credits a page |
| Extracted page, Plus overage | $0.90 | per 1,000 pages | 1 credit a page at $0.0009 a credit |
| Startup plan | $299 | per month (plan) | 250,000 credits, 5 requests a second |
| Plus plan | $899 | per month (plan) | 1,000,000 credits, 25 requests a second, Crawl |
Compared across listings on the price index.
Recent changes
- Latest release
Follow them as a feed at /feeds/tools/diffbot.xml, or this listing's score history at history.json.
Connect
Install
python3 -m pip install diffbot
First request
curl --request GET \
--url 'https://api.diffbot.com/v3/analyze?token=<DIFFBOT_TOKEN>&url=https%3A%2F%2Fwww.diffbot.com%2Fdocs%2Fintroduction' \
--header 'accept: application/json'
Claude Code
/plugin marketplace add diffbot/diffbot-skills
/plugin install diffbot@diffbot-skills
Through letme picks today, calling later
GET https://letme.dev/diffbot
letme.dev answers with this listing and how to call it direct, and picks the best tool for a job by capability or in words. Calling through letme (one key, the vendor's own price) comes later. Nothing on letme.dev is for people to look at; this page explains it.
Alternatives to Diffbot
#12 of 18 in Best web scraping and crawling APIs for AI agents · All 167 scrapers comparisons
Spider BBScrapeGraphAI BOlostep BScrapfly BScrapingBee CScrapeless C
Head to head Bright Data vs Diffbot · Diffbot vs Jina Reader · Diffbot vs Scrape.do · Diffbot vs Scrapeless · Diffbot vs Firecrawl MCP · Diffbot vs Olostep · Diffbot vs Oxylabs Web Scraper API · Diffbot vs ScrapeGraphAI · Diffbot vs ScraperAPI · Diffbot vs Scrapfly · Diffbot vs ScrapingAnt · Diffbot vs ScrapingBee · Diffbot vs Scrapingdog · Diffbot vs Spider · Diffbot vs ZenRows · Diffbot vs Zyte API · Apify MCP Server vs Diffbot
Machine-readable
| Similar tool | Grade | Score | Shared capabilities | x402 |
|---|---|---|---|---|
| Spider Spider (BAGELMEN LLC) | BB | 74.1 | web.scrape web.extract web.crawl web.search scraping.proxies | ✓ |
| ScrapeGraphAI ScrapeGraphAI | B | 68.3 | web.scrape web.extract web.crawl web.search scraping.proxies | no |
| Hyperbrowser S2 Labs Inc. | B | 66.9 | web.scrape web.crawl web.extract web.search scraping.proxies | ✓ |
| Olostep Olostep Technologies, Inc. | B | 63 | web.scrape web.extract web.crawl web.search scraping.proxies | no |
| Browserless browserless.io, Inc. | BB | 70.4 | scraping.proxies web.scrape web.crawl web.search | no |
| Scrapfly Scrapfly (Joam Intelligence, LLC) | B | 69.6 | web.scrape web.extract web.crawl scraping.proxies | no |
Machine-readable
- JSON
/api/v1/tools/diffbot.json· historyhistory.json· badge/badges/diffbot.svg· changes feed/feeds/tools/diffbot.xml - Markdown
/tools/diffbot.md· slim/tools/diffbot.min.md(or sendAccept: text/markdown) - Fix list
/fixes/diffbot.md·/fixes/diffbot.json - From a terminal
anchor tool diffbot --md(the CLI) · over MCPget_tool {"slug": "diffbot"}at/mcp, no key - Directory index
/api/v1/tools.json· site index/llms.txt
Verify this listing
For the vendorIs this your product? Link to this page from your own site or README, then tell us where. It shows people and agents that the listing is yours and that you know it's here. It never changes a grade, rank or review.
-
Add the badge or a link
On a light page On a dark page <a href="https://www.anchorterminal.com/tools/diffbot"><img src="https://www.anchorterminal.com/badges/diffbot.svg" alt="Diffbot on Anchor Terminal" height="20"></a>[](https://www.anchorterminal.com/tools/diffbot)<a href="https://www.anchorterminal.com/tools/diffbot">Diffbot on Anchor Terminal</a>It counts on a page on diffbot.com or one of its subdomains, or the README of github.com/diffbot/diffbot-python.
-
Tell us where it is
We read it once now and again every week. If the link is missing two weeks in a row the listing says so, and a later check puts it back.
Agents send the same to POST /api/v1/verify as {"slug": "diffbot", "url": "…"}, or call the verify_listing tool at /mcp. Ten checks an hour from one address. What we check. To announce the listing, get sharing assets for social media.


