API Reference
V1 API reference for programmatic access to Echo
API Reference
The Echo V1 API provides programmatic access for SDKs, CLI tools, and applications. All endpoints are prefixed with /api/v1/.
All API endpoints use JSON request/response format. Most endpoints require authentication via API keys or JWT tokens.
Authentication
The V1 API supports two authentication methods:
API Keys
API keys are the primary authentication method for programmatic access. Include your API key in the request header:
Authorization: Bearer your_api_key_hereJWT Tokens
JWT tokens are used for OAuth flows and temporary access. Include JWT tokens in either header:
Authorization: Bearer your_jwt_token_hereor
X-Echo-Token: your_jwt_token_hereApplications
List User Apps
GET /api/v1/appsList all Echo apps owned by the authenticated user.
Authentication: API key or JWT token required
Response Type:
{
items: Array<App>;
has_next: boolean;
page: number;
page_size: number;
total_count: number;
}Prop
Type
GET /api/v1/apps/{id}Get detailed app information for programmatic access.
Authentication: API key or JWT token required
Path Parameters:
id(UUID) - App ID
Response Type:
Prop
Type
Balance & Billing
Get User Balance
GET /api/v1/balanceGet authenticated user's credit balance.
Authentication: API key or JWT token required
Query Parameters:
echoAppId(UUID, optional) - Get app-specific balance instead of global
Response Type:
Prop
Type
Get Free Tier Balance
POST /api/v1/balance/{appId}/freeGet user's free tier spending information for a specific app.
Authentication: API key or JWT token required
Response Type:
{
spendPoolBalance: number;
userSpendInfo: UserSpendInfo;
}Prop
Type
Payments
Create Payment Link
POST /api/v1/stripe/payment-linkGenerate Stripe payment link for credit purchases.
Authentication: API key or JWT token required
Request Body:
{
amount: number;
successUrl?: string;
}Response Type:
{
paymentUrl: string;
sessionId: string;
expiresAt: string;
}Payment amounts are in USD. The successUrl parameter is optional and will
redirect users after successful payment.
Models & Capabilities
Get Supported Models
GET /api/v1/supported-modelsGet list of supported AI models with pricing information.
Authentication: None required
Response Type:
{
models: SupportedModel[];
models_by_provider: Record<string, string[]>;
}SupportedModel Interface:
interface SupportedModel {
id: string;
name: string;
provider: string;
inputPrice: number;
outputPrice: number;
contextLength: number;
}User Management
Get User Info
GET /api/v1/userGet authenticated user profile information.
Authentication: API key or JWT token required
Response Type:
{
id: string;
email: string;
name: string | null;
createdAt: string;
updatedAt: string;
totalPaid: number;
totalSpent: number;
}Register Referral Code
POST /api/v1/user/referralApply a referral code for credits on a specific app.
Authentication: API key or JWT token required
Request Body:
{
echoAppId: string;
code: string;
}Response Type:
{
success: boolean;
message: string;
creditsAwarded?: number;
}Error Responses
All endpoints return appropriate HTTP status codes and JSON error responses:
{
"error": "string",
"message": "string",
"statusCode": "number"
}Common Status Codes
200 OK- Success201 Created- Resource created400 Bad Request- Invalid request data401 Unauthorized- Authentication required403 Forbidden- Insufficient permissions404 Not Found- Resource not found500 Internal Server Error- Server error
All endpoints require HTTPS in production environments. UUID parameters are validated for proper format.