EAC Content JSON:API
A live, anonymous, read-only JSON:API 1.0 surface served by the EAC's own Drupal 10 web platform at https://www.eac.gov/jsonapi. The EAC does not document, advertise or link to it from any developer page, and it has no developer portal — but the surface is real: probed 2026-09-06, the resource index returned HTTP 200 with 216 entity--bundle link relations, 210 of which answered with application/vnd.api+json and 86 of which returned substantive records. It carries the machine form of the EAC's regulatory estate — 117 voting systems in the Testing and Certification Program, 8 accredited Voting System Test Laboratories, 20 registered manufacturers, 5 VVSG testing standards, 275 Engineering Change Orders, 27 Notices of Clarification, 155 NVRA state pages, 113 state election information records, 56 per-state registration and voting records, HAVA Election Security and state grant financials, and 561 Clearinghouse Award entries. It is read-only by site configuration: every write verb returns HTTP 405 "JSON:API is configured to accept only read operations". No key, no account, no OAuth. The OpenAPI description in this repository was DERIVED BY API EVANGELIST from those live probes; the EAC publishes none.
GET
/
JSON:API resource-type index
#
GET
/block/block
List block--block resources
#
GET
/block/block/{id}
Get one block--block resource by UUID
#
GET
/block_content/basic
List block_content--basic resources
#
GET
/block_content/basic/{id}
Get one block_content--basic resource by UUID
#
GET
/block_content/card
List block_content--card resources
#
GET
/block_content/card/{id}
Get one block_content--card resource by UUID
#
GET
/block_content/cta
List block_content--cta resources
#
GET
/block_content/cta/{id}
Get one block_content--cta resource by UUID
#
GET
/block_content/link_list
List block_content--link_list resources
#
GET
/block_content/link_list/{id}
Get one block_content--link_list resource by UUID
#
GET
/file/file
List file--file resources
#
GET
/file/file/{id}
Get one file--file resource by UUID
#
GET
/node/article
List node--article resources
#
GET
/node/article/{id}
Get one node--article resource by UUID
#
GET
/node/clearinghouse_awards
List node--clearinghouse_awards resources
#
GET
/node/clearinghouse_awards/{id}
Get one node--clearinghouse_awards resource by UUID
#
GET
/node/competencies_wheel
List node--competencies_wheel resources
#
GET
/node/competencies_wheel/{id}
Get one node--competencies_wheel resource by UUID
#
GET
/node/engineering_change_order
List node--engineering_change_order resources
#
GET
/node/engineering_change_order/{id}
Get one node--engineering_change_order resource by UUID
#
GET
/node/es_funds
List node--es_funds resources
#
GET
/node/es_funds/{id}
Get one node--es_funds resource by UUID
#
GET
/node/faqs
List node--faqs resources
#
GET
/node/faqs/{id}
Get one node--faqs resource by UUID
#
GET
/node/landing_page
List node--landing_page resources
#
GET
/node/landing_page/{id}
Get one node--landing_page resource by UUID
#
GET
/node/manufacturer
List node--manufacturer resources
#
GET
/node/manufacturer/{id}
Get one node--manufacturer resource by UUID
#
GET
/node/notice_of_clarification
List node--notice_of_clarification resources
#
GET
/node/notice_of_clarification/{id}
Get one node--notice_of_clarification resource by UUID
#
GET
/node/nvra
List node--nvra resources
#
GET
/node/nvra/{id}
Get one node--nvra resource by UUID
#
GET
/node/page
List node--page resources
#
GET
/node/page/{id}
Get one node--page resource by UUID
#
GET
/node/state_funds
List node--state_funds resources
#
GET
/node/state_funds/{id}
Get one node--state_funds resource by UUID
#
GET
/node/testing_standard
List node--testing_standard resources
#
GET
/node/testing_standard/{id}
Get one node--testing_standard resource by UUID
#
GET
/node/video
List node--video resources
#
GET
/node/video/{id}
Get one node--video resource by UUID
#
GET
/node/voting_system
List node--voting_system resources
#
GET
/node/voting_system/{id}
Get one node--voting_system resource by UUID
#
GET
/node/voting_system_test_lab
List node--voting_system_test_lab resources
#
GET
/node/voting_system_test_lab/{id}
Get one node--voting_system_test_lab resource by UUID
#
GET
/node_type/node_type
List node_type--node_type resources
#
GET
/node_type/node_type/{id}
Get one node_type--node_type resource by UUID
#
GET
/paragraph/accordion
List paragraph--accordion resources
#
GET
/paragraph/accordion/{id}
Get one paragraph--accordion resource by UUID
#
GET
/paragraph/accordion_item
List paragraph--accordion_item resources
#
GET
/paragraph/accordion_item/{id}
Get one paragraph--accordion_item resource by UUID
#
GET
/paragraph/block_embed
List paragraph--block_embed resources
#
GET
/paragraph/block_embed/{id}
Get one paragraph--block_embed resource by UUID
#
GET
/paragraph/body
List paragraph--body resources
#
GET
/paragraph/body/{id}
Get one paragraph--body resource by UUID
#
GET
/paragraph/card
List paragraph--card resources
#
GET
/paragraph/card/{id}
Get one paragraph--card resource by UUID
#
GET
/paragraph/cards
List paragraph--cards resources
#
GET
/paragraph/cards/{id}
Get one paragraph--cards resource by UUID
#
GET
/paragraph/column
List paragraph--column resources
#
GET
/paragraph/column/{id}
Get one paragraph--column resource by UUID
#
GET
/paragraph/cta
List paragraph--cta resources
#
GET
/paragraph/cta/{id}
Get one paragraph--cta resource by UUID
#
GET
/paragraph/hero
List paragraph--hero resources
#
GET
/paragraph/hero/{id}
Get one paragraph--hero resource by UUID
#
GET
/paragraph/icon_list
List paragraph--icon_list resources
#
GET
/paragraph/icon_list/{id}
Get one paragraph--icon_list resource by UUID
#
GET
/paragraph/icon_list_item
List paragraph--icon_list_item resources
#
GET
/paragraph/icon_list_item/{id}
Get one paragraph--icon_list_item resource by UUID
#
GET
/paragraph/link
List paragraph--link resources
#
GET
/paragraph/link/{id}
Get one paragraph--link resource by UUID
#
GET
/paragraph/link_list
List paragraph--link_list resources
#
GET
/paragraph/link_list/{id}
Get one paragraph--link_list resource by UUID
#
GET
/paragraph/multi_column
List paragraph--multi_column resources
#
GET
/paragraph/multi_column/{id}
Get one paragraph--multi_column resource by UUID
#
GET
/paragraph/statistic
List paragraph--statistic resources
#
GET
/paragraph/statistic/{id}
Get one paragraph--statistic resource by UUID
#
GET
/paragraph/statistics
List paragraph--statistics resources
#
GET
/paragraph/statistics/{id}
Get one paragraph--statistics resource by UUID
#
GET
/paragraphs_type/paragraphs_type
List paragraphs_type--paragraphs_type resources
#
GET
/paragraphs_type/paragraphs_type/{id}
Get one paragraphs_type--paragraphs_type resource by UUID
#
GET
/search_page/search_page
List search_page--search_page resources
#
GET
/search_page/search_page/{id}
Get one search_page--search_page resource by UUID
#
GET
/taxonomy_term/article_type
List taxonomy_term--article_type resources
#
GET
/taxonomy_term/article_type/{id}
Get one taxonomy_term--article_type resource by UUID
#
GET
/taxonomy_term/blog_topics
List taxonomy_term--blog_topics resources
#
GET
/taxonomy_term/blog_topics/{id}
Get one taxonomy_term--blog_topics resource by UUID
#
GET
/taxonomy_term/certification_statuses
List taxonomy_term--certification_statuses resources
#
GET
/taxonomy_term/certification_statuses/{id}
Get one taxonomy_term--certification_statuses resource by UUID
#
GET
/taxonomy_term/ch_award
List taxonomy_term--ch_award resources
#
GET
/taxonomy_term/ch_award/{id}
Get one taxonomy_term--ch_award resource by UUID
#
GET
/taxonomy_term/ch_category
List taxonomy_term--ch_category resources
#
GET
/taxonomy_term/ch_category/{id}
Get one taxonomy_term--ch_category resource by UUID
#
GET
/taxonomy_term/ch_office
List taxonomy_term--ch_office resources
#
GET
/taxonomy_term/ch_office/{id}
Get one taxonomy_term--ch_office resource by UUID
#
GET
/taxonomy_term/ch_state
List taxonomy_term--ch_state resources
#
GET
/taxonomy_term/ch_state/{id}
Get one taxonomy_term--ch_state resource by UUID
#
GET
/taxonomy_term/competencies_wheel_categories
List taxonomy_term--competencies_wheel_categories resources
#
GET
/taxonomy_term/competencies_wheel_categories/{id}
Get one taxonomy_term--competencies_wheel_categories resource by UUID
#
GET
/taxonomy_term/country
List taxonomy_term--country resources
#
GET
/taxonomy_term/country/{id}
Get one taxonomy_term--country resource by UUID
#
GET
/taxonomy_term/document_category
List taxonomy_term--document_category resources
#
GET
/taxonomy_term/document_category/{id}
Get one taxonomy_term--document_category resource by UUID
#
GET
/taxonomy_term/eac_grants_faq_test
List taxonomy_term--eac_grants_faq_test resources
#
GET
/taxonomy_term/eac_grants_faq_test/{id}
Get one taxonomy_term--eac_grants_faq_test resource by UUID
#
GET
/taxonomy_term/event_categories
List taxonomy_term--event_categories resources
#
GET
/taxonomy_term/event_categories/{id}
Get one taxonomy_term--event_categories resource by UUID
#
GET
/taxonomy_term/faq_categories
List taxonomy_term--faq_categories resources
#
GET
/taxonomy_term/faq_categories/{id}
Get one taxonomy_term--faq_categories resource by UUID
#
GET
/taxonomy_term/faq_section
List taxonomy_term--faq_section resources
#
GET
/taxonomy_term/faq_section/{id}
Get one taxonomy_term--faq_section resource by UUID
#
GET
/taxonomy_term/faq_sub_categories
List taxonomy_term--faq_sub_categories resources
#
GET
/taxonomy_term/faq_sub_categories/{id}
Get one taxonomy_term--faq_sub_categories resource by UUID
#
GET
/taxonomy_term/glossary_languages
List taxonomy_term--glossary_languages resources
#
GET
/taxonomy_term/glossary_languages/{id}
Get one taxonomy_term--glossary_languages resource by UUID
#
GET
/taxonomy_term/keyword_categories
List taxonomy_term--keyword_categories resources
#
GET
/taxonomy_term/keyword_categories/{id}
Get one taxonomy_term--keyword_categories resource by UUID
#
GET
/taxonomy_term/keywords
List taxonomy_term--keywords resources
#
GET
/taxonomy_term/keywords/{id}
Get one taxonomy_term--keywords resource by UUID
#
GET
/taxonomy_term/manufacturer_types
List taxonomy_term--manufacturer_types resources
#
GET
/taxonomy_term/manufacturer_types/{id}
Get one taxonomy_term--manufacturer_types resource by UUID
#
GET
/taxonomy_term/news_category
List taxonomy_term--news_category resources
#
GET
/taxonomy_term/news_category/{id}
Get one taxonomy_term--news_category resource by UUID
#
GET
/taxonomy_term/nvra_languages
List taxonomy_term--nvra_languages resources
#
GET
/taxonomy_term/nvra_languages/{id}
Get one taxonomy_term--nvra_languages resource by UUID
#
GET
/taxonomy_term/nvra_states
List taxonomy_term--nvra_states resources
#
GET
/taxonomy_term/nvra_states/{id}
Get one taxonomy_term--nvra_states resource by UUID
#
GET
/taxonomy_term/ovr_status
List taxonomy_term--ovr_status resources
#
GET
/taxonomy_term/ovr_status/{id}
Get one taxonomy_term--ovr_status resource by UUID
#
GET
/taxonomy_term/payment_years
List taxonomy_term--payment_years resources
#
GET
/taxonomy_term/payment_years/{id}
Get one taxonomy_term--payment_years resource by UUID
#
GET
/taxonomy_term/person_type
List taxonomy_term--person_type resources
#
GET
/taxonomy_term/person_type/{id}
Get one taxonomy_term--person_type resource by UUID
#
GET
/taxonomy_term/resource_type
List taxonomy_term--resource_type resources
#
GET
/taxonomy_term/resource_type/{id}
Get one taxonomy_term--resource_type resource by UUID
#
GET
/taxonomy_term/section
List taxonomy_term--section resources
#
GET
/taxonomy_term/section/{id}
Get one taxonomy_term--section resource by UUID
#
GET
/taxonomy_term/staff_departments
List taxonomy_term--staff_departments resources
#
GET
/taxonomy_term/staff_departments/{id}
Get one taxonomy_term--staff_departments resource by UUID
#
GET
/taxonomy_term/state_voter_options
List taxonomy_term--state_voter_options resources
#
GET
/taxonomy_term/state_voter_options/{id}
Get one taxonomy_term--state_voter_options resource by UUID
#
GET
/taxonomy_term/states
List taxonomy_term--states resources
#
GET
/taxonomy_term/states/{id}
Get one taxonomy_term--states resource by UUID
#
GET
/taxonomy_term/test_lab_statuses
List taxonomy_term--test_lab_statuses resources
#
GET
/taxonomy_term/test_lab_statuses/{id}
Get one taxonomy_term--test_lab_statuses resource by UUID
#
GET
/taxonomy_term/video_category
List taxonomy_term--video_category resources
#
GET
/taxonomy_term/video_category/{id}
Get one taxonomy_term--video_category resource by UUID
#
GET
/taxonomy_term/voting_products
List taxonomy_term--voting_products resources
#
GET
/taxonomy_term/voting_products/{id}
Get one taxonomy_term--voting_products resource by UUID
#
Documentation
Specifications
Other Resources
Every API 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 apis
7 MCP tools reach this
find_apisBrowse and filter every API in the catalog.
get_api_artifactsOne API's artifacts, grouped by type.
get_openapiThe primary OpenAPI for this API.
find_similar_apisAPIs that look like this one.
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/eac"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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.
openapi: 3.1.0
info:
title: U.S. Election Assistance Commission Content JSON:API
version: '1.0'
summary: Anonymous, read-only JSON:API 1.0 over the EAC's public content estate at www.eac.gov — voting
system certifications, test labs, manufacturers, NVRA state pages, HAVA grant financials and the Clearinghouse
Awards.
description: 'The U.S. Election Assistance Commission publishes no developer portal and no OpenAPI description.
It does, however, serve a live, entirely anonymous, standards-conformant JSON:API 1.0 surface at https://www.eac.gov/jsonapi,
generated by Drupal 10 (the `x-generator` response header says so) and hosted on Acquia behind Cloudflare.
THIS DOCUMENT IS DERIVED BY API EVANGELIST FROM LIVE PROBES, NOT PUBLISHED BY THE EAC. Every path
below corresponds to a `links` entry in the resource-type index document fetched from https://www.eac.gov/jsonapi
on 2026-09-06, and every path in this document was individually requested anonymously on that date
and returned HTTP 200 with `content-type: application/vnd.api+json` AND at least one resource object.
Resource types the index advertises but which returned an empty `data` array, or which Drupal omitted
for insufficient authorisation, are recorded in `x-probe.excluded` rather than described here.
THE SURFACE IS READ-ONLY BY CONFIGURATION. An anonymous `POST /jsonapi/node/article` on 2026-09-06
returned HTTP 405 with the JSON:API error detail "JSON:API is configured to accept only read operations."
No write, create, update or delete operation exists on this surface for any caller, credentialed or
not, so this document describes GET only.
WHAT IT EXPOSES that is of public interest: the EAC''s voting system certification programme (117
certified/withdrawn voting systems, 20 registered manufacturers, 8 accredited Voting System Test Laboratories,
5 testing standards, 275 engineering change orders, 27 Notices of Clarification), the National Voter
Registration Act state pages (155), state election information and online-voter-registration status
(113), state voter registration deadlines and lookup links (56), HAVA Election Security and state
grant financial reporting (56 + 56), 561 Clearinghouse Award entries, 495 news articles and 378 FAQs,
plus the taxonomies behind them.
WHAT IT DOES NOT EXPOSE: the Election Administration and Voting Survey (EAVS) microdata. EAVS is distributed
as bulk CSV/Excel/SPSS/Stata/SAS downloads catalogued in https://www.eac.gov/data.json (Project Open
Data v1.1), not through this API. `node--jurisdiction_data`, `paragraph--eavs_data` and `taxonomy_term--eavs_states`
are advertised by the index but return empty collections.'
contact:
name: U.S. Election Assistance Commission
url: https://www.eac.gov/contact
license:
name: U.S. Government Work — generally public domain under 17 U.S.C. 105
url: https://www.eac.gov/main/privacy-statement
x-derived-by: API Evangelist enrichment pipeline
x-derived-from: https://www.eac.gov/jsonapi
x-derived-on: '2026-09-06'
x-publisher-provided: false
servers:
- url: https://www.eac.gov/jsonapi
description: Production JSON:API entry point. Public, anonymous, read-only.
security: []
x-provenance:
generated: '2026-09-06'
method: probed
source: https://www.eac.gov/jsonapi
author: API Evangelist
x-probe:
fetched: '2026-09-06'
index:
url: https://www.eac.gov/jsonapi
http_status: 200
content_type: application/vnd.api+json
resource_types_advertised: 215
described: 86
excluded:
empty_collection:
- ai_file--ai_file
- ai_guardrail--ai_guardrail
- ai_guardrail_set--ai_guardrail_set
- ai_prompt--ai_prompt
- ai_prompt_type--ai_prompt_type
- comment--comment
- facets_summary--facets_summary
- feeds_feed--cares_grants
- feeds_feed--engineering_change_orders
- feeds_feed--register_vote_and_contact_state
- feeds_feed--state_requirement_payments
- feeds_subscription--feeds_subscription
- flagging--following
- key_config_override--key_config_override
- media--galleries
- media_bulk_config--media_bulk_config
- node--jurisdiction_data
- paragraph--eavs_data
- paragraph--poll_worker_information
- paragraph--voting_policies_information
- paragraph--voting_technology_information
- search_api_task--search_api_task
- taxonomy_term--ai_tones
- taxonomy_term--eavs_states
- taxonomy_term--galleries
- taxonomy_term--media_directories
- taxonomy_term--program_type
- taxonomy_term--quick_tips
- taxonomy_term--subscribers
- taxonomy_term--tags
- taxonomy_term--test
- taxonomy_term--uswds_classes
- vote--reaction_10_yes
- vote--reaction_20_somewhat
- vote--reaction_30_no
- vote--vote
- vote_result--vote_result
- webform_submission--2022_national_clearinghouse_awar
- webform_submission--2023_national_clearinghouse_awar
- webform_submission--bloggers_contact_form
- webform_submission--clearie_submission_form
- webform_submission--contact
- webform_submission--contact_us
- webform_submission--demo_webform
- webform_submission--e_alert
- webform_submission--faq
- webform_submission--sign_up_for_eac_updates
- webform_submission--sign_up_for_the_eac_newsletter
- webform_submission--sponsors_form
- webform_submission--staff_contact
- webform_submission--template_contact
- webform_submission--template_employee_evaluation
- webform_submission--template_feedback
- webform_submission--template_issue
- webform_submission--template_job_application
- webform_submission--template_job_seeker_profile
- webform_submission--template_registration
- webform_submission--template_session_evaluation
- webform_submission--template_subscribe
- webform_submission--template_user_profile
- webform_submission--vulnerability_disclosure_policy
omitted_insufficient_authorization:
- action--action
- base_field_override--base_field_override
- behavior_settings--behavior_settings
- block_content_type--block_content_type
- captcha_point--captcha_point
- comment_type--comment_type
- config_split--config_split
- configurable_language--configurable_language
- crop--focal_point
- crop_type--crop_type
- editor--editor
- embed_button--embed_button
- entity_browser--entity_browser
- entity_form_display--entity_form_display
- entity_form_mode--entity_form_mode
- entity_view_display--entity_view_display
- entity_view_mode--entity_view_mode
- facets_facet--facets_facet
- facets_facet_source--facets_facet_source
- feeds_feed--es_funds
- feeds_feed--notice_of_clarification
- feeds_feed_type--feeds_feed_type
- field_config--field_config
- field_storage_config--field_storage_config
- filter_format--filter_format
- flag--flag
- flexslider--flexslider
- google_tag_container--google_tag_container
- image_style--image_style
- imce_profile--imce_profile
- key--key
- language_content_settings--language_content_settings
- linkit_profile--linkit_profile
- media--archive
- menu_link_content--menu_link_content
- metatag_defaults--metatag_defaults
- node--person
- node--slideshow_slide
- node--state_payment_requirements
- path_alias--path_alias
- pathauto_pattern--pathauto_pattern
- rdf_mapping--rdf_mapping
- redirect--redirect
- responsive_image_style--responsive_image_style
- rest_resource_config--rest_resource_config
- search_api_index--search_api_index
- search_api_server--search_api_server
- shortcut--default
- shortcut_set--shortcut_set
- simple_sitemap--simple_sitemap
- simple_sitemap_type--simple_sitemap_type
- sitewide_alert--sitewide_alert
- slick--slick
- taxonomy_term--uswds_breakpoints
- taxonomy_vocabulary--taxonomy_vocabulary
- token_custom_type--token_custom_type
- tour--tour
- user_role--user_role
- view--view
- vote_type--vote_type
- webform--webform
- webform_options--webform_options
- workflow--workflow
non_200:
contact_message--feedback: 405
contact_message--personal: 405
node--event: 503
token_custom--custom: 503
user--user: 503
write_surface:
probe: POST https://www.eac.gov/jsonapi/node/article
http_status: 405
detail: JSON:API is configured to accept only read operations.
response_headers_observed:
- 'x-generator: Drupal 10'
- 'cache-control: max-age=31536000, public'
- etag
- last-modified
- x-drupal-cache
- x-request-id
- 'server: cloudflare'
- 'via: varnish'
rate_limit_headers_observed: []
tags:
- name: block
description: Theme block placements.
- name: block_content
description: Reusable content blocks.
- name: contact_form
description: Contact form definitions.
- name: date_format
description: Site date format configuration.
- name: file
description: File entities backing media items.
- name: media
description: Media entities — documents (PDF reports, certifications, test reports), images and remote
video.
- name: media_type
description: Media bundle definitions.
- name: menu
description: Site menus.
- name: node
description: Content nodes — the EAC's substantive records (voting systems, manufacturers, test labs,
NVRA, grants, news, FAQs).
- name: node_type
description: Node bundle definitions.
- name: paragraph
description: Layout paragraph components composing EAC landing pages.
- name: paragraphs_type
description: Paragraph bundle definitions.
- name: search_page
description: Search page configuration.
- name: taxonomy_term
description: Controlled vocabularies the EAC maintains — states, certification statuses, manufacturer
types, test lab statuses, document and news categories.
paths:
/:
get:
operationId: getResourceIndex
summary: JSON:API resource-type index
tags:
- node
description: 'The JSON:API entry point. Returns a `links` map of every advertised resource type
in `entity--bundle` form. Probed 2026-09-06: HTTP 200, application/vnd.api+json, 21878 bytes,
215 resource-type link relations.'
responses:
'200':
description: Resource-type index document
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndexDocument'
/block/block:
get:
operationId: listBlockBlock
summary: List block--block resources
tags:
- block
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/block/block?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/block/block/{id}:
get:
operationId: getBlockBlock
summary: Get one block--block resource by UUID
tags:
- block
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/block_content/basic:
get:
operationId: listBlockContentBasic
summary: List block_content--basic resources
tags:
- block_content
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/block_content/basic?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/block_content/basic/{id}:
get:
operationId: getBlockContentBasic
summary: Get one block_content--basic resource by UUID
tags:
- block_content
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/block_content/card:
get:
operationId: listBlockContentCard
summary: List block_content--card resources
tags:
- block_content
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/block_content/card?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/block_content/card/{id}:
get:
operationId: getBlockContentCard
summary: Get one block_content--card resource by UUID
tags:
- block_content
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/block_content/cta:
get:
operationId: listBlockContentCta
summary: List block_content--cta resources
tags:
- block_content
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/block_content/cta?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/block_content/cta/{id}:
get:
operationId: getBlockContentCta
summary: Get one block_content--cta resource by UUID
tags:
- block_content
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/block_content/link_list:
get:
operationId: listBlockContentLinkList
summary: List block_content--link_list resources
tags:
- block_content
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/block_content/link_list?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/block_content/link_list/{id}:
get:
operationId: getBlockContentLinkList
summary: Get one block_content--link_list resource by UUID
tags:
- block_content
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/contact_form/contact_form:
get:
operationId: listContactFormContactForm
summary: List contact_form--contact_form resources
tags:
- contact_form
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/contact_form/contact_form?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/contact_form/contact_form/{id}:
get:
operationId: getContactFormContactForm
summary: Get one contact_form--contact_form resource by UUID
tags:
- contact_form
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/date_format/date_format:
get:
operationId: listDateFormatDateFormat
summary: List date_format--date_format resources
tags:
- date_format
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/date_format/date_format?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/date_format/date_format/{id}:
get:
operationId: getDateFormatDateFormat
summary: Get one date_format--date_format resource by UUID
tags:
- date_format
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/file/file:
get:
operationId: listFileFile
summary: List file--file resources
tags:
- file
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/file/file?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
/file/file/{id}:
get:
operationId: getFileFile
summary: Get one file--file resource by UUID
tags:
- file
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/media/document:
get:
operationId: listMediaDocument
summary: List media--document resources
tags:
- media
description: 'Document media — the PDF and Office files behind certifications, test reports, studies
and guidance.
Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one resource object
returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
x-probe:
url: https://www.eac.gov/jsonapi/media/document?page[limit]=1
http_status: 200
content_type: application/vnd.api+json
fetched: '2026-09-06'
x-observed-fields:
attributes:
- changed
- created
- default_langcode
- drupal_internal__mid
- drupal_internal__vid
- field_archived
- field_body
- field_eco
- field_event
- field_featured
- field_key_findings
- field_library
- field_new_window
- field_post_date
- langcode
- metatag
- name
- path
- revision_created
- revision_translation_affected
- status
relationships:
- bundle
- field_document_category
- field_keywords
- field_media_category
- field_media_document
- field_related_events
- field_related_videos
- revision_user
- thumbnail
- uid
/media/document/{id}:
get:
operationId: getMediaDocument
summary: Get one media--document resource by UUID
tags:
- media
description: Returns a single resource object. Individual reads were verified on 2026-09-06 against
`node--voting_system`; the route exists for every collection above. An unknown UUID returns HTTP
404 with a JSON:API error document.
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API individual document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/IndividualDocument'
'404':
$ref: '#/components/responses/NotFound'
'405':
$ref: '#/components/responses/MethodNotAllowed'
'503':
$ref: '#/components/responses/ServiceUnavailable'
/media/image:
get:
operationId: listMediaImage
summary: List media--image resources
tags:
- media
description: 'Probed anonymously 2026-09-06: HTTP 200, `application/vnd.api+json`, at least one
resource object returned.'
parameters:
- $ref: '#/components/parameters/pageLimit'
- $ref: '#/components/parameters/pageOffset'
- $ref: '#/components/parameters/sort'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/include'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: JSON:API collection document.
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/CollectionDocument'
'400':
$ref: '#/components/responses/BadRequest'
'405':
$ref: '#/components/responses/MethodNotAllowed'
# --- truncated at 32 KB (229 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/election-assistance-commission/refs/heads/main/openapi/election-assistance-commission-jsonapi-openapi.yml