Skip to content

For developers and agents

Builder evidence, any way you want it.

HEY is the public record of building on Robinhood Chain — every ship with its source — as JSON, a change feed, a typed SDK or MCP. No key, no account, and nothing here is a buy signal.

One project

Snapshot, coverage and explanations

The snapshot is the summary; coverage says what HEY does not know about the project, as states and never a score; explain says why HEY publishes a figure, from the persisted evaluation — the same engine Ask HEY and the pages use.

Read

GET /api/projects/<slug>/coverage

Per dimension: MEASURED, NO_SOURCE, NOT_ENOUGH_YET, STALE, SOURCE_UNAVAILABLE, NOT_APPLICABLE, NOT_RESEARCHED, ERROR or WITHHELD, with an optional stateDetail (PARTIAL, MAPPING_BLOCKED).

curl "https://heyresearch.xyz/api/projects/<slug>/coverage"

GET /api/projects/<slug>/explain?fact=

The value, FACT / DERIVED / UNKNOWN, the rule and its version, the winning source, the inputs, the lineage and the evidence ids. Without fact, the facts HEY can explain.

curl "https://heyresearch.xyz/api/projects/<slug>/explain?fact=market.valuation"

GET /api/projects/<slug>

The full dossier: narrative, every registered source with how it was established, latest ships and market context.

curl "https://heyresearch.xyz/api/projects/<slug>"

Stay in step

Changes: browse, or mirror with a cursor

Browse newest first with before=. To keep a copy, sync forward from after=c1.0 (or from detectedSince=) and keep the nextCursor each page gives: an upsert replaces your copy of its id when its revision is higher, and a retraction — which carries only the id — deletes it. The cursor follows the order HEY recorded events, so an event HEY learned late still arrives after your cursor; mirroring on a timestamp can lose it.

Read

GET /api/changes?after=

Sync forward from a kept cursor; filter by project, contract, domain, type, since and until.

curl "https://heyresearch.xyz/api/changes?after=c1.0&limit=100"

GET /api/projects/<slug>/timeline

One project's evidence on one axis, newest first, with totals and a before cursor.

curl "https://heyresearch.xyz/api/projects/<slug>/timeline?limit=30"

Over time

History and diff

History returns only the points HEY persisted, each with its basis — knowledge (what HEY knew then), observed, or reconstructed_from_chain — and every series says when collection began. A day before that is absent, never zero. A diff compares the nearest persisted points at two dates and never states a cause.

Read

GET /api/projects/<slug>/history

Series: status, momentum, discoveryGap, rank, valuation, price, liquidity, volume, pools, onchain, tvl, contractChanges, locks.

curl "https://heyresearch.xyz/api/projects/<slug>/history?series=status,valuation"

GET /api/projects/<slug>/diff

Then and now between two dates, at most 400 days apart, with the changes recorded between them.

curl "https://heyresearch.xyz/api/projects/<slug>/diff?from=2026-09-01&to=2026-09-25"

Cite

Evidence receipts

Every published claim has a typed id — ship:, signal:, abi:, impl:, lock:, source:, claim:, state: — and the ids in changes, timelines and explanations open here as a receipt: what it claims, the source URL, when it happened and how precisely, when HEY knew, and how it is backed. A withdrawn record says so and names nothing it may not.

Read

GET /api/evidence/<id>

One receipt by its typed id.

curl "https://heyresearch.xyz/api/evidence/<id>"

On-chain

Contracts

A contract as a research entity: creation, deployer (the only account HEY ever names), verified source, proxy kind and implementation history, interface counts and changes, and activity. A proxy HEY did not read is NOT_READ, never “not a proxy”.

Read

GET /api/contracts/<chainId>/<address>

One contract.

curl "https://heyresearch.xyz/api/contracts/4663/<address>"

GET /api/projects/<slug>/contracts

Every contract of a project; each says whether HEY watches it.

curl "https://heyresearch.xyz/api/projects/<slug>/contracts"

Reference

Everything else

Catalogue

GET /api/projects

The catalogue, with the same filters and ordering Explore uses. Pages with limit and offset.

curl "https://heyresearch.xyz/api/projects?status=SHIPPING&limit=5"

GET /api/projects/<slug>/market

HEY's own daily index of a token: price, liquidity, volume and trades by day, the lifecycle, contract checks, pools and depth, and a supply-concentration summary (shares only).

curl "https://heyresearch.xyz/api/projects/<slug>/market?days=30"

GET /api/projects/<slug>/intelligence

One project's signals, rank history and development intelligence in a single answer.

curl "https://heyresearch.xyz/api/projects/<slug>/intelligence"

GET /api/compare?slugs=

Two to four projects side by side, each figure tagged; no winner.

curl "https://heyresearch.xyz/api/compare?slugs=<slug>,<slug>"

GET /api/search/suggest

Type-ahead over project names, symbols, contracts, websites and repositories, typo-tolerant.

curl "https://heyresearch.xyz/api/search/suggest?q=agent"

Chain and discovery

GET /api/chain

Robinhood Chain day by day: trades, volume, tokens traded, transactions, launches and ships. Aggregates only, never accounts.

curl "https://heyresearch.xyz/api/chain?days=14"

GET /api/signals

HEY Signal: measured changes with before and after figures and the source. Its `confidence` field is a method statistic, never a trading confidence.

curl "https://heyresearch.xyz/api/signals?days=7&limit=10"

GET /api/builders

The Builder Radar, ranked by verified development, on-chain use and research standing — never by price.

curl "https://heyresearch.xyz/api/builders?filter=most-improved&limit=10"

GET /api/ships

Source-backed ship records across the catalogue. To mirror, use /api/changes.

curl "https://heyresearch.xyz/api/ships?limit=20"

GET /api/this-week

The weekly rollup: what shipped, what moved, and what HEY started tracking.

curl "https://heyresearch.xyz/api/this-week"

GET /api/reports/weekly

The archived weekly reports. Add a week to open one.

curl "https://heyresearch.xyz/api/reports/weekly"

Research questions

GET /api/projects/<slug>/ask?q=

A free-text question about one project, answered only from HEY's record, every line FACT, DERIVED or UNKNOWN with its source.

curl "https://heyresearch.xyz/api/projects/<slug>/ask?q=what%20shipped%20this%20month"

GET /api/projects/<slug>/market-moves

Each day-on-day valuation move with the building events published before it: a sequence, never a cause.

curl "https://heyresearch.xyz/api/projects/<slug>/market-moves?days=90"

GET /api/chain/silence

Under the Radar and below the 40th market-attention percentile.

curl "https://heyresearch.xyz/api/chain/silence"

GET /api/chain/accelerating

Builders with more meaningful events in the last 30 days than in the 30 before.

curl "https://heyresearch.xyz/api/chain/accelerating"

GET /api/chain/comebacks

Projects whose activity status is RESUMED.

curl "https://heyresearch.xyz/api/chain/comebacks"

GET /api/chain/unlocks

Scheduled HoodLock unlocks with proof; HoodLock is the only locker HEY reads.

curl "https://heyresearch.xyz/api/chain/unlocks?days=30"

GET /api/chain/contract-changes

Evidence-backed contract changes: upgrades, follow-up deployments, verification, interface changes.

curl "https://heyresearch.xyz/api/chain/contract-changes?days=30"

GET /api/chain/build-market

Build Momentum beside market attention: a map, not a ranking.

curl "https://heyresearch.xyz/api/chain/build-market"

Partner cards

GET /api/v1/scan

The one-line card a bot renders for a pasted contract; found: false means print nothing.

curl "https://heyresearch.xyz/api/v1/scan?chain=4663&token=<address>"

GET /api/v1/builder

Builder activity by contract, in snake_case with explicit nulls; 404 for a contract HEY has not published.

curl "https://heyresearch.xyz/api/v1/builder?chain=4663&token=<address>"

Research bounties

GET /api/bounties

Open research bounties with their claim rules. Claiming happens on the site, not through the API.

curl "https://heyresearch.xyz/api/bounties?status=open"

Reference

Filters for /api/projects

The same vocabulary the browse pages use. An unrecognised value is dropped rather than refused, and the response echoes back under query exactly how your request was read.

tab
A discovery view: building-with-token, still-building, under-the-radar, shipping-now, most-active, new-builders, back-from-dormancy, utility, memes.
status
Activity status: SHIPPING, ACTIVE, RESUMED, QUIET, DORMANT, UNKNOWN.
kind
Project kind: UTILITY, MEME, HYBRID, INFRASTRUCTURE, RWA, APPLICATION, OTHER.
has
Facts a project must carry: token, trading, liveMarket, verifiedToken, marketCap, launchpad, github, x.
stage · age · deployed
Launch stage (curve, graduated, dex); since the first pool opened and since the contract was deployed (day, week, month, older).
minLiquidity · minMarketCap · maxMarketCap · minVolume
A floor or a ceiling in US dollars, on the card's own reading. Unknown is excluded, never read as zero.
narrative · launchpad · q
A narrative slug, a launchpad, or a search of at least two characters.
sort
activity (default), shipped, newest, marketCap, liquidity, volume24h.
limit · offset
Up to 48 a page, 24 by default. The response carries nextOffset until there is nothing left.

Reading answers

Null semantics, freshness, provenance, paging, versioning, errors

  • Absent means unknown. A field HEY has not measured is missing or null with a reason — never 0, false, an empty list or “none”. A withheld value says it is withheld.
  • FDV is not market cap. Every valuation carries its kind (marketCap or fdv); a market that is not live has its valuation withheld, with the reason.
  • Provenance travels with the fact. Market figures carry source and observedAt; ships and changes carry their source URL and typed evidence id.
  • Three clocks. occurredAt is when a source dates the event (null when only HEY observed it), detectedAt when HEY first knew, recordedAt when the ledger recorded it. Precision is one of EXACT, DATE, WEEK, WINDOW, OBSERVED, SCHEDULED.
  • Freshness. Public answers are cached 60 seconds. The snapshot and coverage say when each source was last read; /api/status says whether HEY's own pipelines are behind.
  • Paging. Listings say how many they hold; nextOffset pages a catalogue, nextCursor pages the ledger and timelines. Mirror on the ledger cursor, never on a timestamp.
  • Versioning. /api/* changes only by adding fields. /api/v1/* is the partner namespace, not an API version; a field there never changes meaning, and a semantic change would ship as /api/v2 with at least 90 days of overlap.
  • Errors. Every error is { error, message, requestId, retryable, retryAfterSeconds? }: a stable code to switch on, a sentence for a person, and the id that finds the request in HEY's logs.
  • Identity is chain plus contract. Never a symbol on its own.

Something wrong in the record? Submit a correction.

API & MCP | HEY Research Lab