{"ok":true,"kind":"crawlcheck-capability-registry-entry","v":1,"domain":"crawlcheck.io","page":"https://crawlcheck.io/registry/capabilities/crawlcheck.io","row":{"domain":"crawlcheck.io","host":"crawlcheck.io","report_id":"ifvwp3m1ti","scanned_at":"2026-10-07T15:13:11.804Z","manifest":"b072f9030c8ada8506d1aed9b99dfa678ff5cd1b99eee3d4d326ffacae97db9e","declared":203,"protocols":["a2a","agent_skill","mcp","openapi"],"by_policy":{"unknown":59,"public_read_only":119,"identity":6,"authenticated_read_only":15,"irreversible_write":3,"metadata":1},"verified":0,"mismatches":0,"self_scan":true},"policy_classes":[{"id":"public_read_only","safety":"read_only_public","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},{"id":"authenticated_read_only","safety":"read_only_authenticated","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},{"id":"reversible_write","safety":"reversible_write","label":"Reversible write","automatic":false,"invoke":"Never invoked automatically. Needs the owner's written authorisation and a test account."},{"id":"irreversible_write","safety":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},{"id":"financial","safety":"financial","label":"Financial","automatic":false,"invoke":"Never invoked automatically. Moves money or creates a charge."},{"id":"external_communication","safety":"external_communication","label":"External communication","automatic":false,"invoke":"Never invoked automatically. Sends a message, email or notification to someone."},{"id":"identity","safety":"identity_or_account","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},{"id":"unknown","safety":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},{"id":"metadata","safety":"metadata_only","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."}],"items":[{"capability_id":"cap1:8bb96a671dd402ecc2f9","protocol":"openapi","operation":"scan","method":"POST","endpoint":"https://crawlcheck.io/api/scan","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:a96e80b074fb14c891ee","protocol":"openapi","operation":"scanDomainV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/scan","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:39c5a7f14d30b18e42fb","protocol":"openapi","operation":"reportAgentOutcomeV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/outcome","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:842f0f13080ad80cef75","protocol":"openapi","operation":"agentOutcomesV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/outcomes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:c52373cd0c9074f8c305","protocol":"openapi","operation":"aiAccuracyV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/accuracy","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:7e555079a13eb68ea103","protocol":"openapi","operation":"domainLifecycleV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/domain","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:1f99819d8da37a36d128","protocol":"openapi","operation":"visitorResolveV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d13aedf022ee0fcc7de1","protocol":"openapi","operation":"visitorResolveBatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/visitor","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:38a1506e59bdd563f1df","protocol":"openapi","operation":"conductV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/conduct","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:51197382bdbd0749ab59","protocol":"openapi","operation":"conductAgentV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/conduct/{agent}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:f43837cab24f7873ac56","protocol":"openapi","operation":"mcpLockUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/lock","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:67d4733874beab337488","protocol":"openapi","operation":"mcpLockTools","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/lock","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:2bd622637984373b4c62","protocol":"openapi","operation":"mcpLockCheck","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/lock/check","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:211b86ac21f0d42ef479","protocol":"openapi","operation":"resolveLog","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:ba8d4e40ace978a8a8d1","protocol":"openapi","operation":"resolveLogSth","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/sth/{batch}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d878111d899b7981d02a","protocol":"openapi","operation":"resolveLogBatch","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/batch/{batch}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:eda7e58fd540e6bb39db","protocol":"openapi","operation":"resolveLogProof","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/proof","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:68931ad134add96a7c11","protocol":"openapi","operation":"resolveLogWitnessLatest","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/witness/latest","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:7969d546f9cff3e1da15","protocol":"openapi","operation":"resolveLogGossip","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/gossip","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:f464fca7c59c4ca13d5c","protocol":"openapi","operation":"resolveLogGossipReport","method":"POST","endpoint":"https://crawlcheck.io/api/v1/log/gossip","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:8c3e0fc667a45f613905","protocol":"openapi","operation":"resolveLogFork","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/gossip/fork/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:e0973c1f757ed5edbb83","protocol":"openapi","operation":"resolveLogWitness","method":"POST","endpoint":"https://crawlcheck.io/api/v1/log/witness","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:8988c1dbf0ec6d91a936","protocol":"openapi","operation":"highRiskWatch","method":"GET","endpoint":"https://crawlcheck.io/api/v1/high-risk","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:80b536e52087821a28c6","protocol":"openapi","operation":"highRiskConfirm","method":"POST","endpoint":"https://crawlcheck.io/api/v1/high-risk/confirm","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:985306345980591c5844","protocol":"openapi","operation":"incidentState","method":"GET","endpoint":"https://crawlcheck.io/api/v1/incident","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0045546a41e37d204c72","protocol":"openapi","operation":"incidentSwitch","method":"POST","endpoint":"https://crawlcheck.io/api/v1/incident","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:7b88626d2c78f183ba29","protocol":"openapi","operation":"incidentSelftest","method":"GET","endpoint":"https://crawlcheck.io/api/v1/incident/selftest","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:14b191a3e79cc9d31bf8","protocol":"openapi","operation":"revocations","method":"GET","endpoint":"https://crawlcheck.io/api/v1/revocations","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:ce22ae81caf1fdae6dec","protocol":"openapi","operation":"taskCanaries","method":"GET","endpoint":"https://crawlcheck.io/api/v1/task-canaries","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:a316048ba0f315462d01","protocol":"openapi","operation":"impersonationCheck","method":"GET","endpoint":"https://crawlcheck.io/api/v1/impersonation","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:ff97eec7cbf02d56aa5c","protocol":"openapi","operation":"mcpAuthAudit","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/auth","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “auth”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed identity_or_account: only read-only public actions are ever called"}},{"capability_id":"cap1:4358cb5f4ab690a89d94","protocol":"openapi","operation":"mcpAuthAuditPost","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/auth","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “auth”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed identity_or_account: only read-only public actions are ever called"}},{"capability_id":"cap1:1fcfa9bc989eeb447550","protocol":"openapi","operation":"mcpShadowUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/shadow","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9ec73abc729fc4beb908","protocol":"openapi","operation":"mcpShadowCheck","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/shadow","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:a557fd3de3e73671ac0e","protocol":"openapi","operation":"mcpScanUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/scan","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:7eacc81ff59fedcae05f","protocol":"openapi","operation":"mcpScanTools","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/scan","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:dfa330bf7a965ba637f5","protocol":"openapi","operation":"rightsFeedIndex","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights-feed","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:5cf04886ede5fb201988","protocol":"openapi","operation":"rightsFeedFile","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights-feed/{id}/{file}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/gzip"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:59ec80940bc8e0c2f900","protocol":"openapi","operation":"rightsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9ebfc2730d4f98c8fe42","protocol":"openapi","operation":"readEquivalenceV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/read-equivalence","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:14278e8c6ba74226e660","protocol":"openapi","operation":"selfClaimsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/claims","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d237d71e2860d6cbfbf9","protocol":"openapi","operation":"originByAnchorV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/origin","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:e4445171efae4b189ed1","protocol":"openapi","operation":"originV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/origin","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:18e4fd4ed86cf3c99dba","protocol":"openapi","operation":"contentClockV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/content-clock","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d7540a0ad0611743611e","protocol":"openapi","operation":"citedByV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/cited-by","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:bfd5aab832bb16481ef8","protocol":"openapi","operation":"anchorCreateV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/anchor","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:d75cbee18c43fc03ae66","protocol":"openapi","operation":"anchorWatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/anchor/{id}/watch","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:1d0bed914a7125e8e6b1","protocol":"openapi","operation":"anchorSinkV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/anchor/sink/{token}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “token”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed identity_or_account: only read-only public actions are ever called"}},{"capability_id":"cap1:24255941a60006a42b8a","protocol":"openapi","operation":"anchorGetV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/anchor/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:3676316ff941dabfd585","protocol":"openapi","operation":"visitorArrivalV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor/arrival","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:f1b7b56c8a3929cc1084","protocol":"openapi","operation":"trafficIndexV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/traffic-index","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:19c6dab24c5392dc8f84","protocol":"openapi","operation":"trafficIndexMonthV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/traffic-index/{month}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:446bd3b4ca9c386791bf","protocol":"openapi","operation":"visitorStatsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor/stats","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9848cdf9c283176e4b53","protocol":"openapi","operation":"decisionCheckV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/decisions/{sha256}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:ea0c5832c2ce09220912","protocol":"openapi","operation":"resolveArchiveV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve/archive/{sha256}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:82de709df1ecebdafbf9","protocol":"openapi","operation":"thresholdVerdictV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/verdict/threshold","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:59898e462880d5623dbd","protocol":"openapi","operation":"observerMeshV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/observers/mesh","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:8a540b5dfb46f1d62899","protocol":"openapi","operation":"adoptionV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/adoption","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:aba0c2b2066f03de2b10","protocol":"openapi","operation":"decisionStatsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/decisions","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:e52b12ab3db4eda78917","protocol":"openapi","operation":"resolvePrefixV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve-prefix/{prefix}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9a1ec2f9a2f6a2ce6717","protocol":"openapi","operation":"resolveSnapshotIndex","method":"GET","endpoint":"https://crawlcheck.io/api/v1/snapshot","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d3e6f5ae23f639fb02ad","protocol":"openapi","operation":"resolveSnapshotFile","method":"GET","endpoint":"https://crawlcheck.io/api/v1/snapshot/{id}/{file}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:3143880723859be59f9e","protocol":"openapi","operation":"resolveChangesV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/changes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:c3c14bac958aa376ceab","protocol":"openapi","operation":"mcpServersForHost","method":"GET","endpoint":"https://crawlcheck.io/api/mcp/servers","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:22fadae706b67ff73bfe","protocol":"openapi","operation":"mcpIndex","method":"GET","endpoint":"https://crawlcheck.io/api/mcp/index","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:86a79bb8ed1f55528f31","protocol":"openapi","operation":"preflightV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/preflight","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:28406fb40f8e28d13524","protocol":"openapi","operation":"resolveDomainV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:acb3185ba1d3d7a28f0f","protocol":"openapi","operation":"resolveBatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/resolve","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:d2a3865e01dbaaa32037","protocol":"openapi","operation":"resolveSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/resolve.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/schema+json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:8655468542c92f7520a1","protocol":"openapi","operation":"getMachineRecordV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/machine-record","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:227a0338f6e2dd5ce782","protocol":"openapi","operation":"fixStaleCache","method":"GET","endpoint":"https://crawlcheck.io/api/fix/cache","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:b0d0b111b73cc2dcd7cb","protocol":"openapi","operation":"fixMachineChain","method":"GET","endpoint":"https://crawlcheck.io/api/fix/chain","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:42eadb623d4bb657d4f8","protocol":"openapi","operation":"fixMostlyCode","method":"GET","endpoint":"https://crawlcheck.io/api/fix/code","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:f344c2744ec6660e5ddf","protocol":"openapi","operation":"getCorroboration","method":"GET","endpoint":"https://crawlcheck.io/api/corroboration","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:e3a2026477e0eceab03c","protocol":"openapi","operation":"explainFinding","method":"GET","endpoint":"https://crawlcheck.io/api/explain","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d455b7a70ee75eb830c8","protocol":"openapi","operation":"enrolObserver","method":"POST","endpoint":"https://crawlcheck.io/api/observe/enroll","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:a0b0891507517654f0f8","protocol":"openapi","operation":"checkObservation","method":"POST","endpoint":"https://crawlcheck.io/api/observe/check","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:94fef2da7a41a0fc9a65","protocol":"openapi","operation":"dataInventory","method":"GET","endpoint":"https://crawlcheck.io/api/data/inventory","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":null,"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:f4da3beef51933eea430","protocol":"openapi","operation":"dataExport","method":"GET","endpoint":"https://crawlcheck.io/api/data/export","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":null,"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:cb4742c6ed495e457d75","protocol":"openapi","operation":"dataDelete","method":"POST","endpoint":"https://crawlcheck.io/api/data/delete","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":null,"safety_class":"irreversible_write","safety_basis":"a write whose name contains “delete”"},"policy":{"id":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:99366add261ab4054244","protocol":"openapi","operation":"dataDeletionRecord","method":"GET","endpoint":"https://crawlcheck.io/api/data/deletion","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":null,"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:87d2607b7e6beb8a520a","protocol":"openapi","operation":"traceCoverage","method":"GET","endpoint":"https://crawlcheck.io/api/trace/coverage","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:639101473306bc0904b5","protocol":"openapi","operation":"traceCiResult","method":"GET","endpoint":"https://crawlcheck.io/api/trace/ci","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:4b07582bf18b178f3a30","protocol":"openapi","operation":"traceCi","method":"POST","endpoint":"https://crawlcheck.io/api/trace/ci","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"http_bearer","params_required":0,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:cff769ad6092baccdf0c","protocol":"openapi","operation":"disputeLedger","method":"GET","endpoint":"https://crawlcheck.io/api/disputes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:157e26bcbd3a34e0f754","protocol":"openapi","operation":"fileDispute","method":"POST","endpoint":"https://crawlcheck.io/api/disputes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:5b1f604611d4e3e15304","protocol":"openapi","operation":"confirmDisputeOwnership","method":"POST","endpoint":"https://crawlcheck.io/api/disputes/confirm","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:afdc62d238a4b38e7e7d","protocol":"openapi","operation":"getDisputeResolution","method":"GET","endpoint":"https://crawlcheck.io/api/disputes/resolution","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:64785c07350eab928915","protocol":"openapi","operation":"verifyDisputeResolution","method":"GET","endpoint":"https://crawlcheck.io/api/disputes/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:195cdaed9454934de9c0","protocol":"openapi","operation":"verifyDisputeResolutionPost","method":"POST","endpoint":"https://crawlcheck.io/api/disputes/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:f42899c28de70d56ea35","protocol":"openapi","operation":"datasetCatalogue","method":"GET","endpoint":"https://crawlcheck.io/api/datasets","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:c3cc9bb4579ac1c6b46f","protocol":"openapi","operation":"datasetSample","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/sample","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:76ed98c1032385642f3f","protocol":"openapi","operation":"datasetFile","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/file","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":null,"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:c1e6740a7f23612e04c2","protocol":"openapi","operation":"datasetState","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/state","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":null,"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:b59056026e0ce12b57d2","protocol":"openapi","operation":"datasetRequest","method":"POST","endpoint":"https://crawlcheck.io/api/datasets/request","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:249e7e6f9c54db791c90","protocol":"openapi","operation":"scanLanes","method":"GET","endpoint":"https://crawlcheck.io/api/lanes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0de2a4b7d66e086d07ab","protocol":"openapi","operation":"agenticWebCensus","method":"GET","endpoint":"https://crawlcheck.io/api/census","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:05fb7893b6f931eb0c0e","protocol":"openapi","operation":"censusRecords","method":"GET","endpoint":"https://crawlcheck.io/api/census/records","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:8de5d5ee59cb6d2ccfa6","protocol":"openapi","operation":"censusFrame","method":"GET","endpoint":"https://crawlcheck.io/api/census/frame","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:c051bbcfc1d4c2d8143e","protocol":"openapi","operation":"capabilityRegistry","method":"GET","endpoint":"https://crawlcheck.io/api/registry/capabilities","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:b93638ae1d0239039453","protocol":"openapi","operation":"verifyCapabilityCertificate","method":"GET","endpoint":"https://crawlcheck.io/api/registry/capabilities/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:6ec2facb7631a2b04dc9","protocol":"openapi","operation":"verifyCapabilityCertificatePost","method":"POST","endpoint":"https://crawlcheck.io/api/registry/capabilities/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:6733558df3a9bde71ec3","protocol":"openapi","operation":"capabilityRegistryFeed","method":"GET","endpoint":"https://crawlcheck.io/registry/capabilities/feed.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/feed+json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d2a595e15edd408e472b","protocol":"openapi","operation":"listVerifiedCapabilities","method":"GET","endpoint":"https://crawlcheck.io/api/capabilities","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:6a11917922e9f4fb2d82","protocol":"openapi","operation":"getReportV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/reports/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:8606fa103f086fe33271","protocol":"openapi","operation":"locateFacts","method":"GET","endpoint":"https://crawlcheck.io/api/locate","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:ed8301145771189f3572","protocol":"openapi","operation":"sdkVersions","method":"GET","endpoint":"https://crawlcheck.io/sdk/index.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:673facdb60ea0d4e23d5","protocol":"openapi","operation":"conformanceIndex","method":"GET","endpoint":"https://crawlcheck.io/conformance/index.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0609c8cfcb52841ca900","protocol":"openapi","operation":"getReceipt","method":"GET","endpoint":"https://crawlcheck.io/api/receipt","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:4f052e966fdf71e5e363","protocol":"openapi","operation":"verifyReceipt","method":"POST","endpoint":"https://crawlcheck.io/api/receipt/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:71974a51676733c4c829","protocol":"openapi","operation":"listReceipts","method":"GET","endpoint":"https://crawlcheck.io/api/receipts","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:fb25fa76cfe6b4301408","protocol":"openapi","operation":"rulebook","method":"GET","endpoint":"https://crawlcheck.io/api/rules","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:eb44556fe7f6a70b9c04","protocol":"openapi","operation":"getRulebookSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/rulebook.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/schema+json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9c893786badbbebcdeb5","protocol":"openapi","operation":"lineageCoverage","method":"GET","endpoint":"https://crawlcheck.io/api/lineage-coverage","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:6f648814e771fc3aae99","protocol":"openapi","operation":"findingLineage","method":"GET","endpoint":"https://crawlcheck.io/api/lineage","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d4d56a3fdf4c7591578e","protocol":"openapi","operation":"fixChain","method":"GET","endpoint":"https://crawlcheck.io/api/workflow","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:4ea10a4c64eb18a3d87a","protocol":"openapi","operation":"recordFixChain","method":"POST","endpoint":"https://crawlcheck.io/api/workflow/record","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:2cc05c1a38b5b005133e","protocol":"openapi","operation":"getObservation","method":"GET","endpoint":"https://crawlcheck.io/api/observation","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:7fc6d7da3653251b2fd1","protocol":"openapi","operation":"fixOutcomes","method":"GET","endpoint":"https://crawlcheck.io/api/outcomes","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":0,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:f2b36e48aebd20110494","protocol":"openapi","operation":"evidenceExport","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/export","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:ebf595679dd402157c7d","protocol":"openapi","operation":"evidenceLedger","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/ledger","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:d1112bc2758822e6033e","protocol":"openapi","operation":"evidenceReceipts","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/receipts","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":0,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:09e33094e69d93018f3a","protocol":"openapi","operation":"benchmark","method":"GET","endpoint":"https://crawlcheck.io/api/benchmark","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":0,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:152ff26a23caba9ffef9","protocol":"openapi","operation":"portfolioCompare","method":"GET","endpoint":"https://crawlcheck.io/api/portfolio/compare","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:a00c4a07dc7c3e4c9ce8","protocol":"openapi","operation":"verifyBulk","method":"POST","endpoint":"https://crawlcheck.io/api/verify/bulk","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:cc38904f9789625ca3f2","protocol":"openapi","operation":"verifyAndRollback","method":"GET","endpoint":"https://crawlcheck.io/api/rollback","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:4475c3a2f656ffdf3e34","protocol":"openapi","operation":"rollbackFile","method":"GET","endpoint":"https://crawlcheck.io/api/rollback/file","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["text/plain"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:020c0a7dfc9a6d870ddb","protocol":"openapi","operation":"fixImpact","method":"GET","endpoint":"https://crawlcheck.io/api/impact","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:f763f882822e6957ec6e","protocol":"openapi","operation":"fixImpactPost","method":"POST","endpoint":"https://crawlcheck.io/api/impact","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:cf7dcd5d6cafce1a89d5","protocol":"openapi","operation":"whatIf","method":"GET","endpoint":"https://crawlcheck.io/api/whatif","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:180e50482c62ff712ce1","protocol":"openapi","operation":"whatIfPost","method":"POST","endpoint":"https://crawlcheck.io/api/whatif","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:c723047357a2f537a4f5","protocol":"openapi","operation":"getVocabulary","method":"GET","endpoint":"https://crawlcheck.io/ns","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/ld+json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:59e34190d04f1f1f49f3","protocol":"openapi","operation":"getOpenLineageFacetSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/openlineage-facets.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/schema+json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:b628a1a283db2abd4b86","protocol":"openapi","operation":"getMachineExperienceRecordSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/machine-experience-record.json","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:afe451be0bf40eaa1e32","protocol":"openapi","operation":"getSchemaV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/schema","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:da0545880d6d9276019c","protocol":"openapi","operation":"listApiKeys","method":"GET","endpoint":"https://crawlcheck.io/api/keys","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “apikeys”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:02c1c9d51e97467ed0b1","protocol":"openapi","operation":"createApiKey","method":"POST","endpoint":"https://crawlcheck.io/api/keys","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “apikey”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:770cacf0edcfa8caef2a","protocol":"openapi","operation":"revokeApiKey","method":"DELETE","endpoint":"https://crawlcheck.io/api/keys","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"identity_or_account","safety_basis":"its name contains “apikey”"},"policy":{"id":"identity","label":"Identity and accounts","automatic":false,"invoke":"Never invoked automatically. Creates, signs in to or changes an account or credential."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed identity_or_account: only read-only public actions are ever called"}},{"capability_id":"cap1:d6bbbe64cf99a2169a49","protocol":"openapi","operation":"createShareLink","method":"POST","endpoint":"https://crawlcheck.io/api/share","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:48a7b6be319252c8d76e","protocol":"openapi","operation":"revokeShareLink","method":"DELETE","endpoint":"https://crawlcheck.io/api/share","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"irreversible_write","safety_basis":"HTTP DELETE"},"policy":{"id":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed irreversible_write: only read-only public actions are ever called"}},{"capability_id":"cap1:dc8bbdbe8378a2f45732","protocol":"openapi","operation":"scanDomainLicensed","method":"POST","endpoint":"https://crawlcheck.io/api/scan/licensed","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:92800025229412ee7bad","protocol":"openapi","operation":"checkBotKeyDirectory","method":"GET","endpoint":"https://crawlcheck.io/api/tool/wba","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:6fb9220acadb31f753fa","protocol":"openapi","operation":"verifySignedBotRequest","method":"POST","endpoint":"https://crawlcheck.io/api/tool/wba","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:dbe2b73197ed5b0179ad","protocol":"openapi","operation":"verifyCrawlerLog","method":"POST","endpoint":"https://crawlcheck.io/api/tool/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:06e99cf5d5ea910579b8","protocol":"openapi","operation":"depthCrawl","method":"POST","endpoint":"https://crawlcheck.io/api/depth","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:9621502104f2b19bddf7","protocol":"openapi","operation":"depthResult","method":"GET","endpoint":"https://crawlcheck.io/api/depth/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:492f0db18a4e191cb070","protocol":"openapi","operation":"usage","method":"GET","endpoint":"https://crawlcheck.io/api/usage","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:26a07a8a3e68003ebd61","protocol":"openapi","operation":"verifyRecord","method":"GET","endpoint":"https://crawlcheck.io/api/verify","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:7d18c3beeac2f2200ed7","protocol":"openapi","operation":"evidenceBundle","method":"GET","endpoint":"https://crawlcheck.io/api/bundle","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:48819132540f6b784ffb","protocol":"openapi","operation":"reconstructionCi","method":"POST","endpoint":"https://crawlcheck.io/api/reconstruction/ci","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"http_bearer","params_required":0,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:bd5b374196f4db7e9e26","protocol":"openapi","operation":"reconstructionTest","method":"GET","endpoint":"https://crawlcheck.io/api/reconstruction","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:085de1aec4e6f1ef1b05","protocol":"openapi","operation":"graphResolve","method":"GET","endpoint":"https://crawlcheck.io/api/graph/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey","params_required":2,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey: never called without the operator's own credentials"}},{"capability_id":"cap1:00314c7f15c6c38d664f","protocol":"openapi","operation":"batchSubmit","method":"POST","endpoint":"https://crawlcheck.io/api/batch","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":null,"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:94b44ebe9302bad91ee3","protocol":"openapi","operation":"batchStatus","method":"GET","endpoint":"https://crawlcheck.io/api/batch/{id}","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey+http_bearer","params_required":2,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey+http_bearer"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey+http_bearer: never called without the operator's own credentials"}},{"capability_id":"cap1:e2c212399f96f44cd257","protocol":"openapi","operation":"crawlerFlow","method":"GET","endpoint":"https://crawlcheck.io/api/flow","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:5cd05ae3d458aa81283d","protocol":"openapi","operation":"flowGate","method":"GET","endpoint":"https://crawlcheck.io/api/flow/gate","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9bc4bb877df97b0c8729","protocol":"openapi","operation":"flowDeclaredGet","method":"GET","endpoint":"https://crawlcheck.io/api/flow/declared","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0125bc678254badff378","protocol":"openapi","operation":"flowDeclaredPut","method":"PUT","endpoint":"https://crawlcheck.io/api/flow/declared","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":3,"media":["application/json"],"safety_class":"unknown","safety_basis":"PUT with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:c80b659e85eac1f14e0d","protocol":"openapi","operation":"flowDeclaredDelete","method":"DELETE","endpoint":"https://crawlcheck.io/api/flow/declared","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"irreversible_write","safety_basis":"HTTP DELETE"},"policy":{"id":"irreversible_write","label":"Irreversible write","automatic":false,"invoke":"Never invoked automatically. Deletes or changes something that cannot be undone."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed irreversible_write: only read-only public actions are ever called"}},{"capability_id":"cap1:4c2d3387fa43712c5691","protocol":"openapi","operation":"robotsResolve","method":"GET","endpoint":"https://crawlcheck.io/api/tool/robots","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:fa4a307f109872485ba9","protocol":"openapi","operation":"llmsDraft","method":"GET","endpoint":"https://crawlcheck.io/api/tool/llms","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey: never called without the operator's own credentials"}},{"capability_id":"cap1:6256f5a707d83c7bf845","protocol":"openapi","operation":"videoCheck","method":"GET","endpoint":"https://crawlcheck.io/api/video","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:8887b92a0c3fae52d36a","protocol":"openapi","operation":"videoChannel","method":"GET","endpoint":"https://crawlcheck.io/api/video/channel","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:78d9df46df014faf4cfa","protocol":"openapi","operation":"videoSite","method":"GET","endpoint":"https://crawlcheck.io/api/video/site","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":1,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:6629570bb68e1818f85a","protocol":"openapi","operation":"fixRobots","method":"GET","endpoint":"https://crawlcheck.io/api/fix/robots","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey","params_required":1,"media":["text/plain"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey: never called without the operator's own credentials"}},{"capability_id":"cap1:7dcdd132a05a1ddd3ad5","protocol":"openapi","operation":"fixEntitymap","method":"GET","endpoint":"https://crawlcheck.io/api/fix/entitymap","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"apiKey","params_required":1,"media":["application/json"],"safety_class":"read_only_authenticated","safety_basis":"HTTP GET behind apiKey"},"policy":{"id":"authenticated_read_only","label":"Authenticated read-only","automatic":false,"invoke":"Never called by CrawlCheck. An agent needs the user's own credentials and consent."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"requires apiKey: never called without the operator's own credentials"}},{"capability_id":"cap1:995af6e9928e5f3b12a8","protocol":"openapi","operation":"entityObserve","method":"POST","endpoint":"https://crawlcheck.io/api/entity/observe","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":2,"media":["application/json"],"safety_class":"unknown","safety_basis":"POST with no declared reversibility"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:ef0290cb05de5ab1041d","protocol":"openapi","operation":"publicCounts","method":"GET","endpoint":"https://crawlcheck.io/api/public/counts","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0f89ff97a2ff2eddd6bf","protocol":"openapi","operation":"registry","method":"GET","endpoint":"https://crawlcheck.io/api/registry","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:a10190b9f2a60e85f801","protocol":"openapi","operation":"telemetry","method":"GET","endpoint":"https://crawlcheck.io/api/telemetry","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:753e10227749b669f71a","protocol":"openapi","operation":"corpusState","method":"GET","endpoint":"https://crawlcheck.io/api/corpus/state","declared":{"by":"https://crawlcheck.io/openapi.json","declaration_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","authentication":"none","params_required":0,"media":["application/json"],"safety_class":"read_only_public","safety_basis":"HTTP GET with no declared security"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:3ec06be3fcaace3903f9","protocol":"mcp","operation":"scan_domain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:695c73972e735f8304c1","protocol":"mcp","operation":"verify_crawler_log","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:bbf1df138400da83b4d8","protocol":"mcp","operation":"corpus_state","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:13aeac0a3215706b3f93","protocol":"mcp","operation":"resolve_robots","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:6edf2d6037f3f9eb479f","protocol":"mcp","operation":"draft_llms","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:3481a08432d54bcec352","protocol":"mcp","operation":"fix_robots","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:75f0159f529727dbacd8","protocol":"mcp","operation":"fix_entitymap","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:bf288e963ef3482efbe6","protocol":"mcp","operation":"video_check","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:f6fb5743799dcee4ac22","protocol":"mcp","operation":"video_channel","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:e521d93d993082d77e22","protocol":"mcp","operation":"video_site","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:a8884dbe22ec67685fd4","protocol":"mcp","operation":"registry_lookup","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:dc30f77ec9e1ca9f314e","protocol":"mcp","operation":"crawler_path","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:0986c56cbb86dac7fa99","protocol":"mcp","operation":"public_counts","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:963835ed830e6dff96d0","protocol":"mcp","operation":"telemetry","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:59ea862da9912b2a2450","protocol":"mcp","operation":"fix_mostly_code","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:3facac7f86bf187b2014","protocol":"mcp","operation":"fix_stale_cache","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:8ae4342603c8897711f4","protocol":"mcp","operation":"fix_machine_chain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:4b9a3a64405a912dfc3c","protocol":"mcp","operation":"explain_finding","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:4df3398bc6fac8da33af","protocol":"mcp","operation":"list_verified_capabilities","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:d9945e81939eafc8ab9a","protocol":"mcp","operation":"machine_record","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:91f0fdec2bc4a3e3d713","protocol":"mcp","operation":"resolve_domain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:03f2c46968ca68a83480","protocol":"mcp","operation":"preflight","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:9119e4f576c70c5176b8","protocol":"mcp","operation":"mcp_servers","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"read_only_public","safety_basis":"the tool declares readOnlyHint and needs no authentication"},"policy":{"id":"public_read_only","label":"Public read-only","automatic":true,"invoke":"May be called without credentials. CrawlCheck calls it only to check the declaration: GET with no input, on the scanned origin."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"own site: CrawlCheck reaches crawlcheck.io only through its self-measurement proxy, which relays pages and machine files and refuses API paths and POSTs, so a probe here would measure the proxy, not the endpoint"}},{"capability_id":"cap1:37dd6bc9811e6b0fef28","protocol":"mcp","operation":"phantom_ask","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:472511bb2e65cfdcbd21","protocol":"mcp","operation":"phantom_brief","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:b18a4eef990621a6c4f1","protocol":"mcp","operation":"phantom_ledger","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:1e4fb6be64686c2af8d8","protocol":"mcp","operation":"phantom_coverage","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:b8f663da295cf82f31e1","protocol":"mcp","operation":"phantom_ads","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:1f32eb359749f63e16d3","protocol":"mcp","operation":"phantom_citations","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:9dd458358db8decc3eb1","protocol":"mcp","operation":"phantom_facts","method":null,"endpoint":"https://crawlcheck.io/mcp","declared":{"by":"https://crawlcheck.io/.well-known/mcp/server-card.json","declaration_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:f1197fba5fe07e3dd3bf","protocol":"a2a","operation":"scan_site","method":null,"endpoint":"https://crawlcheck.io/api/scan","declared":{"by":"https://crawlcheck.io/.well-known/agent-card.json","declaration_sha256":"9751966b942e084bd5ab9a6d59b209b8eb26631c710a86f59ca4ebbeaf89d586","authentication":"none","params_required":null,"media":null,"safety_class":"unknown","safety_basis":"its effect is not stated in the declaration"},"policy":{"id":"unknown","label":"Unknown","automatic":false,"invoke":"Never invoked. Its effect cannot be read from the declaration, so it is treated as the riskiest case."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"classed unknown: only read-only public actions are ever called"}},{"capability_id":"cap1:20bb0ffbdd6d2e232e65","protocol":"agent_skill","operation":"crawlcheck","method":null,"endpoint":"https://crawlcheck.io/.well-known/agent-skills/crawlcheck/SKILL.md","declared":{"by":"https://crawlcheck.io/.well-known/agent-skills/index.json","declaration_sha256":"19329cc7daf2c919090ffe1134bf696fca77338c4dd9b9db56d2ea8cff04630a","authentication":"none","params_required":null,"media":null,"safety_class":"metadata_only","safety_basis":"an instruction file an agent reads; not an operation"},"policy":{"id":"metadata","label":"Metadata","automatic":false,"invoke":"Nothing to invoke: a listing, a server card or a skill file, not an operation."},"observed":{"state":"not_attempted","verified":false,"at":null,"status":null,"content_type":null,"sha256":null,"mismatches":[],"not_attempted_because":"metadata: describes a surface, is not itself an action"}}],"mismatches":[],"certificate":{"certificate_id":"ccap1:fc4788a3ff21b22cae59c8ef747ad3c11ff09a089d29f369b793d371d47b71cb","certificate":{"kind":"crawlcheck-capability-certificate","v":1,"subject":"crawlcheck.io","domain":"crawlcheck.io","record":"ifvwp3m1ti","report":"https://crawlcheck.io/r/ifvwp3m1ti","manifest_sha256":"b072f9030c8ada8506d1aed9b99dfa678ff5cd1b99eee3d4d326ffacae97db9e","measured_at":"2026-10-07T15:13:11.804Z","verification_checked_at":"2026-10-07T15:13:23.276Z","verification_policy":"public GETs with no required input and one read-only MCP tool with no required input, on the scanned origin only; redirects recorded, not followed","invocation_rule":"capabilities are read from declarations only; nothing is invoked. Later verification may call read_only_public operations alone; every other class needs the site owner's authorisation and a test account, and unknown is never called","counts":{"declared":203,"verified":0,"mismatches":0},"items":[{"id":"cap1:8bb96a671dd402ecc2f9","protocol":"openapi","operation":"scan","method":"POST","endpoint":"https://crawlcheck.io/api/scan","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a96e80b074fb14c891ee","protocol":"openapi","operation":"scanDomainV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/scan","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:39c5a7f14d30b18e42fb","protocol":"openapi","operation":"reportAgentOutcomeV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/outcome","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:842f0f13080ad80cef75","protocol":"openapi","operation":"agentOutcomesV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/outcomes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c52373cd0c9074f8c305","protocol":"openapi","operation":"aiAccuracyV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/accuracy","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7e555079a13eb68ea103","protocol":"openapi","operation":"domainLifecycleV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/domain","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1f99819d8da37a36d128","protocol":"openapi","operation":"visitorResolveV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d13aedf022ee0fcc7de1","protocol":"openapi","operation":"visitorResolveBatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/visitor","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:38a1506e59bdd563f1df","protocol":"openapi","operation":"conductV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/conduct","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:51197382bdbd0749ab59","protocol":"openapi","operation":"conductAgentV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/conduct/{agent}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f43837cab24f7873ac56","protocol":"openapi","operation":"mcpLockUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/lock","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:67d4733874beab337488","protocol":"openapi","operation":"mcpLockTools","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/lock","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:2bd622637984373b4c62","protocol":"openapi","operation":"mcpLockCheck","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/lock/check","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:211b86ac21f0d42ef479","protocol":"openapi","operation":"resolveLog","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ba8d4e40ace978a8a8d1","protocol":"openapi","operation":"resolveLogSth","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/sth/{batch}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d878111d899b7981d02a","protocol":"openapi","operation":"resolveLogBatch","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/batch/{batch}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:eda7e58fd540e6bb39db","protocol":"openapi","operation":"resolveLogProof","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/proof","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:68931ad134add96a7c11","protocol":"openapi","operation":"resolveLogWitnessLatest","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/witness/latest","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7969d546f9cff3e1da15","protocol":"openapi","operation":"resolveLogGossip","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/gossip","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f464fca7c59c4ca13d5c","protocol":"openapi","operation":"resolveLogGossipReport","method":"POST","endpoint":"https://crawlcheck.io/api/v1/log/gossip","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8c3e0fc667a45f613905","protocol":"openapi","operation":"resolveLogFork","method":"GET","endpoint":"https://crawlcheck.io/api/v1/log/gossip/fork/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e0973c1f757ed5edbb83","protocol":"openapi","operation":"resolveLogWitness","method":"POST","endpoint":"https://crawlcheck.io/api/v1/log/witness","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8988c1dbf0ec6d91a936","protocol":"openapi","operation":"highRiskWatch","method":"GET","endpoint":"https://crawlcheck.io/api/v1/high-risk","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:80b536e52087821a28c6","protocol":"openapi","operation":"highRiskConfirm","method":"POST","endpoint":"https://crawlcheck.io/api/v1/high-risk/confirm","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:985306345980591c5844","protocol":"openapi","operation":"incidentState","method":"GET","endpoint":"https://crawlcheck.io/api/v1/incident","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0045546a41e37d204c72","protocol":"openapi","operation":"incidentSwitch","method":"POST","endpoint":"https://crawlcheck.io/api/v1/incident","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7b88626d2c78f183ba29","protocol":"openapi","operation":"incidentSelftest","method":"GET","endpoint":"https://crawlcheck.io/api/v1/incident/selftest","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:14b191a3e79cc9d31bf8","protocol":"openapi","operation":"revocations","method":"GET","endpoint":"https://crawlcheck.io/api/v1/revocations","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ce22ae81caf1fdae6dec","protocol":"openapi","operation":"taskCanaries","method":"GET","endpoint":"https://crawlcheck.io/api/v1/task-canaries","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a316048ba0f315462d01","protocol":"openapi","operation":"impersonationCheck","method":"GET","endpoint":"https://crawlcheck.io/api/v1/impersonation","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ff97eec7cbf02d56aa5c","protocol":"openapi","operation":"mcpAuthAudit","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/auth","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4358cb5f4ab690a89d94","protocol":"openapi","operation":"mcpAuthAuditPost","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/auth","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1fcfa9bc989eeb447550","protocol":"openapi","operation":"mcpShadowUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/shadow","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9ec73abc729fc4beb908","protocol":"openapi","operation":"mcpShadowCheck","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/shadow","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a557fd3de3e73671ac0e","protocol":"openapi","operation":"mcpScanUrl","method":"GET","endpoint":"https://crawlcheck.io/api/v1/mcp/scan","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7eacc81ff59fedcae05f","protocol":"openapi","operation":"mcpScanTools","method":"POST","endpoint":"https://crawlcheck.io/api/v1/mcp/scan","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:dfa330bf7a965ba637f5","protocol":"openapi","operation":"rightsFeedIndex","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights-feed","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5cf04886ede5fb201988","protocol":"openapi","operation":"rightsFeedFile","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights-feed/{id}/{file}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:59ec80940bc8e0c2f900","protocol":"openapi","operation":"rightsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/rights","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9ebfc2730d4f98c8fe42","protocol":"openapi","operation":"readEquivalenceV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/read-equivalence","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:14278e8c6ba74226e660","protocol":"openapi","operation":"selfClaimsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/claims","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d237d71e2860d6cbfbf9","protocol":"openapi","operation":"originByAnchorV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/origin","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e4445171efae4b189ed1","protocol":"openapi","operation":"originV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/origin","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:18e4fd4ed86cf3c99dba","protocol":"openapi","operation":"contentClockV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/content-clock","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d7540a0ad0611743611e","protocol":"openapi","operation":"citedByV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/cited-by","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bfd5aab832bb16481ef8","protocol":"openapi","operation":"anchorCreateV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/anchor","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d75cbee18c43fc03ae66","protocol":"openapi","operation":"anchorWatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/anchor/{id}/watch","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1d0bed914a7125e8e6b1","protocol":"openapi","operation":"anchorSinkV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/anchor/sink/{token}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:24255941a60006a42b8a","protocol":"openapi","operation":"anchorGetV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/anchor/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3676316ff941dabfd585","protocol":"openapi","operation":"visitorArrivalV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor/arrival","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f1b7b56c8a3929cc1084","protocol":"openapi","operation":"trafficIndexV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/traffic-index","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:19c6dab24c5392dc8f84","protocol":"openapi","operation":"trafficIndexMonthV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/traffic-index/{month}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:446bd3b4ca9c386791bf","protocol":"openapi","operation":"visitorStatsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/visitor/stats","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9848cdf9c283176e4b53","protocol":"openapi","operation":"decisionCheckV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/decisions/{sha256}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ea0c5832c2ce09220912","protocol":"openapi","operation":"resolveArchiveV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve/archive/{sha256}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:82de709df1ecebdafbf9","protocol":"openapi","operation":"thresholdVerdictV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/verdict/threshold","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:59898e462880d5623dbd","protocol":"openapi","operation":"observerMeshV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/observers/mesh","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8a540b5dfb46f1d62899","protocol":"openapi","operation":"adoptionV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/adoption","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:aba0c2b2066f03de2b10","protocol":"openapi","operation":"decisionStatsV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/decisions","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e52b12ab3db4eda78917","protocol":"openapi","operation":"resolvePrefixV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve-prefix/{prefix}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9a1ec2f9a2f6a2ce6717","protocol":"openapi","operation":"resolveSnapshotIndex","method":"GET","endpoint":"https://crawlcheck.io/api/v1/snapshot","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d3e6f5ae23f639fb02ad","protocol":"openapi","operation":"resolveSnapshotFile","method":"GET","endpoint":"https://crawlcheck.io/api/v1/snapshot/{id}/{file}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3143880723859be59f9e","protocol":"openapi","operation":"resolveChangesV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/changes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c3c14bac958aa376ceab","protocol":"openapi","operation":"mcpServersForHost","method":"GET","endpoint":"https://crawlcheck.io/api/mcp/servers","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:22fadae706b67ff73bfe","protocol":"openapi","operation":"mcpIndex","method":"GET","endpoint":"https://crawlcheck.io/api/mcp/index","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:86a79bb8ed1f55528f31","protocol":"openapi","operation":"preflightV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/preflight","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:28406fb40f8e28d13524","protocol":"openapi","operation":"resolveDomainV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/resolve","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:acb3185ba1d3d7a28f0f","protocol":"openapi","operation":"resolveBatchV1","method":"POST","endpoint":"https://crawlcheck.io/api/v1/resolve","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d2a3865e01dbaaa32037","protocol":"openapi","operation":"resolveSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/resolve.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8655468542c92f7520a1","protocol":"openapi","operation":"getMachineRecordV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/machine-record","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:227a0338f6e2dd5ce782","protocol":"openapi","operation":"fixStaleCache","method":"GET","endpoint":"https://crawlcheck.io/api/fix/cache","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b0d0b111b73cc2dcd7cb","protocol":"openapi","operation":"fixMachineChain","method":"GET","endpoint":"https://crawlcheck.io/api/fix/chain","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:42eadb623d4bb657d4f8","protocol":"openapi","operation":"fixMostlyCode","method":"GET","endpoint":"https://crawlcheck.io/api/fix/code","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f344c2744ec6660e5ddf","protocol":"openapi","operation":"getCorroboration","method":"GET","endpoint":"https://crawlcheck.io/api/corroboration","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e3a2026477e0eceab03c","protocol":"openapi","operation":"explainFinding","method":"GET","endpoint":"https://crawlcheck.io/api/explain","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d455b7a70ee75eb830c8","protocol":"openapi","operation":"enrolObserver","method":"POST","endpoint":"https://crawlcheck.io/api/observe/enroll","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a0b0891507517654f0f8","protocol":"openapi","operation":"checkObservation","method":"POST","endpoint":"https://crawlcheck.io/api/observe/check","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:94fef2da7a41a0fc9a65","protocol":"openapi","operation":"dataInventory","method":"GET","endpoint":"https://crawlcheck.io/api/data/inventory","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f4da3beef51933eea430","protocol":"openapi","operation":"dataExport","method":"GET","endpoint":"https://crawlcheck.io/api/data/export","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:cb4742c6ed495e457d75","protocol":"openapi","operation":"dataDelete","method":"POST","endpoint":"https://crawlcheck.io/api/data/delete","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"irreversible_write","policy":"irreversible_write","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:99366add261ab4054244","protocol":"openapi","operation":"dataDeletionRecord","method":"GET","endpoint":"https://crawlcheck.io/api/data/deletion","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:87d2607b7e6beb8a520a","protocol":"openapi","operation":"traceCoverage","method":"GET","endpoint":"https://crawlcheck.io/api/trace/coverage","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:639101473306bc0904b5","protocol":"openapi","operation":"traceCiResult","method":"GET","endpoint":"https://crawlcheck.io/api/trace/ci","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4b07582bf18b178f3a30","protocol":"openapi","operation":"traceCi","method":"POST","endpoint":"https://crawlcheck.io/api/trace/ci","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:cff769ad6092baccdf0c","protocol":"openapi","operation":"disputeLedger","method":"GET","endpoint":"https://crawlcheck.io/api/disputes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:157e26bcbd3a34e0f754","protocol":"openapi","operation":"fileDispute","method":"POST","endpoint":"https://crawlcheck.io/api/disputes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5b1f604611d4e3e15304","protocol":"openapi","operation":"confirmDisputeOwnership","method":"POST","endpoint":"https://crawlcheck.io/api/disputes/confirm","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:afdc62d238a4b38e7e7d","protocol":"openapi","operation":"getDisputeResolution","method":"GET","endpoint":"https://crawlcheck.io/api/disputes/resolution","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:64785c07350eab928915","protocol":"openapi","operation":"verifyDisputeResolution","method":"GET","endpoint":"https://crawlcheck.io/api/disputes/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:195cdaed9454934de9c0","protocol":"openapi","operation":"verifyDisputeResolutionPost","method":"POST","endpoint":"https://crawlcheck.io/api/disputes/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f42899c28de70d56ea35","protocol":"openapi","operation":"datasetCatalogue","method":"GET","endpoint":"https://crawlcheck.io/api/datasets","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c3cc9bb4579ac1c6b46f","protocol":"openapi","operation":"datasetSample","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/sample","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:76ed98c1032385642f3f","protocol":"openapi","operation":"datasetFile","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/file","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c1e6740a7f23612e04c2","protocol":"openapi","operation":"datasetState","method":"GET","endpoint":"https://crawlcheck.io/api/datasets/state","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b59056026e0ce12b57d2","protocol":"openapi","operation":"datasetRequest","method":"POST","endpoint":"https://crawlcheck.io/api/datasets/request","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:249e7e6f9c54db791c90","protocol":"openapi","operation":"scanLanes","method":"GET","endpoint":"https://crawlcheck.io/api/lanes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0de2a4b7d66e086d07ab","protocol":"openapi","operation":"agenticWebCensus","method":"GET","endpoint":"https://crawlcheck.io/api/census","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:05fb7893b6f931eb0c0e","protocol":"openapi","operation":"censusRecords","method":"GET","endpoint":"https://crawlcheck.io/api/census/records","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8de5d5ee59cb6d2ccfa6","protocol":"openapi","operation":"censusFrame","method":"GET","endpoint":"https://crawlcheck.io/api/census/frame","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c051bbcfc1d4c2d8143e","protocol":"openapi","operation":"capabilityRegistry","method":"GET","endpoint":"https://crawlcheck.io/api/registry/capabilities","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b93638ae1d0239039453","protocol":"openapi","operation":"verifyCapabilityCertificate","method":"GET","endpoint":"https://crawlcheck.io/api/registry/capabilities/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6ec2facb7631a2b04dc9","protocol":"openapi","operation":"verifyCapabilityCertificatePost","method":"POST","endpoint":"https://crawlcheck.io/api/registry/capabilities/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6733558df3a9bde71ec3","protocol":"openapi","operation":"capabilityRegistryFeed","method":"GET","endpoint":"https://crawlcheck.io/registry/capabilities/feed.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d2a595e15edd408e472b","protocol":"openapi","operation":"listVerifiedCapabilities","method":"GET","endpoint":"https://crawlcheck.io/api/capabilities","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6a11917922e9f4fb2d82","protocol":"openapi","operation":"getReportV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/reports/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8606fa103f086fe33271","protocol":"openapi","operation":"locateFacts","method":"GET","endpoint":"https://crawlcheck.io/api/locate","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ed8301145771189f3572","protocol":"openapi","operation":"sdkVersions","method":"GET","endpoint":"https://crawlcheck.io/sdk/index.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:673facdb60ea0d4e23d5","protocol":"openapi","operation":"conformanceIndex","method":"GET","endpoint":"https://crawlcheck.io/conformance/index.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0609c8cfcb52841ca900","protocol":"openapi","operation":"getReceipt","method":"GET","endpoint":"https://crawlcheck.io/api/receipt","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4f052e966fdf71e5e363","protocol":"openapi","operation":"verifyReceipt","method":"POST","endpoint":"https://crawlcheck.io/api/receipt/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:71974a51676733c4c829","protocol":"openapi","operation":"listReceipts","method":"GET","endpoint":"https://crawlcheck.io/api/receipts","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:fb25fa76cfe6b4301408","protocol":"openapi","operation":"rulebook","method":"GET","endpoint":"https://crawlcheck.io/api/rules","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:eb44556fe7f6a70b9c04","protocol":"openapi","operation":"getRulebookSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/rulebook.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9c893786badbbebcdeb5","protocol":"openapi","operation":"lineageCoverage","method":"GET","endpoint":"https://crawlcheck.io/api/lineage-coverage","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6f648814e771fc3aae99","protocol":"openapi","operation":"findingLineage","method":"GET","endpoint":"https://crawlcheck.io/api/lineage","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d4d56a3fdf4c7591578e","protocol":"openapi","operation":"fixChain","method":"GET","endpoint":"https://crawlcheck.io/api/workflow","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4ea10a4c64eb18a3d87a","protocol":"openapi","operation":"recordFixChain","method":"POST","endpoint":"https://crawlcheck.io/api/workflow/record","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:2cc05c1a38b5b005133e","protocol":"openapi","operation":"getObservation","method":"GET","endpoint":"https://crawlcheck.io/api/observation","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7fc6d7da3653251b2fd1","protocol":"openapi","operation":"fixOutcomes","method":"GET","endpoint":"https://crawlcheck.io/api/outcomes","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f2b36e48aebd20110494","protocol":"openapi","operation":"evidenceExport","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/export","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ebf595679dd402157c7d","protocol":"openapi","operation":"evidenceLedger","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/ledger","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d1112bc2758822e6033e","protocol":"openapi","operation":"evidenceReceipts","method":"GET","endpoint":"https://crawlcheck.io/api/evidence/receipts","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:09e33094e69d93018f3a","protocol":"openapi","operation":"benchmark","method":"GET","endpoint":"https://crawlcheck.io/api/benchmark","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:152ff26a23caba9ffef9","protocol":"openapi","operation":"portfolioCompare","method":"GET","endpoint":"https://crawlcheck.io/api/portfolio/compare","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a00c4a07dc7c3e4c9ce8","protocol":"openapi","operation":"verifyBulk","method":"POST","endpoint":"https://crawlcheck.io/api/verify/bulk","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:cc38904f9789625ca3f2","protocol":"openapi","operation":"verifyAndRollback","method":"GET","endpoint":"https://crawlcheck.io/api/rollback","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4475c3a2f656ffdf3e34","protocol":"openapi","operation":"rollbackFile","method":"GET","endpoint":"https://crawlcheck.io/api/rollback/file","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:020c0a7dfc9a6d870ddb","protocol":"openapi","operation":"fixImpact","method":"GET","endpoint":"https://crawlcheck.io/api/impact","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f763f882822e6957ec6e","protocol":"openapi","operation":"fixImpactPost","method":"POST","endpoint":"https://crawlcheck.io/api/impact","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:cf7dcd5d6cafce1a89d5","protocol":"openapi","operation":"whatIf","method":"GET","endpoint":"https://crawlcheck.io/api/whatif","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:180e50482c62ff712ce1","protocol":"openapi","operation":"whatIfPost","method":"POST","endpoint":"https://crawlcheck.io/api/whatif","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c723047357a2f537a4f5","protocol":"openapi","operation":"getVocabulary","method":"GET","endpoint":"https://crawlcheck.io/ns","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:59e34190d04f1f1f49f3","protocol":"openapi","operation":"getOpenLineageFacetSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/openlineage-facets.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b628a1a283db2abd4b86","protocol":"openapi","operation":"getMachineExperienceRecordSchema","method":"GET","endpoint":"https://crawlcheck.io/schemas/machine-experience-record.json","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:afe451be0bf40eaa1e32","protocol":"openapi","operation":"getSchemaV1","method":"GET","endpoint":"https://crawlcheck.io/api/v1/schema","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:da0545880d6d9276019c","protocol":"openapi","operation":"listApiKeys","method":"GET","endpoint":"https://crawlcheck.io/api/keys","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:02c1c9d51e97467ed0b1","protocol":"openapi","operation":"createApiKey","method":"POST","endpoint":"https://crawlcheck.io/api/keys","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:770cacf0edcfa8caef2a","protocol":"openapi","operation":"revokeApiKey","method":"DELETE","endpoint":"https://crawlcheck.io/api/keys","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"identity_or_account","policy":"identity","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d6bbbe64cf99a2169a49","protocol":"openapi","operation":"createShareLink","method":"POST","endpoint":"https://crawlcheck.io/api/share","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:48a7b6be319252c8d76e","protocol":"openapi","operation":"revokeShareLink","method":"DELETE","endpoint":"https://crawlcheck.io/api/share","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"irreversible_write","policy":"irreversible_write","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:dc8bbdbe8378a2f45732","protocol":"openapi","operation":"scanDomainLicensed","method":"POST","endpoint":"https://crawlcheck.io/api/scan/licensed","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:92800025229412ee7bad","protocol":"openapi","operation":"checkBotKeyDirectory","method":"GET","endpoint":"https://crawlcheck.io/api/tool/wba","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6fb9220acadb31f753fa","protocol":"openapi","operation":"verifySignedBotRequest","method":"POST","endpoint":"https://crawlcheck.io/api/tool/wba","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:dbe2b73197ed5b0179ad","protocol":"openapi","operation":"verifyCrawlerLog","method":"POST","endpoint":"https://crawlcheck.io/api/tool/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:06e99cf5d5ea910579b8","protocol":"openapi","operation":"depthCrawl","method":"POST","endpoint":"https://crawlcheck.io/api/depth","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9621502104f2b19bddf7","protocol":"openapi","operation":"depthResult","method":"GET","endpoint":"https://crawlcheck.io/api/depth/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:492f0db18a4e191cb070","protocol":"openapi","operation":"usage","method":"GET","endpoint":"https://crawlcheck.io/api/usage","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:26a07a8a3e68003ebd61","protocol":"openapi","operation":"verifyRecord","method":"GET","endpoint":"https://crawlcheck.io/api/verify","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7d18c3beeac2f2200ed7","protocol":"openapi","operation":"evidenceBundle","method":"GET","endpoint":"https://crawlcheck.io/api/bundle","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:48819132540f6b784ffb","protocol":"openapi","operation":"reconstructionCi","method":"POST","endpoint":"https://crawlcheck.io/api/reconstruction/ci","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bd5b374196f4db7e9e26","protocol":"openapi","operation":"reconstructionTest","method":"GET","endpoint":"https://crawlcheck.io/api/reconstruction","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:085de1aec4e6f1ef1b05","protocol":"openapi","operation":"graphResolve","method":"GET","endpoint":"https://crawlcheck.io/api/graph/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:00314c7f15c6c38d664f","protocol":"openapi","operation":"batchSubmit","method":"POST","endpoint":"https://crawlcheck.io/api/batch","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:94b44ebe9302bad91ee3","protocol":"openapi","operation":"batchStatus","method":"GET","endpoint":"https://crawlcheck.io/api/batch/{id}","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e2c212399f96f44cd257","protocol":"openapi","operation":"crawlerFlow","method":"GET","endpoint":"https://crawlcheck.io/api/flow","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:5cd05ae3d458aa81283d","protocol":"openapi","operation":"flowGate","method":"GET","endpoint":"https://crawlcheck.io/api/flow/gate","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9bc4bb877df97b0c8729","protocol":"openapi","operation":"flowDeclaredGet","method":"GET","endpoint":"https://crawlcheck.io/api/flow/declared","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0125bc678254badff378","protocol":"openapi","operation":"flowDeclaredPut","method":"PUT","endpoint":"https://crawlcheck.io/api/flow/declared","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:c80b659e85eac1f14e0d","protocol":"openapi","operation":"flowDeclaredDelete","method":"DELETE","endpoint":"https://crawlcheck.io/api/flow/declared","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"irreversible_write","policy":"irreversible_write","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4c2d3387fa43712c5691","protocol":"openapi","operation":"robotsResolve","method":"GET","endpoint":"https://crawlcheck.io/api/tool/robots","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:fa4a307f109872485ba9","protocol":"openapi","operation":"llmsDraft","method":"GET","endpoint":"https://crawlcheck.io/api/tool/llms","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6256f5a707d83c7bf845","protocol":"openapi","operation":"videoCheck","method":"GET","endpoint":"https://crawlcheck.io/api/video","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8887b92a0c3fae52d36a","protocol":"openapi","operation":"videoChannel","method":"GET","endpoint":"https://crawlcheck.io/api/video/channel","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:78d9df46df014faf4cfa","protocol":"openapi","operation":"videoSite","method":"GET","endpoint":"https://crawlcheck.io/api/video/site","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6629570bb68e1818f85a","protocol":"openapi","operation":"fixRobots","method":"GET","endpoint":"https://crawlcheck.io/api/fix/robots","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:7dcdd132a05a1ddd3ad5","protocol":"openapi","operation":"fixEntitymap","method":"GET","endpoint":"https://crawlcheck.io/api/fix/entitymap","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_authenticated","policy":"authenticated_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:995af6e9928e5f3b12a8","protocol":"openapi","operation":"entityObserve","method":"POST","endpoint":"https://crawlcheck.io/api/entity/observe","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:ef0290cb05de5ab1041d","protocol":"openapi","operation":"publicCounts","method":"GET","endpoint":"https://crawlcheck.io/api/public/counts","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0f89ff97a2ff2eddd6bf","protocol":"openapi","operation":"registry","method":"GET","endpoint":"https://crawlcheck.io/api/registry","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a10190b9f2a60e85f801","protocol":"openapi","operation":"telemetry","method":"GET","endpoint":"https://crawlcheck.io/api/telemetry","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:753e10227749b669f71a","protocol":"openapi","operation":"corpusState","method":"GET","endpoint":"https://crawlcheck.io/api/corpus/state","declared_by_sha256":"469b46ab33bbc04402421d2d34f6094d5afba7f45bd7602ac583cf1cd74ffb2c","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3ec06be3fcaace3903f9","protocol":"mcp","operation":"scan_domain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:695c73972e735f8304c1","protocol":"mcp","operation":"verify_crawler_log","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bbf1df138400da83b4d8","protocol":"mcp","operation":"corpus_state","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:13aeac0a3215706b3f93","protocol":"mcp","operation":"resolve_robots","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:6edf2d6037f3f9eb479f","protocol":"mcp","operation":"draft_llms","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3481a08432d54bcec352","protocol":"mcp","operation":"fix_robots","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:75f0159f529727dbacd8","protocol":"mcp","operation":"fix_entitymap","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:bf288e963ef3482efbe6","protocol":"mcp","operation":"video_check","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f6fb5743799dcee4ac22","protocol":"mcp","operation":"video_channel","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:e521d93d993082d77e22","protocol":"mcp","operation":"video_site","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:a8884dbe22ec67685fd4","protocol":"mcp","operation":"registry_lookup","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:dc30f77ec9e1ca9f314e","protocol":"mcp","operation":"crawler_path","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:0986c56cbb86dac7fa99","protocol":"mcp","operation":"public_counts","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:963835ed830e6dff96d0","protocol":"mcp","operation":"telemetry","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:59ea862da9912b2a2450","protocol":"mcp","operation":"fix_mostly_code","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:3facac7f86bf187b2014","protocol":"mcp","operation":"fix_stale_cache","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:8ae4342603c8897711f4","protocol":"mcp","operation":"fix_machine_chain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4b9a3a64405a912dfc3c","protocol":"mcp","operation":"explain_finding","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:4df3398bc6fac8da33af","protocol":"mcp","operation":"list_verified_capabilities","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:d9945e81939eafc8ab9a","protocol":"mcp","operation":"machine_record","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:91f0fdec2bc4a3e3d713","protocol":"mcp","operation":"resolve_domain","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:03f2c46968ca68a83480","protocol":"mcp","operation":"preflight","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9119e4f576c70c5176b8","protocol":"mcp","operation":"mcp_servers","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"read_only_public","policy":"public_read_only","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:37dd6bc9811e6b0fef28","protocol":"mcp","operation":"phantom_ask","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:472511bb2e65cfdcbd21","protocol":"mcp","operation":"phantom_brief","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b18a4eef990621a6c4f1","protocol":"mcp","operation":"phantom_ledger","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1e4fb6be64686c2af8d8","protocol":"mcp","operation":"phantom_coverage","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:b8f663da295cf82f31e1","protocol":"mcp","operation":"phantom_ads","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:1f32eb359749f63e16d3","protocol":"mcp","operation":"phantom_citations","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:9dd458358db8decc3eb1","protocol":"mcp","operation":"phantom_facts","method":null,"endpoint":"https://crawlcheck.io/mcp","declared_by_sha256":"e7509b520b57c32cfa9f821e608f7eee0c77646892b6cbb3e7a642f05e8e8a6b","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:f1197fba5fe07e3dd3bf","protocol":"a2a","operation":"scan_site","method":null,"endpoint":"https://crawlcheck.io/api/scan","declared_by_sha256":"9751966b942e084bd5ab9a6d59b209b8eb26631c710a86f59ca4ebbeaf89d586","safety_class":"unknown","policy":"unknown","observed":"not_attempted","status":null,"observed_sha256":null},{"id":"cap1:20bb0ffbdd6d2e232e65","protocol":"agent_skill","operation":"crawlcheck","method":null,"endpoint":"https://crawlcheck.io/.well-known/agent-skills/crawlcheck/SKILL.md","declared_by_sha256":"19329cc7daf2c919090ffe1134bf696fca77338c4dd9b9db56d2ea8cff04630a","safety_class":"metadata_only","policy":"metadata","observed":"not_attempted","status":null,"observed_sha256":null}],"mismatches":[]},"signature":{"alg":"Ed25519","kid":"hcIAczGf-8EFBnkunmZlvFWnD2nHHeHeC9cM4BTiBVo","certificate_sha256":"fc4788a3ff21b22cae59c8ef747ad3c11ff09a089d29f369b793d371d47b71cb","message":"the UTF-8 bytes of \"crawlcheck-capability-certificate-v1\\n\" followed by certificate_sha256 (hex), where certificate_sha256 = SHA-256 of the certificate as canonical JSON (keys sorted, no whitespace)","sig":"hMBm5xx1b7j6i3Vn0rzTQ9DHHTniKzZNLd_44yPizAU0uLhbuIStRg856djuCUjAY2DnYdDrjOeuLtiOkwMKAg"},"issuer":{"name":"CrawlCheck observer","key":{"jwk":{"kty":"OKP","crv":"Ed25519","x":"Ny5tAiGdpyVWTm64G1_0g_sTo4ocLL7kqjZ6cK7G5KM"},"directory":"https://crawlcheck.io/.well-known/http-message-signatures-directory"}}},"verify":"https://crawlcheck.io/api/registry/capabilities/verify?domain=crawlcheck.io"}