Trade Manager API

The Trade Manager API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Use our API to programmatically access your trading data, manage recorders, and retrieve analytics.

Base URL

https://developers.trademanagergroup.net

Authentication

Security Notice: API keys are not meant to be published within client-side applications. They should always be utilized within server-side applications.

The Trade Manager API uses API keys to authenticate requests. You can view and manage your API keys in the Developer Dashboard.

Your API keys carry many privileges, so be sure to keep them secure! Do not share your secret API keys in publicly accessible areas such as GitHub, client-side code, and so forth.

Authentication to the API is performed via Bearer token. Provide your API key in the Authorization header.

Authorization Header

Authorization: Bearer tmdev_live_your_api_key_here

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.

Rate Limiting

The API implements dynamic rate limiting that automatically adjusts based on your account age and usage patterns. All API requests are subject to rate limits to ensure fair usage and system stability.

Rate Limit Tiers

🥉 Bronze - 30 req/min

New users (0-30 days)

🥈 Silver - 60 req/min

Established users (31-90 days) or high usage (>200 req/day)

🥇 Gold - 120 req/min

Mature users (91-180 days) or high usage (>500 req/day)

💎 Platinum - 300 req/min

Veteran users (180+ days) or very high usage (>1000 req/day)

⚙️ Custom - Variable

Admin-configured custom limits for enterprise users

Rate Limit Headers

Every API response includes headers that provide information about your current rate limit status:

X-RateLimit-Limit: 120# Your max requests per minute
X-RateLimit-Remaining: 115# Requests left in current window
X-RateLimit-Reset: 2026-01-02T12:35:00.000Z
X-RateLimit-Tier: gold# Your current tier

Handling Rate Limits

When you exceed your rate limit, the API will return a 429 Too Many Requests response:

HTTP/1.1 429 Too Many Requests
X-RateLimit-Limit: 120
X-RateLimit-Remaining: 0
X-RateLimit-Reset: 2026-01-02T12:35:00.000Z
X-RateLimit-Tier: gold
Retry-After: 45

{
  "error": "Rate limit exceeded",
  "retryAfter": 45,
  "resetAt": "2026-01-02T12:35:00.000Z",
  "limit": 120,
  "tier": "gold"
}

Best Practices

  • Check the X-RateLimit-Remaining header to track your usage
  • Implement exponential backoff when receiving 429 responses
  • Respect the Retry-After header value
  • Cache responses when possible to reduce API calls
  • Use webhooks instead of polling for real-time updates

Automatic Tier Upgrades

Your rate limit tier automatically increases as your account ages and your usage grows. High-volume users can be upgraded to higher tiers regardless of account age. Use the GET /api/v1/me/rate-limit endpoint to check your current tier and see when you might be eligible for an upgrade.

Errors

Trade Manager uses conventional HTTP response codes to indicate the success or failure of an API request.

HTTP Status Code Summary

200 - OK

Everything worked as expected.

201 - Created

Resource was successfully created.

400 - Bad Request

The request was unacceptable, often due to missing a required parameter.

401 - Unauthorized

No valid API key provided.

404 - Not Found

The requested resource doesn't exist.

500 - Server Error

Something went wrong on our end.

Users

The Users API allows you to retrieve user information and access public recorders from other users.

Get Current User

Returns the authenticated user's information including id, username, Discord information, and account details.

GET/api/v1/me

Response

Returns the requested resource(s).

Get Your Rate Limit

Returns your current rate limit tier, limits, and usage information. Rate limits automatically increase as your account ages and usage grows. All API responses include rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, and X-RateLimit-Tier.

GET/api/v1/me/rate-limit

Response

Returns the requested resource(s).

Find User by Username

Finds a user by their username (exact match, case-insensitive). Returns a single user object with id and username.

GET/api/v1/users

Query Parameters

usernamestringrequired

The username to search for (exact match, case-insensitive)

Response

Returns the requested resource(s).

Get User

Returns a specific user's information by their user ID. Only returns id and username.

GET/api/v1/users/{userId}

Path Parameters

userIdstringrequired

The unique identifier of the user

Response

Returns the requested resource(s).

Get User's Public Recorders

Returns a list of public recorders owned by the specified user. Only public recorders are returned.

GET/api/v1/users/{userId}/recorders

Path Parameters

userIdstringrequired

The unique identifier of the user

Response

Returns the requested resource(s).

Recorders

Recorders track your trading strategies and their performance. You can view and share recorders.

List Recorders

Returns all recorders owned by the authenticated user, including both private and public recorders.

GET/api/v1/recorders

Response

Returns the requested resource(s).

Get Recorder

Returns detailed information about a specific recorder owned by the authenticated user.

GET/api/v1/recorders/{recorderId}

Path Parameters

recorderIdstringrequired

The unique identifier of the recorder

Response

Returns the requested resource(s).

Get Recorder Trades

Returns a paginated list of trades for a specific recorder. Supports pagination via limit and offset query parameters.

GET/api/v1/recorders/{recorderId}/trades

Path Parameters

recorderIdstringrequired

The unique identifier of the recorder

Query Parameters

limitintegerdefault: 100

Maximum number of trades to return

offsetintegerdefault: 0

Number of trades to skip

Response

Returns the requested resource(s).

Get Recorder Sharing

Returns a list of users that a private recorder is shared with. Only works for private recorders.

GET/api/v1/recorders/{recorderId}/sharing

Path Parameters

recorderIdstringrequired

The unique identifier of the recorder

Response

Returns the requested resource(s).

Share Recorder

Shares a private recorder with another user. The recorder must be private. Public recorders cannot be shared.

POST/api/v1/recorders/{recorderId}/sharing

Path Parameters

recorderIdstringrequired

The unique identifier of the recorder to share

Request Body Parameters

userIdstringrequired

The unique identifier of the user to share with

Request Body

{
  "userId": "987654321"
}

Response

Returns the requested resource(s).

Unshare Recorder

Revokes access to a private recorder from a user. Removes the specified user from the recorder's sharing list. Only the recorder owner can unshare.

DELETE/api/v1/recorders/{recorderId}/sharing/{userId}

Path Parameters

recorderIdstringrequired

The unique identifier of the recorder

userIdstringrequired

The unique identifier of the user to revoke access from

Response

Returns a success message confirming deletion.

Traders

Traders represent your connected trading accounts. You can manage traders and retrieve their trade history.

List Traders

Returns all traders (trading accounts) owned by the authenticated user. Traders represent connected trading platforms.

GET/api/v1/traders

Response

Returns the requested resource(s).

Get Trader

Returns detailed information about a specific trader (account) owned by the authenticated user.

GET/api/v1/traders/{traderId}

Path Parameters

traderIdstringrequired

The unique identifier of the trader

Response

Returns the requested resource(s).

Toggle Trader

Enables or disables a trader. When disabled, the trader will not execute trades.

POST/api/v1/traders/{traderId}/toggle

Path Parameters

traderIdstringrequired

The unique identifier of the trader

Request Body Parameters

disablebooleanrequired

Set to true to disable the trader, false to enable

Request Body

{
  "disable": false
}

Response

Returns the requested resource(s).

Get Trader Trades

Returns a paginated list of trades executed by a specific trader. Supports pagination via limit and offset query parameters.

GET/api/v1/traders/{traderId}/trades

Path Parameters

traderIdstringrequired

The unique identifier of the trader

Query Parameters

limitintegerdefault: 100

Maximum number of trades to return

offsetintegerdefault: 0

Number of trades to skip

Response

Returns the requested resource(s).