128 real-world OpenAPI specs run through the core generator, openapi-zod-ts. Two tiers: showcase specs with committed generated output and compatibility matrix specs that prove breadth. The same spec corpus also underpins the wider toolchain (openapi-zod-ts, @codewithagents/openapi-server, @codewithagents/openapi-react-query, and @codewithagents/openapi-msw), which all consume specs of this shape.
Generated output is committed to examples/generated/. CI regenerates on every relevant PR and fails if output has drifted. All 13 generated clients also pass tsc --noEmit --strict.
These are the "golden examples": they prove the generator handles real edge cases end-to-end.
| Name | Version | Paths | Industry |
|---|---|---|---|
redocly-museum |
3.1.0 | 5 | Reference / museum |
1password-connect |
3.0.2 | 11 | Security / secrets |
petstore-3.0 |
3.0.4 | 13 | Canonical reference |
adyen-legal-entity |
3.1.0 | 20 | Fintech / KYC |
adyen-checkout |
3.1.0 | 26 | Payments |
resend |
3.1.0 | 47 | Email / developer tools |
devto |
3.0.3 | 49 | Developer community |
open-meteo |
3.0.0 | 1 (deep) | Weather |
spotify |
3.0.3 | 71 | Music |
twitter |
3.0.0 | 67 | Social |
openai |
3.0.0 | ~100 | AI |
exchangerate |
3.0.2 | 1 | Finance / FX rates |
canada_holidays |
3.0.0 | 6 | Public data |
Spec files are committed to examples/specs/ and configs to examples/configs/. Generated output is not committed. CI generates all 115 at runtime as part of pnpm test in each package.
All 115 generate without errors. Together with the 13 showcase specs, that's 128/128 total.
A sample of the APIs covered: Stripe, GitHub, Google Calendar, Google Drive, Google Sheets, Spotify, Slack, Vercel, Cloudflare, Twilio, Plaid, Notion, Jira, Okta, Asana, Bitbucket, Box, Brex, CircleCI, Figma, Klarna, Linode, NASA, Pinecone, SendGrid, Square, Webflow, Xero, YouTube, Zoom, Zuora, and many more.
Edge cases covered by the full 128-spec suite:
- Dots in operationIds:
calendar.calendars.insert→calendarCalendarsInsert(Google API style) - Spaces and special characters: operationIds with whitespace, parens, or braces are sanitized to valid identifiers
- Kebab-case operationIds:
post-applePay-sessions→postApplePaySessions - Hyphenated schema names:
CapabilityProblemEntity-recursive→CapabilityProblemEntityRecursive - Hyphenated and mixed path segments:
/api-keys→createApiKeys - Array query params:
project_ids[]→ TS propertyproject_ids, wire nameproject_ids[] - Dot-notation query params:
place.fields→ TS propertyplaceFields, wire nameplace.fields - Path-item level parameters: inherited by all operations in the path
- Schema name conflicts with global types: OpenAI has a schema called
Response - 100+ query parameters on a single endpoint: Open-Meteo
- 3.0.x specs alongside 3.1.x specs
cd examples
pnpm generate # runs openapi-zod-ts on all 13 showcase specsOr from the repo root:
pnpm --filter @codewithagents/examples run generatepnpm --filter @codewithagents/examples run typecheckThe Examples workflow (.github/workflows/examples.yml) runs on every relevant PR:
- Triggers: path-filtered (
packages/openapi-zod-ts/**,examples/**) on PRs and pushes to main, plus weekly on Monday 6am UTC - Steps:
- Build the generator packages
- Run all 128 configs: all 115 compat matrix specs must generate without errors (parameterized tests via
pnpm test) git diff --exit-code examples/generated/, which fails if showcase output has driftedtsc --noEmit --stricton all generated output inexamples/generated/
If CI fails with "Showcase generated output is out of date", run pnpm generate in examples/ and commit the updated output.
Note: The
resendspec was patched fromopenapi: "3.1.2"→"3.1.0"because 3.1.2 is not an official OpenAPI version. The 3.0.x specs are accepted by the generator: most 3.0-only constructs (includingnullable: true) are normalized to their 3.1 equivalents, and a few remaining 3.0 edge cases are still being closed.