Quickstart
0. Try it with no key at all
Section titled “0. Try it with no key at all”The sandbox needs no signup — 5 requests per day per IP:
curl -s "https://api.stockalloy.com/api/sandbox/facts?ticker=DECK&metric=revenue"curl -s "https://api.stockalloy.com/api/sandbox/search?q=rocket+lab+backlog"Every sandbox response includes an X-Sandbox-Remaining header with your
remaining requests for the day. When it hits zero you’ll get a 429 with
error code SANDBOX_LIMIT.
1. Get a free API key (2 minutes)
Section titled “1. Get a free API key (2 minutes)”- Go to stockalloy.com/developer and sign up.
- Click Start free — the Free plan includes 500 calls/month and requires no credit card.
- Create an API key. It’s shown once — copy it somewhere safe.
Export it in your shell:
export STOCKALLOY_API_KEY="sa_b2b_..."2. Your first call
Section titled “2. Your first call”All authenticated endpoints are POST with a JSON body and your key in the
X-API-Key header. Fetch Deckers’ latest verified revenue fact:
curl -s https://api.stockalloy.com/api/b2b/facts/latest \ -H "Content-Type: application/json" \ -H "X-API-Key: $STOCKALLOY_API_KEY" \ -d '{"ticker": "DECK", "metric_id": "us-gaap#RevenueFromContractWithCustomerExcludingAssessedTax"}'Response:
{ "scope": "company", "ticker": "DECK", "cik": "0000910521", "metric_id": "us-gaap#RevenueFromContractWithCustomerExcludingAssessedTax", "count": 1, "rows": [ { "series_key": "1662173f5414…", "metric_id": "us-gaap#RevenueFromContractWithCustomerExcludingAssessedTax", "metric_label": "Revenue", "period_key": "duration:2024-04-01..2025-03-31", "period_end": "2025-03-31", "unit_signature": "monetary:USD", "value_num": "4985612000", "source_accession": "000091052125000017", "source_form_type": "10-K", "source_filed_at": "2025-05-23", "evidence_url": "https://stockalloy.com/api/evidence/35abfabdc97f…/open?cik=0000910521&accession=000091052125000017", "is_consolidated": true } ]}That’s Deckers’ fiscal-2025 revenue — $4,985,612,000, exactly as filed in the 10-K — with a proof link attached.
Browse everything (capped, dei excluded)
Section titled “Browse everything (capped, dei excluded)”Drop metric_id to browse the latest fact for every one of Deckers’
consolidated series:
curl -s https://api.stockalloy.com/api/b2b/facts/latest \ -H "Content-Type: application/json" \ -H "X-API-Key: $STOCKALLOY_API_KEY" \ -d '{"ticker": "DECK"}'Unscoped responses are capped at 100 rows by default (raise with
"limit": …, up to 500) and exclude dei# cover-page tags (auditor IDs,
addresses, cover-date share counts) unless you pass "include_dei": true.
When the cap drops rows, the envelope tells you:
{ "scope": "company", "ticker": "DECK", "cik": "0000910521", "metric_id": null, "count": 100, "truncated": true, "total_available": 472, "rows": [ … ]}Metric-scoped calls are never capped or filtered — for full history or segment slices, see the facts guide.
3. Click the proof
Section titled “3. Click the proof”Open the example evidence_url in a browser. It redirects to a filing viewer
at the supporting figure. Evidence links currently require no API key, but
their availability is best effort; retain the filing accession and original
SEC document URL as provenance in material workflows.
4. Go deeper
Section titled “4. Go deeper”- Search companies & metrics — find series for segments, products, and operational KPIs.
- Get financial facts — core vs. latest vs. full, exact value encoding, period semantics.
- Evidence & provenance — how proof-backed rows link to their filed source.
- MCP server — plug verified facts into Claude Code or Claude Desktop; paid MCP access is currently provisioned by direct contact.
- API reference — every endpoint, request, and response shape.