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.

1,198 capability asks
19 categories
470 semantic clusters
60% demand with nothing to sell

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