Echo
TypeScript SDK

Resources

Platform operations - apps, balance, payments, users, models

Resources

The EchoClient provides access to platform resources through dedicated modules. Each resource handles a specific domain of Echo platform operations.

Apps Resource

Manage your Echo applications and retrieve app information.

const apps = await echo.apps.listEchoApps();
const app = await echo.apps.getEchoApp('app-id');
const appUrl = echo.apps.getAppUrl('app-id');

Methods

  • listEchoApps() - List all your Echo applications
  • getEchoApp(appId) - Get specific application details
  • getAppUrl(appId) - Generate application URL

Types

import type { EchoApp } from '@merit-systems/echo-typescript-sdk';

EchoApp

PropTypeDefault
id
string
-
name
string
-
description?
string
-
isActive
boolean
-
createdAt
string
-
updatedAt
string
-
totalTokens?
number
-
totalCost?
number
-
apiKeys?
ApiKey[]
-
_count?
{ apiKeys: number; llmTransactions: number; }
-

Balance Resource

Check account balance and free tier usage across applications.

const balance = await echo.balance.getBalance();
const freeBalance = await echo.balance.getFreeBalance('app-id');

Methods

  • getBalance() - Get total account balance across all apps
  • getFreeBalance(echoAppId) - Get free tier balance for specific app

Types

import type { Balance, FreeBalance, UserSpendInfo } from '@merit-systems/echo-typescript-sdk';

Balance

PropTypeDefault
totalPaid
number
-
totalSpent
number
-
balance
number
-

FreeBalance

PropTypeDefault
spendPoolBalance
number
-
userSpendInfo
UserSpendInfo
-

UserSpendInfo

PropTypeDefault
userId
string
-
echoAppId
string
-
spendPoolId
string | null
-
amountSpent
number
-
spendLimit
number | null
-
amountLeft
number
-

Payments Resource

Handle payment links and credit purchases through Stripe integration.

const paymentLink = await echo.payments.createPaymentLink({
  amount: 25,
  description: 'Echo Credits'
});

const paymentUrl = await echo.payments.getPaymentUrl(10, 'Quick Top-up');

Methods

  • createPaymentLink(request) - Create detailed payment link with options
  • getPaymentUrl(amount, description?, successUrl?) - Quick payment URL generation

Types

import type { 
  CreatePaymentLinkRequest, 
  CreatePaymentLinkResponse 
} from '@merit-systems/echo-typescript-sdk';

CreatePaymentLinkRequest

PropTypeDefault
amount
number
-
description?
string
-
successUrl?
string
-

CreatePaymentLinkResponse

PropTypeDefault
paymentLink
{ id: string; url: string; amount: number; currency: string; description?: string | undefined; }
-

Models Resource

Get information about supported LLM models, pricing, and capabilities.

const chatModels = await echo.models.listSupportedChatModels();
const imageModels = await echo.models.listSupportedImageModels();

Methods

  • listSupportedChatModels() - Get all supported chat models with pricing and metadata
  • listSupportedImageModels() - Get all supported image models with pricing and metadata

Types

import type { 
  SupportedModel, 
  SupportedImageModel 
} from '@merit-systems/echo-typescript-sdk';

SupportedModel

PropTypeDefault
model_id
string
-
input_cost_per_token
number
-
output_cost_per_token
number
-
provider
string
-

SupportedImageModel

PropTypeDefault
model_id
string
-
text_input_cost_per_token
number
-
image_input_cost_per_token
number
-
image_output_cost_per_token
number
-
provider
string
-

Users Resource

Manage user information and referral code registration.

const user = await echo.users.getUserInfo();
const referralResult = await echo.users.registerReferralCode('app-id', 'REFERRAL123');

Methods

  • getUserInfo() - Get current user information and spending data
  • registerReferralCode(echoAppId, code) - Register referral code for benefits

Types

import type { 
  User, 
  RegisterReferralCodeRequest, 
  RegisterReferralCodeResponse 
} from '@merit-systems/echo-typescript-sdk';

User

PropTypeDefault
id
string
-
email
string
-
name?
string
-
totalPaid?
number
-
totalSpent?
number
-
createdAt
string
-
updatedAt
string
-
picture?
string
-

RegisterReferralCodeRequest

PropTypeDefault
echoAppId
string
-
code
string
-

RegisterReferralCodeResponse

PropTypeDefault
success
boolean
-
message
string
-

Example Usage

Complete Platform Operations

import { EchoClient } from '@merit-systems/echo-typescript-sdk';

const echo = new EchoClient({ apiKey: process.env.ECHO_API_KEY });

async function platformDemo() {
  // Check user and balance
  const user = await echo.users.getUserInfo();
  const balance = await echo.balance.getBalance();
  
  console.log(`User: ${user.email}, Balance: $${balance.balance}`);
  
  // Create payment link if balance is low
  if (balance.balance < 5) {
    const payment = await echo.payments.createPaymentLink({
      amount: 20,
      description: 'Account Top-up'
    });
    
    console.log(`Payment link: ${payment.url}`);
  }
  
  // List available models
  const chatModels = await echo.models.listSupportedChatModels();
  const imageModels = await echo.models.listSupportedImageModels();
  console.log(`Available chat models: ${chatModels.length}`);
  console.log(`Available image models: ${imageModels.length}`);
  
  // Get app information
  const apps = await echo.apps.listEchoApps();
  console.log(`Your apps: ${apps.length}`);
}