Stanford University · Schema
Technical Metadata API — component schemas
JSON Schema extracted from the components.schemas block of Stanford University Libraries' first-party OpenAPI for the Technical Metadata API. Institution-operated: every server in the source contract is under stanford.edu.
UniversityHigher EducationEducationResearchUnited StatesCaliforniaPrivate Research UniversityAssociation of American UniversitiesResearch RepositoryCourse CatalogIdentity FederationLibraryDigital RepositoryArtificial IntelligenceIIIF
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/stanford/main/json-schema/stanford-technical-metadata-api-schemas.json",
"title": "Technical Metadata API \u2014 component schemas",
"description": "JSON Schema extracted from the components.schemas block of Stanford University Libraries' first-party OpenAPI for the Technical Metadata API. Institution-operated: every server in the source contract is under stanford.edu.",
"x-operator": "institution",
"x-generated": "2026-08-19",
"x-method": "derived",
"x-source": "https://raw.githubusercontent.com/sul-dlss/technical-metadata-service/main/openapi.yml",
"$defs": {
"AudioMetadata": {
"description": "Audio-specific technical metadata",
"type": "object",
"properties": {
"format_profile": {
"type": "string"
},
"codec_id": {
"type": "string"
},
"channels": {
"type": "string"
},
"sampling_rate": {
"type": "integer"
},
"bit_depth": {
"type": "integer"
},
"stream_size": {
"type": "integer"
},
"mean_volume": {
"type": "number",
"format": "float"
},
"max_volume": {
"type": "number",
"format": "float"
}
}
},
"AvMetadata": {
"description": "Audio/visual-specific technical metadata",
"type": "object",
"properties": {
"video_count": {
"type": "integer"
},
"audio_count": {
"type": "integer"
},
"other_count": {
"type": "integer"
},
"file_extension": {
"type": "string"
},
"format": {
"type": "string"
},
"format_profile": {
"type": "string"
},
"codec_id": {
"type": "string"
},
"duration": {
"type": "number",
"format": "float"
},
"frame_rate": {
"type": "number",
"format": "float"
},
"encoded_date": {
"type": "string"
}
}
},
"DroFile": {
"description": "Technical metadata for a single file",
"type": "object",
"properties": {
"druid": {
"$ref": "#/components/schemas/Druid"
},
"filename": {
"type": "string"
},
"filetype": {
"description": "Pronom id",
"type": "string"
},
"mimetype": {
"type": "string"
},
"bytes": {
"type": "integer"
},
"file_modification": {
"type": "string",
"format": "date-time"
},
"image_metadata": {
"$ref": "#/components/schemas/ImageMetadata"
},
"pdf_metdata": {
"$ref": "#/components/schemas/PdfMetadata"
},
"av_metadata": {
"$ref": "#/components/schemas/AvMetadata"
},
"dro_file_parts": {
"type": "array",
"items": {
"$ref": "#/components/schemas/DroFilePart"
}
}
},
"required": [
"druid",
"filename"
]
},
"DroFilePart": {
"description": "Technical metadata for part of a file, e.g., a track",
"type": "object",
"properties": {
"part_type": {
"type": "string",
"enum": [
"audio",
"video",
"text",
"other"
]
},
"part_id": {
"type": "string"
},
"order": {
"type": "integer"
},
"format": {
"type": "string"
},
"audio_metadata": {
"$ref": "#/components/schemas/AudioMetadata"
},
"video_metadata": {
"$ref": "#/components/schemas/VideoMetadata"
},
"other_metadata": {
"$ref": "#/components/schemas/OtherAvMetadata"
}
},
"required": [
"part_type"
]
},
"Druid": {
"description": "Digital Repository Unique Identifier (ID)",
"type": "string",
"pattern": "^druid:[b-df-hjkmnp-tv-z]{2}[0-9]{3}[b-df-hjkmnp-tv-z]{2}[0-9]{4}$",
"example": "druid:bc123df4567"
},
"FileURI": {
"description": "File URI for the absolute path of the file",
"type": "string",
"pattern": "^file:\\/\\/\\/([^\\\\/]+\\/)*[^\\\\/]+$",
"example": "file:///foo/bar/baz/quix.jp2"
},
"FileName": {
"description": "filename for a file in SDR (from Cocina metadata)",
"type": "string",
"pattern": "^([^\\\\/]+\\/)*[^\\\\/]+$",
"example": "foo/bar/baz/quix.jp2"
},
"FileInfo": {
"description": "Information about a file.",
"type": "object",
"properties": {
"uri": {
"$ref": "#/components/schemas/FileURI"
},
"md5": {
"type": "string"
}
},
"required": [
"uri",
"md5"
]
},
"FileAuditInfo": {
"description": "Information about a file in SDR for which we expect technical metadata to exist.",
"type": "object",
"properties": {
"filename": {
"$ref": "#/components/schemas/FileName"
},
"md5": {
"type": "string"
}
},
"required": [
"filename",
"md5"
]
},
"FileAuditResult": {
"description": "Information about detected differences between expected technical metadata entries and actual technical metadata entries",
"type": "object",
"properties": {
"missing_filenames": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileName"
}
},
"unexpected_filenames": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileName"
}
},
"mismatched_checksum_file_infos": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FileAuditInfo"
}
}
}
},
"ImageMetadata": {
"description": "Image-specific technical metadata",
"type": "object",
"properties": {
"height": {
"type": "number"
},
"width": {
"type": "number"
}
}
},
"OtherAvMetadata": {
"description": "Other technical metadata for a file part",
"type": "object",
"properties": {
"other_type": {
"type": "string"
},
"type": {
"type": "string"
}
}
},
"PdfMetadata": {
"description": "PDF-specific technical metadata",
"type": "object",
"properties": {
"pdf_version": {
"type": "string"
},
"pages": {
"type": "integer"
},
"page_size": {
"type": "string"
},
"tagged": {
"type": "boolean"
},
"encrypted": {
"type": "boolean"
},
"javascript": {
"type": "boolean"
},
"form": {
"type": "boolean"
},
"text": {
"type": "boolean"
},
"creator": {
"type": "string"
},
"producer": {
"type": "string"
}
}
},
"VideoMetadata": {
"description": "Video-specific technical metadata",
"type": "object",
"properties": {
"format_profile": {
"type": "string"
},
"codec_id": {
"type": "string"
},
"height": {
"type": "integer"
},
"width": {
"type": "integer"
},
"display_aspect_ratio": {
"type": "number",
"format": "float"
},
"pixel_aspect_ratio": {
"type": "number",
"format": "float"
},
"frame_rate": {
"type": "number",
"format": "float"
},
"color_space": {
"type": "string"
},
"chroma_subsampling": {
"type": "string"
},
"bit_depth": {
"type": "integer"
},
"language": {
"type": "string"
},
"stream_size": {
"type": "integer"
},
"standard": {
"type": "string"
}
}
}
}
}