Agent demand data
What agents asked a tool-discovery service for, and what nobody had built. Licensed by contract.
Jcode ships a discover_tools call. When an agent hits a capability it does
not have, it describes what it needs in its own words and asks our server. We keep the
category, that description, and whether the agent went on to fetch setup instructions.
That last step is the strongest purchase intent observable from a terminal: the agent had
a task, saw the options, and committed to one.
Window 2026-07-06 to 2026-07-25. Counts exclude our own traffic and catalog probes, and the exact number excluded is returned with every response.
Why anyone buys this
Keyword tools tell you what people typed into a search box. This tells you what an agent needed mid-task, in a sentence long enough to be a product requirement, and whether the market already answered it. Sixty percent of scored demand in this window returned no listing at all. Those are categories where the first credible product has no competition for the agent's attention.
What is in it
| resource | contents | tier |
|---|---|---|
/api/market |
Method, window, totals, and every exclusion, so the figures can be audited. | aggregate |
/categories |
Per category asks, fill rate, setup-fetch conversion, active days. | aggregate |
/themes |
165 semantic themes with demand score and market state. | aggregate |
/clusters |
470 tight clusters, the granularity a roadmap can act on. | aggregate |
/asks |
The individual asks as written, with category, timestamp, and outcome. | verbatim |
/capability-gaps |
422 filed gaps: the capability, the evidence, and stated requirements. | verbatim |
Every row carries a market state. unmet means listings never came back, so
nothing exists to sell. served means listings came back and no agent chose
them, which is a fit problem, not a demand problem. converting means an agent
fetched setup instructions.
Access
There is no signup form and no self-serve tier. Every key is issued by hand against a signed licence, including the aggregate tier. That is deliberate: the dataset describes real companies' products and their unmet needs, so we want to know who holds a key, what they are allowed to publish from it, and how to revoke it. It also means we can size a quota to the actual use instead of guessing at a price page.
A licence covers which tiers you receive, the request quota, whether delivery is the API or a scheduled bulk export, how long the key lives, and what you may redistribute or publish. Aggregate-only licences exist for buyers who just need the market shape. The verbatim asks are a separate grant on top, because they are other companies' words about their own products.
Start a licence conversation: [email protected]. Tell us the categories you care about and what you intend to publish.
Using it
curl -H "Authorization: Bearer $JCODE_MARKET_KEY" \
https://jcode.sh/api/market
curl -H "Authorization: Bearer $JCODE_MARKET_KEY" \
"https://jcode.sh/api/market/clusters?state=unmet&limit=50"
curl -H "Authorization: Bearer $JCODE_MARKET_KEY" \
"https://jcode.sh/api/market/categories?format=csv" > categories.csv
Filters: category, state, caller,
since, until, q, session_only, plus
limit and offset paging and format=csv. Responses
report total and next_offset. Quota headroom comes back in
X-Quota-Remaining.
Asks carry a session field grouping the lookups one agent made in one
working session, and every ask response reports session_coverage. Read the
two together: sessions are visible only for asks from clients new enough to send the
identifier, and older asks cannot be backfilled, so a per-session rate computed without
checking coverage understates it. An absent session means not groupable, never a
distinct session.
What we will not sell
Nothing here identifies a jcode user.
There are no user IDs, account IDs, telemetry IDs, IP addresses, session content, code, or file paths in this dataset. The underlying discovery call is documented in the privacy policy and the agent is instructed never to put private information in it. Verbatim text is additionally scrubbed of emails, credentials, filesystem paths, and third-party project names before it can be served, and that scrubbing is enforced by tests against the shipped data rather than by review.
Three integrity rules are in the serving code, not just in this copy. Internal and
benchmark traffic is removed using server-derived provenance, never a client-supplied
flag. Our own automated catalog probes are excluded and the excluded count is disclosed.
Asks from before caller tracking began on 2026-07-14 are labelled
untracked rather than folded into a conversion rate, so you can drop them
and recompute any figure yourself.
Placement in the discovery listing is a separate product and buying data does not affect it. Rankings and recommendations are not for sale at any price. See tool partnerships.
← back to jcode