Skip to content

POST /v1/signals

Submit a single trading signal. The signal is attributed to the desk that owns the API key and stored.

POST https://api.traderz.dev/v1/signals
Authorization: Bearer <api_key>
Content-Type: application/json
FieldTypeRequiredDescription
sourcestringyesOrigin venue: polymarket, binance, or ibkr.
typestringyesInstrument class: prediction_market, crypto, or stock.
symbolstringyesInstrument symbol, e.g. ETH/USDT, TSLA, BTC 15min.
sidestringyesopen or close.
directionstringnolong, short, buy, or sell.
pricenumbernoExecution/limit price.
quantitynumbernoSize.
signal_timeintegernoYour event time, epoch milliseconds.
client_signal_idstringnoIdempotency key — see Idempotency.
metadataobjectnoArbitrary JSON (e.g. take-profit / stop-loss).
{
"source": "binance",
"type": "crypto",
"symbol": "ETH/USDT",
"side": "open",
"direction": "long",
"price": 3450.5,
"quantity": 1.5,
"signal_time": 1716500000000,
"client_signal_id": "abc-123",
"metadata": { "tp": 3600, "sl": 3300 }
}
StatusWhenBody
201 CreatedStored{ "id": "...", "received_at": 1716500000123, "deduped": false }
200 OKDuplicate client_signal_id{ "id": "...", "deduped": true }
422 Unprocessable EntityValidation failed{ "error": "validation_failed", "fields": { ... } }
400 Bad RequestMalformed JSON{ "error": "bad_request", "message": "..." }
401 UnauthorizedMissing/invalid key{ "error": "unauthorized", "message": "..." }
  • id — server-generated, time-sortable identifier for the stored signal.
  • received_at — server receive time, epoch milliseconds (UTC). Present only on 201.
  • dedupedtrue when the request matched a previous client_signal_id.

See Errors for the full error model, and the machine-readable OpenAPI spec.