CrawlCheck Portfolio API
The Portfolio API from CrawlCheck — 1 operation(s) for portfolio.
Operations 1
GET
/api/portfolio/compare
Intelligence line: two to 40 domains side by side from their latest records…
#
The Portfolio API from CrawlCheck — 1 operation(s) for portfolio.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/crawlcheck-io:crawlcheck-io-portfolio-api"
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.
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: 3.2.0
info:
title: Crawlcheck Io Portfolio 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 Portfolio 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: Portfolio
paths:
/api/portfolio/compare:
get:
operationId: portfolioCompare
summary: 'Intelligence line: two to 40 domains side by side from their latest records…'
parameters:
- name: domains
in: query
required: true
schema:
type: string
description: comma-separated
responses:
'200':
description: crawlcheck-portfolio-comparison
content:
application/json:
examples:
worked:
summary: Intelligence add-on. conductor.com is not on this licence, so its codes are gated to the top finding (full_detail false). Produced by the real Worker code in the build harness against live scans of the named domains, with a test licence and a test Ed25519 key; production signs with the key published at /.well-known/http-message-signatures-directory.
value:
kind: crawlcheck-portfolio-comparison
v: 1
generated_at: '2026-10-01T16:02:23.221Z'
domains: 3
measured: 3
spread:
best:
domain: treeservicedenverllc.com
overall: 100
grade: A
worst:
domain: conductor.com
overall: 77
grade: C
median: 98
certified: 2
shared_findings: []
rows:
- domain: treeservicedenverllc.com
measured: true
report_id: jq8bq52ycw
scanned_at: '2026-10-01T16:02:08.081Z'
grade: A
overall: 100
score_version: 26
stages:
- stage: Reach
score: 100
- stage: Read
score: 100
- stage: Quote
score: 99
findings:
total: 0
by_severity:
'1': 0
'2': 0
'3': 0
'4': 0
'5': 0
codes: []
withheld: 0
certified: true
cohort_percentile: null
full_detail: true
report: https://crawlcheck.io/r/jq8bq52ycw
- domain: supremefencingdenver.com
measured: true
report_id: ppkrf128ry
scanned_at: '2026-10-01T16:01:30.568Z'
grade: A
overall: 98
score_version: 26
stages:
- stage: Reach
score: 100
- stage: Read
score: 94
- stage: Quote
score: 100
findings:
total: 0
by_severity:
'1': 0
'2': 0
'3': 0
'4': 0
'5': 0
codes: []
withheld: 0
certified: true
cohort_percentile: null
full_detail: true
report: https://crawlcheck.io/r/ppkrf128ry
- domain: conductor.com
measured: true
report_id: bcyiof2m7d
scanned_at: '2026-10-01T16:01:50.186Z'
grade: C
overall: 77
score_version: 26
stages:
- stage: Reach
score: 85
- stage: Read
score: 74
- stage: Quote
score: 68
findings:
total: 7
by_severity:
'1': 4
'2': 2
'3': 1
'4': 0
'5': 0
codes:
- PAGE_IS_MOSTLY_CODE
withheld: 6
certified: false
cohort_percentile: null
full_detail: false
report: https://crawlcheck.io/r/bcyiof2m7d
note: Side by side from each domain's latest stored record; nothing is re-scanned here. Finding codes are listed in full for domains on the licence (full_detail true) and gated exactly as the public record for any other; shared_findings counts a…
schema:
type:
- object
- 'null'
properties:
kind:
type:
- string
- 'null'
v:
type:
- number
- 'null'
generated_at:
type:
- string
- 'null'
domains:
type:
- number
- 'null'
measured:
type:
- number
- 'null'
spread:
type:
- object
- 'null'
properties:
best:
type:
- object
- 'null'
properties:
domain:
type:
- string
- 'null'
overall:
type:
- number
- 'null'
grade:
type:
- string
- 'null'
additionalProperties: true
worst:
type:
- object
- 'null'
properties:
domain:
type:
- string
- 'null'
overall:
type:
- number
- 'null'
grade:
type:
- string
- 'null'
additionalProperties: true
median:
type:
- number
- 'null'
certified:
type:
- number
- 'null'
additionalProperties: true
shared_findings:
type:
- array
- 'null'
items: {}
rows:
type:
- array
- 'null'
items:
type:
- object
- 'null'
properties:
domain:
type:
- string
- 'null'
measured:
type:
- boolean
- 'null'
report_id:
type:
- string
- 'null'
scanned_at:
type:
- string
- 'null'
grade:
type:
- string
- 'null'
overall:
type:
- number
- 'null'
score_version:
type:
- number
- 'null'
stages:
type:
- array
- 'null'
items:
type:
- object
- 'null'
properties:
stage:
type:
- string
- 'null'
score:
type:
- number
- 'null'
additionalProperties: true
findings:
type:
- object
- 'null'
properties:
total:
type:
- number
- 'null'
by_severity:
type:
- object
- 'null'
properties:
'1':
type:
- number
- 'null'
'2':
type:
- number
- 'null'
'3':
type:
- number
- 'null'
'4':
type:
- number
- 'null'
'5':
type:
- number
- 'null'
additionalProperties: true
codes:
type:
- array
- 'null'
items:
type:
- string
- 'null'
withheld:
type:
- number
- 'null'
additionalProperties: true
certified:
type:
- boolean
- 'null'
cohort_percentile: {}
full_detail:
type:
- boolean
- 'null'
report:
type:
- string
- 'null'
additionalProperties: true
note: {}
additionalProperties: true
x-schema-source: worked-example
'403':
description: no Intelligence add-on
x-codeSamples:
- lang: Shell
label: curl
source: "curl -s \\\n -H \"x-crawlcheck-key: $CRAWLCHECK_KEY\" \\\n 'https://crawlcheck.io/api/portfolio/compare?domains=treeservicedenverllc.com,supremefencingdenver.com,conductor.com'"
security:
- licenceKey: []
- bearer: []
x-auth: 'a licence key (x-crawlcheck-key or Authorization: Bearer) or the signed-in /manage session; 401 or 403 otherwise'
tags:
- Portfolio
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