Billing & Deposits
Understand how API billing works, make deposits, and manage your account balance.
⚠️ Important: No Withdrawals
Deposits are final and cannot be withdrawn. Your deposited funds can only be used to pay for API requests. Only deposit what you intend to use.
How Billing Works
Prepaid Balance
Deposit SOL or USDC to your account. Deposits are converted to USD at current market rates.
Pay Per Request
Each API request costs a small amount in USD. The cost is deducted from your balance immediately.
Cost in Response
Every response includes a costUsd field showing exactly what was charged.
Complete API Pricing
All prices are in USD and deducted from your prepaid balance. Failed requests are not charged.
Spot Requests (Immediate)
| Endpoint | Method | Cost | Description |
|---|---|---|---|
| /price/:symbol | GET | $0.01 | Single VWAP price lookup |
| /price/batch | POST | $0.05 + $0.01/symbol | Batch prices (max 50 symbols) |
| /ai/resolve | POST | $0.25 | AI multi-model consensus resolution |
| /ai/request/:id | GET | Free | Poll AI resolution status |
| /historical/price/:symbol | GET | $0.05 | Historical price data (max 1000 points) |
| /markets | GET | $0.05 | List markets with filters |
| /markets/:id | GET | $0.02 | Single market details |
Scheduled Requests (Future Execution)
Note: Scheduled requests cost more than spot requests because they include guaranteed execution at a specific time plus webhook delivery of results.
| Endpoint | Method | Cost | Description |
|---|---|---|---|
| /price/schedule | POST | $0.05 | Schedule price check + webhook |
| /ai/schedule | POST | $0.50 | Schedule AI resolution + webhook |
| /price/scheduled | GET | Free | List scheduled price jobs |
| /ai/scheduled | GET | Free | List scheduled AI jobs |
| */scheduled/:id/cancel | POST | Free (refund) | Cancel job & get full refund |
WebSocket (Real-time Streaming)
| Endpoint | Cost | Description |
|---|---|---|
| /ws | $0.10/hour | Real-time price subscriptions (billed hourly while connected) |
Spot vs Scheduled Comparison
| Request Type | Spot (Now) | Scheduled (Future) | Difference |
|---|---|---|---|
| Price Query | $0.01 | $0.05 | +$0.04 (webhook + scheduling) |
| AI Resolution | $0.25 | $0.50 | +$0.25 (webhook + scheduling) |
Scheduled requests include guaranteed execution at your specified time and automatic webhook delivery of results. Cancelled jobs receive a full refund.
Making Deposits
You can deposit SOL or USDC to fund your API account.
Accepted Tokens
| Token | Mint Address | Conversion |
|---|---|---|
| SOL | Native | Market rate at deposit time |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 1:1 USD |
Deposit Methods
1. Dashboard Deposit Button
Use the "Deposit Funds" button in your API Dashboard to deposit directly from your connected wallet.
2. Direct Transfer
Send SOL or USDC directly to the treasury address shown in your dashboard. Deposits are automatically detected and credited.
Rate Limit Tiers
Your rate limit tier is determined by your lifetime deposits. Higher tiers get more requests per minute.
| Tier | Requests/min | Requirement |
|---|---|---|
| STANDARD | 60 | Default tier |
| PRO | 300 | $100+ lifetime deposits |
| ENTERPRISE | 1000 | Contact sales |
Tier upgrades are automatic when you reach the deposit threshold. You'll see a notification in your dashboard.
Per-Key Customization: You can set custom rate limits on individual API keys (up to your tier's maximum) and configure daily/monthly request quotas. See Authentication for details.
Usage Quotas
In addition to rate limits, you can set usage quotas on individual API keys to control total request volume.
- Daily Quota — Limit requests per day (resets at midnight UTC)
- Monthly Quota — Limit requests per month (resets on the 1st)
- Quotas are measured in request count, not dollar amounts
Quotas help prevent unexpected usage spikes and allow you to allocate request budgets across different keys for different applications or environments.
Checking Your Balance
Use the account endpoint to check your current balance:
curl -X GET "https://api.predikt.fun/api/v1/account" \-H "Authorization: Bearer pk_live_your_api_key"
{"id": "acc_abc123","balanceUsd": "45.67","totalDepositsUsd": "100.00","totalSpentUsd": "54.33","rateLimitTier": "PRO","totalRequests": 2456}
Insufficient Balance
If your balance is too low to complete a request, you'll receive a 402 error:
{"error": "Insufficient balance","code": "INSUFFICIENT_BALANCE","balanceUsd": "0.01","requiredUsd": "0.02"}