# 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).