Chariot Event Subscriptions API
The Event Subscriptions API from Chariot — 2 operation(s) for event subscriptions.
The Event Subscriptions API from Chariot — 2 operation(s) for event subscriptions.
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/chariot-event-subscriptions-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: Chariot Event Subscriptions API
version: v1
description: The Chariot REST API. Please see https://docs.givechariot.com/api for more details.
contact:
name: Chariot Development Team
url: https://givechariot.com/contact
email: developers@givechariot.com
termsOfService: https://givechariot.com/legal-nonprofit
servers:
- url: https://sandboxapi.givechariot.com
description: Sandbox
- url: https://api.givechariot.com
description: Production
tags:
- name: Event Subscriptions
paths:
/v1/event_subscriptions:
post:
summary: Create an Event Subscription
description: Create an event subscription corresponding to your Chariot account.
operationId: createEventSubscription
tags:
- Event Subscriptions
security:
- bearerAuth: []
requestBody:
$ref: '#/components/requestBodies/CreateEventSubscriptionRequest'
responses:
'201':
description: Created
headers:
Location:
$ref: '#/components/headers/Location'
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
get:
summary: List Event Subscriptions
description: List all event subscriptions corresponding to your Chariot account.
operationId: listEventSubscriptions
tags:
- Event Subscriptions
security:
- bearerAuth: []
parameters:
- name: limit
in: query
description: Limit the size of the list that is returned. The default (and maximum) is 100 objects.
required: false
schema:
type: integer
format: int32
- name: cursor
in: query
description: The cursor to use for pagination. If not set, the first page of results will be returned.
required: false
schema:
type: string
responses:
'200':
$ref: '#/components/responses/ListEventSubscriptionsResponse'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'500':
$ref: '#/components/responses/InternalServerError'
/v1/event_subscriptions/{id}:
get:
summary: Get an Event Subscription
description: Retrieve an event subscription with the given ID.
operationId: getEventSubscription
tags:
- Event Subscriptions
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: The unique identifier for the event subscription
required: true
schema:
type: string
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
patch:
summary: Update an Event Subscription
description: Update an event subscription with the given ID.
operationId: updateEventSubscription
tags:
- Event Subscriptions
security:
- bearerAuth: []
parameters:
- name: id
in: path
description: The unique identifier for the event subscription
required: true
schema:
type: string
requestBody:
$ref: '#/components/requestBodies/UpdateEventSubscriptionRequest'
responses:
'200':
description: Updated
content:
application/json:
schema:
$ref: '#/components/schemas/EventSubscription'
'400':
$ref: '#/components/responses/BadRequestError'
'401':
$ref: '#/components/responses/AuthenticationError'
'403':
$ref: '#/components/responses/ForbiddenError'
'404':
$ref: '#/components/responses/NotFoundError'
'500':
$ref: '#/components/responses/InternalServerError'
components:
responses:
BadRequestError:
description: The request is invalid or contains invalid parameters
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
BadRequest:
value:
type: about:blank
title: API Error
status: 400
detail: The request is invalid or contains invalid parameters.
ListEventSubscriptionsResponse:
description: The response for Events.list
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/json:
schema:
type: object
properties:
results:
type: array
items:
$ref: '#/components/schemas/EventSubscription'
nextPageToken:
type: string
description: "A cursor token to use to retrieve the next page of results by making another API call\n to the same endpoint with the same parameters (only changing the pageToken). If\n specified, then more results exist on the server that were not returned, otherwise\n no more results exist on the server."
AuthenticationError:
description: Unauthorized. The request is missing the security (OAuth2 Bearer token) requirements and the server is unable to verify the identify of the caller.
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
Unauthorized:
value:
type: about:blank
title: API Error
status: 401
detail: Authentication credentials were missing or invalid.
ForbiddenError:
description: Access denied
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
Forbidden:
value:
type: about:blank
title: API Error
status: 403
detail: You do not have permission to access this resource.
InternalServerError:
description: Internal Server Error
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
InternalServerError:
value:
type: about:blank
title: API Error
status: 500
detail: The server encountered an error processing your request.
NotFoundError:
description: Resource Not Found
headers:
X-Request-Id:
$ref: '#/components/headers/X-Request-Id'
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
examples:
NotFound:
value:
type: about:blank
title: API Error
status: 404
detail: The requested resource was not found.
headers:
Location:
description: The URI of the created object
schema:
type: string
X-Request-Id:
description: The unique identifier for the request
schema:
type: string
schemas:
EventCategory:
type: string
description: 'The category of the event. This is useful for filtering events.
Event names follow the pattern `{resource}.{event_type}` where `event_type` is either `created` or `updated`. Status transitions (for example, a Donor Account moving to `approved` or `rejected`) are emitted as `{resource}.updated` events — fetch the object to read its current status.
'
enum:
- grant.created
- grant.updated
- unintegrated_grant.created
- unintegrated_grant.updated
- donor_account.created
- donor_account.updated
- authorization_token.created
- authorization_token.updated
- grant_request.created
- grant_request.updated
- disbursement.created
- disbursement.updated
- inbound_transfer.created
- inbound_transfer.updated
- donation.created
- donation.updated
- deposit.created
- deposit.updated
- verification_request.created
- verification_request.updated
EventSubscription:
type: object
description: 'Webhooks are event notifications we send to you by HTTPS POST requests.
Event Subscriptions are how you configure your application to listen for them.
'
required:
- url
properties:
id:
type: string
description: The unique identifier for the event subscription
example: 4d06d393-1f14-46cf-b02d-8db17d7ed06a
readOnly: true
created_at:
type: string
format: date-time
description: The date and time the event subscription was created
example: '2024-01-14T12:48:56.37Z'
readOnly: true
status:
$ref: '#/components/schemas/EventSubscriptionStatus'
url:
type: string
description: The webhook url where we'll send notifications.
example: https://example.com/webhook
category:
$ref: '#/components/schemas/EventCategory'
EventSubscriptionStatus:
type: string
description: "The status of the event subscription.\nThis indicates if we'll send notifications to this subscription\n * active: subscription is active and events will be delivered normally\n * disabled: subscription is temporarily disabled and events will not be delivered\n * deleted: subscription has been deleted and events will not be delivered\n * requires_attention: subscription has been disabled due to delivery failures and events will not be delivered"
enum:
- active
- disabled
- deleted
- requires_attention
ProblemDetails:
type: object
description: RFC 7807 problem-details error (media type application/problem+json). The `status` field is an integer HTTP status code.
required:
- type
- title
- status
- detail
properties:
type:
type: string
description: A URI reference identifying the problem type.
example: about:blank
title:
type: string
description: A short, human-readable summary of the problem type.
example: API Error
status:
type: integer
description: The HTTP status code for this error.
example: 400
detail:
type: string
description: A human-readable explanation specific to this occurrence.
example: The request is invalid or contains invalid parameters.
example:
type: about:blank
title: API Error
status: 400
detail: The request is invalid or contains invalid parameters.
requestBodies:
CreateEventSubscriptionRequest:
description: The request body for creating an event subscription
required: true
content:
application/json:
schema:
type: object
required:
- url
- category
properties:
url:
type: string
description: The webhook url where we'll send notifications.
example: https://example.com/webhook
category:
$ref: '#/components/schemas/EventCategory'
signing_secret:
type: string
description: 'The key that will be used to sign webhooks.
If no value is passed, a random string will be used as default.
This is necessary to verify that the webhook is coming from Chariot.
While this parameter is optional, it is highly recommended to pass a value
for the secret and implement webhook signature verification.'
UpdateEventSubscriptionRequest:
description: The request body for creating an event subscription
required: true
content:
application/json:
schema:
type: object
properties:
status:
type: string
description: "The status of the event subscription:\n * active: The event subscription is active and events will be delivered\n * disabled: The event subscription is temporarily disabled and events will not be delivered\n * deleted: The event subscription is permanently deleted and events will not be delivered"
enum:
- active
- disabled
- deleted
securitySchemes:
bearerAuth:
type: http
scheme: bearer