Qgiv Recurring API

Confirmed. Read-only reporting on recurring donation schedules.

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/qgiv-recurring-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

qgiv-recurring-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Qgiv Account Settings Recurring API
  description: The Qgiv API is a token-authenticated, form-scoped service for reading and writing data behind Qgiv (now Bloomerang Fundraising) donation forms, events, and peer-to-peer campaigns. Qgiv was acquired by Bloomerang in January 2024; this legacy API documented at qgiv.com/api remains the programmatic interface for Qgiv accounts. All requests are made with HTTP POST to https://secure.qgiv.com/admin/api, carrying a `token` field bound to one or more forms. Input is accepted as XML or JSON via a `package` field for write operations; output format is selected by the URL file extension (`.xml` or `.json`), independent of the request's input format. There is no bearer/OAuth layer, no documented API versioning scheme, and no documented public webhook subscription endpoint - some endpoints are modeled here directly from the vendor's own documentation examples (marked Confirmed), and request/response bodies for write operations not fully illustrated in the docs are modeled by API Evangelist from the documented example payloads (marked Modeled).
  version: '1.0'
  contact:
    name: Qgiv (Bloomerang Fundraising)
    url: https://www.qgiv.com/api/
  license:
    name: Proprietary
    url: https://www.qgiv.com/terms-of-service
servers:
- url: https://secure.qgiv.com/admin/api
  description: Qgiv production API
security:
- tokenAuth: []
tags:
- name: Recurring
  description: Confirmed. Read-only reporting on recurring donation schedules.
paths:
  /reporting/recurring/list:
    post:
      operationId: listRecurringTransactions
      tags:
      - Recurring
      summary: List all recurring transactions (Confirmed)
      description: Returns all recurring transactions for the current form or organization, plus an upcoming billing forecast by month.
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenOnlyRequest'
      responses:
        '200':
          description: Recurring transactions and forecast.
          content:
            application/json:
              schema:
                type: object
                properties:
                  forecast:
                    type: object
                    additionalProperties:
                      type: string
                  recurringTransactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/RecurringTransaction'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /reporting/recurring/{status}:
    post:
      operationId: listRecurringTransactionsByStatus
      tags:
      - Recurring
      summary: List recurring transactions by status (Confirmed)
      parameters:
      - name: status
        in: path
        required: true
        schema:
          type: string
          enum:
          - active
          - paused
          - expired
          - deleted
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenOnlyRequest'
      responses:
        '200':
          description: Recurring transactions matching the status.
          content:
            application/json:
              schema:
                type: object
                properties:
                  recurringTransactions:
                    type: array
                    items:
                      $ref: '#/components/schemas/RecurringTransaction'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /reporting/recurring/{id}:
    post:
      operationId: getRecurringTransaction
      tags:
      - Recurring
      summary: Get a single recurring transaction (Confirmed)
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenOnlyRequest'
      responses:
        '200':
          description: The requested recurring transaction.
          content:
            application/json:
              schema:
                type: object
                properties:
                  recurring:
                    $ref: '#/components/schemas/RecurringTransaction'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Missing or invalid API token.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    TokenOnlyRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          description: API token bound to the form(s) being accessed.
    RecurringTransaction:
      type: object
      properties:
        id:
          type: string
        startDate:
          type: string
        endDate:
          type: string
        nextBilling:
          type: string
        frequency:
          type: string
        amount:
          type: string
        donorName:
          type: string
        state:
          type: string
          enum:
          - active
          - paused
          - expired
          - deleted
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
  securitySchemes:
    tokenAuth:
      type: apiKey
      in: query
      name: token
      description: Documented as a POST body field (`token=<API token>`), not a header or querystring value. Modeled here as an apiKey scheme because OpenAPI 3.0 has no first-class "form field" security type. The token is scoped to one or more specific forms in the Qgiv admin console.