Agent Intent Match API
Agent Intent Match finds existing, public buyer intent for what a seller offers: current requests, RFPs/RFQs, public tenders and forum posts in which someone asks for the seller’s product, service, API or capability. Every returned signal has a verbatim quote, source URL and freshness data. It discovers demand only; it never contacts buyers.
Machine-readable: /openapi.json · /llms.txt · /.well-known/agent-intent-match.json
Quick start
POST https://agentintentmatch.online/api/v1/matcheswith a JSON body and a randomIdempotency-Keyheader (16–128 ofA–Z a–z 0–9 _ -). Keep the key secret: it is also your result access key.- The response is
402with an x402 v2 requirement (PAYMENT-REQUIREDheader and body): 0.35 USDC,exactscheme, networkeip155:8453. - Sign it with your wallet/x402 client and resend the identical body with the same key and
PAYMENT-SIGNATURE. The search runs inside the request (typically 30–120 s) and returns200with the report. - Later:
GET https://agentintentmatch.online/api/v1/matches/{id}withAuthorization: Bearer <Idempotency-Key>.
curl -i https://agentintentmatch.online/api/v1/matches \ -H 'content-type: application/json' \ -H 'Idempotency-Key: 4f1c0c7e9d2a4b0c8e7f6a5b4c3d2e1f' \ -d @offer.json
Request
Give a url, or a description (8+ characters), capabilities or jobs_to_be_done — or several. All text may be in any language and script.
{
"name": "Vendor Finder",
"url": "https://vendorfinder.online/",
"description": "Find and verify suppliers for a specified product and market",
"capabilities": ["Find suppliers for a product and market", "Verify supplier evidence"],
"price": { "amount": 0.46, "currency": "USDC", "unit": "request" },
"service_area": { "regions": ["worldwide"], "remote": true },
"languages": ["en", "ja", "de"],
"geography": "Poland",
"freshness": "30d",
"min_match": "possible",
"max_results": 10,
"preferred_output_language": "en"
}name, url, description | Your offering. A URL-only request whose page cannot be read is refused before settlement (not charged). |
capabilities, jobs_to_be_done, use_cases | Up to 20 each. |
price, service_area, languages, constraints | Used to judge fit and conflicts (e.g. a buyer outside your service area). |
exclude | Organizations, domains or terms to leave out. |
geography, industry, buyer_type | Target buyers. Geography is never inferred from language. |
freshness | 24h | 7d | 30d | 90d | 365d (default 30d). |
min_match | strong | possible | weak (default possible). |
require_known_date | Drop signals without a machine-readable date (default false). |
include_ambiguous | Also return AMBIGUOUS signals (default false). |
source_types | Any of web, procurement, forum (default all). |
search_languages | Up to 4 BCP 47 tags to search in, in addition to planner choices. |
max_results | 1–20 (default 10). |
preferred_output_language | Language for explanations; quotes stay original. |
max_price_usdc | Refuse before payment if the price is higher (422). |
Response
{
"request_id": "…",
"seller": { "name": "Vendor Finder", "summary": "…", "capabilities": ["…"] },
"searched_at": "2026-09-29T10:00:00.000Z",
"matches": [{
"rank": 1,
"intent": {
"state": "CONFIRMED_INTENT",
"original_text": "We need someone to identify three manufacturers of …",
"original_language": "en",
"translation": null,
"normalized_need": "Identify three Polish manufacturers of …",
"published_at": "2026-09-26T08:12:00.000Z",
"source_url": "https://…",
"source_type": "forum",
"geography": "Poland"
},
"match": {
"classification": "STRONG_MATCH",
"reasons": ["…"],
"capability_matches": [{ "seller_capability": "…", "buyer_quote": "…" }],
"constraints_satisfied": [], "constraints_conflicting": [], "uncertainties": []
},
"evidence": [{ "source_url": "https://…", "quoted_or_extracted_fact": "…", "kind": "verbatim_quote", "retrieved_at": "…" }],
"freshness": { "published_at": "…", "age_days": 3.1, "within_window": true, "request_status": "unknown", "deadline_at": null },
"confidence": { "intent": "high", "match": "high", "basis": "…" }
}],
"rejected_signals": [{ "source_url": "https://…", "reason": "not_intent:seller_advertisement" }],
"search_summary": { "sources_retrieved": 41, "sources_classified": 16, "queries": ["…"] },
"limitations": ["…"],
"cost": { "amount": "…", "currency": "USDC" }
}Two separate classifications
Intent — is someone trying to acquire something? CONFIRMED_INTENT (explicit request, RFP/RFQ/tender or call for competition), LIKELY_INTENT, AMBIGUOUS, NOT_INTENT (vendor ads, articles, directories, generic discussion, employment postings). Match — does that need fit your offer? STRONG_MATCH, POSSIBLE_MATCH, WEAK_MATCH, NOT_A_MATCH. Judged by meaning across languages, not keyword overlap.
Evidence rules
- Every match has a verbatim buyer quote that was found in the retrieved source text; otherwise it is rejected (
quote_not_grounded). CONFIRMED_INTENTrequires explicit request language in the quote, or a structured procurement notice.STRONG_MATCHrequires at least one capability tied to a verbatim buyer quote and no conflicting constraint.- Dates come only from structured metadata (APIs, JSON-LD, meta tags,
<time>); otherwisepublished_atisnull. - Translations are metadata;
original_textis never altered. - Buyer emails and phone numbers are removed; person names are not collected.
Freshness
freshness (24h, 7d, 30d, 90d, 365d) is the maximum age of a buyer signal. Signals with a known publication date outside the window are rejected. Signals with an unknown date are returned with published_at null and an uncertainty unless require_known_date is true. Procurement notices whose deadline has passed are rejected as closed.
Payment, retries and access
One payment buys one search-and-classify run, including a credible zero-match result (no demand found is a valid answer). If the paid run fails, resend the identical body with the same Idempotency-Key plus Authorization: Bearer <Idempotency-Key> (no new payment) for up to two free retries. A URL-only request whose page cannot be retrieved is refused before settlement, so nothing is charged. No automatic refunds; uncertain settlements require reconciliation. See /terms.
- States:
created(payment verified) →paid→searching→completed|failed;settlement_unknownif settlement could not be confirmed. - One payment authorization funds exactly one request: payment IDs and keys are unique, replays return
409 payment_reused. - Results are private: only the holder of the Idempotency-Key can read them. Results are deleted after 30 days (
410 expired).
Errors
{ "error": { "code": "…", "message": "…" } } with stable codes: invalid_request, invalid_json, invalid_url, request_too_large, unsupported_media_type, idempotency_key_required, idempotency_conflict, payment_reused, price_exceeds_ceiling, seller_url_unavailable, unauthorized, not_found, expired, rate_limited, not_configured, payment_provider_unavailable, settlement_unknown, provider_unavailable, service_unavailable.
Sources and limitations
- Web search index, queried with buyer-phrased searches in the relevant languages (paid provider)
- EU TED public procurement notices — calls for competition only (structured: official language, publication date, deadline, buyer, place of performance)
- Hacker News (public posts and comments, structured timestamps)
- Only publicly accessible sources are searched; private or login-only communities and closed marketplaces are not.
- Intent is inferred from public text at retrieval time; a request may already be fulfilled. No sale is guaranteed.
- published_at is null when no machine-readable date exists; it is never estimated.
- EU TED covers EU/EEA public procurement only. Coverage of other procurement portals comes from web search.
- Buyer contact details (emails, phone numbers) are removed; person names are not collected.
No outreach
Agent Intent Match discovers demand. It never contacts buyers, sends messages, posts, creates accounts or submits forms. What you do with a result is your decision and responsibility.
Also described as: buyer intent, buyer intent discovery, demand discovery, demand signals, purchase intent, service request discovery, procurement intent, agent intent matching, buyer request matching, commercial intent, find buyers, find demand, capability demand.