{"openapi":"3.1.2","info":{"title":"InterfaceDelta Developer API","version":"1.0.0-beta","description":"Stable /api/v1 boundary. Passport schema versions are independent."},"servers":[{"url":"https://interfacedelta.com"}],"paths":{"/api/v1/inspect":{"post":{"security":[{"apiToken":[]}],"x-required-scope":"inspect:run","summary":"Run a non-persistent inspection","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InspectionRequest"}}}},"responses":{"200":{"description":"Discovery report and canonical Passport"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/passports/{observationId}":{"get":{"summary":"Read a public exact-observation share representation","security":[],"parameters":[{"name":"observationId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"interfacedelta-share-v1 representation"},"400":{"description":"Preserved public-share error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareError"}}}},"404":{"description":"Preserved public-share error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareError"}}}},"503":{"description":"Preserved public-share error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ShareError"}}}}}}},"/api/v1/targets/{targetKey}/history":{"get":{"security":[{"apiToken":[]}],"x-required-scope":"passport:read","summary":"List recorded target history","parameters":[{"name":"targetKey","in":"path","required":true,"schema":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque keyset cursor."}],"responses":{"200":{"description":"Bounded history page"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/targets/{targetKey}/changes":{"get":{"security":[{"apiToken":[]}],"x-required-scope":"passport:read","summary":"List persisted deterministic comparisons and changes","parameters":[{"name":"targetKey","in":"path","required":true,"schema":{"type":"string","pattern":"^sha256:[a-f0-9]{64}$"}},{"name":"limit","in":"query","schema":{"type":"integer","default":20,"minimum":1,"maximum":100}},{"name":"cursor","in":"query","schema":{"type":"string"},"description":"Opaque keyset cursor."}],"responses":{"200":{"description":"Bounded comparison page"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/monitors":{"get":{"security":[{"apiToken":[]}],"x-required-scope":"monitors:read","summary":"List this account’s monitor subscriptions","responses":{"200":{"description":"At most 100 active subscriptions"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"security":[{"apiToken":[]}],"x-required-scope":"monitors:write","summary":"Inspect and create an account monitor subscription","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InspectionRequest"}}}},"responses":{"201":{"description":"Subscription and initial recorded observation"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/monitors/{subscriptionId}":{"delete":{"security":[{"apiToken":[]}],"x-required-scope":"monitors:write","summary":"Remove this account’s subscription","parameters":[{"name":"subscriptionId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"204":{"description":"Subscription removed"},"400":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Bounded API error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"apiToken":{"type":"http","scheme":"bearer","bearerFormat":"InterfaceDelta API token","description":"First-party InterfaceDelta Developer API token; not OAuth and not an MCP credential."}},"schemas":{"InspectionRequest":{"type":"object","additionalProperties":false,"required":["url"],"properties":{"url":{"type":"string","format":"uri","pattern":"^https://"},"type":{"type":"string","enum":["auto","service","mcp","openapi","a2a","ard"]},"mcpEndpoint":{"type":"string","format":"uri","pattern":"^https://"}}},"Error":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","additionalProperties":false,"required":["code","message","requestId"],"properties":{"code":{"type":"string"},"message":{"type":"string","maxLength":300},"requestId":{"type":"string","maxLength":80}}}}},"ShareError":{"type":"object","additionalProperties":false,"required":["error"],"properties":{"error":{"type":"object","required":["code"],"properties":{"code":{"type":"string"},"message":{"type":"string"}}}}},"ApiTokenScopes":{"type":"array","uniqueItems":true,"items":{"type":"string","enum":["inspect:run","passport:read","monitors:read","monitors:write"]}}}}}