Developers menu

Developers / Versioning and changelog

Markdown copy

Versioning and changelog

A path carries its major version where it has one (/api/v1, geo.firmtape.com/v1); a webhook body carries version. Within a version a change only adds: a new field, a new endpoint, a new event type. Ignore fields you do not know.

  • A field that is removed or renamed is first marked deprecated here with a removal date at least 30 days out, and keeps its value until that date.
  • A breaking change gets a new version and the old one keeps answering for at least 90 days.
  • Every change is a dated line on its endpoint's page (Changes) and in the list below.

Deprecated

WhatUseSinceRemoved after
levels.put_support in the level alerts webhook bodylevels.put_wall2026-10-112026-11-30
X-FirmTape-Signature-V0 on the POSITIONS webhookX-FirmTape-Signature with X-FirmTape-Timestamp2026-10-112026-11-30

Changes

DateProductChange
2026-10-12LIVEThe developer hub: every API, webhook and MCP tool documented from one source at /docs/developers.
2026-10-11LIVELevels API: a finished day answers with its closing levels, read at 15:45 ET (12:45 on a 13:00 close), and adds levels_at and last_second.
2026-10-11LIVELevel alerts webhook: version 1; levels.put_wall added beside levels.put_support (the same number, deprecated).
2026-10-11ORDERSPOSITIONS webhook: signed as the alerts are (X-FirmTape-Timestamp, signature over <timestamp>.<raw body>); the old body-only signature moved to X-FirmTape-Signature-V0 (deprecated).
2026-10-11LIVELevels API: RTY and M2K.
2026-10-05LIVELevels API: history answers the last 90 days for an account key; older days with DATASET.
2026-09-30LIVELevels API v1: symbols, levels, gamma, history, levels.txt, bookmap.csv, key.

Planned

One webhook format

POSITIONS and Geo move to the alerts' envelope (type, id, version, ts), header set (X-FirmTape-Event, X-FirmTape-Event-Id, X-FirmTape-Timestamp, X-FirmTape-Signature: sha256=) and delivery policy (3 seconds, retries after 1 s and 4 s, switch-off after 10 failures). Plan: (1) send the new format beside the old one, each request carrying both header sets, for 30 days from the day it starts, announced on this page and by mail to every account with a webhook; (2) event stays in the body beside type for the same 30 days; (3) Geo's t=,v1= signature stays in its own header, X-FirmTape-Signature-Geo, for those 30 days; (4) then the old format stops. Not started; no live sender changes before the start is announced here.

A key of its own for the dataset

The DATASET files open with a dataset scope key made on the account page, rather than the lab key. The lab key keeps working for the files for 30 days after the new key ships.

A delivery log for the alerts webhook

Every delivery of the level alerts webhook in the account, with status, tries and a resend button, as Geo has.

One error envelope

{"error": {"code", "message", "docs"}} on every API, LAB and Geo included, docs linking the code's row on the errors page.

Alert lines from a key

/api/alerts stays session-only until a customer asks for it from code.

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/versioning.md.