Developers menu

Developers / ORDERS / Your positions

Markdown copy

Your positions

All the account's positions with catalogue (the kinds and their legs, every condition with its unit, default threshold and range, the label counts and the alert defaults); with id, one position.

GET/api/positions
Plan ORDERSKey scope ordersLimit 20,000 calls a day on Orders API, 100,000 on Orders Team, per accountVersion 1.0.0Since 2026-10-04

This endpoint serves

Plan: ORDERS. Free on every finished session. Today's ledger, live, and the live POSITIONS check are the ORDERS plan. Pricing.

Parameters

NameWhat it doesDefaultError
idquery · stringOne position, p_....not_found

Response

{ positions, max, catalogue }, or { position } with id.

FieldMeaningUnit
positionsarrayUp to max.
positions[].idstringp_..., given by add.
positions[].kindcondor | strangle | put_spread | call_spreadcondor, strangle, put_spread or call_spread.
positions[].legsobjectThe strikes, rising, as the kind needs them.
positions[].legs.lpnumberLong put.
positions[].legs.spnumberShort put.
positions[].legs.scnumberShort call.
positions[].legs.lcnumberLong call.
positions[].entrystringEntry minute, HH:MM ET.
positions[].conditionsarray[{ id, on, threshold }]: which conditions count, and where they switch on.
positions[].labelobject{ caution, skip }: how many conditions on make each label.
positions[].alertobject{ channel: telegram | email | webhook | off, url, before }: where the alerts go and how many minutes before entry they start.
positions[].sessionstringYYYY-MM-DD: the session the strikes were set against.
maxintegerPositions an account may keep (5).
catalogueobjectKinds, conditions, label counts and alert defaults.
positionobjectA short options position: kind (condor, strangle, put_spread, call_spread), legs (lp, sp, sc, lc, rising), entry (HH:MM ET) and optionally conditions, label, alert ({ channel: telegram | email | webhook | off, url, before }) and session.
position.idstringp_..., given by add.
position.kindcondor | strangle | put_spread | call_spreadcondor, strangle, put_spread or call_spread.
position.legsobjectThe strikes, rising, as the kind needs them.
position.legs.lpnumberLong put.
position.legs.spnumberShort put.
position.legs.scnumberShort call.
position.legs.lcnumberLong call.
position.entrystringEntry minute, HH:MM ET.
position.conditionsarray[{ id, on, threshold }]: which conditions count, and where they switch on.
position.labelobject{ caution, skip }: how many conditions on make each label.
position.alertobject{ channel: telegram | email | webhook | off, url, before }: where the alerts go and how many minutes before entry they start.
position.sessionstringYYYY-MM-DD: the session the strikes were set against.

Errors

StatusCodeWhat to do
401no_keyNo key, or a revoked one. Send Authorization: Bearer <key> with a key of the product's scope.
403planThe account is not on the Orders API or Team plan. Move to the Orders API or Team plan.
404not_foundNo position with this id on this account. Check the path or the id.
429rateThe day's calls are spent. Wait for midnight ET, when the count resets.

Every code: Errors.

Changes

  • 2026-10-04 Added.

OpenAPI operation positionsList in /docs/developers/openapi.json.

Measurements of dealer positioning, never a forecast or a trade call. This page is built from FirmTape's public contract, the same files the OpenAPI document is built from; the tests hold them against the route code. Markdown: /docs/developers/orders/positions.md.