Skip to content
Signal from noise

Find the trend before the market does.

The Ezana API exposes the relationships between under-watched data — congressional trades, lobbying flows, prediction-market odds, and alternative signals — and how markets actually move, so traders and quant firms can act on signal others miss. It's powered by elite news engineering: we structure and enrich market-moving news into machine-usable signal, entity-tagged and semantically linked to the securities and events it touches.

Illustrative — noise resolving into signal

Built for quant desks, systematic traders, and research teams. Documentation preview — several endpoints are marked coming soon while the API is being rolled out.

Overview

Most alternative data is noise until something connects it to price. The Ezana API is that connection: it turns obscure, overlooked datasets into tradeable signal and maps the non-obvious relationships between what informed actors do, what policy money chases, what the crowd is betting, and where markets move next. Every field traces to a primary source — House & Senate disclosures, SEC EDGAR, FEC records, prediction markets, and structured news — so a signal is auditable back to where it came from.

It's built for traders, quant firms, and systematic and research desks who want inputs, not opinions — features you can drop into a model, backtest, and trade around. What sets it apart is news engineering: real-time structuring, entity-tagging, and semantic linking of market-moving news to securities, events, and prediction-market odds.

Obscure data → market trends

Non-obvious relationships between under-watched datasets and price, surfaced as signal before they're consensus.

News engineering

Market-moving news structured and enriched into machine-usable signal — the core competency behind the feeds.

Prediction-market signal

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

Entity-linked & queryable

Everything resolved to tickers, people, and issues, and semantically searchable by meaning.

Low-latency

Signal delivered close to the event, so you act while the edge is still live.

Backtest-ready history

Point-in-time series with disclosure lag preserved, so backtests aren't contaminated by hindsight.

Quickstart

Three steps from zero to your first signal.

  1. 1

    Get a key

    Request a scoped key at api@ezana.world and export it as EZANA_API_KEY.

  2. 2

    Make your first request

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

    Read the response

    Every list response returns a data array and a page cursor. Follow page.next to paginate.

    200 OK
    {
      "data": [
        {
          "id": "trd_9f2c1a",
          "member": "Rep. Jane Doe",
          "party": "D",
          "ticker": "NVDA",
          "transaction": "purchase",
          "amount_range": "$15,001 - $50,000",
          "traded_at": "2026-05-14",
          "disclosed_at": "2026-06-02",
          "disclosure_lag_days": 19
        }
      ],
      "page": { "next": "cursor_abc", "has_more": true }
    }

Getting access

Access is lease-based — you're leasing signal and structured alternative data, not a static dump. Tell us the signal families you need and your expected volume, and we issue a scoped API key for the matching tier. Reach us at api@ezana.world or from your plan — Enterprise plans include API access.

DeveloperEvaluation key
Free
  • Sandbox signal data
  • 60 requests / min
  • Congress flow (delayed)
  • Community support
TraderPer-seat monthly
Lease
  • Live congress & lobbying signal
  • 600 requests / min
  • Prediction-market odds
  • Email support
Quant FirmSystematic desks
Scale
  • Full signal + news-engineering feeds
  • High-throughput limits
  • Backtest-ready history
  • Priority support
InstitutionVolume + SLA
Custom
  • Full warehouse access
  • Custom rate limits
  • Bulk & backfill exports
  • Dedicated support + SLA

Coming soon Self-serve key issuance and a request form. For now, access is granted manually on request.

Authentication

The API uses bearer-token authentication. Pass your key in the Authorization header on every request over HTTPS. Keys are scoped to your lease tier and datasets; never expose a key in client-side code.

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

Placeholder The token format and key-rotation flow are illustrative and will be finalized at launch.

Endpoints

Endpoints are grouped by signal family under a versioned /v1 prefix — each group framed by what a quant would actually do with it. Responses are JSON and cursor-paginated. The shapes below are illustrative placeholders.

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

    Disclosed House & Senate trades, filterable by member, ticker, party, and filing date — the raw substrate for an informed-flow factor.

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

    A single disclosure with STOCK Act filing metadata and disclosure lag, to model the delay between the trade and when the market saw it.

  • GET/v1/congress/members

    Roster of all 535 members with disclosure history and committee assignments, so you can weight signal by seat and sector oversight.

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

    Full trade history for one member — build per-actor track records and conviction weights.

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

    Trading activity rolled up by committee, aligning flow with the sectors a committee actually oversees.

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

    Pre-computed insider-flow score per ticker — a drop-in feature 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

    LDA lobbying filings by registrant, client, issue area, and quarter — where policy money is moving and which issuers are exposed.

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

    One filing in full, with issues lobbied, lobbyists, and reported spend.

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

    Spend history and issue exposure for a single client, ready to join against your position book for a policy-risk overlay.

  • GET/v1/lobbying/top-spenders

    Leaderboard of influence spend by client and sector over a window — spot ramps early.

  • GET/v1/lobbying/issues/mix

    Breakdown of spend by issue area, so you can tilt toward the policy themes gaining budget.

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

    Activity for a lobbying firm across its client book — a cross-issuer influence network view.

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

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

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/contributions

    Itemized contributions filterable by contributor, committee, cycle, and employer — map corporate and executive giving.

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

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

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

    Funding profile for a candidate — sector concentration and top backers.

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

    Net political giving by sector as a directional signal on regulatory posture.

Government contracts (USASpending)

/v1/contracts

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

  • GET/v1/contracts/awards

    Awarded federal contracts filterable by recipient, agency, NAICS, and date — mapped to public parents.

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

    Award history for one recipient — backlog and momentum for an issuer.

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

    Spending by agency and program, to anticipate which vendors benefit.

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

    Per-ticker award-momentum score — acceleration in federal revenue exposure.

Prediction markets

/v1/predictions

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

  • GET/v1/predictions/markets

    Live and historical prediction markets by topic and status — a real-money probability for each event.

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

    One market with current odds, liquidity, and resolution criteria.

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

    Point-in-time odds series for a market — the input to event-driven backtests.

  • GET/v1/predictions/consensus

    Aggregated consensus probability across correlated markets for a theme.

  • GET/v1/predictions/movers

    Markets with the largest odds moves over a window — where conviction is shifting fastest.

News engineering

/v1/news

The signal layer — news structured, entity-tagged, and semantically linked to tickers, events, and odds so headlines become machine-usable features.

  • GET/v1/news/search

    Semantic news search over structured, deduplicated articles — retrieve by meaning, not keywords.

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

    Entities resolved from one article to tickers, people, and issues — build per-name news-flow features.

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

    Prediction markets and securities an article is semantically linked to, with confidence scores.

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

    News items time-aligned to the odds moves they preceded — a news→consensus lead signal.

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

    Rolling entity-level sentiment derived from structured news flow.

Market data & signals

/v1/markets

The price layer — the series you regress every other signal against, plus composite and correlation features.

  • GET/v1/markets/quotes

    Reference and end-of-day market data for a symbol universe — the price series behind every feature.

  • GET/v1/markets/signals

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

  • GET/v1/signals/correlations

    Discovered relationships between obscure datasets and price — the non-obvious links you can trade around.

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

    Point-in-time backtest results for a signal spec, with disclosure lag preserved so history isn’t contaminated by hindsight.

Cross-dimensional signals

/v1/cross

The signals that only exist because we hold all seven dimensions at once — joins across influence, capital, and consensus that no single-vendor feed can reconstruct.

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

    Aligns lobbying and campaign-finance spend (Capitol Watch) against subsequent institutional accumulation (Titans Shadow) per issuer, surfacing names where influence money leads the smart money.

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

    Joins federal contract-award momentum (Capitol Watch) with corporate insider buying (Titans Shadow) on the awarded issuer, flagging where the people closest to the win are also buying.

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

    Maps bill progression and agency rulings (Regulatory Winds) onto the sector baskets they move (Titans Shadow prices), scoring each ticker by unrealized regulatory catalyst.

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

    Contrasts prediction-market odds (The Hive) with the fundamentals and analyst path (Titans Shadow) for the same event, isolating where crowd conviction diverges from the sell-side.

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

    Regresses consumer demand signals — search, web traffic, card spend (Consumer Whispers) — against forward guidance and revisions (Titans Shadow) to catch demand inflections ahead of the print.

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

    Tags every other signal with the prevailing macro and geopolitical regime (Global Empire Lighthouse) so a factor can be conditioned on the environment it actually works in.

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

    One call returns a per-ticker rollup of every cross-dimensional signal above, weighted and decayed by disclosure lag — a drop-in composite feature.

Trend relationships & lead-lag

/v1/relationships

Time-structured relationships between dimensions — which trend leads which, by how long, and when the usual link breaks.

  • GET/v1/relationships/lead-lag

    Estimated lead-lag between any two dimension series for a ticker or sector (e.g. patent momentum → price), returning the lag in days and the strength of the relationship.

  • GET/v1/relationships/divergence

    Flags where two normally-correlated dimensions have decoupled — insider selling into rising retail sentiment, say — ranked by how far the pair has drifted from its historical link.

  • GET/v1/relationships/confirmation

    Counts how many independent dimensions currently agree on a name, turning multi-source corroboration into a single conviction score.

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

    Returns the influence graph around an entity — the politicians, lobbyists, contractors, and institutions linked to it across dimensions — for second-order exposure mapping.

  • GET/v1/relationships/regime-shift

    Detects the moment a cross-dimensional relationship structurally changes, so you can retire or re-weight a factor before it quietly stops working.

  • GET/v1/relationships/backtest

    Point-in-time backtest of any relationship above with disclosure lag preserved, so a lead-lag edge is measured on the data you would actually have had.

Example response · GET /v1/congress/trades
{
  "data": [
    {
      "id": "trd_9f2c1a",
      "member": "Rep. Jane Doe",
      "party": "D",
      "ticker": "NVDA",
      "transaction": "purchase",
      "amount_range": "$15,001 - $50,000",
      "traded_at": "2026-05-14",
      "disclosed_at": "2026-06-02",
      "disclosure_lag_days": 19
    }
  ],
  "page": { "next": "cursor_abc", "has_more": true }
}

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 (repeatable for a universe).
fromdateInclusive start date (ISO 8601, e.g. 2026-01-01).
todateInclusive end date (ISO 8601).
limitintPage size, 1–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": "req_7c1f0a"
  }
}
StatusNameMeaning
400Bad RequestMalformed query — an invalid param, date, or cursor.
401UnauthorizedMissing or invalid bearer token.
403ForbiddenKey is valid but not scoped to this dataset or tier.
404Not FoundNo resource matches the id/path.
429Too Many RequestsRate limit exceeded — back off and retry after Reset.
500Server ErrorUnexpected error on our side — safe to retry with backoff.

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→market 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 dataset traces to a primary source, with point-in-time history and a defined update cadence. Depth and cadence below are indicative.

DatasetSourceHistoryCadence
Congressional tradesHouse Clerk · Senate eFD2012 → presentIngested continuously
LobbyingSenate LDA2013 → presentQuarterly + backfill
Campaign financeFEC2003 → presentDaily
Gov. contractsUSASpending2008 → presentDaily
Prediction marketsPolymarket2021 → presentNear real-time
NewsMulti-source, structuredRolling 5-yrStreaming
Market dataReference + EOD2000 → presentEnd of day

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 Too Many Requests.

  • Data is licensed for your own analysis and products — no wholesale redistribution of raw feeds.
  • Attribution of underlying primary sources is preserved in every payload.
  • 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-07-01Added News-engineering signal endpoints (odds-moves, sentiment-by-entity).
  • 2026-05-18Correlations endpoint (/v1/signals/correlations) enters private beta.
  • 2026-03-09Cursor pagination standardized across all list endpoints.
  • 2026-01-15v1 congressional-trading + lobbying endpoints published.

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 salted hash of each key is stored — never the raw secret. If our store leaked, keys stay safe.

Rotation

Rotate or revoke a key at any time; overlapping keys let you 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 lease tier and datasets — see Authentication.

What are the rate limits?

Per-key and tier-dependent (60/min on Developer up to custom on Institution). Every response carries X-RateLimit-* headers; a 429 means back off until Reset.

Can I redistribute the data?

No wholesale redistribution of raw feeds. You may use signal and derived features in your own analysis and products; primary-source attribution is preserved in every payload.

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?

Yes — series are point-in-time with disclosure lag preserved, so backtests aren’t contaminated by hindsight. Depth varies by dataset (see Data coverage).

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 → scoped API key

    A requester submits the access form. On approval we issue a scoped key backed by a Supabase key table — only a salted hash is stored, never the raw key — bound to a lease tier and dataset scopes.

  2. 2

    Versioned /v1/* routes over the warehouse

    Stable, versioned REST routes read directly from the same warehouse that powers the product, so API consumers get the identical sourced-and-attributed data behind the app.

  3. 3

    Per-key rate limiting + usage metering

    Each request is authenticated, rate-limited per key, and metered. Usage rolls up per key and per dataset for quotas, dashboards, and billing.

  4. 4

    Billing & lease-tier tie-in

    Metered usage and tier feed billing (Stripe), so Developer/Trader/Quant Firm/Institution leases map cleanly to signal entitlements and overage.

  5. 5

    Docs + changelog

    This page is the front door; a versioned changelog tracks new endpoints, fields, and deprecations so integrators can upgrade safely.

Ready to trade on signal others miss?

Request an evaluation key and we'll get you a scoped token wired to the signal families your models need.

or email api@ezana.world