Errors & rates

Understanding Responses

Success Response Format

All successful API responses follow this structure:

{
  "success": true,
  "data": {
    // Response data here
  },
  "requestId": "req_123abc",
  "timestamp": "2025-10-15T12:00:00.000Z"
}

Error Response Format

All error responses follow this structure:

{
  "success": false,
  "error": {
    "message": "Insufficient balance",
    "code": "INSUFFICIENT_BALANCE",
    "statusCode": 400
  },
  "requestId": "req_123abc",
  "timestamp": "2025-10-15T12:00:00.000Z"
}

Common Error Codes

Code
HTTP Status
Description

INVALID_API_KEY

401

API key is invalid or expired

INSUFFICIENT_BALANCE

400

Not enough USDC for the operation

MARKET_NOT_FOUND

404

Specified market doesn't exist

POSITION_NOT_FOUND

404

Position ID not found

INVALID_LEVERAGE

400

Leverage exceeds market maximum

WRONG_SIZE

400

Position size below minimum (10 USDC)

Rate Limits

To ensure fair usage and system stability, there is a rate limit of 100 requests/minute.

If you exceed rate limits, you'll receive a 429 RATE_LIMIT_EXCEEDED response.

Rate Limit Headers

All responses include the following headers:

  • RateLimit-Limit: Maximum requests per minute (100)

  • RateLimit-Remaining: Remaining requests in current window

Last updated