Observations
Bounded county observations with explicit value states.
Generated from the public OpenAPI contract.
Bounded county observations with explicit value states.
Query county observations
GET /v1/observations
Operation ID: observations_v1_observations_get
Tag: observations
Current published county observations only. Ordered by measure ID, county FIPS, period start, and observation ID. Opaque page tokens bind to filters and release. Annual surveillance uses 2023. Separately enabled, reviewed January 2025 environmental measures use labeled daily periods, carry environmental_context coverage, and have no supported strata. Environmental context is descriptive weather, with no causal, disease-risk or ML claim. Surveillance context is optional and requires an admitted Data delivery; normalized_state preserves Data semantics and the publisher value remains value. Missing context does not establish absence or temporal comparability. A measure and bounded county/time selection are required; no user sorting or aggregation.
Parameters
measure_id
- Location:
query - Required: yes
- Exact discovery measure ID.
Schema:
{
"type": "string",
"minLength": 1,
"description": "Exact discovery measure ID.",
"examples": [
"case_count_floor_2023"
],
"title": "Measure Id"
}
Examples:
example
"case_count_floor_2023"
geography_type
- Location:
query - Required: yes
Schema:
{
"$ref": "#/components/schemas/GeographyType"
}
geography_id
- Location:
query - Required: yes
- Repeat for 1-500 county FIPS strings; preserve leading zeros.
Schema:
{
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"maxItems": 500,
"description": "Repeat for 1-500 county FIPS strings; preserve leading zeros.",
"examples": [
[
"08001"
]
],
"title": "Geography Id"
}
Examples:
example
[
"08001"
]
year
- Location:
query - Required: no
- Year or complete date range, not both; current published year is 2023.
Schema:
{
"anyOf": [
{
"type": "integer",
"maximum": 2100,
"minimum": 1900
},
{
"type": "null"
}
],
"description": "Year or complete date range, not both; current published year is 2023.",
"examples": [
2023
],
"title": "Year"
}
Examples:
example
2023
start_date
- Location:
query - Required: no
- Inclusive period start; requires end_date and excludes year.
Schema:
{
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"description": "Inclusive period start; requires end_date and excludes year.",
"examples": [
"2023-01-01"
],
"title": "Start Date"
}
Examples:
example
"2023-01-01"
end_date
- Location:
query - Required: no
- Inclusive period end; requires start_date and excludes year.
Schema:
{
"anyOf": [
{
"type": "string",
"format": "date"
},
{
"type": "null"
}
],
"description": "Inclusive period end; requires start_date and excludes year.",
"examples": [
"2023-12-31"
],
"title": "End Date"
}
Examples:
example
"2023-12-31"
stratification
- Location:
query - Required: no
- Current release has no strata; unsupported selections fail explicitly.
Schema:
{
"anyOf": [
{
"type": "array",
"items": {
"type": "string"
}
},
{
"type": "null"
}
],
"description": "Current release has no strata; unsupported selections fail explicitly.",
"title": "Stratification"
}
page_size
- Location:
query - Required: no
- Items per page; defaults to 100, configured maximum at most 500.
Schema:
{
"anyOf": [
{
"type": "integer",
"maximum": 500,
"minimum": 1
},
{
"type": "null"
}
],
"description": "Items per page; defaults to 100, configured maximum at most 500.",
"examples": [
100
],
"title": "Page Size"
}
Examples:
example
100
page_token
- Location:
query - Required: no
- Opaque next_page_token; retain query filters and release.
Schema:
{
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Opaque next_page_token; retain query filters and release.",
"title": "Page Token"
}
Responses
200
Bounded current-release observations.
application/json
Schema: CollectionEnvelope_Observation_ (#/components/schemas/CollectionEnvelope_Observation_)
Schema:
{
"$ref": "#/components/schemas/CollectionEnvelope_Observation_"
}
Examples:
empty
Illustrative exhausted page; no observations matched
{
"data": [],
"meta": {
"next_page_token": null,
"response_at": "2026-01-01T00:00:00Z"
},
"links": {
"self": null
}
}
missing
Synthetic missing-value example; not a published county result
{
"data": [
{
"observation_id": "example-observation",
"measure_id": "case_count_floor_2023",
"geography": {
"geography_type": "county",
"geography_id": "08001"
},
"period_start": "2023-01-01",
"period_end": "2023-12-31",
"temporal_grain": "year",
"value": null,
"value_state": "MISSING",
"unit": "cases",
"denominator": null,
"source_id": "human",
"methodology_id": null,
"methodology_version": "example-transform-v1",
"semantic_version": "example-semantic-v1",
"release_id": "example-release",
"provenance_ref": "example-observation",
"limitations": [
"Synthetic documentation example; no measured value is asserted."
],
"evidence": {
"resource_type": "observation",
"resource_id": "example-observation"
}
}
],
"meta": {
"next_page_token": null,
"response_at": "2026-01-01T00:00:00Z"
},
"links": {
"self": null
}
}
400
INVALID_REQUEST, UNSUPPORTED_FILTER, UNSUPPORTED_STRATIFICATION, or QUERY_TOO_BROAD; application/problem+json
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-400",
"title": "Request failed",
"status": 400,
"detail": "INVALID_REQUEST, UNSUPPORTED_FILTER, UNSUPPORTED_STRATIFICATION, or QUERY_TOO_BROAD; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id",
"code": "INVALID_REQUEST"
}
404
RESOURCE_NOT_FOUND; application/problem+json
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-404",
"title": "Request failed",
"status": 404,
"detail": "RESOURCE_NOT_FOUND; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id",
"code": "RESOURCE_NOT_FOUND"
}
413
GET request body rejected; application/problem+json
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-413",
"title": "Request failed",
"status": 413,
"detail": "GET request body rejected; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id",
"code": "INVALID_REQUEST"
}
414
Query string too long; application/problem+json
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-414",
"title": "Request failed",
"status": 414,
"detail": "Query string too long; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id",
"code": "INVALID_REQUEST"
}
429
Rate limited; Retry-After; application/problem+json
Headers
Retry-After
- Required: no
- Seconds before retry when supplied by the service.
- Type:
string
Schema:
{
"type": "string"
}
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-429",
"title": "Request failed",
"status": 429,
"detail": "Rate limited; Retry-After; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id",
"code": "RATE_LIMITED"
}
503
Canonical data service unavailable; application/problem+json
Headers
Retry-After
- Required: no
- Seconds before retry when supplied by the service.
- Type:
string
Schema:
{
"type": "string"
}
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}
Examples:
illustrative
Synthetic error example
{
"type": "https://carawaylabs.com/problems/http-503",
"title": "Request failed",
"status": 503,
"detail": "Canonical data service unavailable; application/problem+json",
"instance": "/v1/observations",
"request_id": "example-request-id"
}
4XX
Canonical client errors use application/problem+json.
application/problem+json
Schema: ProblemDetails (#/components/schemas/ProblemDetails)
Schema:
{
"$ref": "#/components/schemas/ProblemDetails"
}