Skip to content

Identifiers

An identifier issued to a record by a registry, such as an organization’s EIN or UEI.

The base Identifier accepts any string value and any registry code. Model-specific identifiers (for example OrgIdEin) are named instantiations of the IdentifierT<Id, Code> template, which constrains the identifier value to a registry-specific format and pins registry.code to a specific registry while keeping the same shape as the base schema. Identifiers are keyed by their canonical CommonGrants registry code (<schema>:<scope>:<prop>, e.g. org:us:ein), which links to a catalog entry via registry.url.

PropertyTypeRequiredDescription
registryrecordNoRegistry-level facts shared by every record in this registry.
idstringNoThe primary identifier string, when the registry has a single canonical value. May be omitted for registries with no natural primary; consumers should read `allIds` in that case.
allIdsarray<object>NoEvery known identifier for this record in this registry, including archived values.

A JSON example of this model.

{
"registry": {
"code": "org:us:ein",
"url": "https://commongrants.org/registries/org-us-ein"
},
"id": "123456789",
"allIds": [
{
"id": "123456789",
"status": "active"
},
{
"id": "987654321",
"status": "archived"
}
]
}
VersionChangesSchema
0.4.0
  • Added Identifier model
Identifier.yaml

The hosting system’s own identifier for a record. It constrains the identifier value to a uuid, the record’s UUID within the hosting system, while the registry.code names that system (e.g. org:grants.gov:system). Collections reference it through their systemId field.

PropertyTypeRequiredDescription
registryrecordNoRegistry-level facts shared by every record in this registry.
iduuidNoThe primary identifier string, when the registry has a single canonical value. May be omitted for registries with no natural primary; consumers should read `allIds` in that case.
allIdsarray<object>NoEvery known identifier for this record in this registry, including archived values.

A JSON example of this model.

{
"registry": {
"code": "org:grants.gov:system",
"url": "https://commongrants.org/registries/org-grants-gov-system"
},
"id": "01912a8b-7c3d-7890-abcd-ef1234567890"
}
VersionChangesSchema
0.4.0
  • Added SystemId model
SystemId.yaml

A collection of identifiers associated with a record, keyed by registry code. Includes the hosting system’s own SystemId under systemId and an otherIds extension point for registries the protocol does not define as a base identifier on the model. Model-specific collections (for example OrgIds) extend it with their base identifiers.

PropertyTypeRequiredDescription
systemIdSystemIdNoThe hosting system's own identifier for this record.
otherIdsrecord<Identifier>NoAdditional identifiers keyed by their registry code, for registries the protocol does not define as a base identifier on the model.

A JSON example of this model.

{
"systemId": {
"registry": {
"code": "org:grants.gov:system",
"url": "https://commongrants.org/registries/org-grants-gov-system"
},
"id": "01912a8b-7c3d-7890-abcd-ef1234567890"
},
"otherIds": {
"org:candid:bridge": {
"registry": {
"code": "org:candid:bridge"
},
"id": "1234567"
}
}
}
VersionChangesSchema
0.4.0
  • Added IdentifierCollection model
IdentifierCollection.yaml