AmeriCorps · OpenAPI Overlay 1.0.0
AmeriCorps Datasets API — API Evangelist enhancements
4 actions
4 updates
update
extends
../openapi/americorps-datasets-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for AmeriCorps's API. It is a proposal applied on top of the contract, not a document AmeriCorps publishes.
What the actions change
x-agentic-accessresponsesx-agent-notesx-type-fidelity-warningx-paginationx-cachingx-use-whenx-importance
Targets 4
$.info
$.paths['/resource/{dataset_id}.json'].get
$.paths['/resource/{dataset_id}.csv'].get
$.components.parameters.SoqlOrder
OpenAPI Overlay
overlay: 1.0.0
info:
title: AmeriCorps Datasets API — API Evangelist enhancements
version: 1.0.0
extends: ../openapi/americorps-datasets-api-openapi.yml
x-provenance:
generated: '2026-09-02'
method: generated
source: >-
API Evangelist enrichment pass. Every example below is a REAL response captured from
data.americorps.gov on 2026-09-02; every header and status added is one that was
observed on the wire or documented at dev.socrata.com. Nothing here is invented, and the
underlying OpenAPI is not mutated.
actions:
- target: $.info
update:
x-agent-notes: >-
Read-only. Anonymous access returns full data. Row schema is per-dataset and is NOT
in this contract — discover it at runtime from X-SODA2-Fields / X-SODA2-Types.
x-type-fidelity-warning: >-
Numeric columns are returned as JSON STRINGS by this endpoint ("all":"0.9035") even
though X-SODA2-Types declares them "number". The OData v4 representation of the same
dataset (https://data.americorps.gov/api/odata/v4/{dataset_id}) returns real JSON
numbers. A client that assumes numbers here will fail.
- target: $.paths['/resource/{dataset_id}.json'].get
update:
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
x-pagination:
style: limit-offset
params:
- $limit
- $offset
max_limit: 50000
envelope: none
warning: >-
Always pair $limit/$offset with an explicit $order. Without a stable sort, paging a
mutating dataset can repeat or skip rows.
x-caching:
etag: true
last_modified: true
detail: >-
Weak ETag and Last-Modified are returned. Use If-None-Match / If-Modified-Since —
most AmeriCorps datasets change a few times a year, so this is the largest single
saving available to a polling client.
responses:
'200':
x-example-source: >-
https://data.americorps.gov/resource/fzpw-9z8s.json?$limit=2 (HTTP 200, 2026-09-02)
x-example:
- code: MOTSKILLS
all: '0.9035'
asn: '0.9020'
nccc: '0.9199'
vista: '0.9234'
- code: MOTIDEALS
all: '0.8731'
asn: '0.8723'
nccc: '0.7911'
vista: '0.9138'
x-observed-headers:
X-SODA2-Fields: '["code","all","asn","nccc","vista"]'
X-SODA2-Types: '["text","number","number","number","number"]'
X-SODA2-Data-Out-Of-Date: 'false'
X-SODA2-Truth-Last-Modified: Tue, 21 Jul 2026 17:49:02 GMT
ETag: weak entity tag
Access-Control-Allow-Origin: '*'
X-Socrata-Region: aws-us-east-1-fedramp-prod
'400':
x-example-source: >-
https://data.americorps.gov/resource/fzpw-9z8s.json?$select=nosuchcolumn
(HTTP 400, 2026-09-02)
x-example:
message: >-
Query coordinator error: query.soql.no-such-column; No such column: nosuchcolumn
errorCode: query.soql.no-such-column
data:
column: nosuchcolumn
dataset: juliett.212871
position:
row: 1
column: 8
line: SELECT `nosuchcolumn`
x-note: >-
Note the key is errorCode, not code, and there is no `error` boolean on this shape.
'404':
x-example-source: 'https://data.americorps.gov/resource/zzzz-zzzz.json (HTTP 404, 2026-09-02)'
x-example:
code: dataset.missing
error: true
message: Not found
data:
id: zzzz-zzzz
'429':
description: >-
Too Many Requests. Documented at dev.socrata.com/docs/response-codes.html.
Not declared in the source contract.
- target: $.paths['/resource/{dataset_id}.csv'].get
update:
x-agentic-access:
action-class: connected
consequence: read
subject: optional
token:
max-ttl: 3600
audit: none
x-use-when: Bulk export. Preferred over the JSON representation for whole-dataset pulls.
responses:
'200':
x-example-source: >-
https://data.americorps.gov/resource/fzpw-9z8s.csv?$limit=2 (HTTP 200, 2026-09-02)
x-example: |
"code","all","asn","nccc","vista"
"MOTSKILLS","0.9035","0.9020","0.9199","0.9234"
"MOTIDEALS","0.8731","0.8723","0.7911","0.9138"
- target: $.components.parameters.SoqlOrder
update:
x-importance: >-
Effectively required whenever $offset is used. Socrata does not guarantee a stable
row order without it.