Meow Cards API
Manage virtual and physical cards, and view transactions and insights.
Manage virtual and physical cards, and view transactions and insights.
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/meow-cards-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Meow Accounts Cards API
description: '## Overview
The Meow API provides financial services and billing capabilities for your business.
### Core Features
- **Financial data access**: access account information, transactions, balances, and payment networks.
- **Crypto operations**: create and manage crypto contacts, and initiate USDC transfers across blockchain networks.
### Billing API
The Billing API lets you create and manage invoices and collect payments:
- **Product management**: create and manage products with custom pricing.
- **Customer management**: maintain invoicing customers with their addresses.
- **Invoice creation**: generate invoices with line items, discounts, and custom notes.
- **Payment options**: accept payments via ACH, wire, international wire, card, and USDC.
- **Collection accounts**: configure accounts for payment collection.
### Getting Started
Authenticate by sending your API key in the `x-api-key` request header.
To scope requests to a specific entity, include the `x-entity-id` header. Use the `/api-keys/accessible-entities` endpoint to list all entities accessible by your API key.
### Error Responses
Errors return JSON with `code`, `message`, and `debug_message`. The `code` aligns with FDX where possible; use `debug_message` for troubleshooting only.
Common error codes:
- `500`: Internal server error
- `501`: Subsystem unavailable
- `503`: Scheduled maintenance
- `601`: Data not found
- `602`: Customer not authorized
- `701`: Account not found
- `703`: Invalid input (including invalid date ranges)
- `704`: Account type not supported
- `705`: Account is closed
- `801`: Transaction not found
'
contact:
name: Meow
url: https://meow.com/
email: support@meow.com
version: 1.0.0
license:
name: Proprietary
url: https://www.meow.com/terms-of-service
servers:
- url: https://api.meow.com/v1
description: Meow API Production
- url: https://api.sandbox.meow.com/v1
description: Meow API Sandbox
security:
- apiKeyAuth: []
tags:
- name: Cards
description: Manage virtual and physical cards, and view transactions and insights.
paths:
/cards:
post:
tags:
- Cards
summary: Create Card
description: Creates a virtual card scoped to a single merchant and spend limit. Set `single_use` to `true` (default) for a one-shot card that auto-cancels after the first authorization, or `false` for a multi-use card that stays active until expiry or explicit revoke. Retrieve the PAN by calling `POST /cards/{card_id}/pan`.
operationId: create_card_cards_post
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCardRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:write
parameters:
- $ref: '#/components/parameters/EntityIdHeader'
get:
tags:
- Cards
summary: List Cards
description: Returns the cards you have access to. As an admin or viewer you see all entity cards; as a card manager you see your team's cards; as a card user you see only your own.
operationId: list_cards_cards_get
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
default: 10
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
maximum: 1000000
minimum: 0
default: 0
title: Offset
- name: query
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Query
- name: statuses
in: query
required: false
schema:
anyOf:
- type: array
items:
$ref: '#/components/schemas/CardStatus'
- type: 'null'
title: Statuses
- name: card_types
in: query
required: false
schema:
type: array
items:
$ref: '#/components/schemas/CardFormFactor'
default: []
title: Card Types
- name: from_created_time
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: From Created Time
- name: to_created_time
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: To Created Time
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/MeowPaginatedList_CardResponse_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:read
/cards/payment-token:
post:
tags:
- Cards
summary: Create Payment Token
description: Creates a Shared Payment Token for merchants that support the Agentic Commerce Protocol. Returns a token string, not full card details. Use a payment token instead of a card when the merchant accepts one. This endpoint is not yet available.
operationId: create_payment_token_cards_payment_token_post
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreatePaymentTokenRequest'
required: true
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentTokenResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:write
parameters:
- $ref: '#/components/parameters/EntityIdHeader'
/cards/{card_id}/revoke:
post:
tags:
- Cards
summary: Revoke Card
description: Immediately revoke a card. Revoke a card whose purchase failed to close it before it expires.
operationId: revoke_card_cards__card_id__revoke_post
parameters:
- name: card_id
in: path
required: true
schema:
type: string
format: uuid
title: Card Id
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/RevokeCardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:write
/cards/{card_id}/pan:
post:
tags:
- Cards
summary: Get Card PAN
description: Returns the full card number (PAN), CVC, and expiration for a card created via the API. Requires the `cards:write` scope. Pass the `card_id` returned by Create Card. This can be called only once per card; subsequent calls return an error. Revoke and recreate the card if the PAN is needed again.
operationId: get_card_pan_cards__card_id__pan_post
parameters:
- name: card_id
in: path
required: true
schema:
type: string
format: uuid
title: Card Id
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardPanResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:write
/cards/transactions:
get:
tags:
- Cards
summary: List Card Transactions
description: Returns transactions for cards you have access to. Supports filtering by card, date range, status, merchant, and amount.
operationId: list_card_transactions_cards_transactions_get
parameters:
- name: limit
in: query
required: false
schema:
type: integer
maximum: 200
minimum: 1
default: 10
title: Limit
- name: offset
in: query
required: false
schema:
type: integer
maximum: 1000000
minimum: 0
default: 0
title: Offset
- name: query
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 140
- type: 'null'
title: Query
- name: merchant_name
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 140
- type: 'null'
title: Merchant Name
- name: merchant_ids
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
format: uuid
- type: 'null'
title: Merchant Ids
- name: cardholder_name
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 140
- type: 'null'
title: Cardholder Name
- name: cardholder_emails
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
format: email
- type: 'null'
title: Cardholder Emails
- name: card_id
in: query
required: false
schema:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Card Id
- name: card_ids
in: query
required: false
schema:
anyOf:
- type: array
items:
type: string
format: uuid
- type: 'null'
title: Card Ids
- name: card_nickname
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 140
- type: 'null'
title: Card Nickname
- name: card_is_physical
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
title: Card Is Physical
- name: card_last_4
in: query
required: false
schema:
anyOf:
- type: string
minLength: 1
maxLength: 4
- type: 'null'
title: Card Last 4
- name: from_original_created_time
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: From Original Created Time
- name: to_original_created_time
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: To Original Created Time
- name: statuses
in: query
required: false
schema:
anyOf:
- type: array
items:
$ref: '#/components/schemas/ExtAwxCardTransactionStatus'
- type: 'null'
title: Statuses
- name: is_missing_requirements
in: query
required: false
schema:
anyOf:
- type: boolean
- type: 'null'
title: Is Missing Requirements
- name: sort_by
in: query
required: false
schema:
$ref: '#/components/schemas/AwxTransactionSortEnum'
default: ORIGINAL_CREATED_TIME
- name: is_ascending
in: query
required: false
schema:
type: boolean
default: false
title: Is Ascending
- name: network_transaction_id
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
title: Network Transaction Id
- name: amount_min
in: query
required: false
schema:
anyOf:
- type: number
maximum: 1000000000.0
minimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
- type: 'null'
title: Amount Min
- name: amount_max
in: query
required: false
schema:
anyOf:
- type: number
maximum: 1000000000.0
minimum: 0.0
- type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
- type: 'null'
title: Amount Max
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/MeowPaginatedList_AwxCardTransactionBusinessResponse_'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:read
/cards/insights:
get:
tags:
- Cards
summary: Get Card Spending Insights
description: 'Returns entity-wide spending analytics for your entity: total spend, cashback earned, top merchants, top expenses, and weekly trends. Requires admin, viewer, or card manager access.'
operationId: get_card_insights_cards_insights_get
parameters:
- name: from_date
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: From Date
- name: to_date
in: query
required: false
schema:
anyOf:
- type: string
format: date-time
- type: 'null'
title: To Date
- name: limit_top_expenses
in: query
required: false
schema:
type: integer
maximum: 25
minimum: 1
default: 5
title: Limit Top Expenses
- name: limit_top_merchants
in: query
required: false
schema:
type: integer
maximum: 25
minimum: 1
default: 5
title: Limit Top Merchants
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/AwxCardInsightsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:read
/cards/{card_id}:
get:
tags:
- Cards
summary: Get Card
description: Returns details of a specific card you have access to.
operationId: get_card_cards__card_id__get
parameters:
- name: card_id
in: path
required: true
schema:
type: string
format: uuid
title: Card Id
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:read
patch:
tags:
- Cards
summary: Update Card
description: Updates a card you created via the API. Freeze or unfreeze it with the `status` field, replace its spend limits with `spending_controls`, or change its allowed merchant categories. All fields are optional; omitted fields are left unchanged.
operationId: update_card_cards__card_id__patch
parameters:
- name: card_id
in: path
required: true
schema:
type: string
format: uuid
title: Card Id
- $ref: '#/components/parameters/EntityIdHeader'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCardRequest'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:write
/cards/{card_id}/details:
get:
tags:
- Cards
summary: Get Card Details
description: 'Returns operational details of a card: billing address, delivery address, linked banking account, and shipping tracking URL.'
operationId: get_card_details_cards__card_id__details_get
parameters:
- name: card_id
in: path
required: true
schema:
type: string
format: uuid
title: Card Id
- $ref: '#/components/parameters/EntityIdHeader'
responses:
'200':
description: Successful Response
content:
application/json:
schema:
$ref: '#/components/schemas/CardDetailsResponse'
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
security:
- apiKeyAuth:
- cards:read
components:
schemas:
CardDebitAccount:
properties:
id:
type: string
format: uuid
title: Id
description: Banking account ID.
name:
type: string
title: Name
description: Banking account display name.
bank:
$ref: '#/components/schemas/BankingAccountProductType'
description: Banking account product type.
type: object
required:
- id
- name
- bank
title: CardDebitAccount
CardTransactionCategory:
type: string
enum:
- Advertising
- Airlines
- Books and Newspapers
- Car Rental
- Charity
- Clothing
- Electronics
- Entertainment
- Facilities Expenses
- Financial Institutions and Fees
- Fuel
- Furniture
- Government Services
- Grocery
- Ground Transportation
- Insurance
- Legal
- Lodging
- Meals
- Medical
- Office Supplies
- Parking
- Political
- Professional Services
- Recruiting
- Rent
- Restaurants
- Shipping
- Software
- Taxes
- Taxis and Rideshare
- Technology Infrastructure
- Training and Education
- Utilities
- Vehicle Expenses
title: CardTransactionCategory
x-enum-varnames:
- advertising
- airlines
- books_and_newspapers
- car_rental
- charity
- clothing
- electronics
- entertainment
- facilities_expenses
- financial_institutions_and_fees
- fuel
- furniture
- government_services
- grocery
- ground_transportation
- insurance
- legal
- lodging
- meals
- medical
- office_supplies
- parking
- political
- professional_services
- recruiting
- rent
- restaurants
- shipping
- software
- taxes
- taxis_and_rideshare
- technology_infrastructure
- training_and_education
- utilities
- vehicle_expenses
AwxCardInsightsResponse:
properties:
total_spend:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Total Spend
total_cashback:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Total Cashback
top_expenses:
items:
$ref: '#/components/schemas/TopExpense'
type: array
title: Top Expenses
top_merchants:
items:
$ref: '#/components/schemas/MerchantSpendInsight'
type: array
title: Top Merchants
weekly_cardholder_spend:
items:
$ref: '#/components/schemas/WeeklyTimeSeries'
type: array
title: Weekly Cardholder Spend
weekly_merchant_spend:
items:
$ref: '#/components/schemas/WeeklyTimeSeries'
type: array
title: Weekly Merchant Spend
type: object
required:
- total_spend
- total_cashback
- top_expenses
- top_merchants
- weekly_cardholder_spend
- weekly_merchant_spend
title: AwxCardInsightsResponse
TopExpense:
properties:
id:
type: string
format: uuid
title: Id
amount:
type: string
pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
title: Amount
detail:
type: string
title: Detail
logo_url:
anyOf:
- type: string
- type: 'null'
title: Logo Url
website:
anyOf:
- type: string
- type: 'null'
title: Website
cardholder:
type: string
title: Cardholder
posted_time:
type: string
format: date-time
title: Posted Time
card_id:
anyOf:
- type: string
format: uuid
- type: 'null'
title: Card Id
network_transaction_id:
anyOf:
- type: string
- type: 'null'
title: Network Transaction Id
type: object
required:
- id
- amount
- detail
- cardholder
- posted_time
title: TopExpense
ExtAwxCardTransactionType:
type: string
enum:
- AUTHORIZATION
- CLEARING
- REFUND
- REVERSAL
- ORIGINAL_CREDIT
title: ExtAwxCardTransactionType
x-enum-varnames:
- AUTHORIZATION
- CLEARING
- REFUND
- REVERSAL
- ORIGINAL_CREDIT
CardMetadata:
properties:
card_id:
type: string
format: uuid
title: Card Id
description: Identifier for the issued card.
task_description:
type: string
title: Task Description
description: What you are purchasing.
type: object
required:
- card_id
- task_description
title: CardMetadata
CardDetailsResponse:
properties:
id:
type: string
format: uuid
title: Id
description: Unique card identifier.
billing_address:
$ref: '#/components/schemas/JAddress'
description: Card billing address.
delivery_address:
anyOf:
- type: string
- type: 'null'
title: Delivery Address
description: Masked delivery address for the physical card.
debit_account:
$ref: '#/components/schemas/CardDebitAccount'
description: Linked banking account.
tracking_url:
anyOf:
- type: string
- type: 'null'
title: Tracking Url
description: Shipping tracking URL for the physical card.
type: object
required:
- id
- billing_address
- debit_account
title: CardDetailsResponse
WeeklyTimeSeries:
properties:
week:
type: string
format: date
title: Week
data:
items:
$ref: '#/components/schemas/SpendInsight'
type: array
title: Data
type: object
required:
- week
- data
title: WeeklyTimeSeries
IssuingPlatform:
type: string
enum:
- stripe
- awx
title: IssuingPlatform
x-enum-varnames:
- stripe
- awx
ExtAwxCardTransactionStatus:
type: string
enum:
- APPROVED
- PENDING
- FAILED
- CLEARED
- REVERSED
- EXPIRED
title: ExtAwxCardTransactionStatus
x-enum-varnames:
- APPROVED
- PENDING
- FAILED
- CLEARED
- REVERSED
- EXPIRED
MeowPaginatedList_AwxCardTransactionBusinessResponse_:
properties:
items:
items:
$ref: '#/components/schemas/AwxCardTransactionBusinessResponse'
type: array
title: Items
total:
type: integer
title: Total
page:
$ref: '#/components/schemas/MeowPage'
type: object
required:
- items
- total
- page
title: MeowPaginatedList[AwxCardTransactionBusinessResponse]
SpendingControls:
properties:
per_transaction_limit:
type: integer
maximum: 25000.0
minimum: 0.0
title: Per Transaction Limit
description: Per-transaction spend limit in whole dollars.
daily_limit:
anyOf:
- type: integer
maximum: 1000000000.0
minimum: 0.0
- type: 'null'
title: Daily Limit
description: Daily spend limit in whole dollars.
weekly_limit:
anyOf:
- type: integer
maximum: 1000000000.0
minimum: 0.0
- type: 'null'
title: Weekly Limit
description: Weekly spend limit in whole dollars.
monthly_limit:
anyOf:
- type: integer
maximum: 1000000000.0
minimum: 0.0
- type: 'null'
title: Monthly Limit
description: Monthly spend limit in whole dollars.
yearly_limit:
anyOf:
- type: integer
maximum: 1000000000.0
minimum: 0.0
- type: 'null'
title: Yearly Limit
description: Yearly spend limit in whole dollars.
all_time_limit:
anyOf:
- type: integer
maximum: 1000000000.0
minimum: 0.0
- type: 'null'
title: All Time Limit
description: All-time spend limit in whole dollars.
type: object
required:
- per_transaction_limit
title: SpendingControls
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
CardControls:
properties:
spending_limit:
type: integer
title: Spending Limit
description: Maximum spend limit in whole dollars.
single_use:
type: boolean
title: Single Use
description: Whether the card is single-use.
expires_at:
type: string
format: date-time
title: Expires At
description: When the card is set to expire. The card is not revoked automatically; revoke it explicitly when you are done with it.
type: object
required:
- spending_limit
- single_use
- expires_at
title: CardControls
CardStatus:
type: string
enum:
- pending
- active
- suspended
- closed
- failed
title: CardStatus
x-enum-varnames:
- pending
- active
- suspended
- closed
- failed
CardResponse:
properties:
id:
type: string
format: uuid
title: Id
description: Unique card identifier.
display_name:
type: string
title: Display Name
description: Card name or nickname.
last_four:
type: string
title: Last Four
description: Last 4 digits of the card number.
status:
$ref: '#/components/schemas/CardStatus'
description: Card status.
platform:
$ref: '#/components/schemas/IssuingPlatform'
description: The platform that issued this card.
is_physical:
type: boolean
title: Is Physical
description: Whether this is a physical card.
is_single_use:
type: boolean
title: Is Single Use
description: Whether this is a single-use card.
default: false
cardholder:
$ref: '#/components/schemas/CardCardholder'
description: Cardholder info.
created_at:
type: string
format: date-time
title: Created At
description: Card creation timestamp.
expiration:
anyOf:
- type: string
format: date-time
- type: 'null'
title: Expiration
description: Card expiration date.
spending_restriction:
anyOf:
- $ref: '#/components/schemas/CardSpendingRestriction'
- type: 'null'
description: Merchant spending restrictions.
type: object
required:
- id
- display_name
- last_four
- status
- platform
- is_physical
- cardholder
- created_at
title: CardResponse
BankingAccountProductType:
type: string
enum:
- grasshopper
- tcb
- firstbank
- gh_insured_cash_sweep
- crb
- bridge
- stripe
title: BankingAccountProductType
CardFormFactor:
type: string
enum:
- physical
- virtual
title: CardFormFactor
x-enum-varnames:
- physical
- virtual
CardStatusUpdate:
type: string
enum:
- active
- inactive
title: CardStatusUpdate
x-enum-varnames:
- active
- inactive
Iso4217Code:
type: string
enum:
- AED
- AFN
- ALL
- AMD
- ANG
- AOA
- ARS
- AUD
- AWG
- AZN
- BAM
- BBD
- BDT
- BGN
- BHD
- BIF
- BMD
- BND
- BOB
- BOV
- BRL
- BSD
- BTN
- BWP
- BYN
- BZD
- CAD
- CDF
- CHE
- CHF
- CHW
- CLF
- CLP
- CNY
- COP
- COU
- CRC
- CUC
- CUP
- CVE
- CZK
- DJF
- DKK
- DOP
- DZD
- EGP
- ERN
- ETB
- EUR
- FJD
- FKP
- GBP
- GEL
- GHS
- GIP
- GMD
- GNF
-
# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/meow/refs/heads/main/openapi/meow-cards-api-openapi.yml