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/slash-transaction-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: 3.2.0
info:
title: Slash Public Account Transaction API
description: API description
version: 0.0.1
contact: {}
servers:
- url: https://api.slash.com
description: production
security:
- api_key: []
- partner_api_key: []
- bearer: []
- developer_application: []
tags:
- name: Transaction
paths:
/transaction:
x-reference-path: paths/transaction/route.yaml
get:
description: Get all transactions
parameters:
- name: cursor
required: false
in: query
schema:
type: string
description: A cursor string to fetch the next page of results
x-reference-path: schemas/Pagination/CursorParameter.yaml
- name: accountId
deprecated: true
description: Use filter:accountId to filter by account ID
in: query
schema:
type: string
required: false
- name: filter:legalEntityId
in: query
description: Pass in a legal entity ID to filter transactions by accounts under a specific legal entity.
required: false
schema:
type: string
- name: filter:accountId
description: Pass in an account ID to filter transactions by account ID. This will return all transactions that match the account ID passed in.
in: query
schema:
type: string
required: false
- name: filter:virtualAccountId
description: Pass in a virtual account ID to filter transactions by virtual account ID. This will return all transactions that match the virtual account ID passed in.
in: query
schema:
type: string
required: false
- name: filter:from_date
description: Pass in a unix timestamp in milliseconds to filter transactions by date. This will return all transactions that occurred on or after the date passed in.
in: query
schema:
type: string
required: false
- name: filter:to_date
description: Pass in a unix timestamp in milliseconds to filter transactions by date. This will return all transactions that occurred on or before the date passed in.
in: query
schema:
type: string
required: false
- name: filter:from_authorized_at
description: Pass in a unix timestamp in milliseconds to filter transactions by authorization time. This will return all transactions that are authorized on or after the date passed in.
in: query
schema:
type: string
required: false
- name: filter:to_authorized_at
description: Pass in a unix timestamp in milliseconds to filter transactions by authorization time. This will return all transactions that are authorized on or before the date passed in.
in: query
schema:
type: string
required: false
- name: filter:status
description: Filter transactions by status
in: query
schema:
type: string
description: '`pending` - The transaction is pending and has not been posted to the account yet (the balance doesn''t reflect the transaction yet).
`posted` - The transaction has been posted to the account and the balance reflects the transaction.
`failed` - The transaction failed to post to the account
'
enum:
- pending
- posted
- failed
- name: filter:detailed_status
description: Filter transactions by detailed status
in: query
schema:
type: string
description: '- `pending`: Used for any transaction type that has not posted to the account yet, but is affecting the account''s available balance.
- `canceled`: Used for any transaction that was canceled.
- `failed`: Used for any transaction that failed to post to the account.
- `settled`: Used for any transaction that has posted to the account, except for card refunds, which use the `refund` status, and ACH returns, which use the `returned` status.
- `declined`: Used for card transactions that were declined.
- `refund`: Used for card transactions that were refunded, increasing the account''s available and posted balances.
- `reversed`: Used for card transactions that were authorized, but reversed by the merchant.
- `returned`: Used for ACH returns. In the case of an ACH return, there are two possibilities: (1) if the ACH settled and then returned, then there will be one transaction with status `settled` for the ACH settling, and one transaction with status `returned` for the ACH return. Both of these are posted transactions. (2) if the ACH returned before settling, then there will only be one transaction with status `canceled`.
- `dispute`: Used for disputed card transactions.
'
enum:
- pending
- canceled
- failed
- settled
- declined
- refund
- reversed
- returned
- dispute
- name: filter:cardId
description: Filter transactions by cardId
in: query
schema:
type: string
required: false
- name: filter:category
description: Filter transactions by category type
in: query
schema:
type: string
description: 'Filter by transaction category:
- `card`: Card transactions (authorizations, purchases, refunds)
- `ach`: ACH transfers (credits and debits)
- `wire`: Domestic wire transfers
- `international_wire`: International wire transfers
- `rtp`: Real-time payments
- `fee`: Fees (card fees, transfer fees, subscription fees)
- `internal`: Internal transfers (between accounts, treasury transfers)
'
enum:
- card
- ach
- wire
- international_wire
- rtp
- fee
- internal
required: false
- name: filter:cardGroupId
description: Filter transactions by card group ID. This will return all card transactions that belong to cards in the specified card group.
in: query
schema:
type: string
required: false
- name: filter:providerAuthorizationId
description: Filter transactions by provider authorization ID
in: query
schema:
type: string
required: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/Transaction'
x-entrypoint:
virtualPath: schemas/Transaction
sourcePath: schemas/Transaction.yaml
title: Transaction
origin: ./src/publicApi
metadata:
$ref: '#/components/schemas/Pagination.PaginationResponse'
x-entrypoint:
virtualPath: schemas/Pagination/PaginationResponse
sourcePath: schemas/Pagination/PaginationResponse.yaml
title: PaginationResponse
origin: ./src/publicApi
required:
- items
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Transaction
/transaction/aggregation:
x-reference-path: paths/transaction/aggregation/route.yaml
get:
description: Get transaction aggregations
parameters:
- name: accountId
deprecated: true
description: Use filter:accountId to filter by account ID
in: query
schema:
type: string
required: false
- name: filter:legalEntityId
in: query
description: Pass in a legal entity ID to filter transactions by accounts under a specific legal entity.
required: false
schema:
type: string
- name: filter:accountId
description: Pass in an account ID to filter transactions by account ID. This will return all transactions that match the account ID passed in.
in: query
schema:
type: string
required: false
- name: filter:virtualAccountId
description: Pass in a virtual account ID to filter transactions by virtual account ID. This will return all transactions that match the virtual account ID passed in.
in: query
schema:
type: string
required: false
- name: filter:from_date
description: Pass in a unix timestamp in milliseconds to filter transactions by date. This will return all transactions that occurred on or after the date passed in.
in: query
schema:
type: string
required: false
- name: filter:to_date
description: Pass in a unix timestamp in milliseconds to filter transactions by date. This will return all transactions that occurred on or before the date passed in.
in: query
schema:
type: string
required: false
- name: filter:from_authorized_at
description: Pass in a unix timestamp in milliseconds to filter transactions by authorization time. This will return all transactions that are authorized on or after the date passed in.
in: query
schema:
type: string
required: false
- name: filter:to_authorized_at
description: Pass in a unix timestamp in milliseconds to filter transactions by authorization time. This will return all transactions that are authorized on or before the date passed in.
in: query
schema:
type: string
required: false
- name: filter:status
description: Filter transactions by status
in: query
schema:
type: string
description: '`pending` - The transaction is pending and has not been posted to the account yet (the balance doesn''t reflect the transaction yet).
`posted` - The transaction has been posted to the account and the balance reflects the transaction.
`failed` - The transaction failed to post to the account
'
enum:
- pending
- posted
- failed
- name: filter:detailed_status
description: Filter transactions by detailed status
in: query
schema:
type: string
description: '- `pending`: Used for any transaction type that has not posted to the account yet, but is affecting the account''s available balance.
- `canceled`: Used for any transaction that was canceled.
- `failed`: Used for any transaction that failed to post to the account.
- `settled`: Used for any transaction that has posted to the account, except for card refunds, which use the `refund` status, and ACH returns, which use the `returned` status.
- `declined`: Used for card transactions that were declined.
- `refund`: Used for card transactions that were refunded, increasing the account''s available and posted balances.
- `reversed`: Used for card transactions that were authorized, but reversed by the merchant.
- `returned`: Used for ACH returns. In the case of an ACH return, there are two possibilities: (1) if the ACH settled and then returned, then there will be one transaction with status `settled` for the ACH settling, and one transaction with status `returned` for the ACH return. Both of these are posted transactions. (2) if the ACH returned before settling, then there will only be one transaction with status `canceled`.
- `dispute`: Used for disputed card transactions.
'
enum:
- pending
- canceled
- failed
- settled
- declined
- refund
- reversed
- returned
- dispute
- name: filter:cardId
description: Filter transactions by cardId
in: query
schema:
type: string
required: false
- name: filter:category
description: Filter transactions by category type
in: query
schema:
type: string
description: 'Filter by transaction category:
- `card`: Card transactions (authorizations, purchases, refunds)
- `ach`: ACH transfers (credits and debits)
- `wire`: Domestic wire transfers
- `international_wire`: International wire transfers
- `rtp`: Real-time payments
- `fee`: Fees (card fees, transfer fees, subscription fees)
- `internal`: Internal transfers (between accounts, treasury transfers)
'
enum:
- card
- ach
- wire
- international_wire
- rtp
- fee
- internal
required: false
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
count:
type: number
description: The total count of transactions.
totalIn:
type: number
description: The total amount of money that arrived into the account, in cents.
totalOut:
type: number
description: The total amount of money that was sent out of the account, in cents.
netChange:
type: number
description: The net change, which is `totalIn` + `totalOut`.
required:
- count
- totalIn
- totalOut
- netChange
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Transaction
/transaction/{transactionId}:
parameters:
- name: transactionId
in: path
schema:
type: string
required: true
x-reference-path: paths/transaction/{transactionId}/route.yaml
get:
description: Fetch details for a single transaction by ID
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Transaction'
x-entrypoint:
virtualPath: schemas/Transaction
sourcePath: schemas/Transaction.yaml
title: Transaction
origin: ./src/publicApi
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Transaction
/transaction/{transactionId}/note:
parameters:
- name: transactionId
required: true
in: path
schema:
type: string
x-reference-path: paths/transaction/{transactionId}/note/route.yaml
patch:
description: Update note for a transaction
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
note:
type: string
required:
- note
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
required:
- success
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Transaction
/transaction/{transactionId}/fee-details:
parameters:
- name: transactionId
in: path
schema:
type: string
required: true
x-reference-path: paths/transaction/{transactionId}/fee-details/route.yaml
get:
description: Fetch breakdown of a fee transaction
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/FeeTransaction'
x-entrypoint:
virtualPath: schemas/FeeTransaction
sourcePath: schemas/FeeTransaction.yaml
title: FeeTransaction
origin: ./src/publicApi
required:
- items
'401':
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: TooManyRequests
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'500':
description: Internal Error
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- api_key: []
- bearer: []
tags:
- Transaction
components:
schemas:
Pagination.PaginationResponse:
type: object
description: Response sent when requesting a list of data
properties:
nextCursor:
type: string
description: The cursor to use to retrieve the next page of data. If this is not sent, there is no more data to retrieve.
count:
type: number
description: The number of items in the current page of data.
x-entrypoint:
virtualPath: schemas/Pagination/PaginationResponse
sourcePath: schemas/Pagination/PaginationResponse.yaml
title: PaginationResponse
origin: ./src/publicApi
title: PaginationResponse
SpendingConstraint:
type: object
description: A constraint that can be applied to a CardGroupSpendingRule
properties:
merchantCategoryRule:
type: object
nullable: true
properties:
merchantCategories:
type: array
items:
type: string
restriction:
$ref: '#/components/schemas/Restriction'
x-entrypoint:
virtualPath: schemas/Restriction
sourcePath: schemas/Restriction.yaml
title: Restriction
origin: ./src/publicApi
required:
- merchantCategories
- restriction
merchantRule:
type: object
nullable: true
properties:
merchants:
type: array
items:
type: string
restriction:
$ref: '#/components/schemas/Restriction'
x-entrypoint:
virtualPath: schemas/Restriction
sourcePath: schemas/Restriction.yaml
title: Restriction
origin: ./src/publicApi
required:
- merchants
- restriction
spendingRule:
type: object
nullable: true
properties:
utilizationLimit:
type: object
properties:
timezone:
type: string
description: IANA timezone string. Limits always reset at midnight of the timezone specified. If no timezone is specified, then UTC time is used.
limitAmount:
$ref: '#/components/schemas/Money'
x-entrypoint:
virtualPath: schemas/Money
sourcePath: schemas/Money.yaml
title: Money
origin: ./src/publicApi
preset:
type: string
enum:
- daily
- weekly
- monthly
- yearly
- collective
startDate:
type: string
description: Format ISO-8601. A day that equals today or the past. This is optional.If the `preset` is "daily", this value is ignored. If the `preset` is "weekly", "monthly" or "yearly", then the this value is used to compute when the limit should start limit.
required:
- limitAmount
- preset
utilizationLimitV2:
type: array
items:
type: object
properties:
timezone:
type: string
description: IANA timezone string. Limits always reset at midnight of the timezone specified. If no timezone is specified, then UTC time is used.
limitAmount:
$ref: '#/components/schemas/Money'
x-entrypoint:
virtualPath: schemas/Money
sourcePath: schemas/Money.yaml
title: Money
origin: ./src/publicApi
preset:
type: string
enum:
- daily
- weekly
- monthly
- yearly
- collective
startDate:
type: string
description: Format ISO-8601. A day that equals today or the past. This is optional.If the `preset` is "daily", this value is ignored. If the `preset` is "weekly", "monthly" or "yearly", then the this value is used to compute when the limit should start limit.
required:
- limitAmount
- preset
transactionSizeLimit:
type: object
properties:
minimum:
$ref: '#/components/schemas/Money'
x-entrypoint:
virtualPath: schemas/Money
sourcePath: schemas/Money.yaml
title: Money
origin: ./src/publicApi
maximum:
$ref: '#/components/schemas/Money'
x-entrypoint:
virtualPath: schemas/Money
sourcePath: schemas/Money.yaml
title: Money
origin: ./src/publicApi
countryRule:
type: object
nullable: true
properties:
countries:
description: A 2 digit country code
type: array
items:
type: string
restriction:
$ref: '#/components/schemas/Restriction'
x-entrypoint:
virtualPath: schemas/Restriction
sourcePath: schemas/Restriction.yaml
title: Restriction
origin: ./src/publicApi
required:
- countries
- restriction
merchantCategoryCodeRule:
type: object
nullable: true
properties:
merchantCategoryCodes:
type: array
items:
type: string
restriction:
$ref: '#/components/schemas/Restriction'
x-entrypoint:
virtualPath: schemas/Restriction
sourcePath: schemas/Restriction.yaml
title: Restriction
origin: ./src/publicApi
required:
- merchantCategoryCodes
- restriction
x-entrypoint:
virtualPath: schemas/SpendingConstraint
sourcePath: schemas/SpendingConstraint.yaml
title: SpendingConstraint
origin: ./src/publicApi
title: SpendingConstraint
TransactionCashbackInfo:
type: object
description: Cashback earned for this transaction. This is only present when cashback is known and currently applies to eligible card transactions.
properties:
amountCents:
type: number
description: The cashback amount earned for this transaction, in cents.
rate:
type: number
description: The cashback rate applied to this transaction.
required:
- amountCents
- rate
x-entrypoint:
virtualPath: schemas/TransactionCashbackInfo
sourcePath: schemas/TransactionCashbackInfo.yaml
title: TransactionCashbackInfo
origin: ./src/publicApi
title: TransactionCashbackInfo
TransactionMerchant:
type: object
properties:
description:
type: string
description: The raw description provided by the merchant for the transaction.
categoryCode:
type: string
description: The merchant's category code (MCC)
location:
$ref: '#/components/schemas/TransactionMerchantLocation'
description: Location details for the merchant/transaction.
x-entrypoint:
virtualPath: schemas/TransactionMerchantLocation
sourcePath: schemas/TransactionMerchantLocation.yaml
title: TransactionMerchantLocation
origin: ./src/publicApi
required:
- description
- categoryCode
x-entrypoint:
virtualPath: schemas/TransactionMerchant
sourcePath: schemas/TransactionMerchant.yaml
title: TransactionMerchant
origin: ./src/publicApi
title: TransactionMerchant
Transaction:
type: object
properties:
id:
type: string
date:
description: The date in UTC time when the transaction was posted. If the transaction is pending or failed, this is the date the transaction was created.
type: string
description:
type: string
memo:
description: The memo associated with the transaction. For virtual account transfers, this is the memo provided when creating the transfer. For ACH transactions, this is the company entry description. For wire transactions, this is the sender reference.
type: string
merchantDescription:
type: string
description: DEPRECATED. Use `merchantData.description` instead. For card transactions, the description of the transaction as reported by the merchant. For other transactions, this field is undefined.
deprecated: true
merchantData:
$ref: '#/components/schemas/TransactionMerchant'
description: 'For card transactions, contains description of the transaction as reported by the merchant, merchant category code, and location of the merchant or origin of the transaction.
For other transactions, this field is undefined.
'
x-entrypoint:
virtualPath: schemas/TransactionMerchant
sourcePath: schemas/TransactionMerchant.yaml
title: TransactionMerchant
origin: ./src/publicApi
amountCents:
description: The amount of the transaction in cents in USD. If the transaction amount is negative, the transaction is a debit. If the transaction amount is positive, the transaction is a credit.
type: number
status:
$ref: '#/components/schemas/TransactionStatus'
x-entrypoint:
virtualPath: schemas/TransactionStatus
sourcePath: schemas/TransactionStatus.yaml
title: TransactionStatus
origin: ./src/publicApi
detailedStatus:
$ref: '#/components/schemas/TransactionDetailedStatus'
x-entrypoint:
virtualPath: schemas/TransactionDetailedStatus
sourcePath: schemas/TransactionDetailedStatus.yaml
title: TransactionDetailedStatus
origin: ./src/publicApi
accountId:
description: The account ID associated with the transaction
virtualAccountId:
description: The virtual account ID where the transaction occurred
type: string
accountSubtype:
description: For charge cards, specifies if the transaction belongs to the cash or credit account. For debit accounts, this field is always cash.
type: string
enum:
- cash
- credit
cardId:
description: The card ID associated with the transaction. If the transaction is not associated with a card, this field is not sent.
type: string
cashbackInfo:
$ref: '#/components/schemas/TransactionCashbackInfo'
x-entrypoint:
virtualPath: schemas/TransactionCashbackInfo
sourcePath: schemas/TransactionCashbackInfo.yaml
title: TransactionCashbackInfo
origin: ./src/publicApi
fxFeeInfo:
$ref: '#/components/schemas/TransactionFxFeeInfo'
x-entrypoint:
virtualPath: schemas/TransactionFxFeeInfo
sourcePath: schemas/TransactionFxFeeInfo.yaml
title: TransactionFxFeeInfo
origin: ./src/publicApi
originalCurrency:
$ref: '#/components/schemas/OriginalCurrency'
x-entrypoint:
virtualPath: schemas/OriginalCurrency
sourcePath: schemas/OriginalCurrency.yaml
title: OriginalCurrency
origin: ./src/publicApi
orderId:
description: The order ID, as reported by the merchant, associated with the specific transaction.
# --- truncated at 32 KB (55 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/slash/refs/heads/main/openapi/slash-transaction-api-openapi.yml