Bloomerang Interactions API
Logged touches between the organization and a constituent.
Logged touches between the organization and a constituent.
openapi: 3.0.3
info:
title: Bloomerang REST API v2 Constituents Interactions API
description: The Bloomerang REST API v2 is a private-key, server-to-server API for reading and writing data in a Bloomerang donor management CRM account - constituents, transactions (donations, pledges, recurring donations), interactions, notes, relationships, and webhook subscriptions. Requests are authenticated with either a private API key sent in the X-Api-Key header (generated by an Administrator user under User Settings) or an OAuth 2.0 access token for third-party applications. Bloomerang does not offer a sandbox environment - all requests operate against production data. Endpoints for Constituents, Transactions, and Interactions are directly confirmed in Bloomerang's public documentation and third-party integration guides; endpoints for Households, Notes, Relationships, Custom Fields, Webhooks, Users, Funds, Campaigns, and Appeals are modeled from Bloomerang's REST API v1 resource parity, community client libraries, and CRM feature documentation, since Bloomerang does not publish a complete, versioned OpenAPI/Swagger document for v2. See review.yml in this repository for the endpointsConfirmed vs endpointsModeled breakdown.
version: '2.0'
contact:
name: Bloomerang
url: https://bloomerang.com/api/rest-api
servers:
- url: https://api.bloomerang.co/v2
description: Bloomerang REST API v2 (production - no sandbox is offered)
security:
- apiKeyAuth: []
- oauth2Bearer: []
tags:
- name: Interactions
description: Logged touches between the organization and a constituent.
paths:
/interactions:
get:
operationId: listInteractions
tags:
- Interactions
summary: List interactions
description: Lists interactions, paginated with skip/take parameters.
parameters:
- $ref: '#/components/parameters/Skip'
- $ref: '#/components/parameters/Take'
responses:
'200':
description: A page of interactions.
content:
application/json:
schema:
type: object
properties:
Results:
type: array
items:
$ref: '#/components/schemas/Interaction'
'401':
$ref: '#/components/responses/Unauthorized'
post:
operationId: createInteraction
tags:
- Interactions
summary: Create an interaction
description: Creates an interaction - a logged touch (call, meeting, letter, email) between the organization and a constituent.
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/InteractionInput'
responses:
'200':
description: The created interaction.
content:
application/json:
schema:
$ref: '#/components/schemas/Interaction'
'401':
$ref: '#/components/responses/Unauthorized'
'422':
$ref: '#/components/responses/ValidationError'
/interactions/{id}:
parameters:
- name: id
in: path
required: true
description: The ID of the interaction.
schema:
type: integer
get:
operationId: getInteraction
tags:
- Interactions
summary: Retrieve an interaction
description: Retrieves an interaction by ID.
responses:
'200':
description: The requested interaction.
content:
application/json:
schema:
$ref: '#/components/schemas/Interaction'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
Skip:
name: skip
in: query
required: false
description: Number of records to skip, for pagination.
schema:
type: integer
default: 0
Take:
name: take
in: query
required: false
description: Number of records to return, for pagination.
schema:
type: integer
default: 50
responses:
Unauthorized:
description: Missing or invalid API key / access token.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ValidationError:
description: The request payload failed validation.
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:
InteractionInput:
type: object
required:
- AccountId
- Date
- Channel
properties:
AccountId:
type: integer
Date:
type: string
format: date
Channel:
type: string
enum:
- Call
- Email
- InPerson
- Letter
- Other
Purpose:
type: string
Note:
type: string
UserId:
type: integer
Error:
type: object
properties:
Message:
type: string
Errors:
type: array
items:
type: string
Interaction:
allOf:
- $ref: '#/components/schemas/InteractionInput'
- type: object
properties:
Id:
type: integer
securitySchemes:
apiKeyAuth:
type: apiKey
in: header
name: X-Api-Key
description: Private API key generated by an Administrator user in Bloomerang under User Settings > Edit My User. Grants full read/write access - keep it secret.
oauth2Bearer:
type: oauth2
description: 'OAuth 2.0 access token for third-party applications, presented as `Authorization: Bearer {access_token}`.'
flows:
authorizationCode:
authorizationUrl: https://crm.bloomerang.co/oauth/authorize
tokenUrl: https://api.bloomerang.co/v2/oauth/token
scopes:
api: Full read/write access to account data.