Free skills
No key needed to start: anonymous calls get 30 req/min per IP and 200 skill calls a day.
A free API key lifts the daily cap (60 req/min); Pro gets 600 req/min.
Use these as the discovery + acquisition layer in your router.
Verify an Agent Trust Passport
FREE
Hand us a passport document — we tell you whether it is genuine and when it was anchored.
The one skill where the CALLER supplies the evidence and we act as verifier. Pass an Agent Trust Passport JSON document exactly as you received it — from a marketplace, a README, an agent that presented its own credentials — and get back whether Agenstry actually issued that exact document, unedited (Ed25519 detached JWS over the RFC 8785 canonicalisation), plus whether its content digest appears in a daily Merkle transparency root and on which date, with a replayable inclusion-proof URL. One byte of tampering fails the check. Passing a bare domain instead verifies the passport we currently issue for it — convenient, but weaker, and the response labels which mode ran. Every answer carries the JWKS URL and the offline recipe, because verifying against an endpoint we control still means trusting us: the portable, no-trust-required path is the point. Free.
A2A intent aliases:
verify_passport,
verify
REST arg:
document
Example queries
verify_passport: tavily.com
verify_passport: {"schema_version":"1.1.0","subject":{"domain":"…"},"signature":"…"}
REST
curl 'https://agenstry.com/api/v1/skills/verify_passport?document=tavily.com'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "verify_passport: tavily.com"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "verify_passport","arguments": {"document": "tavily.com"}}}'
One portable trust document per agent — every signal we measure, with provenance.
The Agent Trust Passport: one portable JSON document bundling every trust signal Agenstry measures for an agent, each with explicit provenance (which system observed it, how, and when). Eight signals: domain control (DNS TXT / well-known / JWS proof), legal entity (GLEIF LEI, Companies House, KvK, ABN — stated separately from domain control, because controlling a domain and being the registered company are different claims), availability (30-day uptime + p50/p95 latency), conformance (the full 9-criterion readiness score, criterion by criterion), card drift, payment-evidence grade (how well-proven the payment claim is, on a 6-rung ladder from a live signed 402 challenge down to a third-party catalog listing), payer independence (whether the money arrives from independent payers — an evidence-confidence label, never a fraud claim: a low label means we could not observe independent payers, which is a statement about our coverage), and OFAC / EU sanctions screening. Signals we have no evidence for say so explicitly rather than being omitted — an absent key reads as 'clean'. Versioned schema; embeddable SVG badge at /badge/{domain}/passport.svg. Free. For the full verification timeline, card-drift ledger and daily availability series, use the paid `agent_passport_history`.
A2A intent aliases:
agent_passport,
passport
REST arg:
domain
Example queries
agent_passport: silas.sylex.ai
passport: tavily.com
REST
curl 'https://agenstry.com/api/v1/skills/agent_passport?domain=silas.sylex.ai'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "agent_passport: silas.sylex.ai"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "agent_passport","arguments": {"domain": "silas.sylex.ai"}}}'
Payment ecosystem overview
FREE
Free protocols, sources, pricing and measurement coverage map.
Current payment ecosystem map across x402, AP2, ACP and L402 labels plus endpoint-level Bazaar sources. Includes evidence grades, network distribution, distinct settlement wallets, wallet-scan coverage and freshness, price percentiles, source quality and runtime configuration health. Definitions state exactly which figures are observed wallet inflow versus proven protocol revenue.
A2A intent aliases:
payment_overview,
payments
Example queries
payment_overview
payments
REST
curl 'https://agenstry.com/api/v1/skills/payment_overview'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "payment_overview"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "payment_overview","arguments": {}}}'
NL description → canonical skill bucket.
Match a natural-language description to canonical skills in our taxonomy. Multilingual (Dutch / Korean / 100+ langs via E5). Lighter than `compose` — use when you only need the right skill bucket, not the picked agent. Free with rate limit.
A2A intent aliases:
skill,
match,
match_skill
REST arg:
query
Example queries
skill: convert PDF invoices to structured JSON
match: een agent vinden die facturen leest
REST
curl 'https://agenstry.com/api/v1/skills/match_skill?query=convert+PDF+invoices+to+structured+JSON'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "skill: convert PDF invoices to structured JSON"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "match_skill","arguments": {"description": "convert PDF invoices to structured JSON"}}}'
Hybrid BM25 + semantic + quality search.
Hybrid BM25 + semantic + quality search across A2A agents. Multilingual queries supported. Free with rate limit; for intelligence on a returned agent, call agent_stats / get_agent_full.
A2A intent aliases:
search,
find,
find_agent
REST arg:
query
Example queries
find: hotel reservation agent
search: blockchain analytics
REST
curl 'https://agenstry.com/api/v1/skills/find_agent?query=hotel+reservation+agent'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "find: hotel reservation agent"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "find_agent","arguments": {"query": "hotel reservation agent"}}}'
Search MCP servers by freeform query.
Search MCP servers by freeform query — matches name, title, description and exposed tools. Free with rate limit.
A2A intent aliases:
mcp,
find_mcp
REST arg:
query
Example queries
mcp: github code search
find mcp: postgres database
REST
curl 'https://agenstry.com/api/v1/skills/find_mcp?query=github+code+search'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "mcp: github code search"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "find_mcp","arguments": {"query": "github code search"}}}'
Free summary card for one agent.
Free summary card: name, description, skills, quality. For the audit-grade record (drift history, verification timeline, LEI status, payment metadata), use `get_agent_full` — also free.
A2A intent aliases:
get_agent,
get,
agent
REST arg:
domain
REST
curl 'https://agenstry.com/api/v1/skills/get_agent?domain=silas.sylex.ai'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "get: silas.sylex.ai"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "get_agent","arguments": {"domain": "silas.sylex.ai"}}}'
Probe a candidate URL.
Probe a candidate URL and return validation + live-response check. Mutates the index by upserting the probe result — that's why this skill is JSON-RPC-only (no REST path).
A2A intent aliases:
validate_agent,
validate
Example queries
validate: https://example.com
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "validate: https://example.com"}]}}}'
A2A + MCP funnel breakdowns.
Aggregate statistics about the Agenstry index — A2A + MCP funnel breakdowns. Free.
A2A intent aliases:
index_stats,
stats,
status
REST
curl 'https://agenstry.com/api/v1/skills/index_stats'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "stats"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "index_stats","arguments": {}}}'
Money flows: free summary
FREE
Receipt counts, measurement coverage, wallet distribution and top recipients.
Compact top-line numbers for the agent-economy money flow: total observed wallet inflow (30d), transfer counts, positive versus zero and unmeasured listings by service type, unique recipient wallets, receipt-size distribution and concentration, plus three top recipients. These observations do not establish paid tasks or market-wide success rates. For the full top-25 + per-category + per-chain + windows, use the also-free `money_flows`. For time-series + weekly cohorts + per-protocol split, use the paid `flow_trends`.
A2A intent aliases:
flows_summary,
flows_basic,
money_flows_summary
Example queries
flows_summary
flows_basic
REST
curl 'https://agenstry.com/api/v1/skills/flows_summary'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "flows_summary"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "flows_summary","arguments": {}}}'
A2A earnings: observed wallet inflow
FREE
A2A-linked wallets, coverage and shared-service attribution.
Free 30-day A2A-linked wallet ranking with measurement coverage, zero versus unmeasured listings, receipt-size distribution, concentration, shared-wallet warnings, declared providers and scan dates. Inbound USDC is not audited revenue, profit or proof of paid A2A tasks. A2A labels are not certification. For linked-service portfolios, discovery sources and payer-pattern analysis, use the paid payment_intelligence skill.
A2A intent aliases:
a2a_earnings,
a2a_income
REST
curl 'https://agenstry.com/api/v1/skills/a2a_earnings'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "a2a_earnings"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "a2a_earnings","arguments": {}}}'
Money flows: full snapshot
FREE
Who receives money, coverage, receipt sizes + rankings and 7/30/90d windows.
Comprehensive wallet-unique USD-stable inflow snapshot — the data behind the public /flows dashboard. Receipt coverage by service type, measured-zero versus unmeasured listings, receipt-size distribution, median and top-10 concentration. Top-25 recipient ranking by 30d observed inflow with amounts + tx counts, per-category attribution, per-chain breakdown, 7/30/90 day windows, and a 30-day new-recipient signal. Current scanners cover Base, Ethereum, Polygon, Arbitrum, Optimism and Solana. Wallet inflow is not presented as receipt-proven x402 revenue. For historical trends use `flow_trends`; for one wallet use `wallet_intel`.
A2A intent aliases:
money_flows,
flows
REST
curl 'https://agenstry.com/api/v1/skills/money_flows'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "money_flows"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "money_flows","arguments": {}}}'
Keyword trends: free summary
FREE
Top-10 trending keywords this week.
Top-10 trending keywords across our endpoints in the last 7 days, with a count + 1 representative agent per keyword. Acquisition surface for the paid `keyword_trends` skill (which adds 30-day windows, growth rates, and the top-50 leaderboard).
A2A intent aliases:
trends_summary,
trending
REST
curl 'https://agenstry.com/api/v1/skills/trends_summary'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "trends_summary"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "trends_summary","arguments": {}}}'
Agent details: full audit record
FREE
Full snapshot for one agent.
Rich detail snapshot for one agent: card, drift history (last 20 hashes), full verification timeline, current LEI status, capability vector, on-chain payment metadata. Free — same data the public /agents/{domain} page already exposes, so charging for the API wrapper would be paywall theatre. Rate-limited.
A2A intent aliases:
get_agent_full,
agent_full
REST arg:
domain
Example queries
agent_full: silas.sylex.ai
get_agent_full: tavily.com
REST
curl 'https://agenstry.com/api/v1/skills/get_agent_full?domain=silas.sylex.ai'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "agent_full: silas.sylex.ai"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "get_agent_full","arguments": {"domain": "silas.sylex.ai"}}}'
Uptime + p50 latency + on-chain revenue.
Per-agent observability: uptime over the last 30 days, p50/p95 response time, on-chain x402 USDC revenue across 7/30/90 day windows, drift snapshot count, verification timeline. Free — same data the public /agents/{domain} sparkline + leaderboard already shows. Rate-limited.
A2A intent aliases:
agent_stats,
stats_for
REST arg:
domain
Example queries
agent_stats: tavily.com
stats_for: api.deepbluebase.xyz
REST
curl 'https://agenstry.com/api/v1/skills/agent_stats?domain=tavily.com'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "agent_stats: tavily.com"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "agent_stats","arguments": {"domain": "tavily.com"}}}'
Keyword search: free overview
FREE
Top-3 agents + canonical-skill matches for one query.
Given a query, returns matching canonical skills, active-supply counts and three matching agents. Free with rate limits. For search volume and quality signals, use ``keyword_search``.
A2A intent aliases:
keyword_search_summary,
kw_summary
REST arg:
query
Example queries
keyword_search_summary: pdf extraction
kw_summary: hotel reservation
REST
curl 'https://agenstry.com/api/v1/skills/keyword_search_summary?query=pdf+extraction'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "keyword_search_summary: pdf extraction"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "keyword_search_summary","arguments": {"query": "pdf extraction"}}}'
Supply gaps: free overview
FREE
Top-8 underserved canonical skills with demand bucketed.
Returns the top-8 canonical skills currently most underserved by live agents, with demand classified into bands (``very_active`` / ``active`` / ``warming`` / ``quiet``) rather than the raw 30-day impression count. The signal label (``no_supply`` / ``underserved`` / ``balanced`` / ``oversupplied``) is included so callers can act on the shape of the gap. For exact impression counts, density values and up to 50 rows, use ``supply_gaps``.
A2A intent aliases:
supply_gaps_summary,
gaps_summary
Example queries
supply_gaps_summary
gaps_summary
REST
curl 'https://agenstry.com/api/v1/skills/supply_gaps_summary'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "supply_gaps_summary"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "supply_gaps_summary","arguments": {}}}'
Embedding-nearest agents for one domain.
Given an agent domain, returns the top-N agents nearest to it in the embedding space (cosine over unit-norm vectors). Powered by the same `similar_agents_with_scores` repo helper as the public agent-detail page. Each result carries a `similarity` score in [0, 1] and a `via` flag (`embedding` vs `skill_cohort` fallback for agents that haven't been embedded yet). Free, rate-limited.
A2A intent aliases:
similar_agents,
similar
REST arg:
domain
Example queries
similar_agents: bitcoinsapi.com
similar: api.deepbluebase.xyz
REST
curl 'https://agenstry.com/api/v1/skills/similar_agents?domain=bitcoinsapi.com'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "similar_agents: bitcoinsapi.com"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "similar_agents","arguments": {"domain": "bitcoinsapi.com"}}}'
Embedding-nearest MCPs for one server name.
Given an MCP qualified name, returns the top-N MCP servers nearest to it in the embedding space, with a `via` flag so the caller can tell whether the result came from vec0 cosine or the token-overlap fallback. Mirrors the `/api/mcp-servers/{name}/similar` REST endpoint and the in-page section on the MCP detail page. Free, rate-limited.
A2A intent aliases:
similar_mcps,
similar_mcp
REST arg:
name
Example queries
similar_mcps: com.stayker/1stay
similar_mcp: ai.smithery/flight-search-mcp
REST
curl 'https://agenstry.com/api/v1/skills/similar_mcps?name=com.stayker%2F1stay'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "similar_mcps: com.stayker/1stay"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "similar_mcps","arguments": {"name": "com.stayker/1stay"}}}'
Embedding-nearest skills for a canonical id.
Given a canonical-skill id, returns the top-N related canonical skills with cosine similarity scores. Useful for skill-graph exploration — if you care about `hospitality.hotel.reservations`, the related list will surface `Lodging and Stays`, `Restaurant and F&B Service`, `Flight Search and Booking` etc. Free, rate-limited.
A2A intent aliases:
similar_skills,
related_skills
REST arg:
skill_id
Example queries
similar_skills: hospitality.hotel.reservations
related_skills: payments.bitcoin.fee_estimation
REST
curl 'https://agenstry.com/api/v1/skills/similar_skills?skill_id=hospitality.hotel.reservations'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "similar_skills: hospitality.hotel.reservations"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "similar_skills","arguments": {"skill_id": "hospitality.hotel.reservations"}}}'
Paid skills
Per-call USDC pricing, settled first against a paid plan's monthly
included credit, then a Stripe prepaid balance
(top up here).
Anonymous calls return
HTTP 200 with a payment_required
body listing the available payment rails. x402 USDC-on-Base settlement
is launching; until then included credit + Stripe prepaid covers all paid calls.
Natural-language task → ranked multi-step plan.
Turn a natural-language task into a structured multi-step plan. Decomposes it into canonical skills by embedding similarity, picks the best A2A agent OR MCP server per step from our index, and returns per-candidate metadata (conformance, verified-owner, uptime, latency, risk, HITL). Deterministic — no LLM is involved. The `compose-llm:` intent (MCP: mode=llm) runs the same task through an OpenAI gpt-6-luna tool-use loop instead, for signed-in callers within a daily quota, where the operator has enabled it; it falls back to the deterministic plan if the model is unavailable. Same per-call price either way.
A2A intent aliases:
compose,
plan,
route,
compose-llm,
plan-llm,
route-llm,
llm
REST arg:
task
Example queries
compose: schedule an onboarding call with Acme BV and send a prep email
compose: estimate bitcoin fee and accept a USDC micropayment
plan: quote a hotel room for two in Amsterdam next weekend
REST
curl 'https://agenstry.com/api/v1/skills/compose?task=schedule+an+onboarding+call+with+Acme+BV+and+send+a+prep+email'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "compose: schedule an onboarding call with Acme BV and send a prep email"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "compose","arguments": {"task": "schedule an onboarding call with Acme BV and send a prep email"}}}'
Compose plan AND execute it
PAID · $0.10/call
Plan + run the steps end-to-end: managed orchestration.
Like compose, but Agenstry also fans out the plan and calls each step's selected A2A agent for you. MCP steps are returned for manual execution; steps needing human approval or unfinished dependencies are skipped. Free downstream steps run to completion and their results are merged into the response. Paid downstream steps either surface their x402 paymentRequirements so you settle directly (no fee), or — when managed payment is on and your prepaid balance covers it — are paid by us and billed as two separate lines: the downstream cost at cost, plus a 10% orchestration fee. Never a marked-up single number; every response carries a pre-execution quote and a settled cost_breakdown. Bounded at 5 steps per call, $1.00 max per paid step; per-step timeout 25s.
A2A intent aliases:
compose_and_execute,
execute,
run
REST arg:
task
Example queries
execute: find an A2A agent for invoice extraction and pull its agent card
compose_and_execute: search blockchain analytics agents and rank them
run: list MCP servers that expose hotel search tools
REST
curl 'https://agenstry.com/api/v1/skills/compose_and_execute?task=find+an+A2A+agent+for+invoice+extraction+and+pull+its+agent+card'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "execute: find an A2A agent for invoice extraction and pull its agent card"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "compose_and_execute","arguments": {"task": "find an A2A agent for invoice extraction and pull its agent card"}}}'
Per-canonical-skill market shape.
Per-canonical-skill market shape: number of agents serving it, price distribution (min/median/max), quality distribution, growth 30d, top providers ranked by quality. Pass a canonical skill ID or exact name returned by match_skill; arbitrary search text is not a skill ID.
A2A intent aliases:
skill_market,
market
REST arg:
skill
Example queries
skill_market: payments.bitcoin.fee_estimation
market: payments.bitcoin.transactions
REST
curl 'https://agenstry.com/api/v1/skills/skill_market?skill=payments.bitcoin.fee_estimation'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "skill_market: payments.bitcoin.fee_estimation"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "skill_market","arguments": {"skill": "payments.bitcoin.fee_estimation"}}}'
Per-LEI portfolio + composite trust signal.
Per-provider portfolio + composite trust signal: every agent under one LEI / provider_org, avg quality, verified-card count, signed-card count, jurisdictional metadata, aggregate on-chain revenue across the portfolio.
A2A intent aliases:
provider_intel,
provider
REST arg:
provider
Example queries
provider_intel: 549300U4SK7P5XWFXX08
provider: tavily
REST
curl 'https://agenstry.com/api/v1/skills/provider_intel?provider=549300U4SK7P5XWFXX08'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "provider_intel: 549300U4SK7P5XWFXX08"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "provider_intel","arguments": {"provider": "549300U4SK7P5XWFXX08"}}}'
Money-flow trends + cohorts
PAID · $0.05/call
Daily time-series + weekly cohorts + per-protocol split.
Time-series of the agent-economy revenue stream: daily gross + tx + earning-agent count for the requested window (7-180d), weekly cohort table by first-seen date, and per-protocol split (x402 vs ap2 vs stripe_acp vs l402). Designed for hedge-fund / VC market research loops — the kind of caller that wants to see leading indicators (new cohort weekly growth, protocol-mix shift) rather than the current snapshot. Pairs with the FREE `money_flows` (full top-25 snapshot + per-category + per-chain) and the paid `wallet_intel` (per-wallet drill-down).
A2A intent aliases:
flow_trends,
trends
REST arg:
window_days
Example queries
flow_trends
trends: 90
flow_trends: 14
REST
curl 'https://agenstry.com/api/v1/skills/flow_trends?window_days=90'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "flow_trends"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "flow_trends","arguments": {"window_days": "90"}}}'
Payment market intelligence
PAID · $0.05/call
Source overlap, concentration, rail mix and data-quality diagnostics.
Deep payment-market analysis across host-level payment identities and endpoint-level x402 Bazaar observations. Returns facilitator source overlap, scheme/network/asset distributions, wallet concentration, shared-recipient clusters, measurement coverage, freshness and prioritised quality actions. Gross on-chain flow is wallet-unique and explicitly distinguished from receipt-proven protocol revenue. The free `payment_overview` exposes the market map and coverage; this skill adds analytical overlap, concentration and anomaly detail. Includes A2A-linked wallet portfolios, declared provider/category listing counts, discovery sources, and fresh payer patterns with explicit warnings when evidence snapshots differ.
A2A intent aliases:
payment_intelligence,
payments_deep
Example queries
payment_intelligence
payments_deep
REST
curl 'https://agenstry.com/api/v1/skills/payment_intelligence'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "payment_intelligence"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "payment_intelligence","arguments": {}}}'
Per-wallet portfolio across the index.
Per-wallet portfolio of every indexed agent that settles into this address. Returns the linked-agent list, 7/30/90 day aggregate inflow, cross-chain presence, and the providers behind the wallet. Pairs with `provider_intel` for the full identity ↔ economics view.
A2A intent aliases:
wallet_intel,
wallet
REST arg:
address
Example queries
wallet_intel: 0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86
wallet: 0x47ffc880cfF2e8F18fD9567faB5a1fBD217B5552
REST
curl 'https://agenstry.com/api/v1/skills/wallet_intel?address=0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "wallet_intel: 0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "wallet_intel","arguments": {"address": "0x0FF5A6ecef783BBA35463ec2F8403B9B5e9e7C86"}}}'
Keyword trends: what agents are searching for
PAID · $0.05/call
Top queries, growth, related skills.
Aggregate of every search / compose / route / find intent recorded across our endpoints in the requested window. Returns top 50 keywords by volume, growth-rate vs prior window (7d → 7d), the canonical skills + top agents that surface for each keyword, and a list of rising 'movers' (new entries in the top 50 vs last week). Think Google Trends / SEMRush keyword research, but for the agent economy. The free `trends_summary` returns a top-10 overview.
A2A intent aliases:
keyword_trends,
trends_kw
REST arg:
window_days
Example queries
keyword_trends
keyword_trends: 90
trends_kw
REST
curl 'https://agenstry.com/api/v1/skills/keyword_trends?window_days=90'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "keyword_trends"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "keyword_trends","arguments": {"window_days": "90"}}}'
Keyword search: SEO-style query intelligence
PAID · $0.02/call
Volume + ranked agents + quality + opportunity signal for one query.
Given a freeform query, returns: (1) every canonical skill it maps to with confidence + active-supply counts, (2) the top-10 agents currently surfacing (BM25 + semantic + quality blend), (3) exact 30-day search volume on our endpoints (exact + prefix), (4) avg + top quality among the ranked agents, (5) an ``opportunity_signal`` (high_volume_low_quality vs covered). Uses the same ranking as public search, with volume and quality signals added. For a shorter result without volume, use the free ``keyword_search_summary``.
A2A intent aliases:
keyword_search,
kw_search
REST arg:
query
Example queries
keyword_search: pdf extraction
keyword_search: hotel reservation in Amsterdam
kw_search: claim management for insurance
REST
curl 'https://agenstry.com/api/v1/skills/keyword_search?query=pdf+extraction'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "keyword_search: pdf extraction"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "keyword_search","arguments": {"query": "pdf extraction"}}}'
Supply gaps: full demand-vs-supply ranking
PAID · $0.03/call
Top-50 underserved canonical skills with exact impressions + density.
Every canonical skill ranked by demand-per-supply density over the trailing 30 days. Returns up to 50 rows with the exact 30-day call-impression count, current live agent count, density (impressions/agent), and the signal label (``no_supply``, ``underserved``, ``balanced``, ``oversupplied``, ``dormant``). Returns exact figures as JSON. For a shorter overview with demand bands, use the free ``supply_gaps_summary``.
A2A intent aliases:
supply_gaps,
gaps
REST arg:
window_days
Example queries
supply_gaps
supply_gaps: 30
gaps: 90
REST
curl 'https://agenstry.com/api/v1/skills/supply_gaps?window_days=30'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "supply_gaps"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "supply_gaps","arguments": {"window_days": "30"}}}'
Agent callers: who's calling this agent
PAID · $0.05/call
Per-agent caller breakdown (host / peer / country / surface).
For one agent domain, return the full 30-day caller-attribution breakdown captured by our universal call log: which AI hosts called it (Claude Desktop / Cursor / OpenAI Responses / ChatGPT / n8n / curl / browser), which A2A peer agents called it, caller geography (ISO-2 country), surface mix (a2a / mcp / rest / web / managed_runtime), and the top search intents that surfaced it. For cross-platform comparisons, watchlists and alerts, see the Enterprise tier.
A2A intent aliases:
agent_callers,
callers
REST arg:
domain
Example queries
agent_callers: silas.sylex.ai
agent_callers: api.deepbluebase.xyz
REST
curl 'https://agenstry.com/api/v1/skills/agent_callers?domain=silas.sylex.ai'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "agent_callers: silas.sylex.ai"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "agent_callers","arguments": {"domain": "silas.sylex.ai"}}}'
Agent Trust Passport: full history
PAID · $0.03/call
Passport snapshot plus the complete audit history.
Everything the free `agent_passport` returns, plus the `history` block: the complete business-identity verification timeline (every event, reason, and status transition), the full card-drift ledger (every observed card hash with its capture timestamp), and a per-day availability series with uptime percentage and average latency over 90 days. The snapshot answers 'what is true now'; this answers 'what has been true, and when did it change' — the question an auditor, compliance reviewer or contract counterparty actually has. Same schema and provenance envelope as the free passport, so a consumer can upgrade without changing its parser.
A2A intent aliases:
agent_passport_history,
passport_history
REST arg:
domain
Example queries
agent_passport_history: silas.sylex.ai
passport_history: tavily.com
REST
curl 'https://agenstry.com/api/v1/skills/agent_passport_history?domain=silas.sylex.ai'
A2A JSON-RPC
curl -X POST https://agenstry.com/a2a \
-H 'Content-Type: application/json' \
-H 'A2A-Version: 1.0' \
-d '{"jsonrpc": "2.0","id": "1","method": "SendMessage","params": {"message": {"messageId": "m1","role": "ROLE_USER","parts": [{"text": "agent_passport_history: silas.sylex.ai"}]}}}'
MCP
curl -X POST https://agenstry.com/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc": "2.0","id": "1","method": "tools/call","params": {"name": "agent_passport_history","arguments": {"domain": "silas.sylex.ai"}}}'