Skip to content
JSON Schema

JSON Schema

Commonmeta is defined by a JSON Schema (draft 2020-12). The current version is v1.0, released as stable. Download it from https://commonmeta.org/commonmeta_v1.0.json.

The canonical schema and the conformance fixtures shared by all implementations live in commonmeta-schema, which is also published as the commonmeta-schema package on PyPI, crates.io, and npm. Earlier versions (v0.10–v0.15) are still available, e.g. commonmeta_v0.15.json, but are not compatible with v1.0.

Document structure

A Commonmeta document is a JSON array of entities. Each entity is a work, a person, an organization, or a container. The first item is the subject of the document; in a collection, the items that follow are entities related to it. Property names use snake_case, and records declare the schema version they conform to in schema_version.

[
  {
    "id": "https://doi.org/10.59350/abcde-fghij",
    "type": "BlogPost",
    "title": "Hello World",
    "contributors": [
      {
        "type": "Person",
        "person": {
          "id": "https://orcid.org/0000-0002-1825-0097",
          "given_name": "Josiah",
          "family_name": "Carberry"
        },
        "roles": ["Author"]
      }
    ],
    "date_published": "2025-02-10",
    "language": "en",
    "provider": "Crossref",
    "schema_version": "https://commonmeta.org/commonmeta_v1.0.json"
  },
  {
    "id": "https://orcid.org/0000-0002-1825-0097",
    "given_name": "Josiah",
    "family_name": "Carberry",
    "affiliations": [
      {
        "identifier": "https://ror.org/05gq02987",
        "identifier_type": "ROR",
        "name": "Brown University"
      }
    ]
  }
]

Schema reference

The tables below are generated from the schema file.

entity

A single Commonmeta entity: a work, a person, an organization, or a container.

One of: work, person, organization, container.

Entities

work

A commonmeta work object.

PropertyTypeDescription
additional_descriptionsarray of objectThe additional descriptions of the resource. Properties: description, language, type.
additional_titlesarray of objectAdditional titles of the resource. Properties: language, title, type.
additional_typestringThe additional type of the resource.
archive_locationsarray of stringThe locations where content is archived. One of: CLOCKSS, LOCKSS, Portico, KB, Internet Archive, DWT.
containercontainerThe container of the resource.
contentstringThe full text content of the resource, e.g. the body of a blog post.
contributorsarray of contributorThe contributors to the resource.
date_publisheddate
date_updateddate
datesobjectOther dates for the resource. Properties: accepted, accessed, available, collected, copyrighted, created, other, submitted, valid, withdrawn.
descriptionstringThe description of the resource.
filesarray of objectThe downloadable files for the resource. Properties: bucket, checksum, key, mime_type, size, url.
funding_referencesarray of objectThe funding references for the resource. Properties: asserted_by, award_id, award_number, award_title, funder_id, funder_name.
geo_locationsarray of geo_location
id
required
id
identifiersarray of identifierIdentifiers for the resource, excluding the id.
imagestring (uri)The image for the resource, e.g. a thumbnail for a blog post.
languagelanguage
licenselicense
providerprovider
publisherorganization
referencesarray of referenceReferences cited by this resource.
relationsarray of objectOther resolvable persistent unique IDs related to the resource. Properties: asserted_by, id, name, type.
schema_versionstringThe URI of the commonmeta JSON Schema version used.
subjectsarray of objectProperties: id, language, scheme, scheme_uri, subject.
titlestringThe title of the resource.
type
required
type
urlstring (uri)The URL of the resource.
versionstringThe version of the resource.

person

At least one of id, name, given_name, family_name is required.

PropertyTypeDescription
additional_namesarray of stringAlternate names, pseudonyms, or previous names of the person.
affiliationsarray of affiliationThe affiliations of the person.
asserted_byprovider
countrystringThe country of the person, as an ISO 3166-1 alpha-2 code. Pattern: ^[A-Z]{2}$.
date_updateddateThe date the person record was last updated.
descriptionstringA biographical description of the person.
family_namestringThe family name of the person.
given_namestringThe given name of the person.
idstring (uri)ORCID identifier URL. Pattern: ^https://orcid\.org/\d{4}-\d{4}-\d{4}-\d{3}[0-9X]$.
identifiersarray of identifierExternal identifiers for the person, e.g. Scopus Author ID or ResearcherID.
namestringThe display or credit name of the person.
urlsarray of objectPersonal or professional URLs associated with the person. Properties: name, url.

organization

PropertyTypeDescription
acronymstringThe acronym or abbreviation of the organization.
additional_namesarray of stringAlternate names, aliases, or translated names of the organization.
asserted_byprovider
countrystringThe country of the organization, as an ISO 3166-1 alpha-2 code. Pattern: ^[A-Z]{2}$.
date_updateddateThe date the organization record was last updated.
establishedintegerThe year the organization was established.
geo_locationsarray of geo_locationGeographic locations of the organization.
idstring (uri)ROR identifier URL. Pattern: ^https://ror\.org/[0-9a-z]{9}$.
identifiersarray of identifierExternal identifiers for the organization, e.g. GRID, ISNI, FundRef, or Wikidata.
namestringThe name of the organization.
relationsarray of objectOther organizations related to this organization. Properties: asserted_by, id, name, type.
statusstringThe status of the organization. One of: active, inactive, withdrawn.
typesarray of stringThe types of the organization. One of: education, funder, healthcare, company, archive, nonprofit, government, facility, other.
urlsarray of objectWebsite and other URLs associated with the organization. Properties: name, url.

container

PropertyTypeDescription
additional_titlesarray of stringAbbreviated or alternate titles of the container.
countrystringISO 3166-1 alpha-2 country code of the container.
date_updateddateThe date the container record was last updated.
descriptionstringA description of the container.
first_pagestringThe first page of the resource.
identifiersarray of objectExternal identifiers for the container (e.g. its OpenAlex source id, ISSN, DOI, or ISBN). Properties: identifier, identifier_type.
imagestring (uri)The image for the container.
issuestringThe issue of the resource.
languagelanguage
last_pagestringThe last page of the resource.
licenselicense
locationstringThe location of the conference or event.
platformstringThe platform of the container.
publisherobjectThe publisher or host organization of the container. Properties: id, name.
seriesstringThe series name or acronym for the conference or event.
titlestringThe name of the container.
typestringThe type of the container. One of: Blog, Book, BookSeries, Journal, Proceedings, ProceedingsSeries, Repository, DataRepository, Periodical, Series, igsnCatalog, raidRegistry, Other.
urlstring (uri)The homepage URL of the container.
volumestringThe volume of the resource.

Components

affiliation

An organizational affiliation of a person, optionally scoped by role and date range.

At least one of identifier, name is required.

PropertyTypeDescription
asserted_byprovider
end_datedateThe date the affiliation ended.
identifierstringThe identifier of the affiliated organization.
identifier_typestringThe type of the identifier. One of: ROR, FundRef, GRID, ISNI, Ringgold, URL, Wikidata, Other.
namestringThe name of the affiliated organization.
rolestringThe role or job title held at the organization.
start_datedateThe date the affiliation began.

contributor

A contributor of type Person requires person; any other contributor requires organization.

PropertyTypeDescription
organizationorganization
personperson
rolesarray of contributor_roleList of roles assumed by the contributor when working on the resource.
type
required
stringOne of: Person, Organization.

geo_location

A geographic location associated with the resource.

PropertyTypeDescription
box_east_longitudelongitude
box_north_latitudelatitude
box_south_latitudelatitude
box_west_longitudelongitude
idid
placestring
point_latitudelatitude
point_longitudelongitude
polygonstringThe polygon geometry, formatted as Well-Known Text (WKT).

identifier

An identifier for the resource.

PropertyTypeDescription
asserted_byprovider
identifier
required
string
identifier_type
required
stringOne of: ARK, arXiv, article_id, Bibcode, DOI, FundRef, GeoNames, GRID, Handle, ISBN, ISNI, ISSN, OpenAlex, PMID, PMCID, PURL, RAiD, ResearcherID, ROR, ScopusID, SWHID, URL, URN, UUID, GUID, Wikidata, Other.
schemestringThe scheme for identifiers with identifier_type 'Other', e.g. 'IGSN' or 'MGDS'.

license

The license for the resource. Use one of the SPDX license identifiers.

PropertyTypeDescription
asserted_byprovider
idstring
titlestring
urlstring (uri)

reference

A cited or citing work. Used for both references (works cited by this resource) and citations (works that cite this resource).

PropertyTypeDescription
asserted_byprovider
idid
keystring
referencestringThe reference formatted as string.
typetype

Vocabularies

type

Type: string. One of: Preprint, Audiovisual, Blog, BlogPost, BlogVolume, Book, BookChapter, BookPart, BookSection, BookSeries, BookSet, Collection, Component, ComputationalNotebook, Database, Dataset, Dissertation, Document, Entry, Event, Figure, Grant, Image, Instrument, InteractiveResource, Journal, JournalArticle, JournalIssue, JournalVolume, LegalDocument, Manuscript, Map, Model, OutputManagementPlan, Patent, PeerReview, Performance, PersonalCommunication, PhysicalObject, Poster, Presentation, Proceedings, ProceedingsArticle, ProceedingsSeries, Report, ReportComponent, ReportSeries, Review, Service, Software, Sound, Standard, StudyRegistration, WebPage, Workflow, Other.

contributor_role

The type of contribution made by a contributor

Type: string. One of: Author, Chair, Conceptualization, ContactPerson, CorrespondingAuthor, DataCollector, DataCuration, DataManager, Distributor, Editor, FormalAnalysis, FundingAcquisition, HostingInstitution, Interviewee, Investigation, Maintainer, Methodology, Other, Producer, ProjectAdministration, ProjectLeader, ProjectManager, ProjectMember, Reader, RelatedPerson, RegistrationAgency, RegistrationAuthority, ResearchGroup, Researcher, Resources, Reviewer, ReviewerExternal, ReviewAssistant, RightsHolder, Software, Sponsor, StatsReviewer, Supervision, Translator, Validation, Visualization, WorkPackageLeader, WritingOriginalDraft, WritingReviewEditing.

provider

The provider of the resource or the assertion. This can be a DOI registration agency, a repository, or any other entity asserting the information.

Type: string. One of: Crossref, DataCite, Airiti, CNKI, JaLC, KISTI, mEDRA, OP, Contributor, Commonmeta, GitHub, OpenAIRE, OpenAlex, ORCID, Publisher, PubMed, ROR, Other.

Primitives

id

The unique identifier for the resource.

Type: string (uri).

date

An ISO 8601 / EDTF level 0 date or partial date (year, year-month, year-month-day, or full date-time).

Type: string. Pattern: ^\d{4}(-\d{2}(-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|[+-]\d{2}:\d{2})?)?)?)?$.

language

The language. Use one of the language codes from the IETF BCP 47 standard.

Type: string.

latitude

Type: number. Minimum: -90. Maximum: 90.

longitude

Type: number. Minimum: -180. Maximum: 180.

Source

commonmeta_v1.0.json
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://commonmeta.org/commonmeta_v1.0.json",
  "title": "Commonmeta v1.0",
  "description": "JSON representation of the Commonmeta schema. The document is an array of objects, where each object is a work, an organization, or a person.",
  "type": "array",
  "uniqueItems": true,
  "prefixItems": [
    {
      "description": "The first item in the array: a work, a person, or an organization. In a collection, this is typically the subject whose related entities follow.",
      "$ref": "#/$defs/entity"
    }
  ],
  "items": {
    "description": "Subsequent items in the array: works, persons, or organizations related to the subject.",
    "$ref": "#/$defs/entity"
  },
  "$defs": {
    "entity": {
      "description": "A single Commonmeta entity: a work, a person, an organization, or a container.",
      "oneOf": [
        {
          "$ref": "#/$defs/work"
        },
        {
          "allOf": [
            {
              "$ref": "#/$defs/person"
            },
            {
              "required": [
                "id"
              ]
            }
          ]
        },
        {
          "allOf": [
            {
              "$ref": "#/$defs/organization"
            },
            {
              "required": [
                "id"
              ]
            }
          ]
        },
        {
          "allOf": [
            {
              "$ref": "#/$defs/container"
            },
            {
              "required": [
                "identifiers"
              ]
            }
          ]
        }
      ]
    },
    "work": {
      "description": "A commonmeta work object.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "$ref": "#/$defs/id"
        },
        "type": {
          "$ref": "#/$defs/type"
        },
        "additional_descriptions": {
          "description": "The additional descriptions of the resource.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "description": {
                "description": "The description of the resource.",
                "type": "string"
              },
              "type": {
                "description": "The type of the description.",
                "type": "string",
                "enum": [
                  "Abstract",
                  "Summary",
                  "Methods",
                  "TechnicalInfo",
                  "Other"
                ]
              },
              "language": {
                "$ref": "#/$defs/language"
              }
            },
            "required": [
              "description"
            ]
          }
        },
        "additional_titles": {
          "description": "Additional titles of the resource.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "title": {
                "description": "The title of the resource.",
                "type": "string"
              },
              "type": {
                "description": "The type of the title.",
                "type": "string",
                "enum": [
                  "AlternativeTitle",
                  "Subtitle",
                  "TranslatedTitle"
                ]
              },
              "language": {
                "$ref": "#/$defs/language"
              }
            },
            "required": [
              "title"
            ]
          }
        },
        "additional_type": {
          "description": "The additional type of the resource.",
          "type": "string"
        },
        "archive_locations": {
          "description": "The locations where content is archived.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "CLOCKSS",
              "LOCKSS",
              "Portico",
              "KB",
              "Internet Archive",
              "DWT"
            ]
          }
        },
        "container": {
          "description": "The container of the resource.",
            "$ref": "#/$defs/container"
        },
        "content": {
          "description": "The full text content of the resource, e.g. the body of a blog post.",
          "type": "string"
        },
        "contributors": {
          "description": "The contributors to the resource.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/contributor"
          },
          "minItems": 1
        },
        "date_published": {
          "$ref": "#/$defs/date"
        },
        "date_updated": {
          "$ref": "#/$defs/date"
        },
        "dates": {
          "description": "Other dates for the resource.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "created": {
              "$ref": "#/$defs/date"
            },
            "submitted": {
              "$ref": "#/$defs/date"
            },
            "accepted": {
              "$ref": "#/$defs/date"
            },
            "accessed": {
              "$ref": "#/$defs/date"
            },
            "available": {
              "$ref": "#/$defs/date"
            },
            "withdrawn": {
              "$ref": "#/$defs/date"
            },
            "collected": {
              "$ref": "#/$defs/date"
            },
            "valid": {
              "$ref": "#/$defs/date"
            },
            "copyrighted": {
              "$ref": "#/$defs/date"
            },
            "other": {
              "$ref": "#/$defs/date"
            }
          }
        },
        "description": {
          "description": "The description of the resource.",
          "type": "string"
        },
        "files": {
          "description": "The downloadable files for the resource.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "bucket": {
                "type": "string"
              },
              "key": {
                "type": "string"
              },
              "checksum": {
                "type": "string"
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "size": {
                "type": "integer"
              },
              "mime_type": {
                "type": "string"
              }
            },
            "required": [
              "url"
            ]
          },
          "minItems": 1
        },
        "funding_references": {
          "description": "The funding references for the resource.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "funder_id": {
                "$ref": "#/$defs/id"
              },
              "funder_name": {
                "type": "string"
              },
              "award_id": {
                "$ref": "#/$defs/id"
              },
              "award_title": {
                "type": "string"
              },
              "award_number": {
                "type": "string"
              },
              "asserted_by": {
                "$ref": "#/$defs/provider"
              }
            },
            "anyOf": [
              {
                "required": [
                  "funder_name"
                ]
              },
              {
                "required": [
                  "funder_id"
                ]
              },
              {
                "required": [
                  "award_number"
                ]
              },
              {
                "required": [
                  "award_title"
                ]
              }
            ]
          }
        },
        "geo_locations": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/geo_location"
          },
          "uniqueItems": true
        },
        "identifiers": {
          "description": "Identifiers for the resource, excluding the id.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/identifier"
          }
        },
        "image": {
          "description": "The image for the resource, e.g. a thumbnail for a blog post.",
          "type": "string",
          "format": "uri"
        },
        "language": {
          "$ref": "#/$defs/language"
        },
        "license": {
          "$ref": "#/$defs/license"
        },
        "provider": {
          "$ref": "#/$defs/provider"
        },
        "publisher": {
          "$ref": "#/$defs/organization"
        },
        "references": {
          "description": "References cited by this resource.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/reference"
          }
        },
        "relations": {
          "description": "Other resolvable persistent unique IDs related to the resource.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "$ref": "#/$defs/id"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IsNewVersionOf",
                  "IsPreviousVersionOf",
                  "IsVersionOf",
                  "HasVersion",
                  "IsPartOf",
                  "HasPart",
                  "IsVariantFormOf",
                  "IsOriginalFormOf",
                  "IsIdenticalTo",
                  "IsTranslationOf",
                  "HasTranslation",
                  "IsReviewOf",
                  "HasReview",
                  "IsPreprintOf",
                  "HasPreprint",
                  "IsReferencedBy",
                  "IsSupplementTo",
                  "IsSupplementedBy",
                  "Other"
                ]
              },
              "name": {
                "description": "A human-readable label for the related resource.",
                "type": "string"
              },
              "asserted_by": {
                "$ref": "#/$defs/provider"
              }
            },
            "required": [
              "id",
              "type"
            ]
          },
          "minItems": 1
        },
        "schema_version": {
          "description": "The URI of the commonmeta JSON Schema version used.",
          "type": "string",
          "const": "https://commonmeta.org/commonmeta_v1.0.json"
        },
        "subjects": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "$ref": "#/$defs/id"
              },
              "subject": {
                "type": "string"
              },
              "scheme": {
                "description": "The subject classification scheme, e.g. FOS, ANZSRC, or JEL.",
                "type": "string"
              },
              "scheme_uri": {
                "description": "A URI identifying the subject classification scheme.",
                "type": "string",
                "format": "uri"
              },
              "language": {
                "$ref": "#/$defs/language"
              }
            },
            "required": [
              "subject"
            ]
          }
        },
        "title": {
          "description": "The title of the resource.",
          "type": "string"
        },
        "url": {
          "description": "The URL of the resource.",
          "type": "string",
          "format": "uri"
        },
        "version": {
          "description": "The version of the resource.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "type"
      ]
    },
    "person": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "description": "ORCID identifier URL.",
          "type": "string",
          "format": "uri",
          "pattern": "^https://orcid\\.org/\\d{4}-\\d{4}-\\d{4}-\\d{3}[0-9X]$"
        },
        "given_name": {
          "description": "The given name of the person.",
          "type": "string"
        },
        "family_name": {
          "description": "The family name of the person.",
          "type": "string"
        },
        "name": {
          "description": "The display or credit name of the person.",
          "type": "string"
        },
        "additional_names": {
          "description": "Alternate names, pseudonyms, or previous names of the person.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "A biographical description of the person.",
          "type": "string"
        },
        "affiliations": {
          "description": "The affiliations of the person.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/affiliation"
          }
        },
        "identifiers": {
          "description": "External identifiers for the person, e.g. Scopus Author ID or ResearcherID.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/identifier"
          }
        },
        "urls": {
          "description": "Personal or professional URLs associated with the person.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "name": {
                "description": "A label for the URL.",
                "type": "string"
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "url"
            ]
          }
        },
        "country": {
          "description": "The country of the person, as an ISO 3166-1 alpha-2 code.",
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "date_updated": {
          "description": "The date the person record was last updated.",
          "$ref": "#/$defs/date"
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      },
      "anyOf": [
        {
          "required": [
            "id"
          ]
        },
        {
          "required": [
            "name"
          ]
        },
        {
          "required": [
            "given_name"
          ]
        },
        {
          "required": [
            "family_name"
          ]
        }
      ]
    },
    "organization": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "description": "ROR identifier URL.",
          "type": "string",
          "format": "uri",
          "pattern": "^https://ror\\.org/[0-9a-z]{9}$"
        },
        "name": {
          "description": "The name of the organization.",
          "type": "string"
        },
        "acronym": {
          "description": "The acronym or abbreviation of the organization.",
          "type": "string"
        },
        "additional_names": {
          "description": "Alternate names, aliases, or translated names of the organization.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "types": {
          "description": "The types of the organization.",
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "education",
              "funder",
              "healthcare",
              "company",
              "archive",
              "nonprofit",
              "government",
              "facility",
              "other"
            ]
          }
        },
        "status": {
          "description": "The status of the organization.",
          "type": "string",
          "enum": [
            "active",
            "inactive",
            "withdrawn"
          ]
        },
        "established": {
          "description": "The year the organization was established.",
          "type": "integer"
        },
        "date_updated": {
          "description": "The date the organization record was last updated.",
          "$ref": "#/$defs/date"
        },
        "identifiers": {
          "description": "External identifiers for the organization, e.g. GRID, ISNI, FundRef, or Wikidata.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/identifier"
          }
        },
        "urls": {
          "description": "Website and other URLs associated with the organization.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "name": {
                "description": "A label for the URL.",
                "type": "string"
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            },
            "required": [
              "url"
            ]
          }
        },
        "country": {
          "description": "The country of the organization, as an ISO 3166-1 alpha-2 code.",
          "type": "string",
          "pattern": "^[A-Z]{2}$"
        },
        "geo_locations": {
          "description": "Geographic locations of the organization.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/geo_location"
          },
          "uniqueItems": true
        },
        "relations": {
          "description": "Other organizations related to this organization.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "properties": {
              "id": {
                "description": "ROR URL of the related organization.",
                "type": "string",
                "format": "uri"
              },
              "type": {
                "type": "string",
                "enum": [
                  "IsPartOf",
                  "HasPart",
                  "IsRelatedTo",
                  "Other"
                ]
              },
              "name": {
                "description": "A human-readable label for the related organization.",
                "type": "string"
              },
              "asserted_by": {
                "$ref": "#/$defs/provider"
              }
            },
            "required": [
              "id",
              "type"
            ]
          },
          "minItems": 1
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      }
    },
    "container": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "identifiers": {
          "description": "External identifiers for the container (e.g. its OpenAlex source id, ISSN, DOI, or ISBN).",
          "type": "array",
          "minItems": 1,
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "identifier",
              "identifier_type"
            ],
            "properties": {
              "identifier": {
                "description": "The identifier for the container.",
                "type": "string"
              },
              "identifier_type": {
                "description": "Identifier type for a container (journal, repository, blog, etc.).",
                "type": "string",
                "enum": [
                  "DataCite",
                  "DOI",
                  "Handle",
                  "ISBN",
                  "ISSN",
                  "OpenAlex",
                  "PURL",
                  "re3data",
                  "URL",
                  "URN",
                  "UUID",
                  "Wikidata",
                  "Other"
                ]
              }
            }
          }
        },
        "type": {
          "description": "The type of the container.",
          "type": "string",
          "enum": [
            "Blog",
            "Book",
            "BookSeries",
            "Journal",
            "Proceedings",
            "ProceedingsSeries",
            "Repository",
            "DataRepository",
            "Periodical",
            "Series",
            "igsnCatalog",
            "raidRegistry",
            "Other"
          ]
        },
        "title": {
          "description": "The name of the container.",
          "type": "string"
        },
        "additional_titles": {
          "description": "Abbreviated or alternate titles of the container.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "description": {
          "description": "A description of the container.",
          "type": "string"
        },
        "language": {
          "$ref": "#/$defs/language"
        },
        "license": {
          "$ref": "#/$defs/license"
        },
        "platform": {
          "description": "The platform of the container.",
          "type": "string"
        },
        "image": {
          "description": "The image for the container.",
          "type": "string",
          "format": "uri"
        },
        "publisher": {
          "description": "The publisher or host organization of the container.",
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "id": {
              "description": "ROR identifier URL of the publisher.",
              "type": "string"
            },
            "name": {
              "description": "The name of the publisher.",
              "type": "string"
            }
          }
        },
        "country": {
          "description": "ISO 3166-1 alpha-2 country code of the container.",
          "type": "string"
        },
        "first_page": {
          "description": "The first page of the resource.",
          "type": "string"
        },
        "last_page": {
          "description": "The last page of the resource.",
          "type": "string"
        },
        "volume": {
          "description": "The volume of the resource.",
          "type": "string"
        },
        "issue": {
          "description": "The issue of the resource.",
          "type": "string"
        },
        "location": {
          "description": "The location of the conference or event.",
          "type": "string"
        },
        "series": {
          "description": "The series name or acronym for the conference or event.",
          "type": "string"
        },
        "url": {
          "description": "The homepage URL of the container.",
          "type": "string",
          "format": "uri"
        },
        "date_updated": {
          "description": "The date the container record was last updated.",
          "$ref": "#/$defs/date"
        }
      }
    },
    "affiliation": {
      "description": "An organizational affiliation of a person, optionally scoped by role and date range.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "identifier": {
          "description": "The identifier of the affiliated organization.",
          "type": "string"
        },
        "identifier_type": {
          "description": "The type of the identifier.",
          "type": "string",
          "enum": [
            "ROR",
            "FundRef",
            "GRID",
            "ISNI",
            "Ringgold",
            "URL",
            "Wikidata",
            "Other"
          ]
        },
        "name": {
          "description": "The name of the affiliated organization.",
          "type": "string"
        },
        "role": {
          "description": "The role or job title held at the organization.",
          "type": "string"
        },
        "start_date": {
          "description": "The date the affiliation began.",
          "$ref": "#/$defs/date"
        },
        "end_date": {
          "description": "The date the affiliation ended.",
          "$ref": "#/$defs/date"
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      },
      "anyOf": [
        {
          "required": [
            "identifier"
          ]
        },
        {
          "required": [
            "name"
          ]
        }
      ]
    },
    "contributor": {
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "Person",
            "Organization"
          ]
        },
        "person": {
          "$ref": "#/$defs/person"
        },
        "organization": {
          "$ref": "#/$defs/organization"
        },
        "roles": {
          "description": "List of roles assumed by the contributor when working on the resource.",
          "type": "array",
          "items": {
            "$ref": "#/$defs/contributor_role"
          }
        }
      },
      "required": [
        "type"
      ],
      "if": {
        "properties": {
          "type": {
            "const": "Person"
          }
        }
      },
      "then": {
        "required": [
          "person"
        ]
      },
      "else": {
        "required": [
          "organization"
        ]
      }
    },
    "contributor_role": {
      "description": "The type of contribution made by a contributor",
      "type": "string",
      "enum": [
        "Author",
        "Chair",
        "Conceptualization",
        "ContactPerson",
        "CorrespondingAuthor",
        "DataCollector",
        "DataCuration",
        "DataManager",
        "Distributor",
        "Editor",
        "FormalAnalysis",
        "FundingAcquisition",
        "HostingInstitution",
        "Interviewee",
        "Investigation",
        "Maintainer",
        "Methodology",
        "Other",
        "Producer",
        "ProjectAdministration",
        "ProjectLeader",
        "ProjectManager",
        "ProjectMember",
        "Reader",
        "RelatedPerson",
        "RegistrationAgency",
        "RegistrationAuthority",
        "ResearchGroup",
        "Researcher",
        "Resources",
        "Reviewer",
        "ReviewerExternal",
        "ReviewAssistant",
        "RightsHolder",
        "Software",
        "Sponsor",
        "StatsReviewer",
        "Supervision",
        "Translator",
        "Validation",
        "Visualization",
        "WorkPackageLeader",
        "WritingOriginalDraft",
        "WritingReviewEditing"
      ]
    },
    "date": {
      "description": "An ISO 8601 / EDTF level 0 date or partial date (year, year-month, year-month-day, or full date-time).",
      "type": "string",
      "pattern": "^\\d{4}(-\\d{2}(-\\d{2}(T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?)?)?$"
    },
    "geo_location": {
      "description": "A geographic location associated with the resource.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "$ref": "#/$defs/id"
        },
        "place": {
          "type": "string"
        },
        "point_longitude": {
          "$ref": "#/$defs/longitude"
        },
        "point_latitude": {
          "$ref": "#/$defs/latitude"
        },
        "box_west_longitude": {
          "$ref": "#/$defs/longitude"
        },
        "box_east_longitude": {
          "$ref": "#/$defs/longitude"
        },
        "box_south_latitude": {
          "$ref": "#/$defs/latitude"
        },
        "box_north_latitude": {
          "$ref": "#/$defs/latitude"
        },
        "polygon": {
          "description": "The polygon geometry, formatted as Well-Known Text (WKT).",
          "type": "string"
        }
      }
    },
    "id": {
      "description": "The unique identifier for the resource.",
      "type": "string",
      "format": "uri"
    },
    "identifier": {
      "description": "An identifier for the resource.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "identifier": {
          "type": "string"
        },
        "identifier_type": {
          "type": "string",
          "enum": [
            "ARK",
            "arXiv",
            "article_id",
            "Bibcode",
            "DOI",
            "FundRef",
            "GeoNames",
            "GRID",
            "Handle",
            "ISBN",
            "ISNI",
            "ISSN",
            "OpenAlex",
            "PMID",
            "PMCID",
            "PURL",
            "RAiD",
            "ResearcherID",
            "ROR",
            "ScopusID",
            "SWHID",
            "URL",
            "URN",
            "UUID",
            "GUID",
            "Wikidata",
            "Other"
          ]
        },
        "scheme": {
          "description": "The scheme for identifiers with identifier_type 'Other', e.g. 'IGSN' or 'MGDS'.",
          "type": "string"
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      },
      "required": [
        "identifier",
        "identifier_type"
      ]
    },
    "language": {
      "description": "The language. Use one of the language codes from the IETF BCP 47 standard.",
      "type": "string"
    },
    "latitude": {
      "type": "number",
      "minimum": -90,
      "maximum": 90
    },
    "license": {
      "description": "The license for the resource. Use one of the SPDX license identifiers.",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "id": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      }
    },
    "longitude": {
      "type": "number",
      "minimum": -180,
      "maximum": 180
    },
    "provider": {
      "description": "The provider of the resource or the assertion. This can be a DOI registration agency, a repository, or any other entity asserting the information.",
      "type": "string",
      "enum": [
        "Crossref",
        "DataCite",
        "Airiti",
        "CNKI",
        "JaLC",
        "KISTI",
        "mEDRA",
        "OP",
        "Contributor",
        "Commonmeta",
        "GitHub",
        "OpenAIRE",
        "OpenAlex",
        "ORCID",
        "Publisher",
        "PubMed",
        "ROR",
        "Other"
      ]
    },
    "reference": {
      "description": "A cited or citing work. Used for both references (works cited by this resource) and citations (works that cite this resource).",
      "type": "object",
      "additionalProperties": false,
      "properties": {
        "key": {
          "type": "string"
        },
        "id": {
          "$ref": "#/$defs/id"
        },
        "type": {
          "$ref": "#/$defs/type"
        },
        "reference": {
          "description": "The reference formatted as string.",
          "type": "string"
        },
        "asserted_by": {
          "$ref": "#/$defs/provider"
        }
      }
    },
    "type": {
      "type": "string",
      "enum": [
        "Preprint",
        "Audiovisual",
        "Blog",
        "BlogPost",
        "BlogVolume",
        "Book",
        "BookChapter",
        "BookPart",
        "BookSection",
        "BookSeries",
        "BookSet",
        "Collection",
        "Component",
        "ComputationalNotebook",
        "Database",
        "Dataset",
        "Dissertation",
        "Document",
        "Entry",
        "Event",
        "Figure",
        "Grant",
        "Image",
        "Instrument",
        "InteractiveResource",
        "Journal",
        "JournalArticle",
        "JournalIssue",
        "JournalVolume",
        "LegalDocument",
        "Manuscript",
        "Map",
        "Model",
        "OutputManagementPlan",
        "Patent",
        "PeerReview",
        "Performance",
        "PersonalCommunication",
        "PhysicalObject",
        "Poster",
        "Presentation",
        "Proceedings",
        "ProceedingsArticle",
        "ProceedingsSeries",
        "Report",
        "ReportComponent",
        "ReportSeries",
        "Review",
        "Service",
        "Software",
        "Sound",
        "Standard",
        "StudyRegistration",
        "WebPage",
        "Workflow",
        "Other"
      ]
    }
  }
}
Last updated on