Diffbot DQL Search API

DQL Search

Operations 4

GET /kg/v3/dql Search with DQL #
POST /kg/v3/dql Search with DQL #
GET /kg/v3/dql/report Coverage report by Query #
GET /kg/v3/dql/report/{id} Coverage report by ID #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/diffbot-dql-search-api"
All apis
curl "https://apis.io/api/v1/apis?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.

OpenAPI Specification

diffbot-dql-search-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DQL Search API
  description: DQL is an API to query entities in the Knowledge Graph
  termsOfService: https://www.diffbot.com/terms/
  contact:
    email: support@diffbot.com
  version: 1.0.0
servers:
- url: https://kg.diffbot.com
  description: Diffbot KG endpoint
tags:
- name: DQL Search
  description: DQL Search
paths:
  /kg/v3/dql:
    get:
      tags:
      - DQL Search
      summary: Search with DQL
      description: Search the Knowledge Graph using DQL
      operationId: dqlGet
      parameters:
      - name: type
        in: query
        description: Query type
        schema:
          type: string
          enum:
          - query
          - text
          - queryTextFallback
          - crawl
          default: query
      - name: query
        in: query
        description: DQL Query
        required: true
        schema:
          type: string
          example: type:Organization locations.city.name:"San Francisco" nbEmployees>5000
      - name: col
        in: query
        description: Comma-delimited list of custom crawl collections to query. Specify `all` to query all collections for your token. This parameter is valid only when type=crawl and defaults to `all`
        schema:
          type: string
          default: all
      - name: from
        in: query
        description: 'Return results starting at `from` index. `from+size <= 10_000` for facet queries.


          Please note that the from parameter is no longer applicable to Article queries and has been deprecated. In the future, using this parameter will result in an error.'
        schema:
          type: integer
          format: int32
          default: 0
      - name: size
        in: query
        description: Maximum number of results to return. `-1` to return all results. `from+size <= 10_000` for facet queries.
        schema:
          type: integer
          format: int32
          default: 50
      - name: format
        in: query
        description: Output format
        schema:
          type: string
          enum:
          - json
          - jsonl
          - csv
          - xls
          - xlsx
          default: json
      - name: exportspec
        in: query
        description: 'The spec defines the columns to export. This is applicable for csv, xls and xslx formats.


          Export spec specifies how to export the entity JSON to a csv. A simple export spec looks like `name;summary`. To specify more complex export spec, including specifying how many of a list of `industries` to return, or the ideal `employment` record, see [Exporting Columnar Format](https://docs.diffbot.com/reference/exporting-csv) and [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields).'
        schema:
          type: string
      - name: exportseparator
        in: query
        description: The export separator
        schema:
          type: string
      - name: exportfile
        in: query
        description: For export endpoint, The file name of the export file
        schema:
          type: string
      - name: filter
        in: query
        description: Semi-colon separated path filter to filter response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        schema:
          type: string
      - name: filterExclude
        in: query
        description: Semi-colon separated path filter to filter and exclude data from response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        schema:
          type: string
      - name: jsonmode
        in: query
        description: '`extended` returns origin information for facts. `id` returns just the diffbotIds and origins.'
        schema:
          type: string
          enum:
          - extended
          - id
      - name: nonCanonicalFacts
        in: query
        description: '`nonCanonicalFacts=true` returns non-canonical facts.'
        schema:
          type: boolean
          default: false
      - name: noDedupArticles
        in: query
        description: '`noDedupArticles=true` indicates that articles should not be deduplicated but all of them returned'
        schema:
          type: boolean
          default: false
      - name: cluster
        in: query
        description: "Articles only. Utilize Diffbot clustering algorithms to identify related or similar objects. \n- `cluster=all` to return each article with a clusterId identifying thematically-similar articles. \n- `cluster=best` to remove thematically-similar articles from the result set, leaving a single best representative from each cluster. \n- `cluster=dedupe` to remove exact and near-duplicate articles from the result set. Where applicable, clusterId is returned in the `entity_ctx` element of each response entity."
        schema:
          type: string
          enum:
          - all
          - best
          - dedupe
      - name: report
        in: query
        description: Generate coverage report. See [Coverage Reports](https://docs.diffbot.com/docs/dql-coverage-reports) for more details on generating coverage reports for DQL queries.
        schema:
          type: boolean
          default: false
      - name: view
        in: query
        schema:
          type: string
      responses:
        '200':
          $ref: '#/components/responses/Results'
        '400':
          $ref: '#/components/responses/QueryParseError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ParameterError'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - tokenscheme: []
      x-group-parameters: true
    post:
      tags:
      - DQL Search
      summary: Search with DQL
      description: Search the Knowledge Graph using DQL
      operationId: dqlPost
      requestBody:
        description: DQL request
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DqlPostRequest'
            examples:
              Search:
                summary: A San Francisco org search
                value:
                  query: type:Organization locations.city.name:"San Francisco" nbEmployees>5000
                  size: 2
                  filter: $.name;$.homepageUri;$.nbEmployees
      responses:
        '200':
          $ref: '#/components/responses/Results'
        '400':
          $ref: '#/components/responses/QueryParseError'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ParameterError'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - tokenscheme: []
      x-group-parameters: true
  /kg/v3/dql/report:
    get:
      tags:
      - DQL Search
      summary: Coverage report by Query
      description: Download coverage report by DQL query
      operationId: reportFind
      parameters:
      - name: query
        in: query
        description: DQL Query
        required: true
        schema:
          type: string
      - name: from
        in: query
        description: 'Return results starting at `from` index. `from+size <= 10_000` for facet queries.


          Please note that the from parameter is no longer applicable to Article queries and has been deprecated. In the future, using this parameter will result in an error.'
        schema:
          type: integer
          format: int32
          default: 0
      - name: size
        in: query
        description: Maximum number of results to return. `-1` to return all results. `from+size <= 10_000` for facet queries.
        schema:
          type: integer
          format: int32
          default: 50
      - name: filter
        in: query
        description: Semi-colon separated path filter to filter response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        schema:
          type: string
      - name: filterExclude
        in: query
        description: Semi-colon separated path filter to filter and exclude data from response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        schema:
          type: string
      - name: exportspec
        in: query
        description: 'The spec defines the columns to export. This is applicable for csv, xls and xslx formats.


          Export spec specifies how to export the entity JSON to a csv. A simple export spec looks like `name;summary`. To specify more complex export spec, including specifying how many of a list of `industries` to return, or the ideal `employment` record, see [Exporting Columnar Format](https://docs.diffbot.com/reference/exporting-csv) and [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields).'
        schema:
          type: string
      responses:
        '200':
          description: Coverage report
          content:
            text/csv:
              schema:
                type: string
              example: 'DiffbotID,Name,$.name,$.nbEmployees

                "",,1.0,1.0

                El0wZJw_cOn-MAyp_hZZ5Tw,Yandex,1,1

                EUFq-3WlpNsq0pvfUYWXOEA,Google,1,1

                Ec5P22-6EPLOXo1-z6-4NzA,Instagram,1,1

                '
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - tokenscheme: []
  /kg/v3/dql/report/{id}:
    get:
      tags:
      - DQL Search
      summary: Coverage report by ID
      description: Download coverage report by report ID
      operationId: reportGet
      parameters:
      - name: id
        in: path
        description: The report id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Coverage report
          content:
            text/csv:
              schema:
                type: string
              example: 'DiffbotID,Name,$.name,$.nbEmployees

                "",,1.0,1.0

                El0wZJw_cOn-MAyp_hZZ5Tw,Yandex,1,1

                EUFq-3WlpNsq0pvfUYWXOEA,Google,1,1

                Ec5P22-6EPLOXo1-z6-4NzA,Instagram,1,1

                '
        '404':
          description: Report not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ParameterError'
              examples:
                Not found:
                  summary: Report not found
                  value:
                    error: true
                    message: 'Report not found: C-4d87a965-b43f'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - tokenscheme: []
components:
  schemas:
    ParameterError:
      type: object
      description: Returned when a request parameter is missing or invalid.
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: Parameter 'query' not specified
    AuthError:
      type: object
      properties:
        code:
          type: integer
          example: 401
        message:
          type: string
          example: Unauthorized. Incorrect token.
        requestId:
          type: string
          example: a9cbf96bb0e2084d5c1595ae8f526576
    JSONObject:
      type: object
      properties:
        empty:
          type: boolean
      description: Entity. Can be null if no entity was found.
      example:
        id: EYX1i02YVPsuT7fPLUYgRhQ
        diffbotUri: http://diffbot.com/entity/EYX1i02YVPsuT7fPLUYgRhQ
        name: Diffbot
        origins:
        - angel.co/diffbot
        - bloomberg.com/profiles/companies/0506286D:US-diffbot-corp
        - crunchbase.com/organization/diffbot
        - linkedin.com/company/diffbot
        - en.wikipedia.org/wiki/Diffbot
    Data:
      type: object
      properties:
        score:
          type: number
          description: score
          format: double
          example: 0.75
        entity:
          $ref: '#/components/schemas/JSONObject'
        entity_ctx:
          type: object
          additionalProperties:
            type: object
            description: Entity-level context
          description: Entity-level context
        errors:
          type: array
          items:
            type: string
            description: Error/warning messages.
        callbackQuery:
          type: string
          description: The query for the facet
        upperBound:
          type: number
          description: The upper bound of the facet
          format: double
        lowerBound:
          type: number
          description: The lower bound of the facet
          format: double
        count:
          type: integer
          description: The count of the facet
          format: int64
        value:
          type: string
          description: The value of the facet
        uri:
          type: string
          description: The uri of the facet value (for uri facets)
      description: A single result
    ServerError:
      type: object
      properties:
        code:
          type: integer
          example: 500
        message:
          type: string
          example: HTTP 500 Internal Server Error
    DqlResponse:
      type: object
      properties:
        version:
          type: integer
          description: Response version
          format: int32
          example: 3
        hits:
          type: integer
          format: int64
        results:
          type: integer
          description: Number of results in this response
          format: int64
          example: 50
        kgversion:
          type: string
          description: Version of KG that was queried
          example: '250'
        diffbot_type:
          type: string
          description: Diffbot type of returned results
          example: Organization
        facet:
          type: boolean
          description: Was this a facet query?
        data:
          type: array
          description: Results of the query
          items:
            $ref: '#/components/schemas/Data'
        rewrites:
          type: array
          items:
            $ref: '#/components/schemas/Rewrite'
        textFallback:
          type: boolean
          description: Whether the query fell back to text search.
          example: false
        reportId:
          type: string
          description: Identifier for the generated coverage report. Present only when `report=true` was passed.
          example: C-4d87a965-b43f
    DqlPostRequest:
      required:
      - query
      type: object
      properties:
        type:
          type: string
          description: Query type
          enum:
          - query
          - text
          - queryTextFallback
          - crawl
          default: query
        query:
          type: string
          description: DQL Query
        col:
          type: string
          description: Comma-delimited list of custom crawl collections to query. Specify `all` to query all collections for your token. This parameter is valid only when type=crawl and defaults to `all`
        from:
          type: integer
          description: 'Return results starting at `from` index. `from+size <= 10_000` for facet queries.


            Please note that the from parameter is no longer applicable to Article queries and has been deprecated. In the future, using this parameter will result in an error.'
          format: int32
          default: 0
        size:
          type: integer
          description: Maximum number of results to return. `-1` to return all results. `from+size <= 10_000` for facet queries.
          format: int32
          default: 50
        format:
          type: string
          description: Output format
          enum:
          - json
          - jsonl
          - csv
          - xls
          - xlsx
          default: json
        exportspec:
          type: string
          description: 'The spec defines the columns to export. This is applicable for csv, xls and xslx formats.


            Export spec specifies how to export the entity JSON to a csv. A simple export spec looks like `name;summary`. To specify more complex export spec, including specifying how many of a list of `industries` to return, or the ideal `employment` record, see [Exporting Columnar Format](https://docs.diffbot.com/reference/exporting-csv) and [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields).'
        exportseparator:
          type: string
          description: For export endpoint, define separator for fields which contains multiple values
        exportfile:
          type: string
          description: For export endpoint, The file name of the export file
        filter:
          type: string
          description: Semi-colon separated path filter to filter response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        filterExclude:
          type: string
          description: Semi-colon separated path filter to filter and exclude data from response json. You can use a simple dot notation `skills.name` or a JsonPath expression such as `$.name;$.locations.country.name`. For more advanced options, see [JsonPath Filtering](https://docs.diffbot.com/reference/filtering-fields) for syntax.
        jsonmode:
          type: string
          description: '`extended` returns origin information for facts. `id` returns just the diffbotIds and origins.'
          enum:
          - extended
          - id
        nonCanonicalFacts:
          type: boolean
          description: '`nonCanonicalFacts=true` returns non-canonical facts.'
          default: false
        noDedupArticles:
          type: boolean
          description: '`noDedupArticles=true` indicates that articles should not be deduplicated but all of them returned'
          default: false
        cluster:
          type: string
          description: "Articles only. Utilize Diffbot clustering algorithms to identify related or similar objects. \n- `cluster=all` to return each article with a clusterId identifying thematically-similar articles. \n- `cluster=best` to remove thematically-similar articles from the result set, leaving a single best representative from each cluster. \n- `cluster=dedupe` to remove exact and near-duplicate articles from the result set. Where applicable, clusterId is returned in the `entity_ctx` element of each response entity."
          enum: []
        report:
          type: boolean
          description: Generate coverage report. See [Coverage Reports](https://docs.diffbot.com/docs/dql-coverage-reports) for more details on generating coverage reports for DQL queries.
          default: false
        view:
          type: string
    QueryParseError:
      type: object
      description: Returned when the DQL query itself cannot be parsed.
      properties:
        error:
          type: boolean
          example: true
        message:
          type: string
          example: 'Encountered " ":" ": "" at line 1, column 6.'
        line:
          type: integer
          example: 1
        column:
          type: integer
          example: 6
        htmlMessage:
          type: string
          description: The message with the offending token wrapped in `<mark>` for display.
          example: <span>type:<mark>:</mark>:Bogus((</span>
    Rewrite:
      type: object
      properties:
        query:
          type: string
        reason:
          type: string
  responses:
    Results:
      description: Query results
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/DqlResponse'
          examples:
            OK:
              summary: OK
              value:
                version: 3
                hits: 642
                results: 2
                kgversion: '477'
                diffbot_type: Organization
                facet: false
                textFallback: false
                data:
                - score: 1584.3050537109375
                  entity:
                    name: Yandex
                    homepageUri: yandex.com
                    nbEmployees: 26361
                  entity_ctx:
                    inner_hits:
                      locations:
                      - 39
                    matched_clauses: []
                - score: 1558.7650146484375
                  entity:
                    name: Google
                    homepageUri: google.com
                    nbEmployees: 187000
                  entity_ctx:
                    inner_hits:
                      locations:
                      - 192
                      - 161
                      - 261
                      - 215
                    matched_clauses: []
        application/json-lines:
          schema:
            type: object
        text/csv:
          schema:
            type: object
        application/ms-excel:
          schema:
            type: object
        application/vnd.openxmlformats-officedocument.spreadsheetml.sheet:
          schema:
            type: object
    ServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServerError'
          examples:
            Server error:
              summary: Server error
              value:
                code: 500
                message: HTTP 500 Internal Server Error
    QueryParseError:
      description: Error parsing the query
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/QueryParseError'
          examples:
            Parse error:
              summary: Malformed DQL
              value:
                line: 1
                column: 6
                htmlMessage: <span>type:<mark>:</mark>:Bogus((</span>
                error: true
                message: 'Encountered " ":" ": "" at line 1, column 6.'
    Unauthorized:
      description: Unauthorized
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthError'
          examples:
            Incorrect token:
              summary: Incorrect token
              value:
                code: 401
                message: Unauthorized. Incorrect token.
                requestId: a9cbf96bb0e2084d5c1595ae8f526576
    ParameterError:
      description: Invalid or missing parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ParameterError'
          examples:
            Missing query:
              summary: Missing query
              value:
                error: true
                message: Parameter 'query' not specified
  securitySchemes:
    tokenscheme:
      type: apiKey
      name: token
      in: query
      description: Your Diffbot API token.