Diffbot · Authentication Profile

Diffbot Authentication

Authentication

One credential covers the whole Diffbot estate, but it is presented two different ways. Six of seven surfaces take it as a `token` query parameter; the Web Search API takes the same value as an HTTP Bearer header. There is no OAuth, no OIDC, and no scope system.

Diffbot secures its APIs with apiKey and http across 3 declared security schemes, as derived from its OpenAPI definitions.

ExtractionHarvestingScrapingWebKnowledge GraphCrawlingWeb SearchNatural LanguageEntity ResolutionAI
Methods: apiKey, http Schemes: 3 OAuth flows: API key in: query

Security Schemes

tokenscheme apiKey
· in: query (token)
DiffbotToken apiKey
· in: query (token)
Authorization http
scheme: bearer

Source

Authentication Profile

Raw ↑
generated: '2026-09-06'
method: searched
source: >-
  https://www.diffbot.com/docs/authentication, https://www.diffbot.com/docs/account-billing/multiple-tokens,
  and the securitySchemes blocks of the eight first-party OpenAPI documents in
  openapi/_original/ (harvested from https://www.diffbot.com/openapi/*.json).
docs: https://www.diffbot.com/docs/authentication
provider: Diffbot
providerId: diffbot
description: >-
  One credential covers the whole Diffbot estate, but it is presented two different ways.
  Six of seven surfaces take it as a `token` query parameter; the Web Search API takes the
  same value as an HTTP Bearer header. There is no OAuth, no OIDC, and no scope system.
summary:
  types:
    - apiKey
    - http
  api_key_in:
    - query
  http_schemes:
    - bearer
  oauth2: false
  openid_connect: false
  mutual_tls: false
  scopes: false
schemes:
  - name: tokenscheme
    type: apiKey
    in: query
    parameter: token
    description: Your Diffbot API token.
    applies_to:
      - Extract APIs (https://api.diffbot.com/v3)
      - Crawl API (https://api.diffbot.com/v3)
      - Bulk Extract API (https://api.diffbot.com/v3)
      - Account API (https://api.diffbot.com/v4)
      - DQL API (https://kg.diffbot.com)
      - ENHANCE API (https://kg.diffbot.com)
    sources:
      - openapi/_original/diffbot-extract-openapi.json
      - openapi/_original/diffbot-crawl-openapi.json
      - openapi/_original/diffbot-bulk-openapi.json
      - openapi/_original/diffbot-account-openapi.json
      - openapi/_original/diffbot-dql-openapi.json
      - openapi/_original/diffbot-enhance-openapi.json
  - name: DiffbotToken
    type: apiKey
    in: query
    parameter: token
    applies_to:
      - Natural Language API (https://nl.diffbot.com)
    sources:
      - openapi/_original/diffbot-natural-language-openapi.json
    note: >-
      Same credential, different scheme name — the Natural Language contract is still
      Swagger 2.0 and names its securityDefinition DiffbotToken.
  - name: Authorization
    type: http
    scheme: bearer
    header: Authorization
    description: Diffbot API Token
    applies_to:
      - Web Search API (https://llm.diffbot.com/api/v1/web_search)
      - Diffbot LLM (https://llm.diffbot.com/v1)
    sources:
      - openapi/_original/diffbot-web-search-openapi.json
    note: >-
      THE DIVERGENCE. Same token value, carried as `Authorization: Bearer <token>` instead
      of ?token=. Confirmed in the published contract and in the curl example at
      https://www.diffbot.com/docs/web-search/get. An agent that hard-codes the query
      parameter across the estate will get a 401 on Web Search and on the LLM endpoint.
token_management:
  issuance: >-
    A token is created on registration; a free one at https://app.diffbot.com/get-started.
  dashboard: https://app.diffbot.com/
  child_tokens: true
  child_tokens_note: >-
    Additional tokens can be generated under a parent token, so usage can be segmented per
    application or team. https://www.diffbot.com/docs/account-billing/multiple-tokens
  labelling_and_disabling: true
  labelling_note: >-
    Tokens can be labelled and disabled from the dashboard — shipped 2025-06-30 per the
    changelog. This is the closest thing to a revocation control.
  rotation_policy_published: false
  expiry: none
  introspection_endpoint: >-
    GET https://api.diffbot.com/v4/account returns token details and usage
    (operationId `account`, openapi/_original/diffbot-account-openapi.json).
sdk_resolution:
  order:
    - explicit token argument
    - DIFFBOT_API_TOKEN environment variable
    - a DIFFBOT_API_TOKEN=... line in ~/.diffbot/credentials
  note: >-
    diffbot-python's resolve_token() and @diffbot/typescript's resolveTokenFromEnv() share
    this order, and the CLI uses the same path. Diffbot documents chmod 600 on the
    credentials file.
risks:
  - id: token-in-query-string
    severity: medium
    finding: >-
      Six of seven surfaces carry the credential in the URL, so it is exposed to proxy logs,
      server access logs, browser history and Referer headers. Diffbot's own documentation
      examples show the token inline in curl URLs.
    mitigation: >-
      Use child tokens scoped per application and disable them from the dashboard when
      leaked; there is no scope system to limit blast radius.
  - id: no-scopes
    severity: medium
    finding: >-
      A token is all-or-nothing across Extract, Crawl, Bulk, Knowledge Graph, Natural
      Language, Web Search and Account. There is no read-only credential, so an agent given a
      token to run searches can also delete crawl jobs — an irreversible action per
      conventions/diffbot-conventions.yml.
  - id: no-oauth
    severity: low
    finding: >-
      No delegated-authorization path exists, so Diffbot cannot be integrated on behalf of a
      third-party user without sharing that user's raw token. No /.well-known/
      openid-configuration or oauth-authorization-server on any host — see
      well-known/diffbot-well-known.yml.

Work with this as data

Every security artifact here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for security posture

4 MCP tools reach this
  • find_securityBrowse and filter every security artifact in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This security artifact
curl "https://apis.io/api/v1/security/diffbot-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.