{"adoption": {"forks": 102, "observed_at": "2026-08-28T04:05:11.031686+00:00", "stars": 1611}, "canonical_url": "https://ross.abutalabs.com/products/zod-to-openapi", "card": {"archived": false, "artifact_type": "library", "description": "A library that generates OpenAPI (Swagger) docs from Zod schemas", "domain": ["apis", "web-development", "backend", "developer-tools", "documentation"], "enriched": true, "function": ["api-documentation", "serialization", "developer-tools"], "health_score": 96, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["asteasolutions/zod-to-openapi"], "name": "asteasolutions/zod-to-openapi", "platform": ["cross-platform"], "pushed_at": "2026-07-19T10:59:36+00:00", "repo": "asteasolutions/zod-to-openapi", "stars": 1611, "tags": ["zod", "openapi", "swagger", "schema-generation", "api-docs", "typescript", "nodejs"], "topics": ["openapi", "openapi3", "schema", "swagger", "zod"], "urls": [], "use_cases": ["generate openapi spec from zod schemas", "keep swagger docs in sync with api validation", "document express or hono api endpoints automatically", "convert zod types to openapi 3.0  schema", "generate swagger yaml as part of the build", "define api routes and webhooks with zod", "avoid duplicating schema definitions for docs and validation"], "what_it_is": "A TypeScript library that generates OpenAPI (Swagger) documentation directly from Zod schemas, eliminating duplication between validation code and API docs. It provides a registry and generator for defining routes, webhooks, and reusable schema components from a single source of truth.", "when_to_avoid": ["your API is not written in TypeScript or does not use zod", "you need docs generated from code annotations or framework decorators instead", "you rely on zod v3 and need actively maintained support"], "when_to_choose": ["you already use zod for validation and want docs from the same schemas", "you want a single source of truth for API schemas and documentation", "you need OpenAPI 3.0/3.1 output generated at build time or runtime"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/zod-to-openapi", "repo": "asteasolutions/zod-to-openapi", "role": "main", "score": 94}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:11.031686+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:51:11.596102+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4c05c204bda72a5a5aae3a2aef93d799f1c0fa7acc41a62d8a955710aaa76136", "fetched_at": "2026-08-28T04:05:11.031686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/asteasolutions/zod-to-openapi"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 93, "longevity": 100, "rhythm": 93}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1602, "days_push": 45, "days_rel": 45, "gap_med": 15, "n_releases_24m": 20}, "score": 94, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}