Skip to content
Signal from noise

Find the trend before the market does.

The Ezana API serves the under-watched public data that moves markets, structured for models: congressional trades and the committees members sit on, lobbying spend, campaign finance, federal contracts, prediction-market odds, 13F holdings, activist stakes and insider transactions. Every record names its public source.

Illustrative: noise resolving into signal

Built for quant desks, systematic traders and research teams. 18 of 53 documented endpoints are live today; the rest are marked Roadmap and answer 501 until they ship.

Overview

Most alternative data is noise until something connects it to price. The Ezana API turns overlooked public datasets into structured inputs: what informed actors trade, where policy money goes, who funds whom, which companies win federal contracts, what the crowd is betting, and what large funds, activists and insiders do. Every field traces to a primary source (House and Senate disclosures, Senate LDA, FEC, USAspending, Polymarket, SEC EDGAR), so a signal is auditable back to where it came from.

It is built for traders, quant firms and research desks who want inputs, not opinions: features you can drop into a model, backtest and trade around. News engineering, cross-dimensional signals and lead-lag relationships are on the roadmap and marked as such below.

Under-watched data, structured

Disclosures and filings most desks never parse, cleaned, typed and joined to tickers where the mapping is known.

News engineering Roadmap

Market-moving news structured, entity-tagged and linked to tickers, events and odds.

Prediction-market signal

Real-money odds as a consensus probability for event-driven strategies.

Linked identifiers

Members by bioguide id, filers and issuers by SEC CIK, contractors by USAspending recipient id, securities by ticker and CUSIP.

Fresh

Sources are synced hourly to daily; see Data coverage for each dataset.

Disclosure dates kept

Trades carry the trade and the disclosure date, filings their filing date, so a backtest only sees what was public at the time.

Quickstart

Three steps from zero to your first signal.

  1. 1

    Get a key

    Create a free Developer key in Settings, API, or request a higher tier below. Export it as EZANA_API_KEY. Keys belong on your server, never in a browser or an app.

  2. 2

    Make your first request

    curl
    curl -H "Authorization: Bearer $EZANA_API_KEY" \
      "https://ezana.world/v1/congress/trades?ticker=NVDA&limit=5"
    JavaScript
    const res = await fetch(
      "https://ezana.world/v1/congress/trades?ticker=NVDA&limit=5",
      { headers: { Authorization: `Bearer ${process.env.EZANA_API_KEY}` } }
    );
    const { data, page, meta } = await res.json();
  3. 3

    Read the response

    Every list response returns a data array, a page cursor and meta (request id, public source, and the delay applied to your key). Follow page.next to paginate.

    200 OK
    {
      "data": [
        {
          "id": "<uuid>",
          "member": {
            "bioguide_id": "<bioguide id>",
            "name": "<member name>",
            "party": "D",
            "chamber": "house",
            "state": "CA"
          },
          "ticker": "NVDA",
          "asset": "<asset description>",
          "transaction": "purchase",
          "amount_min": 15001,
          "amount_max": 50000,
          "owner": "self",
          "traded_at": "<YYYY-MM-DD>",
          "disclosed_at": "<YYYY-MM-DD>",
          "disclosure_lag_days": 19,
          "source": "House Clerk"
        }
      ],
      "page": { "limit": 5, "has_more": true, "next": "<cursor>" },
      "meta": { "request_id": "<uuid>", "source": "House Clerk and Senate Office of Public Records", "delayed_days": 30 }
    }

Getting access

Developer keys are free and self-serve in Settings, API (up to two, data delayed 30 days). For the Trader, Quant Firm and Institution tiers, request access below: we review requests within two business days and email you a one-time claim link. Questions: api@ezana.world.

DeveloperSelf-serve evaluation key
Free

60 requests / min · 30-day delay

  • 60 requests / min
  • Data delayed 30 days
  • Congress, lobbying, FEC, contracts, prediction markets
  • Community support
TraderPer-seat monthly
Lease

600 requests / min · no delay

  • 600 requests / min
  • No delay
  • Everything in Developer, plus committee activity
  • Email support
Quant FirmSystematic desks
Scale

1,500 requests / min · no delay

  • 1,500 requests / min
  • No delay
  • Every live dataset, including 13F, activist, whale moves and insider trades
  • Priority support
InstitutionVolume + SLA
Custom

Custom rate limit · no delay

  • Custom rate limits
  • No delay
  • Every live dataset
  • Dedicated support + SLA

Authentication

The API uses bearer-token authentication. Pass your key in the Authorization header on every request over HTTPS. Keys are scoped to your tier and datasets; never expose a key in client-side code. Keys look like ezk_live_XXXXXXXX_…, are shown once when created or claimed, and are stored only as a keyed hash. To rotate, create a new key, switch over, then revoke the old one. Keys in query strings are refused.

Authenticated request
curl -H "Authorization: Bearer $EZANA_API_KEY" \
  "https://ezana.world/v1/congress/trades?ticker=NVDA&limit=5"

Endpoints

Endpoints are grouped by signal family under a versioned /v1 prefix. Responses are JSON and list endpoints are cursor-paginated. Live endpoints serve data today; Roadmap endpoints answer 501 not_available until they ship. The full contract, with parameters and response fields, is in the OpenAPI spec.

Congressional trading

/v1/congress

Insider-flow signal: what informed, access-rich actors are trading, structured for signal extraction, not just raw disclosures.

  • GET/v1/congress/trades Live

    Disclosed House and Senate trades, filterable by member, ticker, party, chamber and trade date, newest trade first. Scope: congress.

  • GET/v1/congress/trades/{id} Live

    A single disclosure with its filing date and disclosure lag. Scope: congress.

  • GET/v1/congress/members Live

    Members of Congress with party, chamber, state and district. Scope: congress.

  • GET/v1/congress/members/{id}/trades Live

    Full trade history for one member (bioguide id), newest first. Scope: congress.

  • GET/v1/congress/committees Live

    Committees and subcommittees with their seat counts. Scope: committees.

  • GET/v1/congress/committees/{id}/activity Live

    Trades in the last 12 months by the committee's members, newest first. The committee itself is in meta.committee. Scope: committees.

  • GET/v1/congress/signals/insider-flow Roadmap

    Pre-computed insider-flow score per ticker, ranking names by informed-actor accumulation.

Lobbying & influence

/v1/lobbying

Influence-flow signal: map corporate influence spend to sector and price exposure before the thesis is consensus.

  • GET/v1/lobbying/filings Live

    Lobbying Disclosure Act filings by registrant and client with reported spend, newest posted first. Scope: lobbying.

  • GET/v1/lobbying/filings/{uuid} Live

    One filing with its issue areas, lobbyist count and reported spend. Scope: lobbying.

  • GET/v1/lobbying/top-spenders Live

    Clients ranked by reported lobbying spend in a calendar year. Scope: lobbying.

  • GET/v1/lobbying/clients/{id} Roadmap

    Spend history and issue exposure for a single client.

  • GET/v1/lobbying/issues/mix Roadmap

    Breakdown of spend by issue area.

  • GET/v1/lobbying/registrants/{id} Roadmap

    Activity for a lobbying firm across its client book.

  • GET/v1/lobbying/signals/policy-exposure Roadmap

    Per-ticker policy-exposure score blending spend, issues and contract adjacency.

Campaign finance (FEC)

/v1/fec

Political-capital signal: who funds whom, tied back to the sectors and issuers with the most at stake.

  • GET/v1/fec/candidates/{id}/funding Live

    Funding totals for a candidate by cycle. The id is a bioguide id or an FEC candidate id. Scope: fec.

  • GET/v1/fec/contributions Roadmap

    Itemized contributions by contributor, committee, cycle and employer.

  • GET/v1/fec/committees/{id} Roadmap

    A committee's receipts, disbursements and affiliations over a cycle.

  • GET/v1/fec/signals/sector-giving Roadmap

    Net political giving by sector as a directional signal.

Government contracts (USAspending)

/v1/contracts

Revenue-visibility signal: federal award flow mapped to publicly traded recipients, ahead of guidance.

  • GET/v1/contracts/awards Live

    Federal contract awards by recipient, agency and action date, with the recipient's listed parent and ticker where known. Scope: contracts.

  • GET/v1/contracts/recipients/{id} Live

    Award history for one recipient (USAspending recipient id), newest first. Scope: contracts.

  • GET/v1/contracts/agencies/{id}/spending Roadmap

    Spending by agency and program.

  • GET/v1/contracts/signals/award-momentum Roadmap

    Per-ticker award-momentum score.

Prediction markets

/v1/predictions

Consensus and odds signal: real-money probabilities for the events your positions are exposed to.

  • GET/v1/predictions/markets Live

    Prediction markets with reported volume, largest first, with current odds. Scope: predictions.

  • GET/v1/predictions/markets/{id} Live

    One market with current odds, volume and liquidity. Scope: predictions.

  • GET/v1/predictions/markets/{id}/history Roadmap

    Point-in-time odds series for a market.

  • GET/v1/predictions/consensus Roadmap

    Aggregated consensus probability across correlated markets for a theme.

  • GET/v1/predictions/movers Roadmap

    Markets with the largest odds moves over a window.

Institutional & insider (SEC)

/v1/institutional

Smart-money signal: what large funds hold and add, who takes activist stakes, and what insiders buy and sell.

  • GET/v1/institutional/holdings Live

    Form 13F holdings by filer, most recently loaded first. Tickers are mapped from CUSIP; unmapped securities carry the issuer name. Scope: institutional.

  • GET/v1/institutional/activist-stakes Live

    Schedule 13D and 13G stakes, newest filed first. Scope: institutional.

  • GET/v1/institutional/whale-moves Live

    Fund moves scored by conviction (position size against the filer's own book, newness and concentration), newest first. Scope: institutional.

  • GET/v1/insider/transactions Live

    Form 4 transactions by officers, directors and 10% owners, newest filed first. Scope: insider.

News engineering

/v1/news

News structured, entity-tagged and linked to tickers, events and odds so headlines become machine-usable features.

  • GET/v1/news/search Roadmap

    Semantic search over structured, deduplicated articles.

  • GET/v1/news/{id}/entities Roadmap

    Entities resolved from one article to tickers, people and issues.

  • GET/v1/news/{id}/related-markets Roadmap

    Prediction markets and securities an article is linked to.

  • GET/v1/news/signals/odds-moves Roadmap

    News items time-aligned to the odds moves they preceded.

  • GET/v1/news/sentiment/by-entity Roadmap

    Rolling entity-level sentiment from structured news flow.

Market data & signals

/v1/markets

The price layer and composite features. Prices stay on the roadmap until a licence allows redistribution.

  • GET/v1/markets/quotes Roadmap

    Reference and end-of-day market data for a symbol universe.

  • GET/v1/markets/signals Roadmap

    Composite Ezana signals blending the datasets above into one score per name.

  • GET/v1/signals/correlations Roadmap

    Relationships between datasets and price.

  • GET/v1/signals/backtests/{id} Roadmap

    Point-in-time backtest results for a signal spec.

Cross-dimensional signals

/v1/cross

Joins across influence, capital and consensus that no single-vendor feed can reconstruct.

  • GET/v1/cross/influence-to-capital Roadmap

    Lobbying and campaign-finance spend against later institutional accumulation per issuer.

  • GET/v1/cross/contract-to-insider Roadmap

    Federal contract momentum joined with insider buying on the awarded issuer.

  • GET/v1/cross/policy-to-price Roadmap

    Bill progression and agency rulings mapped onto the sector baskets they move.

  • GET/v1/cross/consensus-vs-fundamentals Roadmap

    Prediction-market odds against the fundamentals path for the same event.

  • GET/v1/cross/demand-to-guidance Roadmap

    Consumer demand signals against forward guidance and revisions.

  • GET/v1/cross/macro-regime-overlay Roadmap

    Every signal tagged with the prevailing macro and geopolitical regime.

  • GET/v1/cross/composite/{ticker} Roadmap

    A per-ticker rollup of the cross-dimensional signals.

Trend relationships & lead-lag

/v1/relationships

Which trend leads which, by how long, and when the usual link breaks.

  • GET/v1/relationships/lead-lag Roadmap

    Estimated lead-lag between two dimension series for a ticker or sector.

  • GET/v1/relationships/divergence Roadmap

    Where two normally correlated dimensions have decoupled.

  • GET/v1/relationships/confirmation Roadmap

    How many independent dimensions currently agree on a name.

  • GET/v1/relationships/network/{entity} Roadmap

    The influence graph around an entity across dimensions.

  • GET/v1/relationships/regime-shift Roadmap

    When a cross-dimensional relationship structurally changes.

  • GET/v1/relationships/backtest Roadmap

    Point-in-time backtest of a relationship with disclosure lag preserved.

Example response · GET /v1/congress/trades
{
  "data": [
    {
      "id": "<uuid>",
      "member": {
        "bioguide_id": "<bioguide id>",
        "name": "<member name>",
        "party": "D",
        "chamber": "house",
        "state": "CA"
      },
      "ticker": "NVDA",
      "asset": "<asset description>",
      "transaction": "purchase",
      "amount_min": 15001,
      "amount_max": 50000,
      "owner": "self",
      "traded_at": "<YYYY-MM-DD>",
      "disclosed_at": "<YYYY-MM-DD>",
      "disclosure_lag_days": 19,
      "source": "House Clerk"
    }
  ],
  "page": { "limit": 5, "has_more": true, "next": "<cursor>" },
  "meta": { "request_id": "<uuid>", "source": "House Clerk and Senate Office of Public Records", "delayed_days": 30 }
}

Pagination & filtering

List endpoints use opaque cursor pagination. Each response includes a page object; when page.has_more is true, pass page.next back as the cursor query param to fetch the next page. Cursors are stable across inserts, so you never miss or double-count rows.

ParamTypeDescription
tickerstringFilter to a symbol. Repeat for a universe (up to 20).
fromdateInclusive start date (ISO 8601, for example 2026-01-01).
todateInclusive end date (ISO 8601).
limitintPage size, 1 to 200 (default 50).
cursorstringOpaque cursor from the previous page's page.next.

Errors

Errors return the appropriate HTTP status and a consistent JSON envelope with a stable code, a human message, and a request_id to quote in support.

Error envelope
{
  "error": {
    "code": "rate_limited",
    "status": 429,
    "message": "Rate limit exceeded. Retry after the window resets.",
    "request_id": "<uuid>",
    "docs": "https://ezana.world/ezana-api#rate-limits"
  }
}
StatusNameMeaning
400invalid_paramAn unknown, malformed or out-of-range parameter or cursor.
401invalid_keyMissing, unknown, revoked or expired key.
403not_in_scopeThe key is valid but not scoped for this dataset.
404not_foundNo endpoint at the path, or no record with that id.
429rate_limitedRate limit exceeded. Wait for Retry-After seconds.
500internal_errorUnexpected error on our side. Safe to retry with backoff.
501not_availableA Roadmap endpoint that is not built yet.

WebhooksRoadmap

Rather than poll, subscribe to events and let Ezana push. Register a signed HTTPS endpoint and choose event types: a new congressional filing for a watched ticker, a large prediction-market odds move, or a fresh news match above a confidence threshold. Deliveries are retried with backoff and signed with a per-subscription secret.

Example event
{
  "type": "congress.trade.created",
  "created_at": "2026-06-02T14:05:00Z",
  "data": { "ticker": "NVDA", "member": "Rep. Jane Doe", "transaction": "purchase" }
}

Roadmap Webhook subscriptions are illustrative and not yet live.

Data coverage & freshness

Every live dataset traces to a primary source and is synced on the cadence below.

DatasetSourceCadence
Congressional tradesHouse Clerk, Senate Office of Public RecordsDaily
Committee assignmentscongress-legislators projectDaily
LobbyingSenate LDAHourly
Campaign financeFECHourly
Government contractsUSAspendingDaily
Prediction marketsPolymarketEvery two hours
13F, activist stakes, whale movesSEC EDGARHourly
Insider transactions (Form 4)SEC EDGARTwice an hour

Rate limits & terms

Rate limits are enforced per key and vary by lease tier (see Getting access). Every response carries X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers; exceeding your limit returns 429 rate_limited with Retry-After. Developer keys see data with a 30-day delay on trades, filings and transactions; meta.delayed_days says when a delay applied.

TierRequests / minDelayDatasets
Developer6030 dayscongress, lobbying, fec, contracts, predictions
Trader600Nonecongress, lobbying, fec, contracts, predictions, committees
Quant Firm1,500Nonecongress, committees, lobbying, fec, contracts, predictions, institutional, insider
InstitutionCustomNonecongress, committees, lobbying, fec, contracts, predictions, institutional, insider
  • Data is licensed for your own analysis and products, with no wholesale redistribution of raw feeds.
  • Every response names its public source in meta.source.
  • Signals are informational, not investment advice.

Coming soon Full terms of use and a data-license agreement will accompany general availability.

Versioning & changelog

The API is versioned in the path (/v1). Within a version we only make additive changes (new endpoints and fields), never breaking ones. Breaking changes ship under a new version with a migration window and deprecation notices.

  • 2026-10-06v1 is live: 18 endpoints over congressional trades, committees, lobbying, campaign finance, contracts, prediction markets and SEC filings, with issued keys, per-key rate limits, usage metering and an OpenAPI spec.

Security

Scoped keys

Keys are bound to a lease tier and dataset scopes, so a key only reaches what it's entitled to.

Hashed at rest

Only a keyed hash (HMAC-SHA256) of each key is stored, never the raw secret, and keys are compared in constant time.

Rotation

Revoke a key at any time in Settings; it stops working on the next request. Create the new key first to roll without downtime.

TLS only

All traffic is HTTPS (TLS 1.2+). Plaintext requests are rejected; never embed a key client-side.

FAQ

How do I authenticate?

A bearer token in the Authorization header on every HTTPS request. Keys are scoped to your tier and datasets; see Authentication.

What are the rate limits?

Per key and per tier, from 60 a minute on Developer to custom on Institution. Every response carries X-RateLimit-* headers; a 429 carries Retry-After.

Can I redistribute the data?

No wholesale redistribution of raw feeds. You may use the data and derived features in your own analysis and products; every response names its public source in meta.source.

Is there an SLA?

Institution leases include an uptime SLA and dedicated support. Lower tiers are best-effort. Ask us for specifics for your volume.

Do you offer backtest-ready history?

Trades carry both the trade date and the disclosure date, and filings carry their filing dates, so you can backtest on what was public at the time. Point-in-time odds history is on the roadmap.

Are the signals investment advice?

No. Everything is informational inputs/features, not advice or a recommendation. You own how you model and trade around it.

How we build & ship it

The outline below is how the Ezana API is built and distributed to users who request it. It is a roadmap; items ship incrementally.

  1. 1

    Request, approval, claim (live)

    Submit the access form. On approval we email a one-time claim link; the key is generated when you claim it and shown once. Only a keyed hash of each key is stored. Developer keys are self-serve in Settings.

  2. 2

    Versioned /v1 routes (live)

    Stable, versioned REST routes over the same sourced data that powers the product. Endpoints not built yet answer 501 and are marked Roadmap here.

  3. 3

    Per-key rate limits and metering (live)

    Every request is authenticated, rate-limited per key and metered per key, day and endpoint.

  4. 4

    Billing tie-in (roadmap)

    Metered usage feeding billing for the Trader and Quant Firm tiers. Until then, paid tiers are invoiced directly.

  5. 5

    Docs, OpenAPI and changelog (live)

    This page, the OpenAPI spec at /v1/openapi.json and the changelog are generated from the same endpoint registry the API serves.

Ready to trade on signal others miss?

Create a Developer key in Settings, or request a higher tier for live data and more throughput.

or email api@ezana.world