# Getting Started with Meow API Welcome to the Meow API documentation. This guide will help you get started with integrating our API into your application. ## Prerequisites - A Meow account - An API key. You can get your API key from the [Meow Dashboard](https://www.meow.com/dashboard) ## Authentication The Meow API uses API key authentication. You'll need to include your API key in the `x-api-key` header with every request: ```bash curl -H "x-api-key: YOUR_API_KEY" https://api.meow.com/v1/accounts ``` ## Available APIs and Endpoints The Meow API provides comprehensive functionality for accessing your financial data, managing cryptocurrency transactions, and creating invoices: ### Account Information - **Accounts** - `GET /accounts` - List all accounts - `GET /accounts/{account_id}` - Get account details - `GET /accounts/{account_id}/payment-networks` - Get payment networks supported by the account - **Transactions** - `GET /accounts/{account_id}/transactions` - List account transactions - **Balances** - `GET /accounts/{account_id}/balances` - Get account balances ### Cryptocurrency Operations - **USDC Contacts Management** - `POST /contacts/usdc` - Create a new USDC contact - `GET /contacts` - List all contacts - `DELETE /contacts/{contact_id}` - Delete a contact - **USDC Transfers** - `POST /accounts/{account_id}/usdc` - Create a USDC transaction from a bank account ### Billing Operations - **Products** - `GET /billing/products` - List all products - `POST /billing/products` - Create a new product - `GET /billing/products/{product_id}` - Get product details - **Customers** - `GET /billing/customers` - List all invoicing customers - `POST /billing/customers` - Create a new invoicing customer - `GET /billing/customers/{customer_id}` - Get customer details - **Invoices** - `GET /billing/invoices` - List all invoices - `POST /billing/invoices` - Create a new invoice - `GET /billing/invoices/{invoice_id}` - Get invoice details - **Line Items** - `GET /billing/invoices/{invoice_id}/line-items` - List invoice line items - `GET /billing/invoices/{invoice_id}/line-items/{line_item_id}` - Get line item details - **Payment Configuration** - `GET /billing/payment-method-types` - Get available payment method types - `GET /billing/accounts` - List collection accounts for receiving payments ## API Permissions The API requires specific permissions for different operations: - `accounts:read` - View account information - `accounts:balances` - View account balances - `accounts:transactions` - View account transactions - `accounts:statements` - Access account statements - `accounts:payment-networks` - View account payment networks - `contacts:read` - View cryptocurrency contacts - `contacts:write` - Create and delete cryptocurrency contacts - `transfers:usdc:write` - Initiate USDC transfers - `billing:products:read` - View products - `billing:products:write` - Create and manage products - `billing:customers:read` - View invoicing customers - `billing:customers:write` - Create and manage customers - `billing:invoices:read` - View invoices and line items - `billing:invoices:write` - Create and manage invoices - `billing:accounts:read` - View collection accounts ## Error Handling The API uses standard HTTP status codes and returns detailed error messages. Here are the possible errors you might encounter: ### Client Errors (4xx) - `400 Bad Request` (Code: 400) - When the request parameters or body are invalid - `401 Unauthorized` (Code: 401) - When the API key is invalid or missing - Obtain a valid key from the [Meow Dashboard](https://www.meow.com/dashboard) - `403 Forbidden` (Code: 403) - When the API key lacks required permissions for the requested operation - Check that your API key has the necessary scopes for this endpoint - `404 Not Found` (Code: 404) - When a requested resource doesn't exist - For accounts: Use `/accounts` to get a list of valid account IDs - `422 Validation Error` (Code: 422) - When request validation fails - Check the error message for details on validation issues ### Server Errors (5xx) - `500 Internal Server Error` (Code: 500) - When an unexpected error occurs Error Response Format: ```json { "code": 701, "message": "Account not found", "debug_message": "Account not found. Use /accounts to get a list of accounts and their IDs." } ``` ## Best Practices 1. **Cache Responses**: Cache API responses when appropriate to minimize API calls 2. **Error Handling**: Always handle errors gracefully in your application - Implement proper error handling for all possible error codes - Contact support@meow.com when you need assistance 3. **Security**: - Never expose your API key in client-side code - Rotate keys regularly using the Meow Dashboard 4. **USDC Operations**: - Verify cryptocurrency addresses carefully before creating contacts - Give meaningful nicknames to contacts for easy identification - Use the contact's static_memo_id when creating USDC transfers - Start with small test transactions for new contacts - Monitor transaction status ## Blockchain Network Support The Meow API supports multiple blockchain networks for USDC transactions: - Ethereum - Solana - Base When creating a contact, you must specify which network the cryptocurrency address belongs to. ## Support If you need help or have questions: - Email: support@meow.com - Support Portal: https://support.meow.com - API Status: https://status.meow.com