CoverageInfo
Shown on every results page (coverage transparency). Video and official transcripts are counted apart (ORTH-207): read video and documents (or collections) for display. videos, first/last_event_date, awaiting_review and total_* are over everything, video and documents together, and stay for compatibility.
Properties
| Name | Type | Description |
|---|---|---|
| videos | integer | Every item in the archive, video sessions and official transcripts together. For display use video.sessions and documents.count. |
| first_event_date | object | Earliest item of either kind. Video only: video.first_event_date. |
| last_event_date | object | Latest item of either kind. Video only: video.last_event_date. |
| sources | array | |
| last_ingested_at | object | |
| awaiting_review | integer | Items of either kind with an unconfirmed speaker label. Video only: video.awaiting_review. |
| known_gaps | array | |
| total_hours | number | Sum of sessions[].duration_ms in hours, one decimal. Includes last-word estimates where duration_measured is false; official documents (no duration) add nothing. |
| total_words | integer | Sum of sessions[].words, video and official transcripts together. Words transcribed: video.words. |
| video | object | Totals over video only. |
| documents | object | Totals over official transcripts (no timing) only. |
| collections | array | One entry per kind of material per source: video first (most items first), then documents. Build source lines from these. |
| sessions | array | One entry per video or official transcript, newest first, except the items of a collection counted by day (see collections[].days). |
| revised | integer | Items of every collection (the ones counted by day included) whose current transcript revision is above 1. |
| corrections | array | The corrections log, newest first: records hidden from search, coverage and their pages, or restored (decision 12), and words corrected at the next transcript revision, itemized (action corrected, ORT |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/govtube-us/json-schema/govtube-us-coverage-info-schema.json",
"title": "CoverageInfo",
"description": "Shown on every results page (coverage transparency). Video and official transcripts are counted apart\n(ORTH-207): read video and documents (or collections) for display. videos, first/last_event_date,\nawaiting_review and total_* are over everything, video and documents together, and stay for compatibility.",
"x-generated": "2026-11-11",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/govtube-us-openapi.json#/components/schemas/CoverageInfo",
"properties": {
"videos": {
"type": "integer",
"title": "Videos",
"description": "Every item in the archive, video sessions and official transcripts together. For display use video.sessions and documents.count."
},
"first_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "First Event Date",
"description": "Earliest item of either kind. Video only: video.first_event_date."
},
"last_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Last Event Date",
"description": "Latest item of either kind. Video only: video.last_event_date."
},
"sources": {
"items": {
"type": "string"
},
"type": "array",
"title": "Sources"
},
"last_ingested_at": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Last Ingested At"
},
"awaiting_review": {
"type": "integer",
"title": "Awaiting Review",
"description": "Items of either kind with an unconfirmed speaker label. Video only: video.awaiting_review.",
"default": 0
},
"known_gaps": {
"items": {
"type": "string"
},
"type": "array",
"title": "Known Gaps"
},
"total_hours": {
"type": "number",
"title": "Total Hours",
"description": "Sum of sessions[].duration_ms in hours, one decimal. Includes last-word estimates where duration_measured is false; official documents (no duration) add nothing.",
"default": 0.0
},
"total_words": {
"type": "integer",
"title": "Total Words",
"description": "Sum of sessions[].words, video and official transcripts together. Words transcribed: video.words.",
"default": 0
},
"video": {
"$ref": "#/$defs/VideoCoverage",
"description": "Totals over video only."
},
"documents": {
"$ref": "#/$defs/DocumentCoverage",
"description": "Totals over official transcripts (no timing) only."
},
"collections": {
"items": {
"$ref": "#/$defs/CoverageCollection"
},
"type": "array",
"title": "Collections",
"description": "One entry per kind of material per source: video first (most items first), then documents. Build source lines from these."
},
"sessions": {
"items": {
"$ref": "#/$defs/CoverageSession"
},
"type": "array",
"title": "Sessions",
"description": "One entry per video or official transcript, newest first, except the items of a collection counted by day (see collections[].days)."
},
"revised": {
"type": "integer",
"minimum": 0.0,
"title": "Revised",
"description": "Items of every collection (the ones counted by day included) whose current transcript revision is above 1.",
"default": 0
},
"corrections": {
"items": {
"$ref": "#/$defs/CorrectionEntry"
},
"type": "array",
"title": "Corrections",
"description": "The corrections log, newest first: records hidden from search, coverage and their pages, or restored (decision 12), and words corrected at the next transcript revision, itemized (action corrected, ORTH-146). Other revisions (respacing, speaker names) are counted in revised, not listed."
}
},
"type": "object",
"required": [
"videos",
"first_event_date",
"last_event_date",
"sources"
],
"$defs": {
"CitationCounts": {
"properties": {
"probes": {
"type": "integer",
"minimum": 0.0,
"title": "Probes",
"description": "Quotes resolved (each one-turn quote of 1 to 5 words that includes a corrected word, at most 200 in all)."
},
"reanchored": {
"type": "integer",
"minimum": 0.0,
"title": "Reanchored",
"description": "Still found at that moment."
},
"moved": {
"type": "integer",
"minimum": 0.0,
"title": "Moved",
"description": "Found once elsewhere in the video; the link follows it."
},
"superseded": {
"type": "integer",
"minimum": 0.0,
"title": "Superseded",
"description": "Replaced: the quoted words are no longer there; the link shows the original quote and the words now at that time."
},
"capped": {
"type": "boolean",
"title": "Capped",
"description": "True when there were more than 200 such quotes and only the first 200 were resolved.",
"default": false
}
},
"type": "object",
"required": [
"probes",
"reanchored",
"moved",
"superseded"
],
"title": "CitationCounts",
"description": "What a correction did to links quoting the corrected words (ORTH-146). GovTube keeps no list of the links\npeople shared (a citation is a self-contained token), so these count probes: every quote of 1 to 5 words that\nincludes a corrected word, as it read before, resolved against the corrected revision exactly as a shared link\nwould be. Links to unchanged words elsewhere in the video all re-anchor (same words, same time)."
},
"CorrectionChange": {
"properties": {
"start_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Start Ms",
"description": "Where the corrected words start in the video, in the revision before."
},
"end_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "End Ms",
"description": "Where they end."
},
"word": {
"type": "integer",
"minimum": 0.0,
"title": "Word",
"description": "Position of the first corrected word in the revision before (0-based)."
},
"before": {
"type": "string",
"title": "Before",
"description": "The words as they read before, exactly as shown."
},
"after": {
"type": "string",
"title": "After",
"description": "The words as they read now. Empty when the words were removed."
}
},
"type": "object",
"required": [
"start_ms",
"end_ms",
"word",
"before",
"after"
],
"title": "CorrectionChange",
"description": "One corrected span of words (``govtube-corrections fix``): what it read and what it reads now."
},
"CorrectionEntry": {
"properties": {
"id": {
"type": "integer",
"title": "Id",
"description": "Increasing entry number."
},
"at": {
"type": "string",
"title": "At",
"description": "When the change was made (ISO 8601, UTC)."
},
"action": {
"type": "string",
"enum": [
"hidden",
"restored",
"corrected"
],
"title": "Action",
"description": "hidden: taken out of search, coverage, its pages and its citations (they answer 410). restored: put back exactly as it was. corrected: words changed at the next transcript revision (from_rev -> rev); see changes and citations."
},
"video_id": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Video Id",
"description": "The record's id. Null when the title is withheld (e.g. a legal request), so the entry does not identify the record."
},
"title": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Title",
"description": "The record's title. Null when withheld."
},
"event_date": {
"type": "string",
"format": "date",
"title": "Event Date",
"description": "The record's event date."
},
"source_id": {
"type": "string",
"title": "Source Id",
"description": "Key into the source policy registry."
},
"source_name": {
"type": "string",
"title": "Source Name",
"description": "The source, for display, e.g. 'U.S. House Clerk'."
},
"rev": {
"type": "integer",
"title": "Rev",
"description": "The transcript revision that was hidden or restored; for corrected, the new revision."
},
"reason": {
"type": "string",
"title": "Reason",
"description": "Why, in plain words, as published."
},
"from_rev": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "From Rev",
"description": "corrected only: the revision the words were corrected from (rev - 1)."
},
"changes": {
"items": {
"$ref": "#/$defs/CorrectionChange"
},
"type": "array",
"title": "Changes",
"description": "corrected only: each corrected span, before and after, in transcript order. Empty while the record is hidden (its words are in no public read)."
},
"citations": {
"anyOf": [
{
"$ref": "#/$defs/CitationCounts"
},
{
"type": "null"
}
],
"description": "corrected only: what the correction did to links quoting the corrected words."
}
},
"type": "object",
"required": [
"id",
"at",
"action",
"video_id",
"title",
"event_date",
"source_id",
"source_name",
"rev",
"reason"
],
"title": "CorrectionEntry",
"description": "One entry of the public corrections log (decision 12): a record hidden from search, coverage and its pages, or\nrestored; or its words corrected at the next transcript revision (ORTH-146). Written by the admin hide, unhide\nand fix routes in the same transaction as the change itself."
},
"CoverageCollection": {
"properties": {
"key": {
"type": "string",
"title": "Key",
"description": "Stable key, e.g. 'house_floor', 'senate_committees', 'govinfo_dcpd'."
},
"kind": {
"type": "string",
"enum": [
"video",
"document"
],
"title": "Kind",
"description": "video: recorded sessions with word timing. document: official transcripts without timing (ADR 0004); they are not video."
},
"source_id": {
"type": "string",
"title": "Source Id",
"description": "Key into the source policy registry."
},
"label": {
"type": "string",
"title": "Label",
"description": "What the collection holds, for display: 'U.S. Senate committee hearings'."
},
"unit": {
"type": "string",
"title": "Unit",
"description": "One item, for display with a count: 'session', 'hearing', 'transcript'."
},
"units": {
"type": "string",
"title": "Units",
"description": "Several items: 'sessions', 'hearings', 'transcripts'."
},
"short_name": {
"type": "string",
"title": "Short Name",
"description": "The source's short name, e.g. 'Senate.gov'."
},
"rights_short": {
"type": "string",
"title": "Rights Short",
"description": "The source's rights in a few words, e.g. 'public record'."
},
"items": {
"type": "integer",
"minimum": 0.0,
"title": "Items",
"description": "Sessions (video) or documents (document) in the collection."
},
"first_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "First Event Date"
},
"last_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Last Event Date"
},
"hours": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"title": "Hours",
"description": "Hours of video, one decimal; null for documents."
},
"words": {
"type": "integer",
"minimum": 0.0,
"title": "Words",
"description": "Words in the current transcripts: transcribed by GovTube for video, as printed for documents."
},
"speaker_labels": {
"type": "integer",
"minimum": 0.0,
"title": "Speaker Labels",
"description": "Speaker labels: voice clusters for video; for documents, the speakers the record itself names."
},
"speakers_confirmed": {
"type": "integer",
"minimum": 0.0,
"title": "Speakers Confirmed",
"description": "Speaker labels a person has confirmed."
},
"awaiting_review": {
"type": "integer",
"minimum": 0.0,
"title": "Awaiting Review",
"description": "Items with at least one speaker label nobody has confirmed."
},
"days": {
"anyOf": [
{
"items": {
"$ref": "#/$defs/CoverageDay"
},
"type": "array"
},
{
"type": "null"
}
],
"title": "Days",
"description": "Set only for a collection counted by day (the Congressional Record: one item per speech, ORTH-209): its days, newest first. Its items are then not listed one by one in CoverageInfo.sessions. Null for every other collection."
}
},
"type": "object",
"required": [
"key",
"kind",
"source_id",
"label",
"unit",
"units",
"short_name",
"rights_short",
"items",
"first_event_date",
"last_event_date",
"hours",
"words",
"speaker_labels",
"speakers_confirmed",
"awaiting_review"
],
"title": "CoverageCollection",
"description": "One kind of material from one source, e.g. U.S. House floor sessions or White House official transcripts\n(ORTH-207). Every session counts in exactly one collection; the video collections add up to CoverageInfo.video\nand the document collections to CoverageInfo.documents."
},
"CoverageDay": {
"properties": {
"event_date": {
"type": "string",
"format": "date",
"title": "Event Date"
},
"items": {
"type": "integer",
"minimum": 0.0,
"title": "Items",
"description": "Items that day (for the Congressional Record: speeches)."
},
"words": {
"type": "integer",
"minimum": 0.0,
"title": "Words",
"description": "Words in those items, as printed."
},
"parts": {
"additionalProperties": {
"type": "integer"
},
"type": "object",
"title": "Parts",
"description": "Items per part of the day's record, e.g. {'House': 120, 'Senate': 85}."
},
"url": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Url",
"description": "The day's whole record at its source, e.g. the Congressional Record issue on GovInfo."
}
},
"type": "object",
"required": [
"event_date",
"items",
"words"
],
"title": "CoverageDay",
"description": "One day of a collection counted by day (CoverageCollection.days)."
},
"CoverageSession": {
"properties": {
"video_id": {
"type": "string",
"title": "Video Id"
},
"title": {
"type": "string",
"title": "Title"
},
"event_date": {
"type": "string",
"format": "date",
"title": "Event Date"
},
"duration_ms": {
"anyOf": [
{
"type": "integer"
},
{
"type": "null"
}
],
"title": "Duration Ms",
"description": "Length in milliseconds: VideoMeta.duration_ms when measured at ingest, else the last word's end_ms (see duration_measured). Null for an official document (timing_granularity document)."
},
"duration_measured": {
"type": "boolean",
"title": "Duration Measured",
"description": "True when duration_ms is the measured audio length. False means it is the last word's end, which can fall short of the real length (trailing silence or recess), or null."
},
"timing_granularity": {
"type": "string",
"enum": [
"word",
"segment",
"sentence",
"turn",
"chunk",
"document"
],
"title": "Timing Granularity",
"description": "What the timing is attached to (ORTH-177): word = every word has a time (our transcripts); document = no timing at all, the words come from an official document (ADR 0004). Times are null exactly when this is document.",
"default": "word"
},
"fidelity": {
"type": "string",
"enum": [
"verbatim",
"clean",
"edited"
],
"title": "Fidelity",
"description": "verbatim: what was said, as said (our transcripts). edited: revised after the fact, e.g. a White House transcript; label it 'Official transcript · edited · no timing' and never certify it as spoken.",
"default": "verbatim"
},
"words": {
"type": "integer",
"title": "Words",
"description": "Words in the current transcript revision."
},
"playable": {
"type": "boolean",
"title": "Playable",
"description": "A playback asset exists and its alignment with the transcript is verified."
},
"playback_kind": {
"anyOf": [
{
"type": "string",
"enum": [
"youtube",
"hls",
"mp4"
]
},
{
"type": "null"
}
],
"title": "Playback Kind",
"description": "Kind of playback asset, or null when there is none. Set with playable false means the asset's alignment is not verified yet."
},
"speaker_labels": {
"type": "integer",
"title": "Speaker Labels",
"description": "Distinct speaker labels (diarization clusters) in the video."
},
"speakers_confirmed": {
"type": "integer",
"title": "Speakers Confirmed",
"description": "Speaker labels a person has confirmed against the official record."
},
"transcript_rev": {
"type": "integer",
"title": "Transcript Rev",
"description": "Current transcript revision (1 = first transcript, no corrections)."
},
"collection": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Collection",
"description": "Key of the coverage collection this session counts in (CoverageInfo.collections[].key)."
},
"verification": {
"anyOf": [
{
"$ref": "#/$defs/SessionVerification"
},
{
"type": "null"
}
],
"description": "Timed transcripts: how much of it is on hold (ORTH-176). Null for official documents and for a session not republished or checked against its captions since the rule shipped."
}
},
"type": "object",
"required": [
"video_id",
"title",
"event_date",
"duration_ms",
"duration_measured",
"words",
"playable",
"playback_kind",
"speaker_labels",
"speakers_confirmed",
"transcript_rev"
],
"title": "CoverageSession",
"description": "One indexed video, as the coverage page's sessions table shows it (handoff §5.7)."
},
"DocumentCoverage": {
"properties": {
"count": {
"type": "integer",
"minimum": 0.0,
"title": "Count",
"description": "Official transcripts in the archive.",
"default": 0
},
"words": {
"type": "integer",
"minimum": 0.0,
"title": "Words",
"description": "Words as printed in the official transcripts (not transcribed by GovTube).",
"default": 0
},
"first_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "First Event Date"
},
"last_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Last Event Date"
}
},
"type": "object",
"title": "DocumentCoverage",
"description": "Totals over official transcripts without timing (ORTH-207), all document sources together. Per source:\nCoverageInfo.collections with kind document."
},
"SessionVerification": {
"properties": {
"words": {
"type": "integer",
"minimum": 0.0,
"title": "Words",
"description": "Words in the transcript."
},
"words_scored": {
"type": "integer",
"minimum": 0.0,
"title": "Words Scored",
"description": "Words with a speech-recognizer score (0 for a transcript made before scores were kept)."
},
"words_checked": {
"type": "integer",
"minimum": 0.0,
"title": "Words Checked",
"description": "Words the official captions agree with."
},
"words_held": {
"type": "integer",
"minimum": 0.0,
"title": "Words Held",
"description": "Words the rule holds (low_confidence)."
},
"sentences": {
"type": "integer",
"minimum": 0.0,
"title": "Sentences",
"description": "Sentences (a word ending in . ? or !, or the last word)."
},
"sentences_held": {
"type": "integer",
"minimum": 0.0,
"title": "Sentences Held",
"description": "Sentences with at least one held word."
},
"held_share": {
"type": "number",
"maximum": 1.0,
"minimum": 0.0,
"title": "Held Share",
"description": "sentences_held / sentences, rounded to 4 places."
},
"caption_source": {
"anyOf": [
{
"type": "string",
"enum": [
"house_captions",
"senate_captions",
"dvids_captions",
"reviewer",
"asr_word_confidence"
]
},
{
"type": "null"
}
],
"title": "Caption Source",
"description": "The captions compared (house_captions, ...); null when none are stored."
},
"conf_source": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"title": "Conf Source",
"description": "What the word scores are, e.g. phonon2_token_posterior_min; null when no word has one."
},
"computed_at": {
"type": "string",
"title": "Computed At",
"description": "When these counts were made (ISO 8601, UTC)."
}
},
"type": "object",
"required": [
"words",
"words_scored",
"words_checked",
"words_held",
"sentences",
"sentences_held",
"held_share",
"computed_at"
],
"title": "SessionVerification",
"description": "How much of one session's transcript the ORTH-176 rule puts on hold (MEASURED, scope: this transcript revision\nand its stored caption check), so a hold can't silently swallow a whole session."
},
"VideoCoverage": {
"properties": {
"sessions": {
"type": "integer",
"minimum": 0.0,
"title": "Sessions",
"default": 0
},
"hours": {
"type": "number",
"title": "Hours",
"description": "Hours of video, one decimal (includes last-word estimates where sessions[].duration_measured is false).",
"default": 0.0
},
"words": {
"type": "integer",
"minimum": 0.0,
"title": "Words",
"description": "Words transcribed by GovTube.",
"default": 0
},
"first_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "First Event Date"
},
"last_event_date": {
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"title": "Last Event Date"
},
"speaker_labels": {
"type": "integer",
"minimum": 0.0,
"title": "Speaker Labels",
"description": "Speaker labels (voice clusters) across the videos.",
"default": 0
},
"speakers_confirmed": {
"type": "integer",
"minimum": 0.0,
"title": "Speakers Confirmed",
"description": "Of those, the labels a person has confirmed.",
"default": 0
},
"awaiting_review": {
"type": "integer",
"minimum": 0.0,
"title": "Awaiting Review",
"description": "Videos with at least one unconfirmed speaker label, or none at all.",
"default": 0
}
},
"type": "object",
"title": "VideoCoverage",
"description": "Totals over video only (ORTH-207): no official transcript counts here."
}
}
}
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.
Call it yourself
curl for this page
curl "https://apis.io/api/v1/json-schemas/govtube-us-coverage-info"
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.