REST API
Read your TradeSgnl signals, deliveries, accounts and performance, or send a signal, from any tool that can make an HTTP request.
Overview
Every tool the MCP server offers is also a plain JSON endpoint under https://portal.tradesgnl.com/api/v1/. Use it from a spreadsheet, a WordPress table plugin, a cron job or your own code.
Authenticate with a key from the portal (Profile, API access) as a Bearer token:
curl https://portal.tradesgnl.com/api/v1/signals?limit=20 \
-H "Authorization: Bearer tsk_YOUR_KEY"The full list of endpoints, parameters and responses is published as an OpenAPI document at https://portal.tradesgnl.com/openapi/v1.json. Tools like WP Data Tables, Postman or any OpenAPI client can be pointed at that URL directly.
Endpoints
| Method and path | What it does |
|---|---|
GET /api/v1/signals | Signal log, most recent first (symbol, command, limit, date_from, date_to) |
GET /api/v1/deliveries | Per-account delivery status (status, limit, date_from, date_to) |
GET /api/v1/clients | Connected accounts (include_ea_settings) |
GET /api/v1/analytics | Balance and equity per account (client_id) |
GET /api/v1/trades | Positions for one account (client_id, limit, date_from, date_to) |
GET /api/v1/performance | Performance metrics (client_id) |
GET /api/v1/performance/breakdowns | Breakdowns by symbol, direction, strategy, day (client_id, breakdown_type, date_from, date_to) |
GET /api/v1/backtests | Backtest results (symbol, limit) |
GET /api/v1/alerts | Alert history (alert_type, limit, date_from, date_to) |
GET /api/v1/alerts/preferences | Alert preferences |
GET /api/v1/subscription | Your plan |
GET /api/v1/licenses | Licence codes |
GET /api/v1/presets | Saved signal presets |
GET /api/v1/docs/search | Search this documentation (query) |
GET /api/v1/analyst/accounts | Accounts the Market Analyst can read prices from |
GET /api/v1/analyst/symbols | Broker symbol catalog (client_id, query) |
GET /api/v1/analyst/candles | Live candles (client_id, symbol, interval, count) |
GET /api/v1/analyst/quote | Live quote (client_id, symbol) |
GET /api/v1/analyst/report | Run the Market Analyst (client_id, symbol, style). Spends AI credits |
POST /api/v1/signals | Send a trade signal. Needs a key with the trade permission |
Query parameters map one to one onto the tool inputs; numbers and booleans are read from the query string. Dates are YYYY-MM-DD.
Sending a signal
curl -X POST https://portal.tradesgnl.com/api/v1/signals \
-H "Authorization: Bearer tsk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"license_code": "12345",
"symbol": "EURUSD",
"action": "buy",
"volume": { "lots": 0.1 },
"stop_loss": { "pips": 30 },
"take_profit": { "pips": 60 },
"comment": "Strategy1"
}'The response carries the exact signal syntax that was sent and a signal_id. Check GET /api/v1/deliveries?signal_id=... afterwards to see whether each account executed it, or read GET /api/v1/signals?include_deliveries=true to get signals and their per-account status in one call.
Add "dry_run": true to the body to validate the order and see the syntax and the accounts it would reach, without sending anything.
List endpoints take limit and offset for paging. Error codes on signals, deliveries and alerts come with an error_message that says what the code means. Each signal carries units (how to read its volume, sl and tp: lots, pips, price, and so on) and params, every parameter exactly as it was sent.
Actions: buy, sell, buystop, buylimit, sellstop, selllimit (pending orders need entry as { "pips": n } or { "price": n }), closebuy, closesell (optionally partial as { "percent": n } or { "lots": n }), closeall, cancellong, cancelshort, and the reversals closelongsell, closeshortbuy, closelongbuy, closeshortsell. Size is { "lots": n }, { "percentBalance": n } or { "percentEquity": n }. Stop loss and take profit take pips, points or price.
Errors and limits
Errors are JSON with an error message and a reason code, and use the usual statuses: 401 for a bad key, 403 when the plan or key does not allow the call, 429 when a rate limit is reached (see the X-RateLimit-Reset header), 402 when AI credits are exhausted.
Limits: 60 calls per minute; POST /api/v1/signals 10 per minute and 200 per day. The API is included from the Advanced plan.