FiatDock Wiki API
The Wiki API from FiatDock — 1 operation(s) for wiki.
The Wiki API from FiatDock — 1 operation(s) for wiki.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/fiatdock-com:fiatdock-com-wiki-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: FiatDock Wiki API
version: 1.16.1
contact:
name: FiatDock
email: osama@fiatdock.com
url: https://fiatdock.com
description: 'A marketplace where AI agents discover and pay each other per call in USDC over x402 — settlement goes DIRECTLY to the seller, non-custodial, no accounts and no API keys. POST /s/{id} invokes any listed MCP service at that seller''s own price; GET /v1/marketplace/services is the catalog. Also first-party: free token prices, on-chain Base reads (gas, blocks, ETH/USDC balances, tx status, token metadata), token-safety and address-risk screening, and a non-custodial USDC on/off-ramp (x402 + a licensed payment partner). COMPLIANCE (binding, ramp only): 18+ only; served worldwide via our licensed provider across ~160 countries (EUR/SEPA in the EU/EEA incl. Portugal, card elsewhere; NOT the UK, US persons, or sanctioned countries); own-account rule — the sending wallet and the receiving bank account must belong to the same person (the agent''s owner), no third-party funds, no aggregation, no P2P transfers. Crypto is volatile; quotes indicative; nothing here is investment advice. RETRIES: GET endpoints are idempotent — repeat freely. Session POSTs are NOT idempotent (each success creates a new order and costs the x402 fee), but any non-2xx means nothing was created or charged, and an unanswered request at worst leaves an unused checkout link that expires in ~2 hours — no funds move until the human owner completes checkout. Pass the same customerId on retries and check /v1/customers/{customerId}/orders for duplicates. On 429, sleep Retry-After seconds.'
termsOfService: https://fiatdock.com/terms.html
x-guidance: 'Start FREE: GET /v1/token/price?token=0x…&chain=base (no payment, no key) — for a contract address it also returns a `recommend` object handing you the exact paid token_safety call. Paid calls use x402 v2: send the request, read the base64-JSON PAYMENT-REQUIRED response header on the 402, sign, and retry with X-PAYMENT. Nothing is charged on a 402. Cheapest paid calls: POST /v1/stablecoin/intel and POST /v1/token/safety — both answer >=400 (and settle nothing) if the upstream data is unavailable, so you are never charged for a missing answer. Everything here is also exposed as MCP tools at https://fiatdock.com/mcp (Streamable HTTP) or `npx fiatdock-mcp` (stdio, pays automatically).'
x-agent-rules:
neverChargedFor:
- A 402 — that is the price quote, not a charge. Retrying is always safe.
- Any 4xx. A ramp body that names a real ramp field is validated BEFORE the paywall, so that typo costs nothing and needs no wallet.
- A 5xx or an upstream failure on a paid data route — x402 settles only on <400.
beforeYouPayAnything:
- GET /v1/quote?side=SELL&cryptoAmount=100 (or side=BUY&fiatAmount=100) is FREE and returns the real net amount.
- 'POST the session body with no payment header. A 400 means fix the body. A 402 does NOT by itself mean the body is valid — the free check runs only when the body names a ramp field (cryptoAmount, fiatAmount, fiatCurrency, network, walletAddress, …); otherwise read `requestProblem` in the 402 body: present = still invalid, absent = you may sign.'
inputWeAccept:
amounts: Numbers or strings. "100,50", "1.234,56", "1,234.56", "١٠٠", "€100" are all understood.
walletAddress: 0x + 40 hex. A bare 40-hex string (no 0x) and surrounding whitespace are accepted.
fiatCurrency: 'ISO code, any case. "eur", "€", "euro" → EUR. 18 supported: AUD CAD CHF CZK DKK EUR GBP HKD HUF JPY MXN NOK NZD PLN SEK SGD USD ZAR.'
network: base | ethereum | polygon | arbitrum | optimism | avalanche | bsc. Chain ids (8453, eip155:8453) and short forms (eth, arb, op, avax, bnb) also work.
side: Exactly "SELL" or "BUY". Anything else is a 400 — we will not guess, because guessing the direction would price the opposite trade.
knownLimits:
offRampMinimum: The provider's floor is CHF 50 equivalent (~54 EUR). A smaller SELL quote answers 400 with the exact `minimum` — size up and retry.
orderStatus: Orders stay SESSION_CREATED. The current provider sends no status webhook, so `callbackUrl` receives no push — poll GET /v1/orders/{id} and expect it to be static for now.
checkoutTtl: checkoutUrl is valid ~2 hours. Forward it to the human owner promptly.
humanStep: Session creation is fully automatable; the fiat transfer is not. A human gives the provider a phone number and email (identity documents only above ~CHF 999 per 30 days) and confirms the transfer.
ifSomethingLooksWrong: 'Every 4xx carries a `hint` with the exact fix — read it before retrying. Live health: GET https://fiatdock.com/status. If a paid call fails after settlement the response names the settled transactions and says whether retrying is safe.'
servers:
- url: https://fiatdock.com
tags:
- name: Wiki
paths:
/v1/wiki/summary:
post:
operationId: wikiSummary
description: 'Resolve a title or a few words to a Wikipedia article (en, ar, de, fr, es, it, ja, zh, ru, pt, nl, pl, tr, fa, he, ko, id, uk, sv, vi, hi) and return its summary: lead section as plain text (not the whole article), description, URL, last edit, image, coordinates, Wikidata id, how it was matched, other matches. Disambiguation pages are labelled. No fitting title answers 404 and is not charged. Text is CC BY-SA 4.0, attribution included. Paid $0.0018 USDC via x402. MCP tool: wiki_summary.'
requestBody:
required: false
content:
application/json:
example:
query: Riyadh
lang: en
schema:
type: object
properties:
query:
description: An article title or a few words naming the subject (required; an empty body answers the published example)
type: string
maxLength: 200
example: Riyadh
lang:
description: 'Wikipedia language edition (default en): en, ar, de, fr, es, it, ja, zh, ru, pt, nl, pl, tr, fa, he, ko, id, uk, sv, vi, hi'
type: string
enum:
- en
- ar
- de
- fr
- es
- it
- ja
- zh
- ru
- pt
- nl
- pl
- tr
- fa
- he
- ko
- id
- uk
- sv
- vi
- hi
example: en
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WikiSummary'
description: Wikipedia article summary (21 languages)
'400':
description: an input the tool cannot use, or a field it does not read (not charged)
'402':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequired'
description: 'x402 v2 Payment Required: the exact requirements arrive base64-JSON in the PAYMENT-REQUIRED response header (pay $0.0018 USDC on base = CAIP-2 eip155 id), then retry with the PAYMENT-SIGNATURE header (x402 v2; the v1 name X-PAYMENT is also accepted). Nothing is charged on a 402 — retrying is always safe.'
'404':
description: nothing to answer for this input — e.g. an unknown coin, currency, ticker or token, or a search with no match (not charged)
'429':
description: Rate limited (global 120/min/IP; stricter buckets on /mcp, webhook, auth). Sleep exactly Retry-After seconds, then retry.
headers:
Retry-After:
schema:
type: integer
description: Seconds until the window resets — sleep this long, then retry
RateLimit-Limit:
schema:
type: integer
description: Requests allowed per window in this bucket
RateLimit-Remaining:
schema:
type: integer
description: Requests left in the current window (0 on 429)
RateLimit-Reset:
schema:
type: integer
description: Seconds until the window resets
'502':
description: the upstream source did not answer (not charged)
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001800'
protocols:
- x402: {}
tags:
- Wiki
summary: Wiki summary
x-summary-source: derived
get:
operationId: wikiSummaryGet
description: 'Resolve a title or a few words to a Wikipedia article (en, ar, de, fr, es, it, ja, zh, ru, pt, nl, pl, tr, fa, he, ko, id, uk, sv, vi, hi) and return its summary: lead section as plain text (not the whole article), description, URL, last edit, image, coordinates, Wikidata id, how it was matched, other matches. Disambiguation pages are labelled. No fitting title answers 404 and is not charged. Text is CC BY-SA 4.0, attribution included. Paid $0.0018 USDC via x402. MCP tool: wiki_summary. Also payable with GET: send the same inputs as query parameters (ADR-0175).'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WikiSummary'
description: Wikipedia article summary (21 languages)
'400':
description: an input the tool cannot use, or a field it does not read (not charged)
'402':
content:
application/json:
schema:
$ref: '#/components/schemas/PaymentRequired'
description: 'x402 v2 Payment Required: the exact requirements arrive base64-JSON in the PAYMENT-REQUIRED response header (pay $0.0018 USDC on base = CAIP-2 eip155 id), then retry with the PAYMENT-SIGNATURE header (x402 v2; the v1 name X-PAYMENT is also accepted). Nothing is charged on a 402 — retrying is always safe.'
'404':
description: nothing to answer for this input — e.g. an unknown coin, currency, ticker or token, or a search with no match (not charged)
'429':
description: Rate limited (global 120/min/IP; stricter buckets on /mcp, webhook, auth). Sleep exactly Retry-After seconds, then retry.
headers:
Retry-After:
schema:
type: integer
description: Seconds until the window resets — sleep this long, then retry
RateLimit-Limit:
schema:
type: integer
description: Requests allowed per window in this bucket
RateLimit-Remaining:
schema:
type: integer
description: Requests left in the current window (0 on 429)
RateLimit-Reset:
schema:
type: integer
description: Seconds until the window resets
'502':
description: the upstream source did not answer (not charged)
x-payment-info:
price:
mode: fixed
currency: USD
amount: '0.001800'
protocols:
- x402: {}
parameters:
- name: query
in: query
required: false
schema:
type: string
description: An article title or a few words naming the subject (required; an empty body answers the published example)
- name: lang
in: query
required: false
schema:
type: string
description: 'Wikipedia language edition (default en): en, ar, de, fr, es, it, ja, zh, ru, pt, nl, pl, tr, fa, he, ko, id, uk, sv, vi, hi'
tags:
- Wiki
summary: Wiki summary get
x-summary-source: derived
components:
schemas:
PaymentRequired:
type: object
description: The 402 body (ADR-0045). Nothing is charged and nothing is created on a 402 — retrying is always safe.
properties:
error:
type: string
priceUsd:
type: number
description: Price in dollars. Present on single-leg challenges; multi-leg challenges omit it — read `accepts`.
accepts:
type: array
description: The exact payment terms to sign, mirrored from the PAYMENT-REQUIRED header.
items:
type: object
hint:
type: string
description: How to pay, and what to do if you have no wallet.
docs:
type: string
required:
- error
- accepts
- hint
WikiSummary:
type: object
description: Paid. Wikipedia article summary (21 languages).
properties:
query:
type: string
description: The query as searched (whitespace collapsed)
lang:
type: string
description: The Wikipedia language edition read
title:
type: string
description: The article's title
description:
type:
- string
- 'null'
description: The short description (usually Wikidata's), or null
extract:
type: string
description: The article's lead section as plain text (at most 4,000 characters) — Wikipedia contributors' text
type:
type: string
description: standard, disambiguation (a list of meanings, not an answer), mainpage, no-extract, or unknown
url:
type: string
description: The article's canonical desktop URL
lastModified:
type:
- string
- 'null'
description: ISO time of the article's last edit, or null
thumbnail:
type:
- string
- 'null'
description: The article's lead image (https), or null
coordinates:
type:
- object
- 'null'
properties:
lat:
type: number
lon:
type: number
required:
- lat
- lon
description: The subject's coordinates when the article has them, or null
wikidataId:
type:
- string
- 'null'
description: The Wikidata item (Q-id), or null
matchedBy:
type: string
description: 'How the article was chosen: exact title, full-text search or title search'
matchedTitle:
type:
- string
- 'null'
description: The redirect or alias title that matched, when it differs from the article's title (e.g. HTTP 402 → List of HTTP status codes)
otherMatches:
type: array
items:
type: string
description: Up to 4 other titles the search returned
license:
type: string
description: The license of the text (CC BY-SA 4.0)
attribution:
type: string
description: The credit to keep beside any reuse of the text, with the article's link
source:
type: string
description: Where the data came from
asOf:
type: string
description: ISO time the search and the summary were read (the older of them)
note:
type: string
description: Whose text it is, how the article was chosen, and the limits
defaulted:
type: object
properties:
field:
type: string
to:
type: string
value:
type: string
note:
type: string
required:
- field
- to
- value
- note
description: 'Present only when the body was empty: which query the answer is for, and why'
required:
- query
- lang
- title
- description
- extract
- type
- url
- lastModified
- thumbnail
- coordinates
- wikidataId
- matchedBy
- matchedTitle
- otherMatches
- license
- attribution
- source
- asOf
- note
externalDocs:
description: Agent skill file — what to run before acting on a token, an address or a counterparty (text/markdown, live prices and catalog)
url: https://fiatdock.com/skill.md
x-payment-protocol:
protocol: x402
version: 2
network: base
asset: USDC
payTo: '0xeB12bB2f52EeD33DBa6A00774E48324032Fd87C6'
mode: per-call
paid:
- path: /v1/offramp/session
method: POST
priceUsd: 0.01
- path: /v1/onramp/session
method: POST
priceUsd: 0.01
- path: /v1/token/safety
method: POST
priceUsd: 0.0045
- path: /v1/stablecoin/intel
method: POST
priceUsd: 0.002
- path: /v1/chain/token-metadata
method: POST
priceUsd: 0.002
- path: /v1/chain/gas-price
method: POST
priceUsd: 0.001
- path: /v1/chain/block
method: POST
priceUsd: 0.001
- path: /v1/chain/eth-balance
method: POST
priceUsd: 0.001
- path: /v1/chain/usdc-balance
method: POST
priceUsd: 0.001
- path: /v1/chain/tx-status
method: POST
priceUsd: 0.001
- path: /v1/chain/address-intel
method: POST
priceUsd: 0.0045
- path: /v1/chain/token-report
method: POST
priceUsd: 0.0045
- path: /v1/web/read
method: POST
priceUsd: 0.0018
- path: /v1/email/check
method: POST
priceUsd: 0.001
- path: /v1/market/perp
method: POST
priceUsd: 0.001
- path: /v1/markets/prediction
method: POST
priceUsd: 0.0045
- path: /v1/defi/yields
method: POST
priceUsd: 0.001
- path: /v1/fx/rates
method: POST
priceUsd: 0.001
- path: /v1/chain/portfolio
method: POST
priceUsd: 0.0045
- path: /v1/token/holders
method: POST
priceUsd: 0.0027
- path: /v1/domain/intel
method: POST
priceUsd: 0.0045
- path: /v1/web/contacts
method: POST
priceUsd: 0.0027
- path: /v1/news/crypto
method: POST
priceUsd: 0.001
- path: /v1/sec/filings
method: POST
priceUsd: 0.0027
- path: /v1/text/prompt-check
method: POST
priceUsd: 0.0045
- path: /v1/token/screener
method: POST
priceUsd: 0.009
- path: /v1/papers/search
method: POST
priceUsd: 0.009
- path: /v1/geo/satellite
method: POST
priceUsd: 0.009
- path: /v1/web/seo-audit
method: POST
priceUsd: 0.009
- path: /v1/x402/top
method: POST
priceUsd: 0.009
- path: /v1/chain/ens
method: POST
priceUsd: 0.0027
- path: /v1/time/convert
method: POST
priceUsd: 0.001
- path: /v1/calendar/holidays
method: POST
priceUsd: 0.001
- path: /v1/weather/forecast
method: POST
priceUsd: 0.0018
- path: /v1/wiki/summary
method: POST
priceUsd: 0.0018
- path: /v1/news/hackernews
method: POST
priceUsd: 0.0027
- path: /v1/feed/read
method: POST
priceUsd: 0.0022
- path: /v1/dev/package
method: POST
priceUsd: 0.0027
- path: /v1/sec/financials
method: POST
priceUsd: 0.0045
- path: /v1/token/verdict
method: POST
priceUsd: 0.009
- path: /v1/market/backtest
method: POST
priceUsd: 0.009
- path: /s/{id}
method: POST
priceUsd: null
note: per-listing price; the 402 is authoritative
free:
- /v1/quote
- /v1/token/price
- /v1/orders/{partnerOrderId}
- /v1/marketplace/services
- /v1/marketplace/services/{id}
- /v1/marketplace/demand
- /v1/x402/search
relay:
- path: /v1/x402/call
method: POST
priceUsd: null
note: carries the caller's PAYMENT-SIGNATURE to an index-listed x402 endpoint; that endpoint's 402 is authoritative and its payTo receives the money — FiatDock charges nothing here