FOLIO · Schema

authorityDto

An authority record

CompanyLibrariesLibrary Services PlatformOpen SourceMicroservicesEducation

Properties

Name Type Description
id string Authority UUID
_version integer Record version for optimistic locking
source string The metadata source of the underlying record to the authority record. (e.g. FOLIO if it's a record created in Inventory; MARC if it's a MARC record created in data-import)
personalName string Heading personal name
sftPersonalName array See from tracing personal name
saftPersonalName array See also from tracing personal name
personalNameTitle string Heading personal name title
sftPersonalNameTitle array See from tracing personal name title
saftPersonalNameTitle array See also from tracing personal name title
corporateName string Heading corporate name
sftCorporateName array See from tracing corporate name
saftCorporateName array See also from tracing corporate name
corporateNameTitle string Heading corporate name title
sftCorporateNameTitle array See from tracing corporate name title
saftCorporateNameTitle array See also from tracing corporate name title
meetingName string Heading meeting name
sftMeetingName array See from tracing meeting name
saftMeetingName array See also from tracing meeting name
meetingNameTitle string Heading meeting name title
sftMeetingNameTitle array See from tracing meeting name title
saftMeetingNameTitle array See also from tracing meeting name title
uniformTitle string Heading uniform title
sftUniformTitle array See from tracing uniform title
saftUniformTitle array See also from tracing uniform title
namedEvent string Heading named event
sftNamedEvent array See from tracing named event
saftNamedEvent array See also from tracing named event
topicalTerm string Heading topical term
sftTopicalTerm array See from tracing topical term
saftTopicalTerm array See also from tracing topical term
subjectHeadings string Children's subject headings
geographicName string Heading geographic name
sftGeographicName array See from tracing geographic name
saftGeographicName array See also from tracing geographic name
genreTerm string Heading genre/form term
sftGenreTerm array See from tracing genre/form term
saftGenreTerm array See also from tracing genre/form term
chronTerm string Heading chronological term
sftChronTerm array See from tracing chronological term
saftChronTerm array See also from tracing chronological term
mediumPerfTerm string Heading medium of performance term
sftMediumPerfTerm array See from tracing medium of performance term
saftMediumPerfTerm array See also from tracing medium of performance term
generalSubdivision string Heading general subdivision term
sftGeneralSubdivision array See from tracing general subdivision term
saftGeneralSubdivision array See also from tracing general subdivision term
geographicSubdivision string Heading geographic subdivision term
sftGeographicSubdivision array See from tracing geographic subdivision term
saftGeographicSubdivision array See also from tracing geographic subdivision term
chronSubdivision string Heading chronological subdivision term
sftChronSubdivision array See from tracing chronological subdivision term
saftChronSubdivision array See also from tracing chronological subdivision term
formSubdivision string Heading form subdivision term
sftFormSubdivision array See from tracing form subdivision term
saftFormSubdivision array See also from tracing form subdivision term
saftBroaderTerm array See also from tracing term that represents broader, more general concepts related to the authority record
saftNarrowerTerm array See also from tracing term that that represents narrower, more specific concepts derived from the authority record
saftEarlierHeading array See also from tracing heading that was previously used to represent the concept or entity described by the authority record. This field is used to track the evolution of terms or headings over time, f
saftLaterHeading array See also from tracing heading that replaced the current heading used in the authority record. This field helps in maintaining the continuity of catalog records by linking past headings to their more c
saftPersonalNameTrunc array See also from tracing personal name
saftPersonalNameTitleTrunc array See also from tracing personal name title
saftCorporateNameTrunc array See also from tracing corporate name
saftCorporateNameTitleTrunc array See also from tracing corporate name title
saftMeetingNameTrunc array See also from tracing meeting name
saftMeetingNameTitleTrunc array See also from tracing meeting name title
saftUniformTitleTrunc array See also from tracing uniform title
saftTopicalTermTrunc array See also from tracing topical term
saftGenreTermTrunc array See also from tracing genre/form term
saftGeographicNameTrunc array See also from tracing geographic name
saftNamedEventTrunc array See also from tracing named event
saftChronTermTrunc array See also from tracing chronological term
saftMediumPerfTermTrunc array See also from tracing medium of performance term
saftGeneralSubdivisionTrunc array See also from tracing general subdivision term
saftGeographicSubdivisionTrunc array See also from tracing geographic subdivision term
saftChronSubdivisionTrunc array See also from tracing chronological subdivision term
saftFormSubdivisionTrunc array See also from tracing form subdivision term
identifiers array An extensible set of name-value pairs of identifiers associated with the resource
notes array Notes (e.g. nonpublic general note)
sourceFileId string Authority source file id; UUID
naturalId string Authority Natural ID
metadata object
View JSON Schema on GitHub

JSON Schema

folio-authority-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/folio/main/json-schema/folio-authority-dto-schema.json",
  "title": "authorityDto",
  "description": "An authority record",
  "x-generated": "2026-10-09",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/folio-mod-entities-links-openapi.yml#/components/schemas/authorityDto",
  "properties": {
    "id": {
      "description": "Authority UUID",
      "format": "uuid",
      "type": "string"
    },
    "_version": {
      "description": "Record version for optimistic locking",
      "type": "integer"
    },
    "source": {
      "description": "The metadata source of the underlying record to the authority record. (e.g. FOLIO if it's a record created in Inventory;  MARC if it's a MARC record created in data-import)",
      "type": "string"
    },
    "personalName": {
      "description": "Heading personal name",
      "type": "string"
    },
    "sftPersonalName": {
      "description": "See from tracing personal name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftPersonalName": {
      "description": "See also from tracing personal name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "personalNameTitle": {
      "description": "Heading personal name title",
      "type": "string"
    },
    "sftPersonalNameTitle": {
      "description": "See from tracing personal name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftPersonalNameTitle": {
      "description": "See also from tracing personal name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "corporateName": {
      "description": "Heading corporate name",
      "type": "string"
    },
    "sftCorporateName": {
      "description": "See from tracing corporate name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftCorporateName": {
      "description": "See also from tracing corporate name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "corporateNameTitle": {
      "description": "Heading corporate name title",
      "type": "string"
    },
    "sftCorporateNameTitle": {
      "description": "See from tracing corporate name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftCorporateNameTitle": {
      "description": "See also from tracing corporate name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "meetingName": {
      "description": "Heading meeting name",
      "type": "string"
    },
    "sftMeetingName": {
      "description": "See from tracing meeting name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftMeetingName": {
      "description": "See also from tracing meeting name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "meetingNameTitle": {
      "description": "Heading meeting name title",
      "type": "string"
    },
    "sftMeetingNameTitle": {
      "description": "See from tracing meeting name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftMeetingNameTitle": {
      "description": "See also from tracing meeting name title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "uniformTitle": {
      "description": "Heading uniform title",
      "type": "string"
    },
    "sftUniformTitle": {
      "description": "See from tracing uniform title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftUniformTitle": {
      "description": "See also from tracing uniform title",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "namedEvent": {
      "description": "Heading named event",
      "type": "string"
    },
    "sftNamedEvent": {
      "description": "See from tracing named event",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftNamedEvent": {
      "description": "See also from tracing named event",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "topicalTerm": {
      "description": "Heading topical term",
      "type": "string"
    },
    "sftTopicalTerm": {
      "description": "See from tracing topical term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftTopicalTerm": {
      "description": "See also from tracing topical term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "subjectHeadings": {
      "description": "Children's subject headings",
      "type": "string"
    },
    "geographicName": {
      "description": "Heading geographic name",
      "type": "string"
    },
    "sftGeographicName": {
      "description": "See from tracing geographic name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftGeographicName": {
      "description": "See also from tracing geographic name",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "genreTerm": {
      "description": "Heading genre/form term",
      "type": "string"
    },
    "sftGenreTerm": {
      "description": "See from tracing genre/form term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftGenreTerm": {
      "description": "See also from tracing genre/form term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "chronTerm": {
      "description": "Heading chronological term",
      "type": "string"
    },
    "sftChronTerm": {
      "description": "See from tracing chronological term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftChronTerm": {
      "description": "See also from tracing chronological term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "mediumPerfTerm": {
      "description": "Heading medium of performance term",
      "type": "string"
    },
    "sftMediumPerfTerm": {
      "description": "See from tracing medium of performance term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftMediumPerfTerm": {
      "description": "See also from tracing medium of performance term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "generalSubdivision": {
      "description": "Heading general subdivision term",
      "type": "string"
    },
    "sftGeneralSubdivision": {
      "description": "See from tracing general subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftGeneralSubdivision": {
      "description": "See also from tracing general subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "geographicSubdivision": {
      "description": "Heading geographic subdivision term",
      "type": "string"
    },
    "sftGeographicSubdivision": {
      "description": "See from tracing geographic subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftGeographicSubdivision": {
      "description": "See also from tracing geographic subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "chronSubdivision": {
      "description": "Heading chronological subdivision term",
      "type": "string"
    },
    "sftChronSubdivision": {
      "description": "See from tracing chronological subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftChronSubdivision": {
      "description": "See also from tracing chronological subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "formSubdivision": {
      "description": "Heading form subdivision term",
      "type": "string"
    },
    "sftFormSubdivision": {
      "description": "See from tracing form subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftFormSubdivision": {
      "description": "See also from tracing form subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "saftBroaderTerm": {
      "description": "See also from tracing term that represents broader, more general concepts related to the authority record",
      "items": {
        "$ref": "#/$defs/relatedHeading"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftNarrowerTerm": {
      "description": "See also from tracing term that that represents narrower, more specific concepts derived from the authority record",
      "items": {
        "$ref": "#/$defs/relatedHeading"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftEarlierHeading": {
      "description": "See also from tracing heading that was previously used to represent the concept or entity described by the authority record. This field is used to track the evolution of terms or headings over time, facilitating the linking of historical and current data.",
      "items": {
        "$ref": "#/$defs/relatedHeading"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftLaterHeading": {
      "description": "See also from tracing heading that replaced the current heading used in the authority record. This field helps in maintaining the continuity of catalog records by linking past headings to their more current versions.",
      "items": {
        "$ref": "#/$defs/relatedHeading"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftPersonalNameTrunc": {
      "description": "See also from tracing personal name",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftPersonalNameTitleTrunc": {
      "description": "See also from tracing personal name title",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftCorporateNameTrunc": {
      "description": "See also from tracing corporate name",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftCorporateNameTitleTrunc": {
      "description": "See also from tracing corporate name title",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftMeetingNameTrunc": {
      "description": "See also from tracing meeting name",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftMeetingNameTitleTrunc": {
      "description": "See also from tracing meeting name title",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftUniformTitleTrunc": {
      "description": "See also from tracing uniform title",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftTopicalTermTrunc": {
      "description": "See also from tracing topical term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftGenreTermTrunc": {
      "description": "See also from tracing genre/form term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftGeographicNameTrunc": {
      "description": "See also from tracing geographic name",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftNamedEventTrunc": {
      "description": "See also from tracing named event",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftChronTermTrunc": {
      "description": "See also from tracing chronological term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftMediumPerfTermTrunc": {
      "description": "See also from tracing medium of performance term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftGeneralSubdivisionTrunc": {
      "description": "See also from tracing general subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftGeographicSubdivisionTrunc": {
      "description": "See also from tracing geographic subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftChronSubdivisionTrunc": {
      "description": "See also from tracing chronological subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "saftFormSubdivisionTrunc": {
      "description": "See also from tracing form subdivision term",
      "items": {
        "type": "string"
      },
      "type": "array",
      "x-field-extra-annotation": "@com.fasterxml.jackson.annotation.JsonInclude(com.fasterxml.jackson.annotation.JsonInclude.Include.NON_EMPTY)"
    },
    "identifiers": {
      "description": "An extensible set of name-value pairs of identifiers associated with the resource",
      "items": {
        "$ref": "#/$defs/authorityDtoIdentifier"
      },
      "type": "array"
    },
    "notes": {
      "description": "Notes (e.g. nonpublic general note)",
      "items": {
        "$ref": "#/$defs/authorityDtoNote"
      },
      "type": "array"
    },
    "sourceFileId": {
      "description": "Authority source file id; UUID",
      "format": "uuid",
      "type": "string"
    },
    "naturalId": {
      "description": "Authority Natural ID",
      "type": "string"
    },
    "metadata": {
      "$ref": "#/$defs/metadata"
    }
  },
  "required": [
    "naturalId",
    "source"
  ],
  "type": "object",
  "$defs": {
    "authorityDtoIdentifier": {
      "description": "Identifier associated with the authority",
      "properties": {
        "value": {
          "description": "Resource identifier value",
          "type": "string",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'value') FROM jsonb_array_elements(:sourceAlias.identifiers) AS elems)",
          "x-fqm-filter-value-getter": "(SELECT array_agg(lower(elems.value->>'value')) FROM jsonb_array_elements(:sourceAlias.identifiers) AS elems)"
        },
        "identifierTypeId": {
          "description": "Resource identifier type (e.g. Control number, LCCN, Other standard identifier, System control number)",
          "format": "uuid",
          "type": "string",
          "x-fqm-visibility": "hidden",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'identifierTypeId') FROM jsonb_array_elements(:sourceAlias.identifiers) AS elems)"
        },
        "identifierType": {
          "description": "Resource identifier type. Used only for FQM queries",
          "readOnly": true,
          "type": "string",
          "x-fqm-value-function": ":value",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'identifierTypeId') FROM jsonb_array_elements(:sourceAlias.identifiers) AS elems)",
          "x-fqm-filter-value-getter": "(SELECT array_agg(elems.value->>'identifierTypeId') FROM jsonb_array_elements(:sourceAlias.identifiers) AS elems)",
          "x-fqm-source": {
            "entityTypeId": "e1d77962-f469-5a9c-a0e0-30987c1bae99",
            "columnName": "name"
          }
        }
      },
      "required": [
        "identifierTypeId",
        "value"
      ],
      "type": "object"
    },
    "authorityDtoNote": {
      "description": "Authority note",
      "properties": {
        "noteTypeId": {
          "description": "Note type id",
          "format": "uuid",
          "type": "string",
          "x-fqm-visibility": "hidden",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'noteTypeId') FROM jsonb_array_elements(:sourceAlias.notes) AS elems)"
        },
        "noteType": {
          "description": "Note type. Used only for FQM queries",
          "readOnly": true,
          "type": "string",
          "x-fqm-value-function": ":value",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'noteTypeId') FROM jsonb_array_elements(:sourceAlias.notes) AS elems)",
          "x-fqm-filter-value-getter": "(SELECT array_agg(elems.value->>'noteTypeId') FROM jsonb_array_elements(:sourceAlias.notes) AS elems)",
          "x-fqm-source": {
            "entityTypeId": "369af782-637c-5ab7-af1f-f66a3e45acad",
            "columnName": "name"
          }
        },
        "note": {
          "description": "Text content of the note",
          "type": "string",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'note') FROM jsonb_array_elements(:sourceAlias.notes) AS elems)",
          "x-fqm-filter-value-getter": "(SELECT array_agg(lower(elems.value->>'note')) FROM jsonb_array_elements(:sourceAlias.notes) AS elems)"
        },
        "staffOnly": {
          "description": "Whether the note is visible to staff only",
          "type": "boolean",
          "x-fqm-visibility": "hidden",
          "x-fqm-value-getter": "(SELECT array_agg(elems.value->>'staffOnly') FROM jsonb_array_elements(:sourceAlias.notes) AS elems)",
          "x-fqm-filter-value-getter": "(SELECT array_agg(lower(elems.value->>'staffOnly')) FROM jsonb_array_elements(:sourceAlias.notes) AS elems)"
        }
      },
      "required": [
        "note",
        "noteTypeId"
      ],
      "type": "object"
    },
    "metadata": {
      "description": "Creater, updater, creation date, last updated date",
      "properties": {
        "createdDate": {
          "description": "Date and time when the record was created",
          "format": "date-time",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.created_date",
          "x-fqm-value-function": "(:value)::timestamp"
        },
        "createdByUserId": {
          "description": "ID of the user who created the record (when available)",
          "format": "uuid",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.created_by_user_id"
        },
        "updatedDate": {
          "description": "Date and time when the record was last updated",
          "format": "date-time",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.updated_date",
          "x-fqm-value-function": "(:value)::timestamp"
        },
        "updatedByUserId": {
          "description": "ID of the user who last updated the record (when available)",
          "format": "uuid",
          "type": "string",
          "x-fqm-value-getter": ":sourceAlias.updated_by_user_id"
        }
      },
      "type": "object"
    },
    "relatedHeading": {
      "description": "An authority related heading for BroaderTerm/NarrowerTerm/LaterHeading/EarlierHeading",
      "properties": {
        "headingRef": {
          "description": "HeadingRef value",
          "type": "string"
        },
        "headingType": {
          "description": "Heading type",
          "type": "string"
        }
      },
      "required": [
        "headingRef",
        "headingType"
      ],
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/folio-authority-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.