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/kajabi-transactions-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 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: Kajabi API V1 Transactions API
version: 1.1.0
description: '## Public API
* Server URL `https://api.kajabi.com`
* Endpoint paths are prefixed with `/v1`
* Version endpoint `GET https://api.kajabi.com/v1/version`
* See the Developers Site for documentation and examples.'
contact:
email: support@kajabi.com
name: Support
url: https://help.kajabi.com/hc/en-us/articles/4404549690523-How-to-Get-Help-From-Kajabi-Live-Agents
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
servers:
- url: https://api.kajabi.com
description: Production
tags:
- name: Transactions
paths:
/v1/transactions:
get:
summary: List transactions
description: 'List of payment transactions related to completed financial activity (successful charges, refunds, and disputes) that are associated with actual purchases, excluding test transactions, free purchases, failed attempts, and pending transactions.
## Pagination
Use `page[number]` and `page[size]` parameters to paginate results:
### Get first page of 10 items
* `GET /v1/transactions?page[number]=1&page[size]=10`
### Get second page of 25 items
* `GET /v1/transactions?page[number]=2&page[size]=25`
The response includes pagination links and meta data:
```json
{
"links": {
"self": "https://api.kajabi.com/v1/transactions?page[number]=2&page[size]=10",
"first": "https://api.kajabi.com/v1/transactions?page[number]=1&page[size]=10",
"prev": "https://api.kajabi.com/v1/transactions?page[number]=1&page[size]=10",
"next": "https://api.kajabi.com/v1/transactions?page[number]=3&page[size]=10",
"last": "https://api.kajabi.com/v1/transactions?page[number]=5&page[size]=10"
},
"meta": {
"total_pages": 5,
"total_count": 50,
"current_page": 2
}
}
```
## Sparse Fields
Use the `fields[transactions]` parameter to request only specific attributes:
### Only return amount_in_cents and sales_tax_in_cents attributes
* `GET /v1/transactions?fields[transactions]=amount_in_cents,sales_tax_in_cents`
Response will only include requested fields
```json
{
"data": [{
"id": "123",
"type": "transactions",
"attributes": {
"amount_in_cents": 9900,
"sales_tax_in_cents": 990
}
}]
}
```
## Filtering
Use the `filter[site_id]` parameter to filter transactions by site:
### Get transactions for site with ID 123
* `GET /v1/transactions?filter[site_id]=123`
Response will include only transactions for the specified site
```json
{
"data": [{
"id": "456",
"type": "transactions",
"attributes": {
"amount_in_cents": 9900,
"sales_tax_in_cents": 990,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
```
## Date Range Filtering
Use the `filter[start_date]` and `filter[end_date]` parameters to filter transactions by date range:
### Get transactions between January 1st and January 31st, 2024
* `GET /v1/transactions?filter[start_date]=2024-01-01&filter[end_date]=2024-01-31`
Response will include only transactions within the specified date range
```json
{
"data": [{
"id": "456",
"type": "transactions",
"attributes": {
"amount_in_cents": 9900,
"sales_tax_in_cents": 990,
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z"
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}]
}
```
## Filtering by Name or Email
Use the `filter[name_or_email]` parameter to filter transactions by name or email:
### Get transactions for customer with name or email "John"
* `GET /v1/transactions?filter[name_or_email]=John`
## Filtering by Customer
Use the `filter[customer_id]` parameter to filter transactions by customer:
### Get transactions for customer with ID 456789
* `GET /v1/transactions?filter[customer_id]=456789`
## Using Multiple Parameters Together
You can combine multiple parameters to filter and format the response:
### Get paginated, filtered transactions with specific fields
* `GET /v1/transactions?page[number]=1&page[size]=10&fields[transactions]=amount_in_cents,sales_tax_in_cents&filter[site_id]=123&filter[start_date]=2024-01-01&filter[end_date]=2024-01-31`
Response will include paginated transactions matching all filters, with only requested fields:
```json
{
"data": [{
"id": "456",
"type": "transactions",
"attributes": {
"amount_in_cents": 9900,
"sales_tax_in_cents": 990
},
"relationships": {
"site": {
"data": {
"id": "123",
"type": "sites"
}
}
}
}],
"meta": {
"total_pages": 1,
"current_page": 1
}
}
```'
tags:
- Transactions
security:
- Bearer: []
parameters:
- name: page[number]
in: query
required: false
schema:
type: number
- name: page[size]
in: query
required: false
description: Number of documents
schema:
type: number
- name: fields[transactions]
in: query
required: false
description: Partial attributes as specified, e.g. fields[transactions]=amount_in_cents,sales_tax_in_cents
schema:
type: string
- name: filter[site_id]
in: query
required: false
description: Filter by site_id, for example ?filter[site_id]=111
schema:
type: string
- name: filter[customer_id]
in: query
required: false
description: Filter by customer_id, for example ?filter[customer_id]=456789
schema:
type: string
- name: filter[name_or_email]
in: query
required: false
description: Filter by name or email, for example ?filter[name_or_email]=John
schema:
type: string
- name: filter[start_date]
in: query
required: false
description: Filter by start_date, for example ?filter[start_date]=2024-12-01
schema:
type: string
- name: filter[end_date]
in: query
required: false
description: Filter by end_date, for example ?filter[end_date]=2024-12-31
schema:
type: string
responses:
'200':
description: Success, lists transactions which the current user may access
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/transactions_index_response'
'401':
description: Unauthorized, Authorization header is missing or invalid
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/errors_unauthorized'
'403':
description: Forbidden, insufficient permission to access the resource
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/errors_forbidden'
operationId: getV1Transactions
x-operation-id-source: derived
/v1/transactions/{id}:
get:
summary: Transaction details
description: The transaction system is a critical part of Kajabi's payment infrastructure, handling all monetary operations while maintaining detailed records for accounting, reporting, and compliance purposes.
tags:
- Transactions
security:
- Bearer: []
parameters:
- name: id
in: path
required: true
schema:
type: string
- name: fields[transactions]
in: query
required: false
description: Partial attributes as specified, e.g. fields[transactions]=amount_in_cents,sales_tax_in_cents
schema:
type: string
- name: include
in: query
required: false
description: Load the related resources, for example ?include=customer,purchases
schema:
type: string
responses:
'200':
description: Success, shows details of a specified transaction
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/transactions_show_response'
'401':
description: Unauthorized, Authorization header is missing or invalid
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/errors_unauthorized'
'404':
description: Not found, the resource is unknown
content:
application/vnd.api+json:
schema:
$ref: '#/components/schemas/errors_unavailable'
operationId: getV1TransactionsById
x-operation-id-source: derived
components:
schemas:
errors_attributes:
type: object
properties:
status:
type: string
source:
type:
- object
- 'null'
properties:
pointer:
type: string
title:
type: string
detail:
type: string
errors_unavailable:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/errors_attributes'
resource_identifiers:
type: array
items:
$ref: '#/components/schemas/resource_identifier'
transactions_index_response:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
type:
type: string
attributes:
$ref: '#/components/schemas/transactions_attributes'
relationships:
type: object
properties:
customer:
type: object
properties:
data:
$ref: '#/components/schemas/resource_identifier'
offer:
type: object
deprecated: true
description: 'DEPRECATED: use `purchases`. Populated only for single-offer transactions; null for bundled (multi-offer) transactions.'
properties:
data:
$ref: '#/components/schemas/resource_identifier'
purchases:
type: object
description: Offer purchases this transaction covers (one entry for single-offer transactions, several for bundled).
properties:
data:
$ref: '#/components/schemas/resource_identifiers'
links:
type: object
properties:
self:
type: string
current:
type: string
transactions_attributes:
type: object
properties:
action:
type: string
state:
type: string
payment_type:
type:
- string
- 'null'
amount_in_cents:
type: integer
sales_tax_in_cents:
type: integer
currency:
type: string
currency_symbol:
type: string
formatted_amount:
type: string
created_at:
type: string
format: date-time
readOnly: true
description: ISO 8601 date-time, read only
resource_identifier:
type: object
properties:
id:
type: string
type:
type: string
required:
- id
- type
errors_unauthorized:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/errors_attributes'
errors_forbidden:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/errors_attributes'
transactions_show_response:
type: object
properties:
data:
type: object
properties:
id:
type: string
type:
type: string
attributes:
$ref: '#/components/schemas/transactions_attributes'
relationships:
type: object
properties:
customer:
type: object
properties:
data:
$ref: '#/components/schemas/resource_identifier'
offer:
type: object
deprecated: true
description: 'DEPRECATED: use `purchases`. Populated only for single-offer transactions; null for bundled (multi-offer) transactions.'
properties:
data:
$ref: '#/components/schemas/resource_identifier'
purchases:
type: object
description: Offer purchases this transaction covers (one entry for single-offer transactions, several for bundled).
properties:
data:
$ref: '#/components/schemas/resource_identifiers'
links:
type: object
properties:
self:
type: string
current:
type: string
securitySchemes:
Bearer:
type: http
scheme: bearer
x-mint:
mcp:
enabled: true