Givebutter Contact Activities API
The Contact Activities API from Givebutter — 5 operation(s) for contact activities. Split by tag from Givebutter's own published OpenAPI at https://givebutter.com/docs/api.json (harvested 2026-09-12).
The Contact Activities API from Givebutter — 5 operation(s) for contact activities. Split by tag from Givebutter's own published OpenAPI at https://givebutter.com/docs/api.json (harvested 2026-09-12).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/givebutter-contact-activities-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Givebutter API Documentation Contact Activities API
version: 1.0.0
description: Givebutter Public API - Access and manage your campaigns, contacts, transactions, and more.
servers:
- url: https://api.givebutter.com/
security:
- http: []
tags:
- name: Contact Activities
paths:
/v1/contacts/{contact}/activities:
get:
operationId: contacts.activities.index
summary: List all contact activities
tags:
- Contact Activities
parameters:
- name: contact
in: path
required: true
description: The contact ID
schema:
type: integer
- name: type
in: query
schema:
$ref: '#/components/schemas/ContactActivityTypeEnum'
responses:
'200':
description: Paginated set of `ContactActivityResource`
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ContactActivityResource'
links:
type: object
properties:
first:
type:
- string
- 'null'
last:
type:
- string
- 'null'
prev:
type:
- string
- 'null'
next:
type:
- string
- 'null'
required:
- first
- last
- prev
- next
meta:
type: object
properties:
current_page:
type: integer
minimum: 1
from:
type:
- integer
- 'null'
minimum: 1
last_page:
type: integer
minimum: 1
links:
type: array
description: Generated paginator links.
items:
type: object
properties:
url:
type:
- string
- 'null'
label:
type: string
active:
type: boolean
required:
- url
- label
- active
path:
type:
- string
- 'null'
description: Base path for paginator generated URLs.
per_page:
type: integer
description: Number of items shown per page.
minimum: 0
to:
type:
- integer
- 'null'
description: Number of the last item in the slice.
minimum: 1
total:
type: integer
description: Total number of items being paginated.
minimum: 0
required:
- current_page
- from
- last_page
- links
- path
- per_page
- to
- total
required:
- data
- links
- meta
'422':
$ref: '#/components/responses/ValidationException'
'403':
$ref: '#/components/responses/AuthorizationException'
'404':
$ref: '#/components/responses/ModelNotFoundException'
post:
operationId: contacts.activities.store
summary: Create a contact activity
tags:
- Contact Activities
parameters:
- name: contact
in: path
required: true
description: The contact ID
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/StoreContactActivityRequest'
responses:
'200':
description: '`ContactActivityResource`'
content:
application/json:
schema:
$ref: '#/components/schemas/ContactActivityResource'
'403':
$ref: '#/components/responses/AuthorizationException'
'422':
$ref: '#/components/responses/ValidationException'
'404':
$ref: '#/components/responses/ModelNotFoundException'
/v1/contacts/{contact}/activities/{activity}:
get:
operationId: contacts.activities.show
summary: Get a contact activity
tags:
- Contact Activities
parameters:
- name: contact
in: path
required: true
description: The contact ID
schema:
type: integer
- name: activity
in: path
required: true
description: The activity ID
schema:
type: integer
responses:
'200':
description: '`ContactActivityResource`'
content:
application/json:
schema:
$ref: '#/components/schemas/ContactActivityResource'
'403':
$ref: '#/components/responses/AuthorizationException'
'404':
$ref: '#/components/responses/ModelNotFoundException'
put:
operationId: contacts.activities.update
summary: Update a contact activity
tags:
- Contact Activities
parameters:
- name: contact
in: path
required: true
description: The contact ID
schema:
type: integer
- name: activity
in: path
required: true
description: The activity ID
schema:
type: integer
responses:
'200':
description: '`ContactActivityResource`'
content:
application/json:
schema:
$ref: '#/components/schemas/ContactActivityResource'
'403':
$ref: '#/components/responses/AuthorizationException'
'422':
$ref: '#/components/responses/ValidationException'
'404':
$ref: '#/components/responses/ModelNotFoundException'
delete:
operationId: contacts.activities.destroy
summary: Delete a contact activity
tags:
- Contact Activities
parameters:
- name: contact
in: path
required: true
description: The contact ID
schema:
type: integer
- name: activity
in: path
required: true
description: The activity ID
schema:
type: integer
responses:
'204':
description: No content
'403':
$ref: '#/components/responses/AuthorizationException'
'422':
$ref: '#/components/responses/ValidationException'
'404':
$ref: '#/components/responses/ModelNotFoundException'
components:
schemas:
DedicationResource:
type: object
properties:
type:
type: string
name:
type: string
recipient:
type: object
properties:
name:
type:
- string
- 'null'
email:
type:
- string
- 'null'
required:
- name
- email
created_at:
type: string
updated_at:
type: string
required:
- type
- name
- recipient
- created_at
- updated_at
title: DedicationResource
RecurringPlanResource:
type: object
properties:
id:
type: string
contact_id:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
phone:
type: string
frequency:
type: string
status:
type: string
method:
type: string
amount:
type: string
fee_covered:
type: string
created_at:
type: string
updated_at:
type: string
start_at:
type: string
canceled_at:
type: string
next_bill_date:
type: string
required:
- id
- contact_id
- first_name
- last_name
- email
- phone
- frequency
- status
- method
- amount
- fee_covered
- created_at
- updated_at
- start_at
- canceled_at
- next_bill_date
title: RecurringPlanResource
GivingSpaceResource:
type: object
properties:
id:
type: string
name:
type: string
amount:
type: number
message:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- name
- amount
- message
- created_at
- updated_at
title: GivingSpaceResource
CustomFieldResponseResource:
type: object
properties:
id:
type: integer
field_id:
type: integer
title:
type: string
description:
type:
- string
- 'null'
type:
type: string
value:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- field_id
- title
- description
- type
- value
- created_at
- updated_at
title: CustomFieldResponseResource
ExternalIdResource:
type: object
properties:
id:
type: integer
label:
type: string
external_id:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- label
- external_id
- created_at
- updated_at
title: ExternalIdResource
TransactionLineItemResource:
type: object
properties:
type:
type: string
subtype:
type: string
description:
type: string
quantity:
type: integer
price:
type: number
discount:
type: number
total:
type: number
created_at:
type: string
updated_at:
type: string
required:
- type
- subtype
- description
- quantity
- price
- discount
- total
- created_at
- updated_at
title: TransactionLineItemResource
TicketResource:
type: object
properties:
id:
type: string
id_suffix:
type: string
transaction_id:
type: string
name:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
phone:
type: string
title:
type: string
description:
type: string
price:
type: number
pdf:
type: string
checked_in_at:
type: string
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomFieldResponseResource'
created_at:
type: string
updated_at:
type: string
retail_price:
type:
- string
- 'null'
required:
- id
- id_suffix
- transaction_id
- name
- first_name
- last_name
- email
- phone
- title
- description
- price
- pdf
- checked_in_at
- custom_fields
- created_at
- updated_at
- retail_price
title: TicketResource
PublicUserResource:
type: object
properties:
id:
type: string
first_name:
type: string
last_name:
type: string
email:
type: string
required:
- id
- first_name
- last_name
- email
title: PublicUserResource
TransactionResource:
anyOf:
- type: object
properties:
id:
type: string
plan_id:
type: string
pledge_id:
type: string
amount:
type: number
fee:
type: number
fee_covered:
type: number
donated:
type: number
payout:
type: number
captured:
type: string
captured_at:
type: string
timezone:
type: string
refunded:
type: string
refunded_at:
type: string
line_items:
type: array
items:
$ref: '#/components/schemas/TransactionLineItemResource'
fair_market_value_amount:
type:
- string
- 'null'
tax_deductible_amount:
type:
- string
- 'null'
is_recurring:
type: string
required:
- id
- plan_id
- pledge_id
- amount
- fee
- fee_covered
- donated
- payout
- captured
- captured_at
- timezone
- refunded
- refunded_at
- line_items
- fair_market_value_amount
- tax_deductible_amount
- is_recurring
- type: object
properties:
id:
type: string
number:
type: string
campaign_id:
type: string
campaign_code:
type: string
campaign_title:
type: string
plan_id:
type: string
pledge_id:
type: string
team_id:
type: string
team_name:
type: string
member_id:
type: string
member_name:
type: string
fund_id:
type: string
fund_code:
type: string
contact_id:
type: string
first_name:
type: string
last_name:
type: string
company_name:
type: string
company:
type: string
email:
type: string
phone:
type: string
address:
type: string
status:
type: string
payment_method:
type: string
method:
type: string
is_offline:
type: string
check_number:
anyOf:
- type: string
- type: object
check_deposited_at:
anyOf:
- type: string
- type: object
internal_note:
type: string
amount:
type: number
fee:
type: number
fee_covered:
type: number
donated:
type: number
payout:
type: number
currency:
type: string
transacted_at:
type: string
created_at:
type: string
updated_at:
type: string
timezone:
type: string
giving_space:
anyOf:
- $ref: '#/components/schemas/GivingSpaceResource'
- type: 'null'
dedication:
anyOf:
- $ref: '#/components/schemas/DedicationResource'
- type: 'null'
transactions:
type: array
prefixItems:
- $ref: '#/components/schemas/TransactionResource'
minItems: 1
maxItems: 1
additionalItems: false
custom_fields:
type: array
items:
$ref: '#/components/schemas/CustomFieldResponseResource'
utm_parameters:
type: string
external_id:
anyOf:
- $ref: '#/components/schemas/ExternalIdResource'
- type: 'null'
communication_opt_in:
type: string
session_id:
type: string
attribution_data:
type: string
fair_market_value_amount:
type:
- string
- 'null'
tax_deductible_amount:
type:
- string
- 'null'
is_recurring:
type: string
payout_id:
anyOf:
- type: string
- type: object
required:
- id
- number
- campaign_id
- campaign_code
- campaign_title
- plan_id
- pledge_id
- team_id
- team_name
- member_id
- member_name
- fund_id
- fund_code
- contact_id
- first_name
- last_name
- company_name
- company
- email
- phone
- address
- status
- payment_method
- method
- is_offline
- check_number
- check_deposited_at
- internal_note
- amount
- fee
- fee_covered
- donated
- payout
- currency
- transacted_at
- created_at
- updated_at
- timezone
- giving_space
- dedication
- transactions
- custom_fields
- utm_parameters
- external_id
- communication_opt_in
- session_id
- attribution_data
- fair_market_value_amount
- tax_deductible_amount
- is_recurring
- payout_id
title: TransactionResource
ContactActivityResource:
type: object
properties:
id:
type: string
type:
type: string
source:
type: string
data:
type: string
resource:
anyOf:
- $ref: '#/components/schemas/TransactionResource'
- type: object
properties:
id:
type: string
required:
- id
- type: 'null'
- $ref: '#/components/schemas/RecurringPlanResource'
- $ref: '#/components/schemas/TicketResource'
- $ref: '#/components/schemas/MessageResource'
resource_type:
type:
- string
- 'null'
enum:
- transaction
- plan
- ticket
- message
- mail_piece
- soft_credit
- subscription_log
- null
created_by:
$ref: '#/components/schemas/PublicUserResource'
occurred_at:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- type
- source
- data
- resource
- resource_type
- occurred_at
- created_at
- updated_at
title: ContactActivityResource
MessageResource:
type: object
properties:
id:
type: string
status:
type: string
channel:
type: string
internal_name:
type: string
subject:
type: string
preheader:
type: string
body:
type: string
recipient_filters:
type: string
recipient_count:
type: string
sent_at:
type: string
sending_at:
type: string
created_at:
type: string
updated_at:
type: string
required:
- id
- status
- channel
- internal_name
- body
- recipient_filters
- recipient_count
- sent_at
- sending_at
- created_at
- updated_at
title: MessageResource
ContactActivityTypeEnum:
type: string
enum:
- archived
- campaign.joined
- email
- email.subscribed
- email.unsubscribed
- letter
- meeting
- note
- phone_call
- recurring_plan.canceled
- recurring_plan.created
- recurring_plan.activated
- signup_form.submitted
- sms
- sms.subscribed
- sms.unsubscribed
- subscription_form.submitted
- completed_task
- created_task
- ticket.issued
- transaction.recieved
- transaction.succeeded
- transaction.acknowledged
- transaction.unacknowledged
- unarchived
- volunteer_activity
- soft_credited
- tagged
- untagged
- custom_field.updated
- video_message.sent
- video_message.deleted
title: ContactActivityTypeEnum
StoreContactActivityRequest:
type: object
properties:
type:
type: string
enum:
- email
- meeting
- note
- phone_call
- sms
- completed_task
- volunteer_activity
note:
type:
- string
- 'null'
subject:
type:
- string
- 'null'
maxLength: 255
occurred_at:
type:
- string
- 'null'
format: date-time
timezone:
type:
- string
- 'null'
maxLength: 255
required:
- type
title: StoreContactActivityRequest
responses:
AuthorizationException:
description: Authorization error
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error overview.
required:
- message
ValidationException:
description: Validation error
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Errors overview.
errors:
type: object
description: A detailed description of each field that failed validation.
additionalProperties:
type: array
items:
type: string
required:
- message
- errors
ModelNotFoundException:
description: Not found
content:
application/json:
schema:
type: object
properties:
message:
type: string
description: Error overview.
required:
- message
securitySchemes:
http:
type: http
scheme: bearer