API Reference¶
This document provides comprehensive information about the Velocimex API, including REST endpoints, WebSocket connections, and data formats.
Table of Contents¶
Authentication¶
All API requests require authentication using API keys:
curl -H "X-API-Key: your_api_key" \
-H "X-API-Secret: your_api_secret" \
https://api.velocimex.com/v1/endpoint
API Key Management¶
Create new API keys in the dashboard
Set permissions and IP restrictions
Rotate keys regularly
Never share API keys
REST API¶
Market Data¶
Get Market Status¶
GET /v1/markets/status
Response:
{
"status": "ok",
"data": {
"markets": [
{
"exchange": "NASDAQ",
"status": "open",
"last_update": "2024-04-15T14:30:00Z"
}
]
}
}
Get Order Book¶
GET /v1/markets/{exchange}/orderbook/{symbol}
Parameters:
exchange: Exchange identifier (e.g., “NASDAQ”, “BINANCE”)symbol: Trading pair (e.g., “AAPL”, “BTC/USDT”)
Trading¶
Place Order¶
POST /v1/trading/orders
Request:
{
"exchange": "NASDAQ",
"symbol": "AAPL",
"side": "buy",
"type": "limit",
"quantity": 100,
"price": 150.50
}
Cancel Order¶
DELETE /v1/trading/orders/{order_id}
Account Management¶
Get Account Balance¶
GET /v1/account/balance
Get Positions¶
GET /v1/account/positions
Strategy Management¶
List Strategies¶
GET /v1/strategies
Deploy Strategy¶
POST /v1/strategies/{strategy_id}/deploy
WebSocket API¶
Market Data Stream¶
const ws = new WebSocket('wss://api.velocimex.com/v1/ws/market');
ws.onmessage = (event) => {
const data = JSON.parse(event.data);
console.log(data);
};
Order Updates¶
const ws = new WebSocket('wss://api.velocimex.com/v1/ws/orders');
ws.onmessage = (event) => {
const order = JSON.parse(event.data);
console.log(order);
};
Data Formats¶
Market Data¶
{
"timestamp": "2024-04-15T14:30:00.123456Z",
"exchange": "NASDAQ",
"symbol": "AAPL",
"price": 150.50,
"volume": 1000,
"bid": 150.49,
"ask": 150.51
}
Order¶
{
"order_id": "123456",
"timestamp": "2024-04-15T14:30:00Z",
"exchange": "NASDAQ",
"symbol": "AAPL",
"side": "buy",
"type": "limit",
"quantity": 100,
"price": 150.50,
"status": "open"
}
Error Handling¶
Error Response Format¶
{
"error": {
"code": "INVALID_PARAMETER",
"message": "Invalid parameter value",
"details": {
"parameter": "price",
"value": "-1.00"
}
}
}
Common Error Codes¶
AUTHENTICATION_ERROR: Invalid API credentialsINVALID_PARAMETER: Invalid request parameterRATE_LIMIT_EXCEEDED: Too many requestsINSUFFICIENT_BALANCE: Not enough fundsMARKET_CLOSED: Market is not openINTERNAL_ERROR: Server error
Rate Limiting¶
Limits¶
REST API: 100 requests per minute
WebSocket: 10 connections per IP
Market Data: 1000 messages per second
Headers¶
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 95
X-RateLimit-Reset: 1620000000
Best Practices¶
Error Handling
Implement proper error handling
Use exponential backoff
Log errors for debugging
Rate Limiting
Monitor rate limits
Implement request queuing
Use WebSocket when possible
Security
Use HTTPS
Rotate API keys
Validate responses
Performance
Use WebSocket for real-time data
Implement caching
Batch requests when possible
For more information about specific endpoints, refer to the Technical Documentation.