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
View JSON Schema on GitHub

JSON Schema

stanford-technical-metadata-api-schemas.json Raw ↑
{
  "$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"
        }
      }
    }
  }
}