# koxudaxi/datamodel-code-generator

Generate Pydantic v2 models, dataclasses, TypedDict, and msgspec.Struct from OpenAPI, JSON Schema, GraphQL, Avro, Protobuf, and raw JSON/YAML/CSV.

Repository: https://github.com/koxudaxi/datamodel-code-generator
Canonical: https://ross.abutalabs.com/products/datamodel-code-generator
Homepage: https://datamodel-code-generator.koxudaxi.dev/
Language: Python
License: MIT
License Family: permissive
Topics: openapi, code-generator, python, pydantic, generator, fastapi, json-schema, datamodel, swagger, yaml, csv, openapi-codegen, swagger-codegen, dataclass, graphql, msgspec, typeddict
Last push: 2026-08-26T18:49:47+00:00

## Health v2 (maintenance only)
Score: 95/100 (v2, computed 2026-09-03T02:39:23.370411+00:00)
- activity 99, release rhythm 87, longevity 100
- inputs: {"age_days": 2653, "days_push": 7, "days_rel": 9, "gap_med": 3.0, "n_releases_24m": 87}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 4007, forks 453 (observed 2026-08-28T04:08:32.211974+00:00)

## What it is
A Python CLI tool that generates type-safe Python data models (Pydantic v2, dataclasses, TypedDict, msgspec.Struct) from schema definitions like OpenAPI, JSON Schema, GraphQL, Avro, Protobuf, and raw JSON/YAML/CSV. It handles complex schema features such as $ref, allOf/oneOf/anyOf, enums, and nested types, and can also retarget existing Python model classes to a different output type.

## Use cases
- generate pydantic models from openapi spec
- convert  schema to python dataclasses
- generate typeddict from yaml schema
- create python models from graphql schema
- generate msgspec structs from protobuf
- generate pydantic models from raw  data
- codegen python types for fastapi from swagger

## When to choose
- you need Python model classes from API or schema definitions
- you want type-safe, validated models for Pydantic v2, dataclasses, TypedDict, or msgspec
- you want to automate model generation in CI from OpenAPI/JSON Schema sources

## When to avoid
- you need runtime schema validation rather than code generation
- you target languages other than Python
- you need hand-crafted models with custom logic that generated code would overwrite

## Facets
- artifact type: cli-tool
- maturity: active
- function: parser, serialization, developer-tools
- domain: developer-tools, apis, web-development, backend
- platform: python, cli, cross-platform
- tags: pydantic, openapi, -schema, codegen, dataclasses, typeddict, msgspec, graphql, protobuf, avro, fastapi, code-generation

## Member repositories
- koxudaxi/datamodel-code-generator (main) score 95

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:08:32.211974+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T18:24:03.256645+00:00, confidence not recorded.
  - readme: https://github.com/koxudaxi/datamodel-code-generator (fetched 2026-08-28T04:08:32.211974+00:00, sha e6452614b074)
  - homepage: https://datamodel-code-generator.koxudaxi.dev/ (fetched 2026-08-29T09:17:05.153290+00:00, sha 15adcd63ad1f)
  - site_page: https://datamodel-code-generator.koxudaxi.dev/getting-started (fetched 2026-08-29T09:17:05.161654+00:00, sha 548e4611809d)
  - registry_pypi: https://pypi.org/pypi/datamodel-code-generator/json (fetched 2026-08-29T09:17:05.167649+00:00, sha 2fead759a86b)
  - site_page: https://datamodel-code-generator.koxudaxi.dev/experimental (fetched 2026-08-29T09:17:05.163841+00:00, sha fe45f1b0517a)
  - site_page: https://datamodel-code-generator.koxudaxi.dev/faq (fetched 2026-08-29T09:17:05.165787+00:00, sha fba529213839)
- Data as of 2026-08-30T08:39:29.467469+00:00.
