Developers menu

Quickstart

From no account to a first answer in three steps; then the same call in Python and Node.

With no key: the archive

Every finished session answers with no account.

curl \
  "https://firmtape.com/api/days"

With a key: the live levels

  1. Start LIVE on Pricing.
  2. Open Account, Integrations and make a key. It starts ftpl_ and is shown once.
  3. Call it:
curl \
  -H "Authorization: Bearer $FIRMTAPE_LIVE_KEY" \
  "https://firmtape.com/api/v1/levels?sym=SPX,ES,QQQ"
import os, requests

H = {"Authorization": f"Bearer {os.environ['FIRMTAPE_LIVE_KEY']}"}
r = requests.get("https://firmtape.com/api/v1/levels?sym=SPX,ES,QQQ", headers=H)
print(r.status_code, r.text[:500])
const r = await fetch("https://firmtape.com/api/v1/levels?sym=SPX,ES,QQQ", {
  method: "GET",
  headers: { Authorization: `Bearer ${process.env.FIRMTAPE_LIVE_KEY}` },
});
console.log(r.status, await r.text());

Poll it well

Put every symbol in one call, send the last ETag back as If-None-Match (a 304 is not counted), and wait next_update_s between calls.

Next

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