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/bonterra-fka-everyaction:bonterra-fka-everyaction-voterregistrationbatches-api"
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.2.0
info:
title: everyaction-8 Voter Registration Batches API
version: '1.0'
servers:
- url: https://api.securevan.com/v4
security:
- sec0: []
tags:
- name: VoterRegistrationBatches
paths:
/voterRegistrationBatches:
get:
summary: /voterRegistrationBatches
description: Search for voter registration batches, with required filtering.
operationId: voterregistrationbatches
parameters:
- name: createdBefore
in: query
description: Filters batches created before a given date (in the format `yyyy-MM-dd`)
schema:
type: string
format: date
default: '2019-08-01'
- name: createdAfter
in: query
description: Filters batches created after a given date (in the format `yyyy-MM-dd`)
schema:
type: string
format: date
default: '2020-08-01'
- name: status
in: query
description: Filters batches by batch status
schema:
type: string
default: Entering
- name: stateCode
in: query
description: Filters batches by state. Must be a valid two letter US state abbreviation.
schema:
type: string
default: MA
- name: onlyMyBatches
in: query
description: Filters batches created by the API key
schema:
type: boolean
default: false
- name: programType
in: query
description: Filters batches by program type
schema:
properties:
programTypeId:
type: integer
default: 201
format: int32
name:
type: string
default: VR Program
type: object
- name: personType
in: query
description: Filters batches by person type
schema:
type: string
default: Applicant
- name: $orderby
in: query
description: 'Optional; sorts results in ascending (`asc`) or descending (`desc`) order by a comma-delimited list of properties: `DateCreated`, `StateCode`, `Name`. Note that a space is required between the property and `asc` or `desc`.'
schema:
type: string
default: DateCreated desc
- name: $top
in: query
schema:
type: integer
format: int32
default: 1
- name: $skip
in: query
schema:
type: integer
format: int32
default: 0
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"items\": [\n {\n \"voterRegistrationBatchId\": 100,\n \"name\": \"VR Batch\",\n \"description\": \"VR Batch Description\",\n \"stateCode\": \"MA\",\n \"form\": {\n \"formId\": 101,\n \"name\": \"VR Form\"\n },\n \"status\": \"Entering\",\n \"programType\": {\n \"programTypeId\": 201,\n \"name\": \"VR Program\"\n },\n \"personType\": \"Applicant\",\n \"dateCreated\": \"2019-08-01T00:00:00Z\"\n }\n ],\n \"nextPageLink\": \"https://api.securevan.com/v4/voterRegistrationBatches?StateCode=MA&$orderby=DateCreated desc&$top=1&$skip=1\",\n \"count\": 25\n}"
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
voterRegistrationBatchId:
type: integer
example: 100
default: 0
name:
type: string
example: VR Batch
description:
type: string
example: VR Batch Description
stateCode:
type: string
example: MA
form:
type: object
properties:
formId:
type: integer
example: 101
default: 0
name:
type: string
example: VR Form
status:
type: string
example: Entering
programType:
type: object
properties:
programTypeId:
type: integer
example: 201
default: 0
name:
type: string
example: VR Program
personType:
type: string
example: Applicant
dateCreated:
type: string
example: '2019-08-01T00:00:00Z'
nextPageLink:
type: string
example: https://api.securevan.com/v4/voterRegistrationBatches?StateCode=MA&$orderby=DateCreated desc&$top=1&$skip=1
count:
type: integer
example: 25
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
post:
summary: /voterRegistrationBatches
description: 'Create a new Voter Registration Batch.
If successful, the endpoint responds with HTTP Status Code `201 Created` and an object containing the new Voter Registration Batch’s Id.'
operationId: voterregistrationbatches-1
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
default: VR Batch
description:
type: string
default: VR Batch Description
stateCode:
type: string
default: MA
prgramType:
type: object
properties:
programTypeId:
type: integer
default: 201
format: int32
form:
type: object
properties:
formId:
type: integer
default: 101
format: int32
personType:
type: string
default: Applicant
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"voterRegistrationBatchId\": 100\n}"
schema:
type: object
properties:
voterRegistrationBatchId:
type: integer
example: 100
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
/voterRegistrationBatches/programTypes:
get:
summary: /voterRegistrationBatches/programTypes
description: 'List Voter Registration Programs
*Description*
Returns a list of registration programs available for use when creating a new voter registration batch via POST /voterRegistrationBatches or filtering for batches via GET /voterRegistrationBatches.'
operationId: voterregistrationbatchesprogramtypes
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"items\": [\n {\n \"programTypeId\": 201,\n \"name\": \"VR Program\"\n },\n {\n \"programTypeId\": 202,\n \"name\": \"VR Program 2\"\n },\n {\n \"programTypeId\": 203,\n \"name\": \"VR Program 3\"\n }\n ],\n \"nextPageLink\": null,\n \"count\": 3\n}"
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
programTypeId:
type: integer
example: 201
default: 0
name:
type: string
example: VR Program
nextPageLink: {}
count:
type: integer
example: 3
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
/voterRegistrationBatches/registrationForms:
get:
summary: /voterRegistrationBatches/registrationForms
description: Returns a list of registration forms available for use when creating a new voter registration batch via POST /voterRegistrationBatches.
operationId: voterregistrationbatchesregistrationforms
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"items\": [\n {\n \"formId\": 101,\n \"name\": \"VR Form\"\n }\n ],\n \"nextPageLink\": null,\n \"count\": 1\n}"
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
formId:
type: integer
example: 101
default: 0
name:
type: string
example: VR Form
nextPageLink: {}
count:
type: integer
example: 1
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
/voterRegistrationBatches/state/{state}/supportedFields:
get:
summary: /voterRegistrationBatches/states/{state}/supportedFields
description: 'Retrieve list of fields available for use when sending registrants via POST /voterRegistrationBatches/{batchId}/people. Though the fields themselves are not currently state-specific, the possible values for dropdown fields are state-specific.
State must be a valid US state abbreviation.'
operationId: voterregistrationbatchesstatesstatesupportedfields
parameters:
- name: state
in: path
description: The US state of the batch. Must be a valid two letter US state abbreviation.
schema:
type: string
default: MA
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"items\": [\n {\n \"customPropertyKey\": \"VR:CatBreed\",\n \"displayName\": \"Cat Breed\",\n \"fieldType\": \"Dropdown\",\n \"maxFieldLength\": null,\n \"possibleValues\": [\n {\n \"key\": \"A\",\n \"value\": \"American Shorthair\"\n },\n {\n \"key\": \"B\",\n \"value\": \"Bengal\"\n }\n ]\n },\n {\n \"customPropertyKey\": \"VR:DateAcquiredCat\",\n \"displayName\": \"Date Acquired Cat\",\n \"fieldType\": \"Date\",\n \"maxFieldLength\": null,\n \"possibleValues\": null\n }\n ],\n \"nextPageLink\": null,\n \"count\": 2\n}"
schema:
type: object
properties:
items:
type: array
items:
type: object
properties:
customPropertyKey:
type: string
example: VR:CatBreed
displayName:
type: string
example: Cat Breed
fieldType:
type: string
example: Dropdown
maxFieldLength: {}
possibleValues:
type: array
items:
type: object
properties:
key:
type: string
example: A
value:
type: string
example: American Shorthair
nextPageLink: {}
count:
type: integer
example: 2
default: 0
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
/voterRegistrationBatches/{batchId}:
patch:
summary: /voterRegistrationBatches/{batchId}
description: 'Update the status of a voter registration batch.
The current status of the specified batch dictates which batch status values are valid. When a new batch is created via `POST /voterRegistrationBatches`, it is set to the default status of Entering. From Entering, a batch can only change to Completed. Then, from Completed, a batch can either be changed back to Entering or to Committed. Once a batch is committed, it cannot be changed to any other status. No other status values are accepted.
Changing a status to Committed processes the batch and makes registrants available for searching in the VAN interface.'
operationId: voterregistrationbatchesbatchid
parameters:
- name: batchId
in: path
description: Required; unique identifier of the Voter Registration Batch
schema:
type: integer
format: int32
default: 100
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
status:
type: string
default: Completed
responses:
'204':
description: '204'
content:
application/json:
examples:
Result:
value: ''
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
/voterRegistrationBatches/{batchId}/people:
post:
summary: /voterRegistrationBatches/{batchId}/people
description: 'Add Registrants to a Voter Registration Batch
*Description*
Use this endpoint to submit up to 25 registrants to a Voter Registration Batch. Fields published via `POST /voterRegistrationBatches` should be specified in CustomProperties.'
operationId: voterregistrationbatchesbatchidpeople
parameters:
- name: batchId
in: path
description: Required; unique identifier of the Voter Registration Batch
schema:
type: integer
format: int32
default: 100
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
_:
type: array
items:
properties:
alternateId:
type: string
description: A Unique Identifier, for your reference only. Value is not stored in the database.
default: fd351cfa-4790-4f91-9665-63899f965217
person:
type: object
description: Required; A [Person](https://everyaction.readme.io/reference#common-models) object which describes the registrant.
properties:
vanId:
type: string
default: '100476252'
customProperties:
type: array
description: An array of Supported Fields objects.
items:
properties:
key:
type: string
default: VR:HasCat
value:
type: string
default: 'true'
type: object
type: object
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "[\n {\n \"alternateId\": \"ab694282-1d74-474b-90dc-173aa73f44b1\",\n \"vanId\": \"10000000\",\n \"result\": \"Success\",\n \"errors\": null\n },\n {\n \"alternateId\": \"807883fc-0103-4edf-814c-3eea9602290f\",\n \"vanId\": null,\n \"result\": \"Failure\",\n \"errors\": [\n {\n \"code\": \"INVALID_PARAMETER\",\n \"text\": \"'VR:HasCat' value 'X' is invalid\",\n \"properties\": [\n \"value\"\n ]\n }\n ]\n }\n]\n"
schema:
type: array
items:
type: object
properties:
alternateId:
type: string
example: ab694282-1d74-474b-90dc-173aa73f44b1
vanId:
type: string
example: '10000000'
result:
type: string
example: Success
errors: {}
'400':
description: '400'
content:
application/json:
examples:
Result:
value: "{\n \"errors\": [\n {\n \"code\": \"Error code\",\n \"text\": \"Error description\"\n }\n ]\n}"
schema:
type: object
properties:
errors:
type: array
items:
type: object
properties:
code:
type: string
example: Error code
text:
type: string
example: Error description
deprecated: false
tags:
- VoterRegistrationBatches
components:
securitySchemes:
sec0:
type: http
scheme: basic
x-readme-fauxas: true
x-provenance:
method: searched
source: https://docs.everyaction.com/reference
harvested: '2026-10-14'
tool: harvest-readme-openapi.py
note: Assembled verbatim from the OpenAPI definition ReadMe embeds in each operation page of the provider's developer portal; paths and components merged by API title, nothing authored.
assembled_from:
- https://docs.everyaction.com/reference/activistcodes-activistcodeid.md
- https://docs.everyaction.com/reference/activistcodes.md
- https://docs.everyaction.com/reference/ballotrequesttypes-ballotrequesttypeid.md
- https://docs.everyaction.com/reference/ballotrequesttypes.md
- https://docs.everyaction.com/reference/ballotreturnstatuses-ballotreturnstatusid.md
- https://docs.everyaction.com/reference/ballotreturnstatuses.md
- https://docs.everyaction.com/reference/ballottypes-ballottypeid.md
- https://docs.everyaction.com/reference/ballottypes.md
- https://docs.everyaction.com/reference/bargainingunits-bargainingunitid.md
- https://docs.everyaction.com/reference/bargainingunits.md
- https://docs.everyaction.com/reference/bulkimportjobs-jobid.md
- https://docs.everyaction.com/reference/bulkimportjobs-resources.md
- https://docs.everyaction.com/reference/bulkimportjobs.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes-mappingtypename-fieldname-values.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes-mappingtypename.md
- https://docs.everyaction.com/reference/bulkimportmappingtypes.md
- https://docs.everyaction.com/reference/canvassfilereqeusts-canvassfilerequestid.md
- https://docs.everyaction.com/reference/canvassfilerequests.md
- https://docs.everyaction.com/reference/canvassresponses-contacttypes.md
- https://docs.everyaction.com/reference/canvassresponses-inputtypes.md
- https://docs.everyaction.com/reference/canvassresponses-resultcodes.md
- https://docs.everyaction.com/reference/changedentityexportjobs-changetypes-resourcetype.md
- https://docs.everyaction.com/reference/changedentityexportjobs-exportjobid.md
- https://docs.everyaction.com/reference/changedentityexportjobs-fields-resourcetype.md
- https://docs.everyaction.com/reference/changedentityexportjobs-resources.md
- https://docs.everyaction.com/reference/changedentityexportjobs.md
- https://docs.everyaction.com/reference/codes-batch.md
- https://docs.everyaction.com/reference/codes-codeid.md
- https://docs.everyaction.com/reference/codes-supportedentities.md
- https://docs.everyaction.com/reference/codesextendedsourcecodes.md
- https://docs.everyaction.com/reference/codetypes.md
- https://docs.everyaction.com/reference/commitments-commitmentid.md
- https://docs.everyaction.com/reference/commitments-recurringpayments.md
- https://docs.everyaction.com/reference/commitments.md
- https://docs.everyaction.com/reference/contributions-alternateidtype-alternateid.md
- https://docs.everyaction.com/reference/contributions-attribution-types.md
- https://docs.everyaction.com/reference/contributions-contributionid-adjustments.md
- https://docs.everyaction.com/reference/contributions-contributionid-attributions-vanid.md
- https://docs.everyaction.com/reference/contributions-contributionid.md
- https://docs.everyaction.com/reference/contributions-payments.md
- https://docs.everyaction.com/reference/contributionsrecentcontributions.md
- https://docs.everyaction.com/reference/create-surveyquestion.md
- https://docs.everyaction.com/reference/customfields-customfieldid.md
- https://docs.everyaction.com/reference/customfields.md
- https://docs.everyaction.com/reference/delete-codes-codeid.md
- https://docs.everyaction.com/reference/delete-codes.md
- https://docs.everyaction.com/reference/delete-contributions-contributionid-attributions-vanid.md
- https://docs.everyaction.com/reference/delete-events-eventid.md
- https://docs.everyaction.com/reference/delete-people-vanid-myactivistflags.md
- https://docs.everyaction.com/reference/departments-departmentid.md
- https://docs.everyaction.com/reference/designations-designationid.md
- https://docs.everyaction.com/reference/disbursements-disbursementid.md
- https://docs.everyaction.com/reference/disbursementsrecentdisbursements.md
- https://docs.everyaction.com/reference/districtfields-districtfieldid.md
- https://docs.everyaction.com/reference/districtfields.md
- https://docs.everyaction.com/reference/earlyvotefields.md
- https://docs.everyaction.com/reference/earlyvotefieldsearlyvotefieldid.md
- https://docs.everyaction.com/reference/echoes.md
- https://docs.everyaction.com/reference/email-message-emailid.md
- https://docs.everyaction.com/reference/email-messages.md
- https://docs.everyaction.com/reference/employers-employerid-bargainingunits-bargainingunitid-jobclassesjobclassid.md
- https://docs.everyaction.com/reference/employers-employerid-bargainingunits-bargainingunitid.md
- https://docs.everyaction.com/reference/employers-employerid-deparments.md
- https://docs.everyaction.com/reference/employers-employerid-shifttypes-shifttypeid.md
- https://docs.everyaction.com/reference/employers-employerid-worksites.md
- https://docs.everyaction.com/reference/employers-employerid.md
- https://docs.everyaction.com/reference/employersemployeridbargainingunitsbargainingunitiddelete.md
- https://docs.everyaction.com/reference/employersemployeridbargainingunitsbargainingunitidjobclassesjobclassiddelete.md
- https://docs.everyaction.com/reference/employersemployeridshifttypesshifttypeiddelete.md
- https://docs.everyaction.com/reference/events-eventid-shifts.md
- https://docs.everyaction.com/reference/events-eventid.md
- https://docs.everyaction.com/reference/events-types-eventtypeid.md
- https://docs.everyaction.com/reference/events-types.md
- https://docs.everyaction.com/reference/exportjobs.md
- https://docs.everyaction.com/reference/exportjobsexportjobid.md
- https://docs.everyaction.com/reference/exportjobtypes.md
- https://docs.everyaction.com/reference/fileloadingjobs.md
- https://docs.everyaction.com/reference/fileloadingjobsjobid.md
- https://docs.everyaction.com/reference/fileloadingjobsjobidstats.md
- https://docs.everyaction.com/reference/financialbatches-1.md
- https://docs.everyaction.com/reference/financialbatches.md
- https://docs.everyaction.com/reference/financialbatchesfinancialbatchid.md
- https://docs.everyaction.com/reference/find-by-phone.md
- https://docs.everyaction.com/reference/folders-1.md
- https://docs.everyaction.com/reference/foldersfolderid.md
- https://docs.everyaction.com/reference/foldersfolderidmapregions.md
- https://docs.everyaction.com/reference/foldersfolderidmapregionsmapregionid.md
- https://docs.everyaction.com/reference/foldersfolderidmapregionsmapregionidrefresh.md
- https://docs.everyaction.com/reference/foldersfolderidmapregionsrefresh.md
- https://docs.everyaction.com/reference/get-campaign-by-id.md
- https://docs.everyaction.com/reference/get-campaigns.md
- https://docs.everyaction.com/reference/get-codes.md
- https://docs.everyaction.com/reference/get-departments.md
- https://docs.everyaction.com/reference/get-designations.md
- https://docs.everyaction.com/reference/get-employers.md
- https://docs.everyaction.com/reference/get-events.md
- https://docs.everyaction.com/reference/get-people-personid-type-personid.md
- https://docs.everyaction.com/reference/get-people-vanid.md
- https://docs.everyaction.com/reference/get-people.md
- https://docs.everyaction.com/reference/introspection.md
- https://docs.everyaction.com/reference/jobclasses-1.md
- https://docs.everyaction.com/reference/jobclasses.md
- https://docs.everyaction.com/reference/jobclassesjobclassid.md
- https://docs.everyaction.com/reference/locations-1.md
- https://docs.everyaction.com/reference/locations-2.md
- https://docs.everyaction.com/reference/locationsfindorcreate.md
- https://docs.everyaction.com/reference/locationslocationid-1.md
- https://docs.everyaction.com/reference/locationslocationid.md
- https://docs.everyaction.com/reference/memberstatuses-1.md
- https://docs.everyaction.com/reference/memberstatuses.md
- https://docs.everyaction.com/reference/memberstatusesmemberstatusid.md
- https://docs.everyaction.com/reference/minivanexports.md
- https://docs.everyaction.com/reference/minivanexportsminivanexportid.md
- https://docs.everyaction.com/reference/notescategories.md
- https://docs.everyaction.com/reference/notescategoriesnotecategoryid.md
- https://docs.everyaction.com/reference/notescategorytypes.md
- https://docs.everyaction.com/reference/onlineactionsforms.md
- https://docs.everyaction.com/reference/onlineactionsformsformtrackingid.md
# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bonterra-fka-everyaction/refs/heads/main/openapi/bonterra-fka-everyaction-voterregistrationbatches-api-openapi.yml