Donorbox Plans API

Recurring donation subscriptions.

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/donorbox-plans-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

donorbox-plans-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Donorbox Campaigns Plans API
  description: The Donorbox API provides read-only access to a nonprofit organization's fundraising data - Campaigns, Donations, Plans (recurring donation subscriptions), Donors, Events, Tickets, and Event Ticket Purchases. The API is a paid add-on available on the Pro and Premium Donorbox plans. All requests use HTTP Basic Auth, with your Donorbox organization login email as the username and your API key as the password. Every list endpoint supports `page`/`per_page` pagination and `order` sorting, and most support endpoint-specific filters. There are no documented write (POST/PUT/PATCH/DELETE) operations - donations, donors, and plans are created through the hosted Donorbox checkout flow, not this API. This document was authored by API Evangelist from the official donorbox/donorbox-api GitHub README and wiki, since Donorbox does not publish its own OpenAPI/Swagger file.
  version: '1.0'
  contact:
    name: Donorbox
    url: https://donorbox.org
  license:
    name: Proprietary (API access is a paid add-on)
    url: https://github.com/donorbox/donorbox-api
servers:
- url: https://donorbox.org/api/v1
  description: Donorbox production API
security:
- basicAuth: []
tags:
- name: Plans
  description: Recurring donation subscriptions.
paths:
  /plans:
    get:
      operationId: listPlans
      tags:
      - Plans
      summary: List recurring donation plans
      description: Returns all recurring donation plans (subscriptions) for the authenticated organization. Endpoint and response shape confirmed in the official README sample payload.
      parameters:
      - name: email
        in: query
        description: Filter plans by the donor's email address.
        schema:
          type: string
          format: email
      - name: date_from
        in: query
        description: 'Filter plans started on or after this date. Accepted formats: YYYY-mm-dd, YYYY/mm/dd, YYYYmmdd, dd-mm-YYYY.'
        schema:
          type: string
      - name: date_to
        in: query
        description: 'Filter plans started on or before this date. Accepted formats: YYYY-mm-dd, YYYY/mm/dd, YYYYmmdd, dd-mm-YYYY.'
        schema:
          type: string
      - name: campaign_id
        in: query
        description: Filter plans by Donorbox campaign id.
        schema:
          type: integer
      - name: campaign_name
        in: query
        description: Filter plans by campaign title.
        schema:
          type: string
      - name: donor_id
        in: query
        description: Filter plans by Donorbox donor id.
        schema:
          type: integer
      - name: first_name
        in: query
        description: Filter plans by donor first name.
        schema:
          type: string
      - name: last_name
        in: query
        description: Filter plans by donor last name.
        schema:
          type: string
      - name: donor_name
        in: query
        description: Filter plans by donor full name (equivalent to combining first_name and last_name).
        schema:
          type: string
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/PerPage'
      - $ref: '#/components/parameters/Order'
      responses:
        '200':
          description: A list of recurring donation plans.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Plan'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  parameters:
    PerPage:
      name: per_page
      in: query
      description: Number of records per page. Default 50, maximum 100 (values above 100 fall back to the default).
      schema:
        type: integer
        default: 50
        maximum: 100
    Page:
      name: page
      in: query
      description: Page number to return.
      schema:
        type: integer
        default: 1
    Order:
      name: order
      in: query
      description: Sort order.
      schema:
        type: string
        enum:
        - asc
        - desc
        default: desc
  responses:
    Unauthorized:
      description: Missing or invalid Basic Auth credentials (organization email / API key). Response shape not published; modeled generically.
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
  schemas:
    Plan:
      type: object
      properties:
        id:
          type: integer
        campaign:
          type: object
          properties:
            id:
              type: integer
            name:
              type: string
        donor:
          type: object
          properties:
            id:
              type: integer
            name:
              type: string
            first_name:
              type: string
            last_name:
              type: string
            email:
              type: string
              format: email
            phone:
              type: string
            address:
              type: string
            city:
              type: string
            state:
              type: string
            zip_code:
              type: string
            country:
              type: string
            employer:
              type: string
              nullable: true
            occupation:
              type: string
              nullable: true
        type:
          type: string
          description: Recurrence frequency, e.g. "monthly".
        amount:
          type: string
        formatted_amount:
          type: string
        payment_method:
          type: string
        started_at:
          type: string
          format: date
        last_donation_date:
          type: string
          format: date-time
        next_donation_date:
          type: string
          format: date
        status:
          type: string
          description: 'Documented example value: "active".'
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: Username is the Donorbox organization login email; password is the API key generated under Account > API & Zapier Integration.