{"openapi":"3.1.2","info":{"title":"InterfaceDelta Record API","version":"record-v1","description":"Read the public atlas. Bounded history, not a complete event archive. Requires the Record API switch and public atlas mode."},"servers":[{"url":"https://interfacedelta.com"}],"security":[{"apiToken":[]}],"paths":{"/api/v1/agent-keys":{"post":{"operationId":"issueAgentKey","security":[],"description":"Get a free record:read key without a browser or sign-in. The token is returned once. Three keys per network per UTC day; 500 globally. Unused keys expire after 90 days. Network means an IPv4 /24 or IPv6 /48 prefix, stored only as a keyed hash for two UTC day buckets. Contact is private and used only for abuse contact.","requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","maxLength":64,"pattern":"^[ -~]*$"},"contact":{"type":"string","format":"email","maxLength":254}}}}}},"responses":{"201":{"description":"Store the token now; it cannot be retrieved again. Burst is requests per UTC minute.","content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["token","keyId","scopes","monthlyQuota","burst","expiresAfterInactiveDays","docs"],"properties":{"token":{"type":"string"},"keyId":{"type":"string","format":"uuid"},"scopes":{"type":"array","items":{"const":"record:read"},"minItems":1,"maxItems":1},"monthlyQuota":{"type":"integer","minimum":1,"maximum":999,"default":250},"burst":{"const":60},"expiresAfterInactiveDays":{"const":90},"docs":{"type":"string","format":"uri"}}}}}},"400":{"description":"Invalid optional JSON body."},"404":{"description":"Agent keys are disabled."},"413":{"description":"Body exceeds 2048 bytes."},"429":{"description":"AGENT_KEY_LIMIT. Retry after the UTC day resets.","headers":{"Retry-After":{"schema":{"type":"integer"}}}},"503":{"description":"Issuance configuration or storage unavailable."}}}},"/api/v1/agent-keys/self":{"delete":{"operationId":"revokeAgentKey","security":[{"apiToken":[]}],"description":"Revoke the agent key supplied as the Bearer token.","responses":{"204":{"description":"Key revoked."},"401":{"description":"Invalid, inactive, or revoked key."},"403":{"description":"Missing record:read scope."},"404":{"description":"Agent keys disabled or token is not an agent key."},"503":{"description":"Storage unavailable."}}}},"/api/v1/record/check":{"get":{"operationId":"checkRecordTool","description":"One signed stored tool check. No target request. Requires record:read. One check consumes one Record API request.","parameters":[{"name":"endpoint","in":"query","required":true,"schema":{"type":"string","format":"uri","maxLength":2048}},{"name":"tool","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":128}},{"name":"since","in":"query","required":false,"schema":{"type":"string","pattern":"^(?:sha256:)?[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Signed Record Check version 1.","content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"removed"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"not_observed"},"inspect":{"type":"string"},"nextStep":{"type":"string"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","inspect","nextStep","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"requires_sign_in"},"nextStep":{"type":"string"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"observed"},"service":{"type":"object","properties":{"key":{"type":"string"},"origin":{"type":"string"},"endpoint":{"type":"string"}},"required":["key","origin","endpoint"],"additionalProperties":false},"tool":{"type":"object","properties":{"name":{"type":"string"},"inputs":{"type":"array","items":{"type":"string"}},"inputsOmitted":{"type":"integer","minimum":0,"maximum":9007199254740991},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false}},"required":["name","inputs","annotations"],"additionalProperties":false},"observed":{"type":"object","properties":{"at":{"type":"string"},"ageDays":{"type":"number","minimum":0},"stale":{"type":"boolean"}},"required":["at","ageDays","stale"],"additionalProperties":false},"change":{"type":"object","properties":{"fingerprint":{"type":"string"},"changedSince":{"type":"boolean"},"last":{"anyOf":[{"type":"object","properties":{"at":{"type":"string"},"class":{"type":"string","enum":["breaking","indeterminate","non-breaking"]}},"required":["at","class"],"additionalProperties":false},{"type":"null"}]}},"required":["fingerprint","last"],"additionalProperties":false},"effects":{"type":"object","properties":{"state":{"type":"string","enum":["counted","disputed","none"]},"classes":{"type":"array","items":{"type":"object","properties":{"class":{"type":"string","enum":["none","reads","creates","updates","deletes","sends_messages","moves_money","runs_code","calls_services","changes_permissions","needs_human_confirmation"]},"p":{"type":"number","minimum":0,"maximum":1}},"required":["class","p"],"additionalProperties":false}},"lens":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"ai":{"type":"boolean","const":true}},"required":["state","classes","lens","model","ai"],"additionalProperties":false},"purpose":{"type":"object","properties":{"text":{"type":"string"},"lens":{"type":"string"},"ai":{"type":"boolean","const":true}},"required":["text","lens","ai"],"additionalProperties":false},"payment":{"type":"object","properties":{"requiresPayment":{"type":"boolean"},"protocols":{"type":"array","items":{"type":"string","enum":["x402","mpp"]}},"payToChangedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requiresPayment","protocols","payToChangedAt"],"additionalProperties":false},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","service","tool","observed","change","effects","payment","signature"],"additionalProperties":false}]}}}},"400":{"description":"Invalid, unavailable, or quota-limited request."},"401":{"description":"Invalid, unavailable, or quota-limited request."},"403":{"description":"Invalid, unavailable, or quota-limited request."},"404":{"description":"Invalid, unavailable, or quota-limited request."},"413":{"description":"Invalid, unavailable, or quota-limited request."},"429":{"description":"Invalid, unavailable, or quota-limited request."},"503":{"description":"Invalid, unavailable, or quota-limited request."}}},"post":{"operationId":"checkRecordTools","description":"Atomic quota admission for 1 to 50 checks, returned in input order.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"type":"object","additionalProperties":false,"required":["endpoint","tool"],"properties":{"endpoint":{"type":"string","format":"uri","maxLength":2048},"tool":{"type":"string","minLength":1,"maxLength":128},"since":{"type":"string","pattern":"^(?:sha256:)?[a-f0-9]{64}$"}}}}}}},"responses":{"200":{"description":"Signed checks.","content":{"application/json":{"schema":{"type":"array","minItems":1,"maxItems":50,"items":{"$schema":"https://json-schema.org/draft/2020-12/schema","anyOf":[{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"removed"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"not_observed"},"inspect":{"type":"string"},"nextStep":{"type":"string"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","inspect","nextStep","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"requires_sign_in"},"nextStep":{"type":"string"},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","signature"],"additionalProperties":false},{"type":"object","properties":{"recordCheck":{"type":"string","const":"1"},"status":{"type":"string","const":"observed"},"service":{"type":"object","properties":{"key":{"type":"string"},"origin":{"type":"string"},"endpoint":{"type":"string"}},"required":["key","origin","endpoint"],"additionalProperties":false},"tool":{"type":"object","properties":{"name":{"type":"string"},"inputs":{"type":"array","items":{"type":"string"}},"inputsOmitted":{"type":"integer","minimum":0,"maximum":9007199254740991},"annotations":{"type":"object","properties":{"readOnlyHint":{"type":"boolean"},"destructiveHint":{"type":"boolean"},"idempotentHint":{"type":"boolean"},"openWorldHint":{"type":"boolean"}},"additionalProperties":false}},"required":["name","inputs","annotations"],"additionalProperties":false},"observed":{"type":"object","properties":{"at":{"type":"string"},"ageDays":{"type":"number","minimum":0},"stale":{"type":"boolean"}},"required":["at","ageDays","stale"],"additionalProperties":false},"change":{"type":"object","properties":{"fingerprint":{"type":"string"},"changedSince":{"type":"boolean"},"last":{"anyOf":[{"type":"object","properties":{"at":{"type":"string"},"class":{"type":"string","enum":["breaking","indeterminate","non-breaking"]}},"required":["at","class"],"additionalProperties":false},{"type":"null"}]}},"required":["fingerprint","last"],"additionalProperties":false},"effects":{"type":"object","properties":{"state":{"type":"string","enum":["counted","disputed","none"]},"classes":{"type":"array","items":{"type":"object","properties":{"class":{"type":"string","enum":["none","reads","creates","updates","deletes","sends_messages","moves_money","runs_code","calls_services","changes_permissions","needs_human_confirmation"]},"p":{"type":"number","minimum":0,"maximum":1}},"required":["class","p"],"additionalProperties":false}},"lens":{"anyOf":[{"type":"string"},{"type":"null"}]},"model":{"anyOf":[{"type":"string"},{"type":"null"}]},"ai":{"type":"boolean","const":true}},"required":["state","classes","lens","model","ai"],"additionalProperties":false},"purpose":{"type":"object","properties":{"text":{"type":"string"},"lens":{"type":"string"},"ai":{"type":"boolean","const":true}},"required":["text","lens","ai"],"additionalProperties":false},"payment":{"type":"object","properties":{"requiresPayment":{"type":"boolean"},"protocols":{"type":"array","items":{"type":"string","enum":["x402","mpp"]}},"payToChangedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["requiresPayment","protocols","payToChangedAt"],"additionalProperties":false},"signature":{"type":"object","required":["jws","verify"],"additionalProperties":false,"properties":{"jws":{"type":"string"},"verify":{"type":"string","format":"uri"}}}},"required":["recordCheck","status","service","tool","observed","change","effects","payment","signature"],"additionalProperties":false}]}}}}},"400":{"description":"Invalid, unavailable, or quota-limited request."},"401":{"description":"Invalid, unavailable, or quota-limited request."},"403":{"description":"Invalid, unavailable, or quota-limited request."},"404":{"description":"Invalid, unavailable, or quota-limited request."},"413":{"description":"Invalid, unavailable, or quota-limited request."},"429":{"description":"Invalid, unavailable, or quota-limited request."},"503":{"description":"Invalid, unavailable, or quota-limited request."}}}},"/api/v1/record/lookup":{"get":{"operationId":"lookupRecordDomain","description":"Returns 200 and found:false for an unmatched domain. Up to 10 services sorted by key. Summary aggregates only those services. Commerce keys are omitted unless enabled. Evidence is a sibling map.","x-required-scope":"record:read","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string"},"description":"Public hostname or HTTP(S) URL. IDN becomes ASCII; www. is stripped. Matches the host and its subdomains, never substrings. No network lookup."}],"responses":{"200":{"description":"Successful response; consumes one request, including lookup misses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Lookup"}}}},"400":{"description":"Invalid query, domain or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Missing record:read scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record disabled, atlas not public, or service absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"CURSOR_EXPIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly quota or 60 requests per token per UTC minute exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until retry"},"X-Record-Quota-Reset":{"schema":{"type":"string","format":"date-time"},"description":"Reset time of the exhausted monthly or minute window"}}},"503":{"description":"Service or accounting unavailable; no quota consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/record/services":{"get":{"operationId":"listRecordServices","description":"Services sorted by key. Reading filters examine at most 20 candidates; an empty page may have a next cursor.","x-required-scope":"record:read","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Keep filters and limit unchanged. A changed snapshot returns 409; restart pagination."},{"name":"changedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"protocol","in":"query","required":false,"schema":{"type":"string","enum":["mcp","mcp-server-card","openapi","a2a","ard","webmcp","ucp","ap2"]}},{"name":"hasReadings","in":"query","required":false,"schema":{"type":"boolean"}},{"name":"declaredObservedDisagrees","in":"query","required":false,"schema":{"type":"boolean"}}],"responses":{"200":{"description":"Successful response; consumes one request, including lookup misses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Services"}}}},"400":{"description":"Invalid query, domain or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Missing record:read scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record disabled, atlas not public, or service absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"CURSOR_EXPIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly quota or 60 requests per token per UTC minute exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until retry"},"X-Record-Quota-Reset":{"schema":{"type":"string","format":"date-time"},"description":"Reset time of the exhausted monthly or minute window"}}},"503":{"description":"Service or accounting unavailable; no quota consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/record/services/{key}":{"get":{"operationId":"getRecordService","description":"Latest public capabilities and bounded history.","x-required-scope":"record:read","parameters":[{"name":"key","in":"path","required":true,"schema":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}}],"responses":{"200":{"description":"Successful response; consumes one request, including lookup misses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Service"}}}},"400":{"description":"Invalid query, domain or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Missing record:read scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record disabled, atlas not public, or service absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"CURSOR_EXPIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly quota or 60 requests per token per UTC minute exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until retry"},"X-Record-Quota-Reset":{"schema":{"type":"string","format":"date-time"},"description":"Reset time of the exhausted monthly or minute window"}}},"503":{"description":"Service or accounting unavailable; no quota consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/record/changes":{"get":{"operationId":"listRecordChanges","description":"Changes strictly after since, oldest first. Excludes baseline and unchanged. Domain matches all retained services, without the lookup cap.","x-required-scope":"record:read","parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"default":20}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"},"description":"Keep filters and limit unchanged. A changed snapshot returns 409; restart pagination."},{"name":"since","in":"query","required":true,"schema":{"type":"string","format":"date-time"}},{"name":"domain","in":"query","required":false,"schema":{"type":"string"},"description":"Public hostname or HTTP(S) URL. IDN becomes ASCII; www. is stripped. Matches the host and its subdomains, never substrings. No network lookup."}],"responses":{"200":{"description":"Successful response; consumes one request, including lookup misses.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Changes"}}}},"400":{"description":"Invalid query, domain or cursor","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Invalid token","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Missing record:read scope","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Record disabled, atlas not public, or service absent","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"CURSOR_EXPIRED","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Monthly quota or 60 requests per token per UTC minute exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer","minimum":1},"description":"Seconds until retry"},"X-Record-Quota-Reset":{"schema":{"type":"string","format":"date-time"},"description":"Reset time of the exhausted monthly or minute window"}}},"503":{"description":"Service or accounting unavailable; no quota consumed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"apiToken":{"type":"http","scheme":"bearer","description":"Account API token with record:read; not OAuth."}},"schemas":{"Error":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"requestId":{"type":"string"},"resetAt":{"type":"string","format":"date-time"}}}}},"Lookup":{"type":"object","required":["recordVersion","generatedAt","coverage","provenance","found","summary","services"],"properties":{"recordVersion":{"const":"record-v1"},"generatedAt":{"type":"string","format":"date-time"},"coverage":{"type":"object","required":["boundedHistory","truncated"],"properties":{"boundedHistory":{"const":true},"truncated":{"type":"boolean"}},"additionalProperties":false},"provenance":{"type":"object","required":["manifestVersion","publisher","collection","sources","listingsAreLeads","evidenceClasses","rules","snapshot","noVerdicts"],"properties":{"manifestVersion":{"const":"provenance-v1"},"publisher":{"type":"string"},"collection":{"type":"object","required":["agent","policy","method"],"properties":{"agent":{"type":"string"},"policy":{"type":"string","format":"uri"},"method":{"type":"string"}},"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","required":["id","name","role","licence","url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"enum":["listing","link_popularity"]},"licence":{"type":["string","null"]},"attribution":{"type":"string"},"url":{"type":"string","format":"uri"}},"additionalProperties":false}},"listingsAreLeads":{"type":"string"},"evidenceClasses":{"type":"array","items":{"type":"object","required":["id","meaning"],"properties":{"id":{"enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]},"meaning":{"type":"string"}},"additionalProperties":false}},"rules":{"type":"object","required":["changeClassification"],"properties":{"changeClassification":{"type":"string"}},"additionalProperties":false},"snapshot":{"type":"object","required":["generatedAt","truncated"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"truncated":{"type":"boolean"}},"additionalProperties":false},"noVerdicts":{"type":"string"}},"additionalProperties":false},"found":{"type":"boolean"},"summary":{"type":"object","additionalProperties":false,"properties":{"domain":{"type":"string"},"servicesFound":{"type":"integer","minimum":0,"maximum":10},"atlasUrl":{"type":["string","null"],"format":"uri"},"hasMcp":{"type":"boolean"},"hasA2a":{"type":"boolean"},"hasOpenApi":{"type":"boolean"},"hasWebMcp":{"type":"boolean"},"hasArd":{"type":"boolean"},"hasServerCard":{"type":"boolean"},"hasUcp":{"type":"boolean"},"hasAp2":{"type":"boolean"},"asksForPayment":{"type":"boolean"},"toolsCount":{"type":["integer","null"],"minimum":0},"firstObservedAt":{"type":["string","null"],"format":"date-time"},"lastObservedAt":{"type":["string","null"],"format":"date-time"},"lastChangedAt":{"type":["string","null"],"format":"date-time"},"lastChangeClass":{"type":["string","null"]},"breakingChanges30d":{"type":"integer","minimum":0},"changes90d":{"type":"integer","minimum":0},"boundedHistory":{"const":true},"evidence":{"type":"object","additionalProperties":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"required":["domain","servicesFound","atlasUrl","hasMcp","hasA2a","hasOpenApi","hasWebMcp","hasArd","hasServerCard","asksForPayment","toolsCount","firstObservedAt","lastObservedAt","lastChangedAt","lastChangeClass","breakingChanges30d","changes90d","boundedHistory","evidence"]},"services":{"type":"array","maxItems":10,"items":{"type":"object","additionalProperties":false,"properties":{"domain":{"type":"string"},"servicesFound":{"type":"integer","minimum":0,"maximum":10},"atlasUrl":{"type":["string","null"],"format":"uri"},"hasMcp":{"type":"boolean"},"hasA2a":{"type":"boolean"},"hasOpenApi":{"type":"boolean"},"hasWebMcp":{"type":"boolean"},"hasArd":{"type":"boolean"},"hasServerCard":{"type":"boolean"},"hasUcp":{"type":"boolean"},"hasAp2":{"type":"boolean"},"asksForPayment":{"type":"boolean"},"toolsCount":{"type":["integer","null"],"minimum":0},"firstObservedAt":{"type":["string","null"],"format":"date-time"},"lastObservedAt":{"type":["string","null"],"format":"date-time"},"lastChangedAt":{"type":["string","null"],"format":"date-time"},"lastChangeClass":{"type":["string","null"]},"breakingChanges30d":{"type":"integer","minimum":0},"changes90d":{"type":"integer","minimum":0},"boundedHistory":{"const":true},"evidence":{"type":"object","additionalProperties":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"required":["domain","servicesFound","atlasUrl","hasMcp","hasA2a","hasOpenApi","hasWebMcp","hasArd","hasServerCard","asksForPayment","toolsCount","firstObservedAt","lastObservedAt","lastChangedAt","lastChangeClass","breakingChanges30d","changes90d","boundedHistory","evidence"]}}},"additionalProperties":false},"Services":{"type":"object","required":["recordVersion","generatedAt","coverage","provenance","services","nextCursor"],"properties":{"recordVersion":{"const":"record-v1"},"generatedAt":{"type":"string","format":"date-time"},"coverage":{"type":"object","required":["boundedHistory","truncated"],"properties":{"boundedHistory":{"const":true},"truncated":{"type":"boolean"}},"additionalProperties":false},"provenance":{"type":"object","required":["manifestVersion","publisher","collection","sources","listingsAreLeads","evidenceClasses","rules","snapshot","noVerdicts"],"properties":{"manifestVersion":{"const":"provenance-v1"},"publisher":{"type":"string"},"collection":{"type":"object","required":["agent","policy","method"],"properties":{"agent":{"type":"string"},"policy":{"type":"string","format":"uri"},"method":{"type":"string"}},"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","required":["id","name","role","licence","url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"enum":["listing","link_popularity"]},"licence":{"type":["string","null"]},"attribution":{"type":"string"},"url":{"type":"string","format":"uri"}},"additionalProperties":false}},"listingsAreLeads":{"type":"string"},"evidenceClasses":{"type":"array","items":{"type":"object","required":["id","meaning"],"properties":{"id":{"enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]},"meaning":{"type":"string"}},"additionalProperties":false}},"rules":{"type":"object","required":["changeClassification"],"properties":{"changeClassification":{"type":"string"}},"additionalProperties":false},"snapshot":{"type":"object","required":["generatedAt","truncated"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"truncated":{"type":"boolean"}},"additionalProperties":false},"noVerdicts":{"type":"string"}},"additionalProperties":false},"services":{"type":"array","items":{"type":"object","properties":{"key":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"origin":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string","format":"uri"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"protocols":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"}},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"latestRevision":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"lastObserved":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":["string","null"],"format":"date-time"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"lastChanged":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":["string","null"],"format":"date-time"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"counts":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"object","required":["capabilities","incompleteInventories","retainedObservations"],"additionalProperties":{"type":"integer"}},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"linkPopularity":{"type":"object","additionalProperties":false,"description":"Deterministic domain match (INTERFACEDELTA_DERIVED) to the Majestic Million. Rank and listDate are reported by Majestic (source, attribution); this is link popularity, not traffic or visits.","required":["domain","rank","listDate","source","attribution","evidence"],"properties":{"domain":{"type":"string"},"rank":{"type":"integer","minimum":1,"maximum":1000000},"listDate":{"type":"string","format":"date"},"source":{"const":"majestic_million"},"attribution":{"type":"string"},"evidence":{"const":"INTERFACEDELTA_DERIVED"}}}},"required":["key","origin","protocols","latestRevision","lastObserved","lastChanged","counts","linkPopularity"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"additionalProperties":false},"Service":{"type":"object","required":["recordVersion","generatedAt","coverage","provenance","service"],"properties":{"recordVersion":{"const":"record-v1"},"generatedAt":{"type":"string","format":"date-time"},"coverage":{"type":"object","required":["boundedHistory","truncated"],"properties":{"boundedHistory":{"const":true},"truncated":{"type":"boolean"}},"additionalProperties":false},"provenance":{"type":"object","required":["manifestVersion","publisher","collection","sources","listingsAreLeads","evidenceClasses","rules","snapshot","noVerdicts"],"properties":{"manifestVersion":{"const":"provenance-v1"},"publisher":{"type":"string"},"collection":{"type":"object","required":["agent","policy","method"],"properties":{"agent":{"type":"string"},"policy":{"type":"string","format":"uri"},"method":{"type":"string"}},"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","required":["id","name","role","licence","url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"enum":["listing","link_popularity"]},"licence":{"type":["string","null"]},"attribution":{"type":"string"},"url":{"type":"string","format":"uri"}},"additionalProperties":false}},"listingsAreLeads":{"type":"string"},"evidenceClasses":{"type":"array","items":{"type":"object","required":["id","meaning"],"properties":{"id":{"enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]},"meaning":{"type":"string"}},"additionalProperties":false}},"rules":{"type":"object","required":["changeClassification"],"properties":{"changeClassification":{"type":"string"}},"additionalProperties":false},"snapshot":{"type":"object","required":["generatedAt","truncated"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"truncated":{"type":"boolean"}},"additionalProperties":false},"noVerdicts":{"type":"string"}},"additionalProperties":false},"service":{"type":"object","properties":{"key":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"origin":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string","format":"uri"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"protocols":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"string"}},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"latestRevision":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"string"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"lastObserved":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":["string","null"],"format":"date-time"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"lastChanged":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":["string","null"],"format":"date-time"},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"counts":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"object","required":["capabilities","incompleteInventories","retainedObservations"],"additionalProperties":{"type":"integer"}},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"linkPopularity":{"type":"object","additionalProperties":false,"description":"Deterministic domain match (INTERFACEDELTA_DERIVED) to the Majestic Million. Rank and listDate are reported by Majestic (source, attribution); this is link popularity, not traffic or visits.","required":["domain","rank","listDate","source","attribution","evidence"],"properties":{"domain":{"type":"string"},"rank":{"type":"integer","minimum":1,"maximum":1000000},"listDate":{"type":"string","format":"date"},"source":{"const":"majestic_million"},"attribution":{"type":"string"},"evidence":{"const":"INTERFACEDELTA_DERIVED"}}},"capabilities":{"type":["array","null"],"items":{"type":"object","additionalProperties":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}}}},"history":{"type":"object","required":["value","evidence"],"additionalProperties":false,"properties":{"value":{"type":"array","items":{"type":"object","properties":{"revision":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"classification":{"type":"string"}},"required":["revision","timestamp","classification"],"additionalProperties":false}},"evidence":{"type":"string","enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]}}},"label":{"type":["object","null"],"properties":{"status":{"type":"string"},"url":{"type":"string"},"fingerprint":{"type":"string"}}}},"required":["key","origin","protocols","latestRevision","lastObserved","lastChanged","counts","linkPopularity","capabilities","history"],"additionalProperties":false}},"additionalProperties":false},"Changes":{"type":"object","required":["recordVersion","generatedAt","coverage","provenance","changes","nextCursor"],"properties":{"recordVersion":{"const":"record-v1"},"generatedAt":{"type":"string","format":"date-time"},"coverage":{"type":"object","required":["boundedHistory","truncated"],"properties":{"boundedHistory":{"const":true},"truncated":{"type":"boolean"}},"additionalProperties":false},"provenance":{"type":"object","required":["manifestVersion","publisher","collection","sources","listingsAreLeads","evidenceClasses","rules","snapshot","noVerdicts"],"properties":{"manifestVersion":{"const":"provenance-v1"},"publisher":{"type":"string"},"collection":{"type":"object","required":["agent","policy","method"],"properties":{"agent":{"type":"string"},"policy":{"type":"string","format":"uri"},"method":{"type":"string"}},"additionalProperties":false},"sources":{"type":"array","items":{"type":"object","required":["id","name","role","licence","url"],"properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"enum":["listing","link_popularity"]},"licence":{"type":["string","null"]},"attribution":{"type":"string"},"url":{"type":"string","format":"uri"}},"additionalProperties":false}},"listingsAreLeads":{"type":"string"},"evidenceClasses":{"type":"array","items":{"type":"object","required":["id","meaning"],"properties":{"id":{"enum":["DIRECTLY_OBSERVED","PUBLISHER_DECLARED","INTERFACEDELTA_DERIVED","INTERFACEDELTA_INFERRED"]},"meaning":{"type":"string"}},"additionalProperties":false}},"rules":{"type":"object","required":["changeClassification"],"properties":{"changeClassification":{"type":"string"}},"additionalProperties":false},"snapshot":{"type":"object","required":["generatedAt","truncated"],"properties":{"generatedAt":{"type":"string","format":"date-time"},"truncated":{"type":"boolean"}},"additionalProperties":false},"noVerdicts":{"type":"string"}},"additionalProperties":false},"changes":{"type":"array","items":{"type":"object","properties":{"serviceKey":{"type":"string"},"revision":{"type":"string"},"timestamp":{"type":"string","format":"date-time"},"classification":{"type":"string"},"evidence":{"const":"INTERFACEDELTA_DERIVED"}},"required":["serviceKey","revision","timestamp","classification","evidence"],"additionalProperties":false}},"nextCursor":{"type":["string","null"]}},"additionalProperties":false}}}}