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

WhenResultHTTPTimePrice
1 h agoPassed40253 ms$0.01
7 h agoPassed402186 ms$0.01