Qgiv Mappings API

Confirmed. Manage export/report mappings to external systems.

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-mappings-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-mappings-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Qgiv Account Settings Mappings 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: Mappings
  description: Confirmed. Manage export/report mappings to external systems.
paths:
  /reporting/mappings/list:
    get:
      operationId: listMappings
      tags:
      - Mappings
      summary: List all report mappings (Confirmed)
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/TokenOnlyRequest'
      responses:
        '200':
          description: A list of mappings.
          content:
            application/json:
              schema:
                type: object
                properties:
                  mappings:
                    type: array
                    items:
                      $ref: '#/components/schemas/Mapping'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /reporting/mappings/{id}:
    get:
      operationId: getMapping
      tags:
      - Mappings
      summary: Retrieve a single mapping (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 mapping.
          content:
            application/json:
              schema:
                type: object
                properties:
                  mapping:
                    $ref: '#/components/schemas/Mapping'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /mappings/create:
    post:
      operationId: createMapping
      tags:
      - Mappings
      summary: Create a mapping (Confirmed)
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PackageRequest'
      responses:
        '200':
          description: The created mapping(s).
          content:
            application/json:
              schema:
                type: object
                properties:
                  mappings:
                    type: array
                    items:
                      $ref: '#/components/schemas/Mapping'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/ValidationError'
  /mappings/{id}:
    post:
      operationId: updateMapping
      tags:
      - Mappings
      summary: Update a mapping (Confirmed)
      description: Modeled. The documentation shows the request payload for updating a mapping by ID but does not show the full response example separately from the create response; the response is modeled on the list/get Mapping shape.
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/PackageRequest'
      responses:
        '200':
          description: The updated mapping.
          content:
            application/json:
              schema:
                type: object
                properties:
                  mappings:
                    type: array
                    items:
                      $ref: '#/components/schemas/Mapping'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '422':
          $ref: '#/components/responses/ValidationError'
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'
    ValidationError:
      description: The request payload failed validation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    PackageRequest:
      type: object
      required:
      - token
      - package
      properties:
        token:
          type: string
          description: API token bound to the form(s) being accessed.
        package:
          type: string
          description: XML- or JSON-formatted input payload for the write operation.
    TokenOnlyRequest:
      type: object
      required:
      - token
      properties:
        token:
          type: string
          description: API token bound to the form(s) being accessed.
    Mapping:
      type: object
      properties:
        id:
          type: string
        identifier:
          type: string
        mappingData:
          type: string
        exportService:
          type: string
        type:
          type: string
    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.