CrawlCheck Locate API

The Locate API from CrawlCheck — 1 operation(s) for locate.

GitHub OpenAPI

Operations 1

GET /api/locate Check every source locator in a record against the stored page: each extracted… #

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/crawlcheck-io:crawlcheck-io-locate-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

crawlcheck-io-locate-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crawlcheck Io Locate API
  version: '1'
  contact:
    name: CrawlCheck
    url: https://crawlcheck.io/policy
    email: hello@crawlcheck.io
  license:
    name: Terms
    url: https://crawlcheck.io/policy
  x-core-contract:
    promise: 'These operations are the core contract. They stay at /api/v1 and keep answering for at least 180 days after any /api/v2 is announced; their stable fields change only in a new major version, and their provisional fields only after 30 days'' notice, per /docs/api/compatibility. Verifying what they return needs none of these calls: crawlcheck-verify.mjs checks a document on your machine against the published keys (/.well-known/http-message-signatures-directory) and the rotation record, read once with --online or saved for --keys. Everything else documented here is useful but secondary, and may change with the notice its fields'' tags promise.'
    operations:
    - method: GET
      path: /api/v1/resolve
      operationId: resolveDomainV1
    - method: POST
      path: /api/v1/resolve
      operationId: resolveBatchV1
    - method: POST
      path: /api/v1/preflight
      operationId: preflightV1
    - method: GET
      path: /api/v1/decisions/{sha256}
      operationId: decisionCheckV1
    - method: GET
      path: /api/v1/revocations
      operationId: revocations
    - method: GET
      path: /api/v1/visitor
      operationId: visitorResolveV1
    - method: POST
      path: /api/v1/visitor
      operationId: visitorResolveBatchV1
    - method: GET
      path: /api/v1/mcp/scan
      operationId: mcpScanUrl
    - method: POST
      path: /api/v1/mcp/lock/check
      operationId: mcpLockCheck
    list: https://crawlcheck.io/api/v1/core
  description: 'Operations tagged Locate across 2 of this provider''s published API definitions: crawlcheck-io-openapi.json, crawlcheck-io-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://crawlcheck.io
tags:
- name: Locate
paths:
  /api/locate:
    get:
      operationId: locateFacts
      summary: 'Check every source locator in a record against the stored page: each extracted…'
      parameters:
      - name: id
        in: query
        schema:
          type: string
      - name: domain
        in: query
        schema:
          type: string
      - name: field
        in: query
        schema:
          type: string
        description: one fact, e.g. title or telephone
      - name: finding
        in: query
        schema:
          type: string
        description: a finding code; without a licence only the top finding
      - name: claim
        in: query
        schema:
          type: string
        description: 'name, phone, locality, experience or all: both sides of a claim (what the structured data asserts, where the visible page says it) cut from the stored page, plus the rule that judged it, the inputs it read, the row it decided, and that rule rerun over the stored page (replay.reproduces); points per row with a licence or the owner''s session'
      responses:
        '200':
          description: locators read back
          content:
            application/json:
              examples:
                worked:
                  summary: Each title statement cut from the sealed page bytes and compared with the recorded value. No key. Produced by the production code from a crawlcheck.io scan of 2026-09-30 (MDT), checked against that scan's stored page.
                  value:
                    ok: true
                    kind: crawlcheck-locators
                    report_id: 43td4am66w
                    domain: crawlcheck.io
                    page:
                      experience_id: ex1:d30a6257d923837567c30cb050bbe508
                      sha256: 992349c096dad9bb6d207bdc644abe2eb84312a5620d37ee5e26e991ce8878ca
                      bytes: 38601
                      artifact: https://crawlcheck.io/api/artifact/992349c096dad9bb6d207bdc644abe2eb84312a5620d37ee5e26e991ce8878ca?verify=1
                    statements: 4
                    located: 4
                    read_back: 4
                    rows:
                    - field: title
                      value: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      source:
                        kind: html
                        via: <title>
                      located: true
                      bytes:
                      - 139
                      - 199
                      line: 6
                      col: 8
                      scope: title
                      match: value
                      cut: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      reads_back: true
                    - field: title
                      value: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      source:
                        kind: meta
                        name: og:title
                      located: true
                      bytes:
                      - 567
                      - 627
                      line: 8
                      col: 182
                      scope: meta[og:title]
                      match: value
                      cut: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      reads_back: true
                    - field: title
                      value: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      source:
                        kind: meta
                        name: twitter:title
                      located: true
                      bytes:
                      - 1291
                      - 1351
                      line: 8
                      col: 900
                      scope: meta[twitter:title]
                      match: value
                      cut: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      reads_back: true
                    - field: title
                      value: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      source:
                        kind: jsonld
                        node: WebPage
                        id: https://crawlcheck.io/#webpage
                      located: true
                      bytes:
                      - 14033
                      - 14093
                      line: 8
                      col: 13619
                      scope: script[ld+json]#0
                      match: value
                      cut: 'CrawlCheck — AI visibility audit: what AI crawlers receive'
                      reads_back: true
                    method: each locator's byte range cut from the stored page (re-hashed first) and compared with the recorded value after HTML/JSON unescaping
              schema:
                type:
                - object
                - 'null'
                properties:
                  ok:
                    type:
                    - boolean
                    - 'null'
                  kind:
                    type:
                    - string
                    - 'null'
                  report_id:
                    type:
                    - string
                    - 'null'
                  domain:
                    type:
                    - string
                    - 'null'
                  page:
                    type:
                    - object
                    - 'null'
                    properties:
                      experience_id:
                        type:
                        - string
                        - 'null'
                      sha256:
                        type:
                        - string
                        - 'null'
                      bytes:
                        type:
                        - number
                        - 'null'
                      artifact:
                        type:
                        - string
                        - 'null'
                    additionalProperties: true
                  statements:
                    type:
                    - number
                    - 'null'
                  located:
                    type:
                    - number
                    - 'null'
                  read_back:
                    type:
                    - number
                    - 'null'
                  rows:
                    type:
                    - array
                    - 'null'
                    items:
                      type:
                      - object
                      - 'null'
                      properties:
                        field:
                          type:
                          - string
                          - 'null'
                        value:
                          type:
                          - string
                          - 'null'
                        source:
                          type:
                          - object
                          - 'null'
                          properties:
                            kind:
                              type:
                              - string
                              - 'null'
                            via:
                              type:
                              - string
                              - 'null'
                            name:
                              type:
                              - string
                              - 'null'
                            node:
                              type:
                              - string
                              - 'null'
                            id:
                              type:
                              - string
                              - 'null'
                          additionalProperties: true
                        located:
                          type:
                          - boolean
                          - 'null'
                        bytes:
                          type:
                          - array
                          - 'null'
                          items:
                            type:
                            - number
                            - 'null'
                        line:
                          type:
                          - number
                          - 'null'
                        col:
                          type:
                          - number
                          - 'null'
                        scope:
                          type:
                          - string
                          - 'null'
                        match:
                          type:
                          - string
                          - 'null'
                        cut:
                          type:
                          - string
                          - 'null'
                        reads_back:
                          type:
                          - boolean
                          - 'null'
                      additionalProperties: true
                  method:
                    type:
                    - string
                    - 'null'
                additionalProperties: true
                x-schema-source: worked-example
        '422':
          description: no locators or no stored page on this record
      x-codeSamples:
      - lang: Shell
        label: curl
        source: "curl -s \\\n  'https://crawlcheck.io/api/locate?domain=crawlcheck.io&field=title'"
      security: []
      x-auth: public; no credential read
      tags:
      - Locate
    servers:
    - url: https://crawlcheck.io
components:
  securitySchemes:
    licenceKey:
      type: apiKey
      in: header
      name: x-crawlcheck-key
      description: 'Your licence key: cc_ followed by 32 hex characters. Sent on every keyed call.'
    bearer:
      type: http
      scheme: bearer
      description: The same licence key as a Bearer token. Accepted on /api/v1/* and /api/usage.
externalDocs:
  url: https://crawlcheck.io/docs/api
  description: Human-readable reference
x-refined-from:
- crawlcheck-io-openapi.json
- crawlcheck-io-openapi.yml