Connector: OpenAPI / Swagger (openapi)
Purpose: API-contract changes of public APIs that publish their description (Stripe, GitHub, OpenAI, Cloudflare,
Kubernetes, DigitalOcean, Discord, Plaid…). Added, removed or deprecated operations and schema changes become list
events (api_change), the info item tracks the declared API version.
Sensor types: JSON, FILE. Config: pathPrefix? (restrict to /v1), maxOperations? (5000), docsUrl?
(link shown on events instead of the raw spec).
Retrieval: JSON or YAML (OpenAPI 3.x, Swagger 2.0), 64 MB / 60 s (Stripe ≈ 8 MB, GitHub ≈ 13 MB).
Normalization: keyed list — key = "METHOD /path", fingerprint = sha256 of the operation's parameters, path
parameters, request body, responses, security, deprecated flag and summary with descriptions, examples and
x-* extensions stripped (prose edits are not contract changes); deprecated, tags, responses.
compareFields: [fingerprint, deprecated]. extra: spec kind, version, operation count, deprecated count, servers.
Known quirks: specs on raw.githubusercontent.com are served as text/plain (parser sniffs the body); YAML
anchors/aliases are unlimited (maxAliasCount: -1); $ref are not resolved — a change inside a shared schema
shows up on the operations that embed it only if the $ref target text itself is part of the operation (use the
http connector in JSON mode on the same URL for a whole-document diff when that matters).
Tests: connectors2.test.ts (YAML/JSON parsing, fingerprint stability vs prose, parameter change).
Verified: 2026-09-08 (Stripe 595 operations, OpenAI 290).