{"openapi":"3.1.0","info":{"title":"Version Record Public API","version":"1.0.0","description":"Read source-backed software release data. Send GET requests only. Within v1, Version Record can add documented optional fields but will not remove or rename a field, change a field type, or repurpose a path. A breaking change uses a new versioned path. A future deprecation will be documented here before removal.","license":{"name":"CC0-1.0","url":"https://creativecommons.org/publicdomain/zero/1.0/"}},"servers":[{"url":"https://www.versionrecord.com"}],"externalDocs":{"description":"Read the API reference.","url":"https://www.versionrecord.com/api/"},"tags":[{"name":"Records","description":"Read public archive records."},{"name":"Search","description":"Search public archive records."},{"name":"Reference","description":"Read API contract files."}],"paths":{"/api/v1/":{"get":{"tags":["Reference"],"summary":"Get API information","description":"Get canonical API paths and license data.","operationId":"getApiInformation","responses":{"200":{"description":"API information.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/openapi.json":{"get":{"tags":["Reference"],"summary":"Get the OpenAPI document","description":"Get this OpenAPI 3.1 document.","operationId":"getOpenApiDocument","responses":{"200":{"description":"The OpenAPI document.","content":{"application/json":{"schema":{"type":"object"}}}},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/releases/":{"get":{"tags":["Records"],"summary":"List releases","description":"Get recorded software versions and release state. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listReleases","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"vendor","in":"query","description":"Get records from one vendor.","schema":{"type":"string","example":"apple"}},{"name":"platform","in":"query","description":"Get records from one platform.","schema":{"type":"string","example":"ios"}},{"name":"family","in":"query","description":"Get records from one major release family.","schema":{"type":"string","example":"26"}},{"name":"version","in":"query","description":"Get records from one version.","schema":{"type":"string","example":"26.3"}},{"name":"status","in":"query","description":"Get records with one release state.","schema":{"type":"string","example":"released"}},{"name":"provenance_status","in":"query","description":"Get records with one evidence state.","schema":{"type":"string","example":"audit_verified"}},{"name":"updated_since","in":"query","description":"Get records changed at or after one UTC date or time.","schema":{"oneOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2026-07-01T00:00:00Z"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/releasesCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/releases/{id}":{"get":{"tags":["Records"],"summary":"Get one release","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getReleasesRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/releasesDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/events/":{"get":{"tags":["Records"],"summary":"List events","description":"Get dated channel appearances for release versions. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listEvents","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"vendor","in":"query","description":"Get records from one vendor.","schema":{"type":"string","example":"apple"}},{"name":"platform","in":"query","description":"Get records from one platform.","schema":{"type":"string","example":"ios"}},{"name":"family","in":"query","description":"Get records from one major release family.","schema":{"type":"string","example":"26"}},{"name":"version","in":"query","description":"Get records from one version.","schema":{"type":"string","example":"26.3"}},{"name":"version_id","in":"query","description":"Get events for one release record ID.","schema":{"type":"string","example":"release.ios.26.3"}},{"name":"channel","in":"query","description":"Get events from one release channel.","schema":{"type":"string","example":"developer_beta"}},{"name":"availability_state","in":"query","description":"Get events with one availability state.","schema":{"type":"string","example":"available"}},{"name":"build_id","in":"query","description":"Get events for one verified build ID.","schema":{"type":"string","example":"build.23d123"}},{"name":"build_number","in":"query","description":"Get events for one verified build number.","schema":{"type":"string","example":"23d123"}},{"name":"is_revision","in":"query","description":"Get revision events or initial events.","schema":{"type":"boolean","example":false}},{"name":"updated_since","in":"query","description":"Get records changed at or after one UTC date or time.","schema":{"oneOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2026-07-01T00:00:00Z"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/eventsCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/events/{id}":{"get":{"tags":["Records"],"summary":"Get one event","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getEventsRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/eventsDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/builds/":{"get":{"tags":["Records"],"summary":"List builds","description":"Get verified build identities and release links. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listBuilds","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"vendor","in":"query","description":"Get records from one vendor.","schema":{"type":"string","example":"apple"}},{"name":"platform","in":"query","description":"Get records from one platform.","schema":{"type":"string","example":"ios"}},{"name":"family","in":"query","description":"Get records from one major release family.","schema":{"type":"string","example":"26"}},{"name":"version","in":"query","description":"Get records from one version.","schema":{"type":"string","example":"26.3"}},{"name":"version_id","in":"query","description":"Get builds for one release record ID.","schema":{"type":"string","example":"release.ios.26.3"}},{"name":"build_number","in":"query","description":"Get one verified build number.","schema":{"type":"string","example":"23d123"}},{"name":"status","in":"query","description":"Get builds with one availability state.","schema":{"type":"string","example":"available"}},{"name":"provenance_status","in":"query","description":"Get records with one evidence state.","schema":{"type":"string","example":"source_linked"}},{"name":"updated_since","in":"query","description":"Get records changed at or after one UTC date or time.","schema":{"oneOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2026-07-01T00:00:00Z"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/buildsCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/builds/{id}":{"get":{"tags":["Records"],"summary":"Get one build","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getBuildsRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/buildsDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/changes/":{"get":{"tags":["Records"],"summary":"List changes","description":"Get approved change definitions. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listChanges","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"category","in":"query","description":"Get changes from one category.","schema":{"type":"string","example":"developer_api"}},{"name":"updated_since","in":"query","description":"Get records changed at or after one UTC date or time.","schema":{"oneOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2026-07-01T00:00:00Z"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/changesCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/changes/{id}":{"get":{"tags":["Records"],"summary":"Get one change","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getChangesRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/changesDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/occurrences/":{"get":{"tags":["Records"],"summary":"List occurrences","description":"Get changes as they occur in a build or event. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listOccurrences","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"vendor","in":"query","description":"Get records from one vendor.","schema":{"type":"string","example":"apple"}},{"name":"platform","in":"query","description":"Get records from one platform.","schema":{"type":"string","example":"ios"}},{"name":"family","in":"query","description":"Get records from one major release family.","schema":{"type":"string","example":"26"}},{"name":"version","in":"query","description":"Get records from one version.","schema":{"type":"string","example":"26.3"}},{"name":"change_id","in":"query","description":"Get occurrences for one change record ID.","schema":{"type":"string","example":"change.example"}},{"name":"target_kind","in":"query","description":"Get occurrences for one target type.","schema":{"type":"string","example":"event"}},{"name":"target_id","in":"query","description":"Get occurrences for one target record ID.","schema":{"type":"string","example":"event.ios.26.3.beta-4"}},{"name":"action","in":"query","description":"Get occurrences with one change action.","schema":{"type":"string","example":"introduced"}},{"name":"documented_status","in":"query","description":"Get occurrences with one document state.","schema":{"type":"string","example":"documented"}},{"name":"evidence_state","in":"query","description":"Get occurrences with one evidence state.","schema":{"type":"string","example":"confirmed"}},{"name":"updated_since","in":"query","description":"Get records changed at or after one UTC date or time.","schema":{"oneOf":[{"type":"string","format":"date"},{"type":"string","format":"date-time"}],"example":"2026-07-01T00:00:00Z"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/occurrencesCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/occurrences/{id}":{"get":{"tags":["Records"],"summary":"Get one occurrence","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getOccurrencesRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/occurrencesDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/citations/":{"get":{"tags":["Records"],"summary":"List citations","description":"Get public source records and source locators. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listCitations","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"target_kind","in":"query","description":"Get citations for one target type.","schema":{"type":"string","example":"event"}},{"name":"target_id","in":"query","description":"Get citations for one target record ID.","schema":{"type":"string","example":"event.ios.26.3.beta-4"}},{"name":"source_id","in":"query","description":"Get citations for one source record ID.","schema":{"type":"string","example":"source.apple.release-notes"}},{"name":"publisher","in":"query","description":"Get citations from one publisher.","schema":{"type":"string","example":"apple"}},{"name":"source_class","in":"query","description":"Get citations from one source class.","schema":{"type":"string","example":"first_party"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/citationsCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/citations/{id}":{"get":{"tags":["Records"],"summary":"Get one citation","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getCitationsRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/citationsDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/provenance/":{"get":{"tags":["Records"],"summary":"List provenance","description":"Get public audit and correction records. Results use stable source order: platform, version, event date when present, then record ID.","operationId":"listProvenance","parameters":[{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"record_type","in":"query","description":"Get one provenance record type.","schema":{"type":"string","example":"audit_batch"}},{"name":"status","in":"query","description":"Get records with one publication state.","schema":{"type":"string","example":"published"}},{"name":"scope","in":"query","description":"Get records that apply to one platform.","schema":{"type":"string","example":"ios"}},{"name":"reason_category","in":"query","description":"Get corrections with one reason type.","schema":{"type":"string","example":"source_error"}}],"responses":{"200":{"description":"The requested record page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/provenanceCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/provenance/{id}":{"get":{"tags":["Records"],"summary":"Get one provenance record","description":"Use the exact record ID from a list response. Prefer the response links.self path, which is canonical for that ID. A final ID with a period has no trailing slash; other detail IDs do.","operationId":"getProvenanceRecord","parameters":[{"name":"id","in":"path","required":true,"description":"The exact public record ID.","schema":{"type":"string","maxLength":500}}],"responses":{"200":{"description":"The requested record.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/provenanceDetail"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/search/":{"get":{"tags":["Search"],"summary":"Search release records","description":"Find public records that contain all search terms. Results sort by relevance score, newest record date, then title. Search result metadata deliberately excludes full editorial text; use record.api_path for the matching factual record.","operationId":"searchReleaseRecords","parameters":[{"name":"q","in":"query","required":true,"description":"Send one or more letters or numbers. All search terms must match.","schema":{"type":"string","minLength":1,"maxLength":200}},{"name":"limit","in":"query","description":"Set the page size. Use an integer from 1 through 100.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}},{"name":"offset","in":"query","description":"Set the zero-based record offset. Use 0 through 1000000.","schema":{"type":"integer","minimum":0,"maximum":1000000,"default":0}},{"name":"kind","in":"query","description":"Get one record kind.","schema":{"type":"string","example":"event"}},{"name":"vendor","in":"query","description":"Get records from one vendor.","schema":{"type":"string","example":"apple"}},{"name":"platform","in":"query","description":"Get records from one platform.","schema":{"type":"string","example":"ios"}},{"name":"family","in":"query","description":"Get records from one major release family.","schema":{"type":"string","example":"26"}},{"name":"version","in":"query","description":"Get records from one version.","schema":{"type":"string","example":"26.3"}},{"name":"status","in":"query","description":"Get records with one status value.","schema":{"type":"string","example":"available"}},{"name":"channel","in":"query","description":"Get records from one release channel.","schema":{"type":"string","example":"developer_beta"}},{"name":"change_type","in":"query","description":"Get records with one change action.","schema":{"type":"string","example":"introduced"}},{"name":"documented_status","in":"query","description":"Get records with one document state.","schema":{"type":"string","example":"documented"}},{"name":"evidence_state","in":"query","description":"Get records with one evidence state.","schema":{"type":"string","example":"confirmed"}},{"name":"publisher","in":"query","description":"Get records that cite one publisher.","schema":{"type":"string","example":"apple"}}],"responses":{"200":{"description":"The ranked result page.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchCollection"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"429":{"$ref":"#/components/responses/RateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}}},"components":{"schemas":{"releases":{"type":"object","additionalProperties":false,"required":["id","vendor","platform","family","version","status","public_release_date","release_notes_url","provenance_status","updated_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"vendor":{"type":"string","description":"Software vendor that owns the release record."},"platform":{"type":"string","description":"Platform identifier, such as ios or macos."},"family":{"type":"string","description":"Major release family identifier."},"version":{"type":"string","description":"Version number as recorded by the archive."},"status":{"type":"string","description":"Current release or publication status."},"public_release_date":{"type":["string","null"],"format":"date","description":"Date the public software release became available."},"release_notes_url":{"type":["string","null"],"format":"uri","description":"First-party release notes URL when available."},"provenance_status":{"type":"string","description":"Evidence-review state for the record."},"updated_at":{"type":["string","null"],"format":"date-time","description":"UTC time when this record was last updated."}}},"releasesCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/releases"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"releasesDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/releases"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"events":{"type":"object","additionalProperties":false,"required":["id","vendor","platform","family","version_id","version","label","route_alias","channel","appearance_date","version_label_at_appearance","availability_state","build_id","build_number","is_revision","audience","device_scope","region_scope","language_scope","provenance_status","index_eligible","source_count","updated_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"vendor":{"type":"string","description":"Software vendor that owns the release record."},"platform":{"type":"string","description":"Platform identifier, such as ios or macos."},"family":{"type":"string","description":"Major release family identifier."},"version_id":{"type":"string","description":"Public identifier of the related release record."},"version":{"type":"string","description":"Version number as recorded by the archive."},"label":{"type":"string","description":"Human-readable event label."},"route_alias":{"type":"string","description":"Stable route label used by the public site."},"channel":{"type":"string","description":"Release channel, such as developer_beta or public."},"appearance_date":{"type":"string","format":"date","description":"Date the release event appeared in its channel."},"version_label_at_appearance":{"type":["string","null"],"description":"Version label shown when the event appeared."},"availability_state":{"type":"string","description":"Availability state recorded for the event."},"build_id":{"type":["string","null"],"description":"Public identifier of the related verified build, if known."},"build_number":{"type":["string","null"],"description":"Build number associated with this record, if known."},"is_revision":{"type":"boolean","description":"True when this event revises an earlier build appearance."},"audience":{"type":"array","items":{"type":"string"},"description":"Named audiences that could receive the event."},"device_scope":{"type":"array","items":{"type":"string"},"description":"Devices included in the recorded scope."},"region_scope":{"type":"array","items":{"type":"string"},"description":"Regions included in the recorded scope."},"language_scope":{"type":"array","items":{"type":"string"},"description":"Languages included in the recorded scope."},"provenance_status":{"type":"string","description":"Evidence-review state for the record."},"index_eligible":{"type":"boolean","description":"True when the record meets the public indexing gate."},"source_count":{"type":"integer","description":"Number of linked public source records."},"updated_at":{"type":["string","null"],"format":"date-time","description":"UTC time when this record was last updated."}}},"eventsCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/events"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"eventsDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/events"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"builds":{"type":"object","additionalProperties":false,"required":["id","vendor","platform","family","version_id","version","build_number","display_build_number","canonical_slug","status","device_scope","provenance_status","index_eligible","updated_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"vendor":{"type":"string","description":"Software vendor that owns the release record."},"platform":{"type":"string","description":"Platform identifier, such as ios or macos."},"family":{"type":"string","description":"Major release family identifier."},"version_id":{"type":"string","description":"Public identifier of the related release record."},"version":{"type":"string","description":"Version number as recorded by the archive."},"build_number":{"type":"string","description":"Build number associated with this record, if known."},"display_build_number":{"type":"string","description":"Build number formatted for display."},"canonical_slug":{"type":"string","description":"Stable URL slug for the verified build."},"status":{"type":"string","description":"Current release or publication status."},"device_scope":{"type":"array","items":{"type":"string"},"description":"Devices included in the recorded scope."},"provenance_status":{"type":"string","description":"Evidence-review state for the record."},"index_eligible":{"type":"boolean","description":"True when the record meets the public indexing gate."},"updated_at":{"type":["string","null"],"format":"date-time","description":"UTC time when this record was last updated."}}},"buildsCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/builds"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"buildsDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/builds"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"changes":{"type":"object","additionalProperties":false,"required":["id","title","category","updated_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"title":{"type":"string","description":"Human-readable title for the record."},"category":{"type":"string","description":"Change category."},"updated_at":{"type":["string","null"],"format":"date-time","description":"UTC time when this record was last updated."}}},"changesCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/changes"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"changesDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/changes"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"occurrences":{"type":"object","additionalProperties":false,"required":["id","change_id","change_title","action","inheritance","target_kind","target_id","vendor","platform","family","version","build_number","documented_status","evidence_state","applicability","source_count","updated_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"change_id":{"type":"string","description":"Public identifier of the related change definition."},"change_title":{"type":"string","description":"Title of the related change definition."},"action":{"type":"string","description":"How the change occurred, such as introduced or removed."},"inheritance":{"type":"string","description":"How the occurrence inherits release context."},"target_kind":{"type":"string","description":"Type of record cited or changed."},"target_id":{"type":"string","description":"Public identifier of the cited or changed target."},"vendor":{"type":"string","description":"Software vendor that owns the release record."},"platform":{"type":"string","description":"Platform identifier, such as ios or macos."},"family":{"type":"string","description":"Major release family identifier."},"version":{"type":"string","description":"Version number as recorded by the archive."},"build_number":{"type":["string","null"],"description":"Build number associated with this record, if known."},"documented_status":{"type":"string","description":"Documentation state for the change occurrence."},"evidence_state":{"type":"string","description":"Evidence state for the change occurrence."},"applicability":{"type":"array","items":{"type":"string"},"description":"Contexts in which the change applies."},"source_count":{"type":"integer","description":"Number of linked public source records."},"updated_at":{"type":["string","null"],"format":"date-time","description":"UTC time when this record was last updated."}}},"occurrencesCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/occurrences"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"occurrencesDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/occurrences"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"citations":{"type":"object","additionalProperties":false,"required":["id","target_kind","target_id","source_id","source_url","source_title","publisher","author","publication_date","accessed_date","archive_url","source_class","locator"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"target_kind":{"type":"string","description":"Type of record cited or changed."},"target_id":{"type":"string","description":"Public identifier of the cited or changed target."},"source_id":{"type":["string","null"],"description":"Public identifier of the related source record."},"source_url":{"type":"string","format":"uri","description":"Canonical public URL of the source."},"source_title":{"type":["string","null"],"description":"Title of the cited source."},"publisher":{"type":["string","null"],"description":"Publisher of the cited source."},"author":{"type":["string","null"],"description":"Named author of the cited source, if available."},"publication_date":{"type":["string","null"],"format":"date","description":"Date the cited source was published."},"accessed_date":{"type":["string","null"],"format":"date","description":"Date Version Record last accessed the source."},"archive_url":{"type":["string","null"],"format":"uri","description":"Archived source URL, if available."},"source_class":{"type":["string","null"],"description":"Source classification, such as first_party."},"locator":{"type":["string","null"],"description":"Location within the source that supports the record."}}},"citationsCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/citations"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"citationsDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/citations"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"provenance":{"type":"object","additionalProperties":false,"required":["id","record_type","title","status","verification_date","scope","snapshot_identity","affected_target_ids","reason_category","published_at"],"properties":{"id":{"type":"string","description":"Stable public identifier for this record."},"record_type":{"type":"string","description":"Type of provenance record, such as audit_batch."},"title":{"type":"string","description":"Human-readable title for the record."},"status":{"type":"string","description":"Current release or publication status."},"verification_date":{"type":["string","null"],"format":"date","description":"Date an audit or correction was verified."},"scope":{"type":"array","items":{"type":"string"},"description":"Platforms or records covered by this provenance record."},"snapshot_identity":{"type":["string","null"],"description":"Identity of the reviewed source snapshot."},"affected_target_ids":{"type":"array","items":{"type":"string"},"description":"Public IDs affected by this provenance record."},"reason_category":{"type":["string","null"],"description":"Reason category for a correction, if applicable."},"published_at":{"type":["string","null"],"format":"date-time","description":"UTC time the provenance record was published."}}},"provenanceCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/provenance"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"provenanceDetail":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"$ref":"#/components/schemas/provenance"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"Pagination":{"type":"object","additionalProperties":false,"required":["limit","offset","returned","total","next","previous"],"properties":{"limit":{"type":"integer","description":"Requested page size."},"offset":{"type":"integer","description":"Requested record offset."},"returned":{"type":"integer","description":"Records in data."},"total":{"type":"integer","description":"All matching records."},"next":{"type":["string","null"],"description":"Next page path."},"previous":{"type":["string","null"],"description":"Previous page path."}}},"SearchRecord":{"type":"object","additionalProperties":false,"required":["dataset","id","api_path"],"properties":{"dataset":{"type":"string","enum":["releases","events","builds","occurrences"],"description":"Collection that owns the matching record."},"id":{"type":"string","description":"Exact public record ID."},"api_path":{"type":"string","description":"Canonical relative API path for the factual record."}}},"SearchResult":{"type":"object","additionalProperties":false,"required":["search_id","kind","title","href","record","vendor","platform","family","version","date","status","channel","build_number","change_type","documented_status","evidence_state","publishers","score"],"properties":{"search_id":{"type":"string","description":"Stable search-index identifier."},"kind":{"type":"string","enum":["release","event","build","change"]},"title":{"type":"string","description":"Display title of the search match."},"href":{"type":"string","description":"Relative Version Record page path."},"record":{"$ref":"#/components/schemas/SearchRecord"},"vendor":{"type":"string"},"platform":{"type":["string","null"]},"family":{"type":["string","null"]},"version":{"type":["string","null"]},"date":{"type":["string","null"],"format":"date"},"status":{"type":["string","null"]},"channel":{"type":["string","null"]},"build_number":{"type":["string","null"]},"change_type":{"type":["string","null"]},"documented_status":{"type":["string","null"]},"evidence_state":{"type":["string","null"]},"publishers":{"type":"array","items":{"type":"string"}},"score":{"type":"number","description":"Relative relevance score."}}},"SearchCollection":{"type":"object","additionalProperties":false,"required":["api_version","generated_at","data","pagination","links"],"properties":{"api_version":{"type":"string","const":"v1","description":"Major API contract version."},"generated_at":{"type":"string","format":"date-time","description":"UTC time when this response snapshot was created. It is not the last update time for every record."},"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"links":{"type":"object","additionalProperties":{"type":"string"},"description":"Relative canonical API paths related to this response."}}},"Error":{"type":"object","additionalProperties":false,"required":["api_version","error"],"properties":{"api_version":{"type":"string","const":"v1"},"error":{"type":"object","additionalProperties":false,"required":["code","message"],"properties":{"code":{"type":"string","description":"Stable machine-readable error code."},"message":{"type":"string","description":"Short error explanation."},"parameter":{"type":"string","description":"Invalid request parameter, if applicable."}}}}}},"responses":{"BadRequest":{"description":"The request has an invalid parameter.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"NotFound":{"description":"The requested record does not exist.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"RateLimited":{"description":"A configured API rate limit rejected the request.","headers":{"Retry-After":{"description":"Seconds to wait before retrying, when supplied by the limiter.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"Unavailable":{"description":"The API cannot answer this request now.","headers":{"Retry-After":{"description":"Seconds to wait before retrying.","schema":{"type":"integer","minimum":1}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"x-version-record":{"api_version":"v1","export_schema_version":"1.0.0","license_scope":"CC0 applies to the factual structured fields in this export. Original editorial prose, design, media, and third-party material are excluded.","cache_seconds":300}}