# orval-labs/orval

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/orval-labs-orval).**

_How this analysis was created: the description and tags below were written by an AI model that read this project's README and public documentation pages; stars, license and language come straight from the GitHub API. The model does not read the source code._

6,145 stars · 636 forks · TypeScript · MIT

## Links

- GitHub: https://github.com/orval-labs/orval
- Homepage: https://orval.dev
- awesome-repositories: https://awesome-repositories.com/repository/orval-labs-orval.md

## Description

Orval is an OpenAPI-to-TypeScript code generator that produces fully typed API clients, data-fetching hooks, mock data, validation schemas, and server handlers from OpenAPI or Swagger specifications. It reads any YAML or JSON API specification and generates TypeScript interfaces, HTTP request functions, and framework-specific integration code that ensures compile-time correctness for all API calls.

The project distinguishes itself by generating production-ready data-fetching hooks for React Query, Vue Query, Svelte Query, Solid Query, Angular, and SWR, complete with automatic cache invalidation, infinite query support, and signal-based reactivity. It also produces runtime validation schemas using Zod or Effect-TS, MSW mock handlers with Faker.js factories for testing, and typed Hono server handlers with built-in validation. The generation pipeline is configurable through a file or object, supporting custom HTTP clients, per-operation overrides, spec transformations, and post-generation script execution.

Beyond client and server code, Orval can generate Model Context Protocol servers from OpenAPI specs for AI agent integration, and includes a browser-based preview editor for experimenting with generation options. The tool supports multi-spec processing, file watching for automatic regeneration, Docker-based execution, and output formatting with Prettier, Biome, or oxfmt.

## Tags

### Web Development

- [Type-Safe Client Generators](https://awesome-repositories.com/f/web-development/api-client-generators/type-safe-client-generators.md) — Generates fully typed TypeScript API clients, hooks, and mocks from OpenAPI specifications. ([source](https://orval.dev/docs/guides/fetch.md))
- [Angular](https://awesome-repositories.com/f/web-development/api-management-tools/api-development-management/web-apis/api-service-generators/angular.md) — Generates injectable Angular service classes with typed methods from OpenAPI specifications. ([source](https://orval.dev/docs/guides/angular.md))
- [Angular Service Generators](https://awesome-repositories.com/f/web-development/api-service-generators/angular-service-generators.md) — Creates injectable Angular services with typed HTTP methods using HttpClient from OpenAPI specs. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [Zod Response Validators](https://awesome-repositories.com/f/web-development/client-side-input-validators/schema-based-response-validation/standard-schema-response-validators/zod-response-validators.md) — Validates API responses against generated Zod schemas at runtime to catch data mismatches. ([source](https://orval.dev/docs/guides/zod.md))
- [Data Fetching Hooks](https://awesome-repositories.com/f/web-development/data-fetching-hooks.md) — Creates type-safe data fetching hooks for React Query, Vue Query, Svelte Query, and more. ([source](https://cdn.jsdelivr.net/gh/orval-labs/orval@main/README.md))
- [Multi-Framework Hook Generators](https://awesome-repositories.com/f/web-development/data-fetching-hooks/openapi-swr-hooks/multi-framework-hook-generators.md) — Generates data-fetching hooks for React Query, Vue Query, Svelte Query, Solid Query, Angular, and SWR.
- [React Query Hooks](https://awesome-repositories.com/f/web-development/frontend-development-tools/frontend-frameworks/component-authoring/react-ecosystem/react-hooks/react-query-hooks.md) — Generates type-safe React Query hooks from OpenAPI specifications for API integration. ([source](https://orval.dev/docs/quick-start.md))
- [Frontend Query Library Hooks](https://awesome-repositories.com/f/web-development/frontend-query-library-hooks.md) — Produces data-fetching hooks tailored to multiple frontend query libraries from a single spec. ([source](https://orval.dev/docs/versions/v8.md))
- [Infinite Data Fetching](https://awesome-repositories.com/f/web-development/infinite-data-fetching.md) — Generates infinite query functions with configurable pagination parameters for loading paginated data. ([source](https://orval.dev/docs/guides/angular-query.md))
- [OpenAPI to TypeScript Converters](https://awesome-repositories.com/f/web-development/restful-apis/documentation-schemas/openapi-to-typescript-converters.md) — Converts OpenAPI specifications into fully typed TypeScript type definitions and client code.
- [Handler Template Generators](https://awesome-repositories.com/f/web-development/api-client-generators/type-safe-client-generators/handler-template-generators.md) — Creates handler stubs with built-in Zod validation for server-side implementation. ([source](https://orval.dev/docs/guides/hono.md))
- [Effect Schema Generators](https://awesome-repositories.com/f/web-development/api-schema-generation/effect-schema-generators.md) — Produces Effect schema modules from OpenAPI specs for runtime validation alongside generated HTTP clients. ([source](https://orval.dev/docs/guides/client-with-effect.md))
- [Standard Schema Response Validators](https://awesome-repositories.com/f/web-development/client-side-input-validators/schema-based-response-validation/standard-schema-response-validators.md) — Validates API responses against generated Zod schemas at runtime to catch type mismatches. ([source](https://orval.dev/docs/guides/angular-query.md))
- [Conditional Data Fetching](https://awesome-repositories.com/f/web-development/conditional-data-fetching.md) — Disables generated data hooks when conditions are not met, preventing unnecessary network requests. ([source](https://orval.dev/docs/guides/swr.md))
- [Pluggable](https://awesome-repositories.com/f/web-development/http-client-implementations/pluggable.md) — Provides a pluggable HTTP client architecture that swaps between fetch, Axios, or custom implementations.
- [Composable Generators](https://awesome-repositories.com/f/web-development/infinite-data-fetching/composable-generators.md) — Creates useInfiniteQuery composables for paginated endpoints with configurable cursor parameters. ([source](https://orval.dev/docs/guides/vue-query.md))
- [Hook Generators](https://awesome-repositories.com/f/web-development/infinite-data-fetching/hook-generators.md) — Creates useInfiniteQuery hooks for paginated endpoints that load data in pages. ([source](https://orval.dev/docs/guides/react-query.md))
- [Primitive Generators](https://awesome-repositories.com/f/web-development/infinite-data-fetching/primitive-generators.md) — Creates infinite query hooks with configurable pagination parameters and stale times. ([source](https://orval.dev/docs/guides/solid-query.md))
- [Store Generators](https://awesome-repositories.com/f/web-development/infinite-data-fetching/store-generators.md) — Produces infinite query stores that support cursor-based pagination using a specified query parameter. ([source](https://orval.dev/docs/guides/svelte-query.md))
- [Per-Operation Behavior Overrides](https://awesome-repositories.com/f/web-development/openapi-operation-id-overrides/per-operation-behavior-overrides.md) — Applies custom mutators, query options, or mock data to a specific API operation by its ID. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [Angular Query Functions](https://awesome-repositories.com/f/web-development/ssr-data-fetching/tanstack-query-ssr-integrations/angular-query-functions.md) — Generates Angular injectable query functions wrapping TanStack Query for type-safe data fetching. ([source](https://orval.dev/docs/guides/angular-query.md))

### Data & Databases

- [Model Schema Generators from OpenAPI](https://awesome-repositories.com/f/data-databases/data-collection-schemas/standard-schema-validators/zod-schemas/model-schema-generators-from-openapi.md) — Generates Zod validation schemas for every model in an OpenAPI spec for runtime type checking. ([source](https://orval.dev/docs/guides/zod.md))
- [Schema Generators from OpenAPI](https://awesome-repositories.com/f/data-databases/data-collection-schemas/standard-schema-validators/zod-schemas/schema-generators-from-openapi.md) — Generates Zod and Effect-TS schemas from OpenAPI specs for runtime API validation. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [Effect Schema](https://awesome-repositories.com/f/data-databases/data-governance-modeling/data-management-governance/data-integrity-validation/data-validation/request-validation/effect-schema.md) — Generates Effect-TS schemas from OpenAPI specs and decodes runtime data against them. ([source](https://orval.dev/docs/guides/effect.md))
- [TypeScript Type Generators](https://awesome-repositories.com/f/data-databases/schema-generators/typescript-type-generators.md) — Generates TypeScript interfaces and types from OpenAPI schemas for type-safe API interactions. ([source](https://orval.dev/docs/index.html.md))
- [Request Payload Validators](https://awesome-repositories.com/f/data-databases/data-collection-schemas/standard-schema-validators/zod-runtime-validation/request-payload-validators.md) — Generates Zod schemas that validate outgoing request payloads before they are sent to the API. ([source](https://orval.dev/docs/guides/client-with-zod.md))
- [Hono Server Stub Generators](https://awesome-repositories.com/f/data-databases/openapi-processors/server-stub-generation/hono-server-stub-generators.md) — Generates Hono route handlers and validators from OpenAPI specs for server-side implementation. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [Per-Operation Query Option Overrides](https://awesome-repositories.com/f/data-databases/tenant-configurations/per-tenant-override-apis/per-operation-query-option-overrides.md) — Applies custom query settings, such as infinite scrolling, to individual API operations instead of globally. ([source](https://orval.dev/docs/guides/vue-query.md))

### Development Tools & Productivity

- [OpenAPI Client SDK Generators](https://awesome-repositories.com/f/development-tools-productivity/openapi-client-sdk-generators.md) — Generates fully typed API clients including models and HTTP client code from OpenAPI specifications. ([source](https://orval.dev/docs/guides/basics.md))
- [Schema-Driven Code Generators](https://awesome-repositories.com/f/development-tools-productivity/project-scaffolding-config-code-generation/code-generation/schema-driven-code-generators.md) — Controls all generation options through a configuration file or object, including input source and output structure.
- [Per-Operation Validation Rule Scopings](https://awesome-repositories.com/f/development-tools-productivity/automation-rules/rule-encapsulation/reusable-rule-logic/configurable-rule-groups/per-rule-configurations/per-operation-validation-rule-scopings.md) — Applies Zod settings like coercion or strict mode to a single endpoint or all endpoints sharing a tag. ([source](https://orval.dev/docs/guides/zod.md))
- [Mutation-Based Cache Invalidation](https://awesome-repositories.com/f/development-tools-productivity/build-artifact-caching/mutation-based-cache-invalidation.md) — Invalidates specified cached queries when named mutations succeed, reducing manual cache management. ([source](https://orval.dev/docs/guides/angular-query.md))
- [Angular Mutation Functions](https://awesome-repositories.com/f/development-tools-productivity/build-artifact-caching/mutation-based-cache-invalidation/angular-mutation-functions.md) — Generates Angular injectable mutation functions with automatic cache invalidation from OpenAPI specs. ([source](https://orval.dev/docs/guides/angular-query.md))
- [Pre-Generation Spec Transformations](https://awesome-repositories.com/f/development-tools-productivity/openapi-configurations/documentation-generators/openapi-specification-generators/mock-to-spec-conversion/specification-transformers/pre-generation-spec-transformations.md) — Runs a custom sync or async function on the OpenAPI document before validation to repair or augment it. ([source](https://orval.dev/docs/reference/configuration/input.md))
- [API Endpoint Filtering](https://awesome-repositories.com/f/development-tools-productivity/package-publishing-pipelines/publishing-policies/artifact-filtering/api-endpoint-filtering.md) — Selects a subset of API endpoints from the specification to include in the generated output. ([source](https://orval.dev/docs/reference/configuration/input.md))

### Programming Languages & Runtimes

- [HTTP Request Code Generators](https://awesome-repositories.com/f/programming-languages-runtimes/multi-target-code-generation/http-request-code-generators.md) — Creates ready-to-use, typed HTTP request functions for every API endpoint defined in the specification. ([source](https://orval.dev/docs/index.html.md))
- [Pipeline Customizers](https://awesome-repositories.com/f/programming-languages-runtimes/code-generation-formatters/pipeline-customizers.md) — Configures the entire code generation pipeline including HTTP clients, mutators, and post-generation scripts.
- [Property-Level Mock Value Customizations](https://awesome-repositories.com/f/programming-languages-runtimes/language-features-paradigms/type-system-tools/type-safety/component-property-definitions/mock-property-definitions/property-level-mock-value-customizations.md) — Overrides mock generation for specific properties using name, regex, or path matching, with scoping per schema, tag, or operation. ([source](https://orval.dev/docs/guides/faker.md))

### Software Engineering & Architecture

- [API Client Generators](https://awesome-repositories.com/f/software-engineering-architecture/api-client-generators.md) — Generates type-safe API clients, hooks, and mocks from an OpenAPI specification via a configuration file. ([source](https://orval.dev/docs/reference/integration.md))
- [Code from Specification Generators](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/go-code-generators/specification-from-code-generators/code-from-specification-generators.md) — Reads OpenAPI or Swagger specifications and produces TypeScript API clients, hooks, and mocks. ([source](https://orval.dev/docs/reference/configuration/index.html.md))
- [TanStack](https://awesome-repositories.com/f/software-engineering-architecture/query-optimization/graphql/query-hooks/tanstack.md) — Generates fully typed TanStack Query hooks for every API path defined in an OpenAPI specification. ([source](https://orval.dev/docs/guides/react-query.md))
- [Multi-Spec Processors](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/go-code-generators/specification-from-code-generators/code-from-specification-generators/multi-spec-processors.md) — Processes several OpenAPI specifications in a single run with independent configurations. ([source](https://orval.dev/docs/reference/configuration/index.html.md))
- [Effect Schema Generators](https://awesome-repositories.com/f/software-engineering-architecture/openapi-specification-parsers/go-code-generators/specification-from-code-generators/code-from-specification-generators/schema-driven-code-generators/effect-schema-generators.md) — Generates Effect-TS schemas for request parameters, bodies, and responses from OpenAPI specifications. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [Generated Code Organizers](https://awesome-repositories.com/f/software-engineering-architecture/source-file-organization/generated-code-organizers.md) — Organizes generated API client code into separate files per endpoint, tag, or schema with configurable output paths.

### Testing & Quality Assurance

- [API Mocking](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-mocking.md) — Generates MSW handlers and Faker.js mock factories from OpenAPI specs for testing. ([source](https://cdn.jsdelivr.net/gh/orval-labs/orval@main/README.md))
- [OpenAPI Mock Generators](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-mocking/openapi-mock-generators.md) — Generates MSW handlers and Faker.js mock factories from OpenAPI specs for testing. ([source](https://orval.dev/docs/guides/msw.md))
- [MSW Handler Generation](https://awesome-repositories.com/f/testing-quality-assurance/api-network-testing/api-mocking/openapi-mock-generators/msw-handler-generation.md) — Produces mock handlers for MSW from the API specification to develop frontend features without a live backend. ([source](https://orval.dev/docs/guides/basics.md))
- [Mock Data Generators](https://awesome-repositories.com/f/testing-quality-assurance/mock-data-generators.md) — Produces realistic mock data for API endpoints using configurable faker-based property generators. ([source](https://orval.dev/docs/reference/configuration/full-example.md))

### User Interface & Experience

- [Resource Function Generators](https://awesome-repositories.com/f/user-interface-experience/signal-based-reactivity/angular-signal-queries/resource-function-generators.md) — Creates reactive httpResource functions that return Angular HttpResourceRef signals for retrieval-style operations. ([source](https://orval.dev/docs/guides/angular.md))
- [Angular Signal Queries](https://awesome-repositories.com/f/user-interface-experience/signal-based-reactivity/angular-signal-queries.md) — Integrates Angular signals with generated queries for automatic re-execution on signal changes. ([source](https://orval.dev/docs/guides/angular-query.md))

### Artificial Intelligence & ML

- [Per-Tag Behavior Overrides](https://awesome-repositories.com/f/artificial-intelligence-ml/image-classification/image-level-tagging/ai-powered-tagging/tagging-behavior-configurators/per-tag-behavior-overrides.md) — Applies custom mutators, query options, or mock data to all operations sharing an OpenAPI tag. ([source](https://orval.dev/docs/reference/configuration/output.md))
- [MCP Servers](https://awesome-repositories.com/f/artificial-intelligence-ml/mcp-servers.md) — Generates MCP servers from OpenAPI specs so AI agents can interact with APIs through generated tools. ([source](https://orval.dev/docs/guides/mcp.md))
- [OpenAPI Generators](https://awesome-repositories.com/f/artificial-intelligence-ml/mcp-servers/openapi-generators.md) — Generates Model Context Protocol servers from OpenAPI specifications for AI agent integration. ([source](https://orval.dev/docs/reference/configuration/output.md))

### Content Management & Publishing

- [OpenAPI Specification Transformers](https://awesome-repositories.com/f/content-management-publishing/content-processing-transformation/document-transformation-pipelines/openapi-specification-transformers.md) — Applies custom transformations to OpenAPI documents before code generation to repair or augment them.

### Hardware & IoT

- [Per-Operation Client Customizations](https://awesome-repositories.com/f/hardware-iot/integration-performance/hardware-interfacing-integration/hardware-integration/device-sensors/custom-entity-configurators/per-operation-client-customizations.md) — Overrides specific operations with custom mutators, mock data, and parameter options like URL encoding. ([source](https://orval.dev/docs/reference/configuration/full-example.md))

### Part of an Awesome List

- [Generators and Scaffolding](https://awesome-repositories.com/f/awesome-lists/devtools/generators-and-scaffolding.md) — Generates, validates, and mocks frontend code from OpenAPI specs.
