Developers menu

Developers / ORDERS / Add, update or remove a position

Markdown copy

Add, update or remove a position

Everything the editor does: { "op": "add" | "update" | "remove", "position": {...} }. A refusal says what to fix, in words.

POST/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.

Body

FieldMeaningUnit
opadd | update | removeadd, update or remove.
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.

Response

{ ok: true, ... }; add answers the new id.

FieldMeaningUnit
okbooleanDone.

Errors

StatusCodeWhat to do
400bad_json, bad_op, invalidThe body cannot be used; message says why. Send Content-Type: application/json and a JSON object.
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. Check the path or the id.
405methodGET or POST only. Send a GET or a POST.
429rateThe day's calls are spent. Wait for midnight ET, when the count resets.

Every code: Errors.

Changes

  • 2026-10-04 Added.

OpenAPI operation positionsChange 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-change.md.