ApplyToVolunteer Public API

The Public API from ApplyToVolunteer — 2 operation(s) for public.

Operations 2

POST /public/forms/{org}/{form}/submit Submit stage 1 of a public form #
POST /public/continue/{token}/submit Submit a continue-link stage #

Work with this as data

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/applytovolunteer-com:applytovolunteer-com-public-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 Specification

applytovolunteer-com-public-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Apply2Volunteer Public API
  version: 1.0.0
  description: 'Convert volunteer PDFs into progressive online forms. Organization owners and admins create API keys in the dashboard. Send a key as Authorization: Bearer a2v_... The token starts with a2v_. This API does not implement OAuth. Public submit and anonymous grade or convert do not accept the key in place of a Turnstile token. Keyless agents use /mcp and POST /a2a for anonymous grade and preview.'
  license:
    name: Proprietary
    url: https://applytovolunteer.com/terms
servers:
- url: https://applytovolunteer.com
security:
- orgApiKey: []
tags:
- name: Public
paths:
  /public/forms/{org}/{form}/submit:
    post:
      operationId: submitPublicForm
      summary: Submit stage 1 of a public form
      description: Public stage-1 submit. No org API key. Anonymous calls need a Turnstile token in production. A failed check is 400 with error turnstile. A missing Turnstile configuration is 503. Dev and test skip verification. Keyless agents should use /mcp or POST /a2a instead of calling this route without a token. This route does not submit through /mcp or /a2a.
      security: []
      parameters:
      - schema:
          type: string
          description: Organization slug.
        required: true
        description: Organization slug.
        name: org
        in: path
      - schema:
          type: string
          description: Form slug.
        required: true
        description: Form slug.
        name: form
        in: path
      requestBody:
        required: true
        description: JSON object. turnstileToken is required in production. An API key does not replace it.
        content:
          application/json:
            schema:
              type: object
              properties:
                answers:
                  type: array
                  items:
                    type: object
                    properties:
                      fieldId:
                        type: string
                        description: Field id on the published version.
                      value:
                        anyOf:
                        - type: string
                        - type: number
                        - type: boolean
                        - type: array
                          items:
                            type: string
                        - type: object
                          additionalProperties: {}
                        - type: 'null'
                        description: String, number, boolean, array of strings, object, or null.
                    required:
                    - fieldId
                    - value
                  description: Answers for the stage. Omitted answers are treated as an empty list. Required fields on the stage still fail validation.
                honeypot:
                  type: string
                  description: 'Omit this. A non-empty string returns { ok: true } and does not save the application.'
                turnstileToken:
                  type: string
                  description: Cloudflare Turnstile token. Required in production. Dev and test (ENVIRONMENT exactly dev or test) skip verification. A failed check is 400 with error turnstile. A missing Turnstile configuration is 503 with error turnstile_misconfigured. This token is not an org API key.
                applicantEmail:
                  type: string
                  description: Applicant email. Checked when the stage requires an email field or a value is present.
                applicantName:
                  type: string
                  description: Applicant name. Checked when the stage requires a name field.
                source:
                  type: string
                  description: Pass "embed" for an embedded form. Any other value is stored as hosted.
                stageId:
                  type: string
                  description: Stage to submit. Omitted uses the first stage.
                submissionId:
                  type: string
                  description: Optional idempotency key. A string of 8 to 64 letters, numbers, underscores, or hyphens is stored. Any other value is ignored and does not fail the request. 32 or more characters can rotate a continue link when the same submission is retried.
              required:
              - turnstileToken
              description: JSON object. turnstileToken is required in production. An org API key is not accepted in place of that token.
      responses:
        '200':
          description: Public stage-1 submit
        '400':
          description: The body, query, or input failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '403':
          description: The organization is still a demo, or the form is not published. Submissions stay off until the organization is claimed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The resource does not exist, or it is hidden from this caller. Several organization routes return 404 instead of 401 when the key is missing or the row is in another organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: The write conflicts with the current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '413':
          description: The body is larger than 256 KiB.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '429':
          description: Too many requests from this network or organization.
          headers:
            Retry-After:
              description: Seconds until this form's submit window resets. Clamped to 1 through 3600.
              schema:
                type: integer
                minimum: 1
                maximum: 3600
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: Turnstile is not configured, or a required parser is unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
      - Public
  /public/continue/{token}/submit:
    post:
      operationId: submitContinueStage
      summary: Submit a continue-link stage
      description: Continue-link stage submit. No org API key. Anonymous calls need a Turnstile token in production. A failed check is 400 with error turnstile. A missing Turnstile configuration is 503. Dev and test skip verification. Keyless agents should use /mcp or POST /a2a instead of calling this route without a token.
      security: []
      parameters:
      - schema:
          type: string
          description: Continue-link token.
        required: true
        description: Continue-link token.
        name: token
        in: path
      requestBody:
        required: true
        description: JSON object. This route reads answers, honeypot, and turnstileToken. Other fields are accepted and ignored. turnstileToken is required in production.
        content:
          application/json:
            schema:
              type: object
              properties:
                answers:
                  type: array
                  items:
                    type: object
                    properties:
                      fieldId:
                        type: string
                        description: Field id on the published version.
                      value:
                        anyOf:
                        - type: string
                        - type: number
                        - type: boolean
                        - type: array
                          items:
                            type: string
                        - type: object
                          additionalProperties: {}
                        - type: 'null'
                        description: String, number, boolean, array of strings, object, or null.
                    required:
                    - fieldId
                    - value
                  description: Answers for the stage. Omitted answers are treated as an empty list. Required fields on the stage still fail validation.
                honeypot:
                  type: string
                  description: 'Omit this. A non-empty string returns { ok: true } and does not save the application.'
                turnstileToken:
                  type: string
                  description: Cloudflare Turnstile token. Required in production. Dev and test (ENVIRONMENT exactly dev or test) skip verification. A failed check is 400 with error turnstile. A missing Turnstile configuration is 503 with error turnstile_misconfigured. This token is not an org API key.
                applicantEmail:
                  type: string
                  description: Applicant email. Checked when the stage requires an email field or a value is present.
                applicantName:
                  type: string
                  description: Applicant name. Checked when the stage requires a name field.
                source:
                  type: string
                  description: Pass "embed" for an embedded form. Any other value is stored as hosted.
                stageId:
                  type: string
                  description: Stage to submit. Omitted uses the first stage.
                submissionId:
                  type: string
                  description: Optional idempotency key. A string of 8 to 64 letters, numbers, underscores, or hyphens is stored. Any other value is ignored and does not fail the request. 32 or more characters can rotate a continue link when the same submission is retried.
              required:
              - turnstileToken
              description: JSON object. turnstileToken is required in production. An org API key is not accepted in place of that token.
      responses:
        '200':
          description: Continue-link stage submit
        '400':
          description: The body, query, or input failed validation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '404':
          description: The resource does not exist, or it is hidden from this caller. Several organization routes return 404 instead of 401 when the key is missing or the row is in another organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '409':
          description: The write conflicts with the current state.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '410':
          description: The continue link is expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '413':
          description: The body is larger than 256 KiB.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: Turnstile is not configured, or a required parser is unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      tags:
      - Public
components:
  schemas:
    ApiError:
      type: object
      properties:
        error:
          type: string
          description: Short error code or message.
        message:
          type: string
          description: Human-readable detail when the handler sends one.
        fields:
          type: object
          additionalProperties:
            type: string
          description: Field-level validation messages.
        retryable:
          type: boolean
          description: Set on some public submit conflicts.
      required:
      - error
  securitySchemes:
    orgApiKey:
      type: http
      scheme: bearer
      bearerFormat: a2v API key
      description: Organization API key. REST reads Authorization and accepts only the exact prefix "Bearer " (capital B, one space) followed by a token that starts with a2v_. Put the a2v_ token in the bearer credential. Do not include the word Bearer in the token. Owners and admins create keys at /app/settings/api-keys. The secret is shown once. Revoked keys are rejected. This API does not implement OAuth. Scopes are forms:read, forms:write, applications:read, and applications:write. forms:write does not include forms:read. A new key defaults to forms:read and forms:write. applications:read and applications:write are opt-in. A browser session cookie is also accepted on organization routes. Agents send the bearer key.