API Documentation

Build custom trading applications with our powerful API

Overview

The Profuple API provides programmatic access to our trading platform, allowing developers to build custom applications, trading bots, and integrations. Our RESTful API uses standard HTTP response codes, authentication, and returns JSON.

Base URL
https://api.profuple.com/v1
All API requests must use HTTPS. HTTP requests will be rejected.

Authentication

The Profuple API uses API keys to authenticate requests. You can view and manage your API keys in your account dashboard.

API Key Authentication

Include your API key in the request header:

Authorization: Bearer YOUR_API_KEY
Keep your API keys secure and never share them publicly. API keys have full access to your account.

Rate Limits

To ensure the stability of the API, rate limits are applied to all endpoints. Rate limits vary by endpoint and account tier.

Account Tier Market Data Trading Account
Standard 100 requests/minute 50 requests/minute 20 requests/minute
Premium 500 requests/minute 200 requests/minute 100 requests/minute
Enterprise 1000 requests/minute 500 requests/minute 200 requests/minute

Rate limit information is included in the response headers:

X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1623456789

Market Data

Access real-time and historical market data for all supported assets.

GET /markets
List Markets

Returns a list of available markets.

Response Example:
{
  "markets": [
    {
      "id": "BTC-USD",
      "base_currency": "BTC",
      "quote_currency": "USD",
      "base_min_size": "0.001",
      "base_max_size": "100",
      "quote_increment": "0.01",
      "status": "online"
    },
    {
      "id": "ETH-USD",
      "base_currency": "ETH",
      "quote_currency": "USD",
      "base_min_size": "0.01",
      "base_max_size": "1000",
      "quote_increment": "0.01",
      "status": "online"
    }
  ]
}
GET /markets/{market_id}/ticker
Get Ticker

Returns the latest ticker data for a specific market.

Parameters:
  • market_id (path, required) - Market identifier
Response Example:
{
  "market_id": "BTC-USD",
  "price": "42356.78",
  "bid": "42350.25",
  "ask": "42360.15",
  "volume": "1245.67",
  "time": "2023-06-15T12:34:56Z"
}

Account

Manage your account and view balances.

GET /accounts
List Accounts

Returns a list of your trading accounts.

Response Example:
{
  "accounts": [
    {
      "id": "71675156-3477-4826-9bd1-8b5e6a01a568",
      "currency": "BTC",
      "balance": "0.5432",
      "available": "0.5432",
      "hold": "0.0000"
    },
    {
      "id": "2b9a3f4e-7af1-4eab-9a8c-116c7b9c4d23",
      "currency": "USD",
      "balance": "15420.75",
      "available": "15420.75",
      "hold": "0.00"
    }
  ]
}

Orders

Place and manage trading orders.

POST /orders
Place Order

Places a new order.

Request Parameters:
  • market_id (required) - Market identifier
  • side (required) - "buy" or "sell"
  • type (required) - "market", "limit", "stop"
  • size (required) - Order size
  • price (required for limit orders) - Order price
Request Example:
{
  "market_id": "BTC-USD",
  "side": "buy",
  "type": "limit",
  "size": "0.01",
  "price": "42000.00"
}
Response Example:
{
  "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2",
  "market_id": "BTC-USD",
  "side": "buy",
  "type": "limit",
  "size": "0.01",
  "price": "42000.00",
  "status": "pending",
  "created_at": "2023-06-15T12:34:56Z"
}
GET /orders
List Orders

Returns a list of your orders.

Query Parameters:
  • status (optional) - Filter by status: "open", "filled", "cancelled"
  • market_id (optional) - Filter by market
Response Example:
{
  "orders": [
    {
      "id": "d0c5340b-6d6c-49d9-b567-48c4bfca13d2",
      "market_id": "BTC-USD",
      "side": "buy",
      "type": "limit",
      "size": "0.01",
      "price": "42000.00",
      "status": "open",
      "created_at": "2023-06-15T12:34:56Z"
    }
  ]
}

WebSockets

Subscribe to real-time data feeds using WebSockets.

WebSocket Endpoint
wss://ws.profuple.com
Available Channels:
  • ticker - Real-time ticker updates
  • trades - Real-time trade updates
  • orderbook - Real-time orderbook updates
  • user - User-specific updates (requires authentication)
Subscription Example:
{
  "type": "subscribe",
  "channels": ["ticker"],
  "market_ids": ["BTC-USD", "ETH-USD"]
}

Error Handling

The API uses standard HTTP status codes to indicate the success or failure of requests.

Status Code Description
200 OK Request succeeded
400 Bad Request Invalid request parameters
401 Unauthorized Authentication failed
403 Forbidden Insufficient permissions
404 Not Found Resource not found
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error
Error Response Example:
{
  "error": {
    "code": "invalid_parameter",
    "message": "Invalid market_id parameter",
    "param": "market_id"
  }
}

SDKs & Libraries

We provide official client libraries to help you integrate with our API more easily.

JavaScript

Official JavaScript/Node.js client library

View on GitHub

Python

Official Python client library

View on GitHub

Other Languages

Community-maintained libraries

View All

Ready to Start Building?

Create an account to get your API keys and start integrating with our platform

Sign Up for API Access