{"id":15012896,"url":"https://github.com/json-schema-org/json-schema-vocabularies","last_synced_at":"2025-10-19T14:31:20.095Z","repository":{"id":49504266,"uuid":"91615333","full_name":"json-schema-org/json-schema-vocabularies","owner":"json-schema-org","description":"Experimental vocabularies under consideration for standardization","archived":false,"fork":false,"pushed_at":"2024-05-02T22:35:02.000Z","size":26,"stargazers_count":54,"open_issues_count":45,"forks_count":9,"subscribers_count":18,"default_branch":"master","last_synced_at":"2024-10-29T15:44:12.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/json-schema-org.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"json-schema-org","patreon":null,"open_collective":"json-schema","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2017-05-17T20:02:44.000Z","updated_at":"2024-10-24T14:29:23.000Z","dependencies_parsed_at":"2024-11-09T01:22:23.846Z","dependency_job_id":"80656eae-c189-4da4-b8a3-d5bce0c04248","html_url":"https://github.com/json-schema-org/json-schema-vocabularies","commit_stats":{"total_commits":23,"total_committers":4,"mean_commits":5.75,"dds":"0.34782608695652173","last_synced_commit":"e43167dea0c8e8be2d84b4d076ae60091f4fcb0c"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-org%2Fjson-schema-vocabularies","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-org%2Fjson-schema-vocabularies/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-org%2Fjson-schema-vocabularies/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/json-schema-org%2Fjson-schema-vocabularies/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/json-schema-org","download_url":"https://codeload.github.com/json-schema-org/json-schema-vocabularies/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":236585472,"owners_count":19172883,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:43:23.347Z","updated_at":"2025-10-19T14:31:14.743Z","avatar_url":"https://github.com/json-schema-org.png","language":null,"funding_links":["https://github.com/sponsors/json-schema-org","https://opencollective.com/json-schema"],"categories":[],"sub_categories":[],"readme":"# json-schema-vocabularies\n[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md)\n[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active)\n[![Financial Contributors on Open Collective](https://opencollective.com/json-schema/all/badge.svg?label=financial+contributors)](https://opencollective.com/json-schema)\n\nStarting with JSON Schema draft 2019-09, it is possible to create identifiable, re-usable, third-party vocabularies, which will be essential for JSON Schema's long-term success.  It is simply not possible to incorporate every idea and use case into the initial standard, not if we ever want JSON Schema to be a standard and not just a draft!\n\nThis repository is for discussing possible extension vocabularies to be designed and documented outside of the formal JSON Schema organization's effort.\n\nPlease feel free to peruse the issues and add your thoughts or even create new issues for new ideas that could be supported by JSON Schema.\n\n## What is a vocabulary?\n\nWhile the requirements of vocabularies and how JSON Schema interacts with them is [in the spec](https://json-schema.org/draft/2019-09/json-schema-core.html#rfc.section.4.3.3), the concept may be easier to understand by reading the documentation in a plain-language format.  Below are some additional resources written by third parties.\n\n\u003c!-- The idea is to have as many here as possible. --\u003e\n\u003c!-- - [Understanding JSON Schema]()  I thought we had updated this for 2019-09. --\u003e\n- [How Vocabularies Work](https://json-everything.net/json-schema#vocabularies) by [@gregsdennis](https://github.com/gregsdennis)\n\u003c!-- anyone else? kinda lonely here --\u003e\n\n## Tips for writing vocabularies\n\nAs a minimum set of requirements, it is suggested that vocabularies:\n\n- are defined by some human-readable document that gives semantic meaning to the keywords it defines.  This can be a formal RFC, similar to the JSON Schema specification, or something as simple as a README or a blog post.\n- provide a meta-schema so that the keyword(s) can be syntactically validated within a schema.  It may be necessary to create meta-schemas for each draft to be supported by the new keyword(s).\n- are accompanied by at least one implementation, ideally manifested as a plugin to an existing validator.\n\nJSON Schema strives to be language-agnostic in order to foster as much adoption as possible.  This means that it should be implementable in any language, or at least as far as a language can support the features.  It is suggested that vocabularies are written in a way to allow for these limitations.\n\n## Active vocabularies\n\nThe following attempts to be a curated collection of vocabularies that have been defined by third parties.  Often, they are submitted by developers who maintain JSON Schema validators and/or work on the specification directly.\n\n### OpenAPI 3.1\n\n\u003c!-- Headerless tables have been requested https://github.com/github/cmark-gfm/issues/91 --\u003e\n|||\n|-|-|\n|**Goal**||\n|**Documentation**|https://github.com/OAI/OpenAPI-Specification/blob/main/versions/3.1.0.md\u003cbr\u003e(no separate vocab, mixed into the overall spec)|\n|**Vocabulary ID**|`https://spec.openapis.org/oas/3.1/vocab/base`|\n|**Meta-schema ID**|`https://spec.openapis.org/oas/3.1/meta/base`|\n|**Edited by**| The OpenAPI [Team](https://github.com/OAI)|\n|**Project site**|https://openapis.org/|\n|**Known implementations**|[JsonSchema.Net.OpenApi](https://www.nuget.org/packages/JsonSchema.Net.OpenApi/)|\n\n### Accessing Instance and External Data\n\n|||\n|-|-|\n|**Goal**|To allow schemas to validate known keywords against data located within the instance being validated or in external sources.  Attempts to provide a solution for the highly-debated `$data` keyword.|\n|**Documentation**|https://docs.json-everything.net/schema/vocabs/data-2023|\n|**Vocabulary ID**|`https://docs.json-everything.net/schema/vocabs/data-2023`|\n|**Meta-schema ID**|`https://json-everything.net/meta/vocab/data-2023`|\n|**Edited by**|[@gregsdennis](https://github.com/gregsdennis)|\n|**Project site**|https://github.com/gregsdennis/json-everything|\n|**Known implementations**|[JsonSchema.Net.Data](https://www.nuget.org/packages/JsonSchema.Net.Data/)|\n\n### Extended Array Validation\n\n|||\n|-|-|\n|**Goal**|To provide extended validation of items within arrays.|\n|**Documentation**|https://docs.json-everything.net/schema/vocabs/array-ext|\n|**Vocabulary ID**|`https://docs.json-everything.net/schema/vocabs/array-ext`|\n|**Meta-schema ID**|`https://json-everything.net/meta/vocab/array-ext`|\n|**Edited by**|[@gregsdennis](https://github.com/gregsdennis)|\n|**Project site**|https://github.com/gregsdennis/json-everything|\n|**Known implementations**|[JsonSchema.Net.ArrayExt](https://www.nuget.org/packages/JsonSchema.Net.ArrayExt/)|\n\n_**NOTE** This was initially published as the UniqueItems vocabulary.  The ArrayExt extension supersedes that one._","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-schema-org%2Fjson-schema-vocabularies","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjson-schema-org%2Fjson-schema-vocabularies","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjson-schema-org%2Fjson-schema-vocabularies/lists"}