openapi-types

Type-safe TypeScript definitions for OpenAPI 2.0, 3.0, and 3.1 specification documents, covering paths, schemas, and components.

Library
npm
v12.1.3
920 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
46 /100 Fair
Development Activity 0
Maintenance 20
Community 76
Maturity 60
Momentum 28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
60 /100 Good
Architecture 88
Code Quality 45
Innovation 68
Learning Curve 40

openapi-types provides a complete set of TypeScript interfaces and namespaces (OpenAPI, OpenAPIV2, OpenAPIV3, OpenAPIV3_1) that mirror the structure of the OpenAPI and Swagger specifications. It types every part of a document — info blocks, paths, operations, parameters, schemas, security requirements, and components — so tools that read or generate OpenAPI documents get compile-time safety without writing their own type layer.

Maintained as one package inside the kogosoftwarellc/open-api monorepo (alongside express-openapi and related tooling), it has become the de facto standard for typing OpenAPI documents in the Node/TypeScript ecosystem, pulling in tens of millions of weekly downloads.

What You Get

  • Version-specific namespaces — OpenAPIV2, OpenAPIV3, and OpenAPIV3_1 each fully model their respective specification version
  • A version-agnostic OpenAPI namespace with union types (Document, Operation, Parameter) for code that needs to handle any spec version
  • Complete coverage of specification objects — paths, operations, parameters, schemas, responses, security schemes, servers, and components
  • Zero runtime footprint — pure type declarations with no bundled JavaScript logic to execute or maintain

Common Use Cases

  • Typing the input/output of OpenAPI parsers and validators (e.g. swagger-parser, express-openapi) so consumers get IntelliSense on spec documents
  • Building code generators that read an OpenAPI document and emit clients, servers, or mock data
  • Writing custom middleware that inspects request-scoped OpenAPI metadata (route, operation, schema) in a type-safe way
  • Authoring or transforming OpenAPI documents programmatically instead of by hand-editing YAML/JSON

Under The Hood

Architecture

The entire package is a single 918-line index.ts organized into four namespaces: OpenAPIV2, OpenAPIV3, and OpenAPIV3_1 each independently model one specification version’s object graph, while the top-level OpenAPI namespace layers version-spanning union types (Document, Operation, Parameter) over the other three. Rather than redefining every OpenAPIV3_1 type from scratch, the 3.1 namespace builds on the 3.0 namespace through Modify/Omit/Pick mapped-type transformations, expressing only what changed between spec versions — a deliberate reuse pattern that keeps the three version namespaces from drifting apart. There is no other source layout to speak of: tsconfig.json restricts compilation to this one file, and the shared bin/tsc wrapper (used by every package in the monorepo) compiles it to a declaration-only dist/ output.

Tech Stack

The package has zero runtime dependencies — package.json declares none — and is built with TypeScript 4.7.2 in strict mode via the monorepo’s shared bin/tsc wrapper, targeting CommonJS with declaration and source-map output enabled. It is one workspace inside a Lerna-orchestrated monorepo (kogosoftwarellc/open-api) alongside sibling packages like express-openapi and koa-openapi, and is published independently to npm through lerna publish.

Code Quality

No test files exist for this package specifically — correctness rests entirely on the TypeScript compiler’s strict-mode checking rather than on unit tests, which is a meaningfully weaker guarantee for a types-only package since there’s no way to assert at build time that a given type actually matches real-world OpenAPI documents. The monorepo does wire up mocha/chai/nyc/istanbul and tslint+prettier repo-wide for its runtime packages, but that tooling isn’t exercised against openapi-types itself. Naming is consistent throughout, mirroring the official OpenAPI specification vocabulary object-for-object (ParameterObject, SchemaObject, ComponentsObject), which makes the types easy to cross-reference against the spec.

API Design The split between version-specific namespaces and a version-agnostic union namespace is a considered design choice: consumers who know they’re working with one spec version get precise types (OpenAPIV3.Document), while consumers that must accept any version get OpenAPI.Document without extra runtime cost. A generic parameter on Document<T> lets consumers type vendor extensions (like x-amazon-apigateway-integration) instead of losing type safety on custom fields. Adoption requires zero boilerplate — a single named import — though the pattern itself (a types-only package mirroring an external spec) is standard practice rather than a novel approach.

Used by 25 apps in this directory

TypeScript
68%
MIT

Hoppscotch

Developer Tools

80,589

A lightweight, offline-capable API development ecosystem for testing HTTP, GraphQL, WebSocket, MQTT, and SSE endpoints across web, desktop, and CLI.

View details
90
Repo Health
83
Technical
62
Dependency
Built with
TypeScript 68%
Vue 24%
Updated 2 weeks ago
TypeScript
98%
Other

Kibana

Analytics · Monitoring

21,308

Your open source window into the Elastic Stack — query, visualize, and act on data stored in Elasticsearch with real-time dashboards, AI-assisted search, and automated alerting.

View details
98
Repo Health
87
Technical
62
Dependency
Built with
TypeScript 98%
Updated 1 weeks ago
TypeScript
84%
MIT

LibreChat

AI Assistants · Developer Tools

45,474

Unite every major AI model in one self-hosted chat platform with agents, code execution, MCP tools, and enterprise authentication.

View details
93
Repo Health
81
Technical
62
Dependency
Built with
TypeScript 84%
JavaScript 15%
Updated 2 weeks ago
TypeScript
97%
MPL 2.0

Logto

Authentication

14,663

Open-source auth infrastructure for SaaS and AI apps with OIDC, SAML, and RBAC

View details
92
Repo Health
83
Technical
63
Dependency
Built with
TypeScript 97%
Updated 1 weeks ago
TypeScript
88%
MIT

medusa

Ecommerce

36,675

The most flexible open-source commerce platform — build B2C, B2B, and marketplace applications with modular, composable commerce primitives.

View details
94
Repo Health
87
Technical
63
Dependency
Built with
TypeScript 88%
JavaScript 12%
Updated 2 weeks ago
TypeScript
92%
Other

n8n

Automation · No Code Platforms

206,853

Code when you need it, UI when you don't — the workflow automation platform built for technical teams who refuse to choose.

View details
95
Repo Health
87
Technical
62
Dependency
Built with
TypeScript 92%
Updated 2 weeks ago
TypeScript
99%
Other

NocoBase

Low Code Platforms · No Code Platforms

24,512

Open-source AI + no-code platform that lets coding agents and people collaborate to build business systems fast on proven infrastructure.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
TypeScript 99%
Updated 1 weeks ago
TypeScript
90%
MIT

openwork

AI Assistants · Automation

23,985

OpenWork is a free, open-source desktop app for running AI agent workflows on your own files with 50+ LLMs, extensible skills, and MCP server support — the open-source alternative to Claude Cowork and Codex.

View details
87
Repo Health
89
Technical
67
Dependency
Built with
TypeScript 90%
Updated 1 weeks ago
TypeScript
89%
MIT

Plasmic

CMS · Design Tools · Low Code Platforms

7,082

The open-source visual builder that lets teams design React apps and websites with drag-and-drop while integrating seamlessly with your codebase.

View details
81
Repo Health
78
Technical
64
Dependency
Built with
TypeScript 89%
Updated 2 weeks ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers