78trust / 100

Query

by Crypto Data & Market Analysis in Onchain & crypto

x402 APIPassing, checked 1 h ago

Real-time crypto & macro market data for AI agents, pay-per-call in USDC (no account or API key): Bitcoin (BTC) and Ethereum (ETH) prices, funding rates, open interest, Fear & Greed index, market dominance, macro rates (Fed, CPI, DXY), DeFi TVL, whale flows, on-chain stats, crypto news. 16 JSON tools. POST {tools:[…]} — up to 5 tools in one paid call.

POST
https://crypto-asistent.com/api/x402/query
Price
$0.05
per call in USDC
Uptime
100%
last 30 days
Response time
55 ms
146 ms slowest 5%
Last check
Passed
1 h ago, next any minute now

Run a free test callHow to call it

Reliability

All checks passedSome failedAll failedNot checked

Status and outage history · Atom feed · Watch with other listings

How to call it

POST https://crypto-asistent.com/api/x402/query

Each call costs $0.05 in USDC on Base, paid with the request over x402.

Run a free test callOne unpaid request, the way an agent sends it. You see the payment challenge it gets back. Nothing is charged.

Example request

From the listing.

POST https://crypto-asistent.com/api/x402/query
content-type: application/json

{
  "tools": [
    "get_fear_greed",
    {
      "input": {
        "hours": 168
      },
      "tool": "get_market_history"
    },
    "get_derivatives_aggregate",
    "get_market_dominance"
  ]
}

Parameters

ParameterTypeRequiredDescription
inputobjectNoParameters for the legacy tool field.
toolstringNoLegacy single-tool form, same as tools: [tool]. Prefer tools.
toolsarray of string or objectNoBetween 1 and 5 tools, one flat price per call whatever the count. Each entry is a tool name, or {tool, input} when the tool takes parameters.

Example response

The provider's example. We can't check it without paying.

Example response, 97 lines
{
  "ok": true,
  "results": {
    "get_derivatives_aggregate": {
      "data": {
        "coins": [
          {
            "avgFundingAnnualizedPct": 6.68,
            "avgFundingRate": 0.0061,
            "coin": "BTC",
            "exchangeCount": 4,
            "fundingSpread": 0.0042,
            "totalOpenInterestUsd": 31500000000
          },
          {
            "avgFundingAnnualizedPct": 4.16,
            "avgFundingRate": 0.0038,
            "coin": "ETH",
            "exchangeCount": 4,
            "fundingSpread": 0.0051,
            "totalOpenInterestUsd": 14200000000
          }
        ],
        "unavailable": []
      },
      "ok": true
    },
    "get_fear_greed": {
      "data": {
        "classification": "Extreme Fear",
        "history": [
          {
            "time": 1790985600,
            "value": 22
          },
          {
            "time": 1791072000,
            "value": 20
          }
        ],
        "previousClassification": "Extreme Fear",
        "previousValue": 22,
        "value": 20
      },
      "ok": true
    },
    "get_market_dominance": {
      "data": {
        "btcDominance": 58.4,
        "ethDominance": 12.9,
        "usdtDominance": 5.1
      },
      "ok": true
    },
    "get_market_history": {
      "data": {
        "btcDominance": {
          "current": 58.4,
          "max": 58.7,
          "median": 58.1,
          "min": 57.6,
          "percentile": 71,
          "samples": 1002
        },
        "fearGreed": {
          "current": 20,
          "max": 44,
          "median": 31,
          "min": 18,
          "percentile": 4,
          "samples": 1002
        },
        "from": "2026-09-27T12:00:00.000Z",
        "funding": {
          "current": 0.0061,
          "max": 0.0103,
          "median": 0.0048,
          "min": -0.0012,
          "percentile": 82,
          "samples": 1002
        },
        "openInterestUsd": {
          "current": 31500000000,
          "max": 32100000000,
          "median": 30800000000,
          "min": 29400000000,
          "percentile": 78,
          "samples": 1002
        },
        "samples": 1002,
        "to": "2026-10-04T12:00:00.000Z",
        "windowHours": 168
      },
      "ok": true
    }
  }
}

Call it from code

The curl command shows the payment challenge. The JavaScript and Python versions pay and call, and never pay more than $0.05.

curl: see the payment challenge
# bash or zsh: see the payment challenge. Nothing is charged.
curl -sS -g -i -X POST 'https://crypto-asistent.com/api/x402/query' \
  -H 'content-type: application/json' \
  --data-raw '{"tools":["get_fear_greed",{"input":{"hours":168},"tool":"get_market_history"},"get_derivatives_aggregate","get_market_dominance"]}'

# x402 v2 sends the challenge base64-encoded in the PAYMENT-REQUIRED header (v1 sends it in the body).
# To read the header:
curl -sS -g -o /dev/null -D - -X POST 'https://crypto-asistent.com/api/x402/query' \
  -H 'content-type: application/json' \
  --data-raw '{"tools":["get_fear_greed",{"input":{"hours":168},"tool":"get_market_history"},"get_derivatives_aggregate","get_market_dominance"]}' \
  | grep -i '^payment-required:' | cut -d' ' -f2 | tr -d '\r' | base64 --decode
JavaScript: pay and call
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

// Pays at most $0.05 per call.
const client = new x402Client().setSpendControls({ maxAmountPerPayment: "$0.05" });
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const pay = wrapFetchWithPayment(fetch, client);

// Not sure it's safe to pay? ToolVet checks it first for $0.005. Pay for that from a separate
// client: this one is capped at $0.05 per payment. GET https://toolvet.app/api/v1/check?url=https%3A%2F%2Fcrypto-asistent.com%2Fapi%2Fx402%2Fquery&method=POST
const res = await pay("https://crypto-asistent.com/api/x402/query", {
  method: "POST",
  headers: { "content-type": "application/json" },
  body: JSON.stringify({
    "tools": [
      "get_fear_greed",
      {
        "input": {
          "hours": 168
        },
        "tool": "get_market_history"
      },
      "get_derivatives_aggregate",
      "get_market_dominance"
    ]
  }),
});
console.log(res.status, await res.text());
Python: pay and call
# pip install "x402[requests,evm]"
import os
from eth_account import Account
from x402 import x402ClientSync
from x402.http.clients import x402_requests
from x402.mechanisms.evm import EthAccountSigner
from x402.mechanisms.evm.exact.register import register_exact_evm_client

# Pays at most $0.05 per call.
client = x402ClientSync().set_spend_controls({"max_amount_per_payment": "$0.05"})
register_exact_evm_client(client, EthAccountSigner(Account.from_key(os.environ["EVM_PRIVATE_KEY"])))

with x402_requests(client) as session:
    res = session.post(
        "https://crypto-asistent.com/api/x402/query",
        json={
            "tools": [
                "get_fear_greed",
                {
                    "input": {
                        "hours": 168,
                    },
                    "tool": "get_market_history",
                },
                "get_derivatives_aggregate",
                "get_market_dominance",
            ],
        },
    )
    print(res.status_code, res.text)

Security scan

No findings

We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.

Recent checks

WhenResultHTTPTimePrice
1 h agoPassed40258 ms$0.05
5 h agoPassed40279 ms$0.05
9 h agoPassed40255 ms$0.05
14 h agoPassed402207 ms$0.05
18 h agoPassed40294 ms$0.05
Show 10 older checks
22 h agoPassed40246 ms$0.05
26 h agoPassed40258 ms$0.05
31 h agoPassed40249 ms$0.05
35 h agoPassed40288 ms$0.05
38 h agoPassed40262 ms$0.05
42 h agoPassed40215 ms$0.05
46 h agoPassed40246 ms$0.05
2 days agoPassed40256 ms$0.05
2 days agoPassed402146 ms$0.05
2 days agoPassed40260 ms$0.05