83trust / 100
Research Answer
by Oblique Markets in Search & web
x402 APIPassing, checked 1 h ago
Use when an agent needs a concise, cited answer to one research question with optional domain scope and freshness, from one bounded pay-per-call web search. Returns the answer synthesized only from the retrieved sources, source URLs and labels with retrieval timestamps, an explicit insufficient-evidence refusal when the sources do not support an answer, and a machine-readable receipt of the upstream cost and settlement.
POST https://api.oblique.markets/api/v1/paid/research-answer
Last 30 days
All checks passedSome failedAll failedNot checked
- Uptime
- 100%
- Response time
- 53 ms typical, 53 ms slowest 5%
- Last check
- 1 h ago
- Next check
- any minute now
How to call it
# See the payment challenge (nothing is charged)
curl -i -X POST "https://api.oblique.markets/api/v1/paid/research-answer" \
-H "content-type: application/json" \
-d '{"question":"One concise research question"}'import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client().register(
"eip155:8453",
new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_KEY)),
);
const pay = wrapFetchWithPayment(fetch, client);
// Not sure it's safe to pay? Preflight it first for $0.005:
// GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fapi.oblique.markets%2Fapi%2Fv1%2Fpaid%2Fresearch-answer
const res = await pay("https://api.oblique.markets/api/v1/paid/research-answer", {
method: "POST",
headers: { "content-type": "application/json" },
body: JSON.stringify({"question":"One concise research question"}),
});
console.log(await res.json());Example input
{
"question": "One concise research question"
}Example output
{
"answer": "x402 is an open HTTP payment protocol t…",
"cited": [
1
],
"generated_at": "2026-09-06T20:00:02.000Z",
"question": "What is the x402 payment protocol and w…",
"reason": null,
"receipt": {
"budget": {
"daily_cap_atomic": 500000,
"per_request_cap_atomic": 10000,
"spent_today_atomic": 20000
},
"door_price": "$0.01",
"upstream": {
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02…",
"cost_atomic": 10000,
"cost_usd": 0.01,
"network": "eip155:8453",
"pay_to": "0xd92fab07e57dfafe9bb9dbbb3ce01651a61dc…",
"payer": "0xC335983E964248052BAd764D6eb0801475Ec6…",
"provider": "pay-per-call x402 web search",
"requested_at": "2026-09-06T20:00:00.000Z",
"resource": "https://x402.tavily.com/search",
"responded_at": "2026-09-06T20:00:01.000Z",
"results_returned": 2,
"scheme": "exact",
"settlement": {
"network": "eip155:8453",
"payer": "0xC335983E964248052BAd764D6eb0801475Ec6…",
"success": true,
"transaction": "0xabc…"
},
"upstream_response_time_ms": 1.41
}
},
"scope": {
"exclude_domains": [],
"freshness": "year",
"include_domains": []
},
"sources": [
{
"id": 1,
"label": "x402 — Payment Required",
"published_at": "2025-05-06",
"relevance": 0.92,
"retrieved_at": "2026-09-06T20:00:01.000Z",
"snippet": "x402 is an open payment protocol that r…",
"url": "https://x402.org/"
}
],
"status": "answered",
"synthesis": {
"completion_tokens": 96,
"model": "inclusionai/ling-3.0-flash",
"prompt_tokens": 812
},
"uncertainty": "Source 2 is a vendor page; governance b…"
}Security scan
- No findings. We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time | Price |
|---|---|---|---|---|
| 1 h ago | Passed | 402 | 53 ms | $0.01 |
| 7 h ago | Passed | 402 | 186 ms | $0.01 |