NationBuilder Signups API

Signups store information about people in your nation. Further information available [here](https://support.nationbuilder.com/en/articles/8810042-how-records-are-added-to-the-people-database).

Operations 7

POST /api/v2/signups Create a signup #
GET /api/v2/signups List all signups in a nation #
GET /api/v2/signups/me Show signup assigned to auth token #
PATCH /api/v2/signups/push Push signup data into nation #
GET /api/v2/signups/{id} Show signup with provided ID #
PATCH /api/v2/signups/{id} Update an existing signup #
DELETE /api/v2/signups/{id} Delete signup with provided ID #

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/nationbuilder-signups-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 email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

nationbuilder-signups-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: NationBuilder V2 Async Processes Signups API
  version: '2.0'
  description: 'The NationBuilder V2 API is a JSON:API-compliant API for managing NationBuilder

    resources such as people, donations, events, and lists. It layers a few

    conventions on top of the JSON:API standard, described below. For a broader

    introduction, see the

    [NationBuilder v2 API core concepts](https://support.nationbuilder.com/en/articles/9757369-nationbuilder-v2-api-core-concepts)

    guide.


    ### Request and response format


    Requests and responses follow the [JSON:API](https://jsonapi.org/) document

    structure: single resources are returned under a top-level `data` member, and

    collections are paginated arrays of resource objects with `links` for the

    current, previous, and next pages. Related resources can be sideloaded into a

    top-level `included` array with the `include` query parameter, and responses

    can be trimmed to specific attributes with `fields[resource_type]` sparse

    fieldsets (plus opt-in `extra_fields[resource_type]` attributes where noted).

    Responses are served as `application/vnd.api+json`; request bodies may be

    sent as `application/vnd.api+json` or `application/json`.


    Filtering uses an operator syntax: `filter[attribute]=value` for

    equality (comma-separated values act as OR), and

    `filter[attribute][operator]=value` for other comparisons. String attributes

    support `eq`, `not_eq`, `eql`, `not_eql`, `prefix`, `not_prefix`, `suffix`,

    `not_suffix`, `match`, and `not_match`; numeric and date attributes support

    `eq`, `not_eq`, `gt`, `gte`, `lt`, and `lte`. Note that JSON:API relationship

    routes (`/resource/{id}/relationships/other`) are not provided; related

    resources are reachable through the filtered index URLs given in each

    resource''s `relationships` links.


    ### Errors


    Error responses use a flat JSON body with a machine-readable `code` and a

    human-readable `message`. Some errors carry additional detail members (for

    example `validation_errors`). The exception is 422 validation failures,

    which return a JSON:API `errors` array locating each invalid field via

    `source.pointer`.


    ### Rate limiting


    Requests are limited per access token (250 requests per 10-second window).

    Every response includes `RateLimit-Limit`, `RateLimit-Remaining`, and

    `RateLimit-Reset` headers; exceeding the limit returns a 429 with a

    `Retry-After` header.

    '
servers:
- url: https://{subdomain}.nationbuilder.com
  variables:
    subdomain:
      default: yournation
      description: Your NationBuilder nation slug
security:
- BearerAuth: []
tags:
- name: Signups
  x-tag-expanded: false
  description: Signups store information about people in your nation. Further information available [here](https://support.nationbuilder.com/en/articles/8810042-how-records-are-added-to-the-people-database).
paths:
  /api/v2/signups:
    parameters:
    - $ref: '#/components/parameters/signup_index_include'
    - $ref: '#/components/parameters/signup_sparse_fields'
    - $ref: '#/components/parameters/signup_extra_fields'
    post:
      summary: Create a signup
      tags:
      - Signups
      description: Creates a signup from given data
      operationId: createSignup
      responses:
        '201':
          description: The newly created signup.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '422':
          $ref: '#/components/responses/unprocessable'
        '429':
          $ref: '#/components/responses/rate_limited'
      requestBody:
        $ref: '#/components/requestBodies/signup_create_request_body'
    get:
      summary: List all signups in a nation
      tags:
      - Signups
      description: Lists all signups
      operationId: listSignups
      parameters:
      - $ref: '#/components/parameters/pagination_number'
      - $ref: '#/components/parameters/pagination_size'
      responses:
        '200':
          description: A page of matching signups.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_index_response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/rate_limited'
  /api/v2/signups/me:
    parameters:
    - $ref: '#/components/parameters/signup_show_include'
    - $ref: '#/components/parameters/signup_sparse_fields'
    - $ref: '#/components/parameters/signup_extra_fields'
    get:
      summary: Show signup assigned to auth token
      tags:
      - Signups
      description: Returns the signup associated with the current access token.
      operationId: meSignup
      responses:
        '200':
          description: The current signup.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '429':
          $ref: '#/components/responses/rate_limited'
  /api/v2/signups/push:
    parameters:
    - $ref: '#/components/parameters/signup_show_include'
    - $ref: '#/components/parameters/signup_sparse_fields'
    - $ref: '#/components/parameters/signup_extra_fields'
    patch:
      summary: Push signup data into nation
      tags:
      - Signups
      description: "This endpoint attempts to match the input person resource to a person already in the nation. If a match is found, the matched person is updated and a 200 status code is returned. If a match is not found, a new person is created and a 201 status code is returned. Matches are found by including one of the following IDs in the request:\n  - civicrm_id\n  - county_file_id\n  - dw_id\n  - external_id\n  - email\n  - facebook_username\n  - ngp_id\n  - salesforce_id\n  - twitter_login\n  - van_id\n\nThe push endpoint also accepts all sideposted data that is allowed on the signup resource's create and update endpoints. Please see the top-level sideposting documentation for more information on sideposting signup relationships.\n"
      operationId: pushSignup
      responses:
        '200':
          description: The updated signup, matched to an existing person.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '201':
          description: The newly created signup, since no existing person matched the given identifiers.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '422':
          $ref: '#/components/responses/unprocessable'
        '429':
          $ref: '#/components/responses/rate_limited'
      requestBody:
        $ref: '#/components/requestBodies/signup_create_request_body'
  /api/v2/signups/{id}:
    parameters:
    - $ref: '#/components/parameters/id'
    - $ref: '#/components/parameters/signup_show_include'
    - $ref: '#/components/parameters/signup_sparse_fields'
    - $ref: '#/components/parameters/signup_extra_fields'
    get:
      summary: Show signup with provided ID
      tags:
      - Signups
      description: Returns the JSON:API resource object for a single signup.
      operationId: showSignup
      responses:
        '200':
          description: The requested signup.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/rate_limited'
    patch:
      summary: Update an existing signup
      tags:
      - Signups
      description: Updates an existing signup
      operationId: updateSignup
      responses:
        '200':
          description: The updated signup.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/signup_show_response'
        '400':
          $ref: '#/components/responses/bad_request'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '422':
          $ref: '#/components/responses/unprocessable'
        '429':
          $ref: '#/components/responses/rate_limited'
      requestBody:
        $ref: '#/components/requestBodies/signup_update_request_body'
    delete:
      summary: Delete signup with provided ID
      tags:
      - Signups
      description: Permanently removes the signup that matches the given ID.
      operationId: deleteSignup
      responses:
        '200':
          description: Confirmation that the signup was deleted.
          headers:
            RateLimit-Limit:
              $ref: '#/components/headers/RateLimit-Limit'
            RateLimit-Remaining:
              $ref: '#/components/headers/RateLimit-Remaining'
            RateLimit-Reset:
              $ref: '#/components/headers/RateLimit-Reset'
          content:
            application/vnd.api+json:
              schema:
                $ref: '#/components/schemas/delete_document'
        '401':
          $ref: '#/components/responses/unauthorized'
        '404':
          $ref: '#/components/responses/not_found'
        '429':
          $ref: '#/components/responses/rate_limited'
components:
  parameters:
    signup_extra_fields:
      name: extra_fields[signups]
      in: query
      required: false
      style: form
      explode: false
      description: Comma-delimited list of extra attributes, which are only returned in the response if requested.
      schema:
        type: array
        default: []
        uniqueItems: true
        items:
          $ref: '#/components/schemas/signup_extra_field_values'
    pagination_size:
      name: page[size]
      description: 'Number of results to display per page (default: 20, max: 100, min: 1)'
      in: query
      required: false
      schema:
        type: string
        default: '20'
    signup_sparse_fields:
      name: fields[signups]
      in: query
      required: false
      style: form
      explode: false
      description: Comma-delimited list of signup attributes to only return in the response
      schema:
        type: array
        default: []
        uniqueItems: true
        items:
          $ref: '#/components/schemas/signup_field_values'
    id:
      name: id
      in: path
      description: id
      required: true
      schema:
        type: string
    signup_show_include:
      name: include
      in: query
      required: false
      style: form
      explode: false
      description: 'Comma-delimited list of sideloaded resources to include as part of the response.

        See guidance [here](https://support.nationbuilder.com/en/articles/9899245-api-v2-walkthrough#h_2d5333adab) about

        sideloading large numbers of resources and pagination.

        '
      schema:
        type: array
        default: []
        uniqueItems: true
        items:
          $ref: '#/components/schemas/signup_sideload_values'
    pagination_number:
      name: page[number]
      description: Page number to list (starting at 1)
      in: query
      required: false
      schema:
        type: string
        default: '1'
    signup_index_include:
      name: include
      in: query
      required: false
      style: form
      explode: false
      description: 'Comma-delimited list of sideloaded resources to include as part of the signup response.

        See guidance [here](https://support.nationbuilder.com/en/articles/9899245-api-v2-walkthrough#h_2d5333adab) about

        sideloading large numbers of resources and pagination.

        '
      schema:
        type: array
        default: []
        uniqueItems: true
        items:
          $ref: '#/components/schemas/signup_sideload_values'
  headers:
    Retry-After:
      description: Number of seconds to wait before retrying. Sent with 429 responses.
      schema:
        type: string
        examples:
        - '10'
      examples: {}
    RateLimit-Reset:
      description: Unix timestamp (in seconds) at which the current rate-limit window resets.
      schema:
        type: string
        examples:
        - '1719964810'
      examples: {}
    RateLimit-Remaining:
      description: Number of requests remaining for the current access token in the current rate-limit window.
      schema:
        type: string
        examples:
        - '249'
      examples: {}
    RateLimit-Limit:
      description: Maximum number of requests allowed for the current access token per rate-limit window (10 seconds).
      schema:
        type: string
        examples:
        - '250'
      examples: {}
  schemas:
    resource_identifier:
      description: A JSON:API resource identifier object, the type/id pair that uniquely identifies a single resource.
      type: object
      required:
      - type
      - id
      properties:
        id:
          type: string
          description: Unique identifier of the resource.
          examples:
          - '1'
        type:
          type: string
          description: The JSON:API resource type.
    show_document:
      description: The JSON:API top-level document shape for responses returning a single resource under the data member.
      type: object
      required:
      - data
      properties:
        data:
          type: object
          description: The primary resource object; each resource binds its concrete schema here via allOf composition.
        included:
          $ref: '#/components/schemas/included'
        meta:
          type: object
          description: Non-standard information about the document. Empty unless the endpoint has metadata to convey.
    create_request_document:
      description: The JSON:API top-level document shape for create requests, whose data member carries the new resource's type and attributes.
      type: object
      required:
      - data
      properties:
        data:
          type: object
          required:
          - type
          properties:
            type:
              type: string
              description: The JSON:API resource type of the resource being created.
    included:
      description: Sideloaded resources requested via the include query parameter. Each entry is a full resource object whose shape is documented under its own resource type.
      type: array
      items:
        $ref: '#/components/schemas/resource'
    signup_show_response:
      description: A JSON:API response containing a single signup.
      allOf:
      - $ref: '#/components/schemas/show_document'
      - type: object
        properties:
          data:
            $ref: '#/components/schemas/signup_response_data'
    signup_extra_field_values:
      description: Opt-in signup attribute names requestable with extra_fields[signups].
      type: string
      enum:
      - billing_address
      - home_address
      - mailing_address
      - primary_address
      - profile_image_url
      - registered_address
      - user_submitted_address
      - work_address
    pagination_links:
      description: JSON:API pagination links for the pages of a collection. A key whose page is unavailable, or that the server's pagination strategy does not provide, is omitted or null.
      type: object
      properties:
        self:
          type: string
          description: Link to the current page.
          examples:
          - /articles?page[number]=2
        first:
          type:
          - string
          - 'null'
          description: Link to the first page.
          examples:
          - /articles?page[number]=1
        last:
          type:
          - string
          - 'null'
          description: Link to the last page.
          examples:
          - /articles?page[number]=5
        prev:
          type:
          - string
          - 'null'
          description: Link to the previous page.
          examples:
          - /articles?page[number]=1
        next:
          type:
          - string
          - 'null'
          description: Link to the next page.
          examples:
          - /articles?page[number]=3
    signup_response_data:
      description: The JSON:API resource object representing a signup.
      allOf:
      - $ref: '#/components/schemas/resource_identifier'
      - type: object
        properties:
          type:
            const: signups
            examples:
            - signups
          attributes:
            allOf:
            - $ref: '#/components/schemas/signup_read_write_attributes'
            - $ref: '#/components/schemas/signup_read_only_attributes'
    signup_read_write_attributes:
      description: The attributes of a signup that can be both read and written.
      type: object
      properties:
        author_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: ID of the person interacting with the signup in the control panel.
        availability:
          type:
          - string
          - 'null'
          examples:
          - Saturday morning
          description: When can this signup be contacted?
        banned_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: When the signup was banned.
        born_at:
          type:
          - string
          - 'null'
          format: date
          examples:
          - '1990-08-06'
          description: The date the signup was born.
        capital_amount_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: The amount of political capital this signup has accrued
        church:
          type:
          - string
          - 'null'
          examples:
          - Unity Church
          description: The name of the church the signup belongs to.
        city_district:
          type:
          - string
          - 'null'
          examples:
          - Trinity-Spadina (19)
          description: The city district code the signup belongs to.
        city_sub_district:
          type:
          - string
          - 'null'
          examples:
          - DOWNTOWN LOS ANGELES
          description: Political district.
        civicrm_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: The ID of the CiviCRM account the signup is associated with.
        contact_status:
          type:
          - string
          - 'null'
          enum:
          - other
          - answered
          - bad_info
          - left_message
          - meaningful_interaction
          - send_information
          - not_interested
          - no_answer
          - refused
          - inaccessible
          - null
          examples:
          - answered
          description: Name of the associated contact status.
        could_vote_status:
          type:
          - integer
          - 'null'
          examples:
          - 1
          description: Integer representing if the signup can vote. 1=can vote, -1=can't vote.
        county_district:
          type:
          - string
          - 'null'
          examples:
          - City of Portsmouth (B)
          description: The county district the signup belongs to.
        county_file_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: The ID of the county voter file belonging to the signup.
        custom_values:
          type:
          - object
          - 'null'
          examples:
          - custom_text: Text Value
            custom_number: '22'
            custom_checkbox: true
            custom_multi: Some multiple choice option
          description: Values for nation-defined fields on signup
        datatrust_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: The ID of the associated Datatrust account.
        demo:
          type:
          - string
          - 'null'
          examples:
          - H
          description: Single letter representation of demographic.
        do_not_call:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Signup has asked not to be contacted via phone call.
        do_not_contact:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Signup has asked not to be contacted.
        donations_amount_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of donations made by the signup.
        donations_amount_this_cycle_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of donations made by the signup in the current cycle.
        donations_count:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 5
          description: Number of donations made by the signup.
        donations_count_this_cycle:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 5
          description: Number of donations made by the signup in the current cycle.
        donations_pledged_amount_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of pledges made by the signup.
        donations_raised_amount_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of donations raised by the signup.
        donations_raised_amount_this_cycle_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of donations raised by the signup in the current cycle.
        donations_raised_count:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 5
          description: Number of donations raised by this signup.
        donations_raised_count_this_cycle:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 5
          description: Number of donations raised by this signup in the current cycle.
        donations_to_raise_amount_in_cents:
          type:
          - integer
          - 'null'
          default: 0
          examples:
          - 500
          description: Sum of donations that need to be raised.
        dw_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: The Catalist ID associated with the signup.
        email:
          type:
          - string
          - 'null'
          examples:
          - test@example.com
          description: The signup's email address.
        email1:
          type:
          - string
          - 'null'
          examples:
          - example@example.com
          description: Email address 1 for the signup.
        email1_is_bad:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Email address 1 is not emailable.
        email2:
          type:
          - string
          - 'null'
          examples:
          - example@example.com
          description: Email address 2 for the signup.
        email2_is_bad:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Email address 2 is not emailable.
        email3:
          type:
          - string
          - 'null'
          examples:
          - example@example.com
          description: Email address 3 for the signup.
        email3_is_bad:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Email address 3 is not emailable.
        email4:
          type:
          - string
          - 'null'
          examples:
          - example@example.com
          description: Email address 4 for the signup.
        email4_is_bad:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Email address 4 is not emailable.
        email_opt_in:
          type:
          - boolean
          - 'null'
          default: true
          examples:
          - false
          description: The signup has opted in to receive emails.
        employer:
          type:
          - string
          - 'null'
          examples:
          - NationBuilder
          description: The signup's employer.
        ethnicity:
          type:
          - string
          - 'null'
          examples:
          - Hawaiian
          description: Signup's ethnicity.
        external_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: A unique identifier from a third party.
        fax_number:
          type:
          - string
          - 'null'
          examples:
          - '1234567890'
          description: Signup's fax number.
        federal_district:
          type:
          - string
          - 'null'
          examples:
          - Congressional District 40
          description: Federal voting district the signup belongs to.
        federal_donotcall:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Is the signup on the federal do not call list?
        fire_district:
          type:
          - string
          - 'null'
          examples:
          - Jackson
          description: Fire district, only available in a voter file import.
        first_donated_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup made a donation.
        first_fundraised_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup fundraised.
        first_name:
          type:
          - string
          - 'null'
          examples:
          - Lucy
          description: Signup's first name.
        first_prospect_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup was marked as a prospect.
        first_recruited_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup recruited another signup.
        first_supporter_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup was marked as a supporter.
        first_volunteer_at:
          type:
          - string
          - 'null'
          format: date-time
          examples:
          - '2019-10-26T10:00:00-04:00'
          description: The first time the signup volunteered.
        import_id:
          type:
          - string
          - 'null'
          examples:
          - '1'
          description: The id of the import that added the signup.
        inferred_party:
          type:
          - string
          - 'null'
          examples:
          - P
          description: Single letter representation of the signup's inferred political party.
        inferred_support_level:
          type:
          - integer
          - 'null'
          examples:
          - 1
          description: The signup's inferred support level. 1=very strong support and 5=very strong opposition.
        is_deceased:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: The signup is deceased.
        is_fundraiser:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: The signup is a fundraiser.
        is_ignore_donation_limits:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: Ignore donation limits for this signup.
        is_leaderboardable:
          type:
          - boolean
          - 'null'
          default: true
          examples:
          - false
          description: The signup can appear on leaderboards.
        is_mobile_bad:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: The signup's mobile number is bad.
        is_possible_duplicate:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: The signup could be a duplicate.
        is_profile_private:
          type:
          - boolean
          - 'null'
          default: false
          examples:
          - false
          description: The signup's profile is private.
        is_profile_searchable:
          type:
          - boolean
          - 'null'
          default: true
          examples:
          - false
          description: The profile is searchable.
        is_prospect:
          type:
          - boole

# --- truncated at 32 KB (68 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/nationbuilder/refs/heads/main/openapi/nationbuilder-signups-api-openapi.yml