{"schemaVersion":"0.1","name":"MimirAPI","description":"The MimirAPI counter: a catalog of small, deterministic capabilities an agent can discover and pay for per call over x402 (USDC on Base) — no signup, no API key, one tab.","origin":"https://mimirapi.com","discovery":{"catalog":"https://mimirapi.com/v1/catalog","health":"https://mimirapi.com/health","llmsTxt":"https://mimirapi.com/llms.txt"},"payment":{"protocol":"x402","asset":"USDC","networks":["base"],"description":"Each paid tool answers HTTP 402 with an x402 challenge listing accepted payment. Settle it and retry the same request to receive the result."},"tools":[{"name":"ping","description":"Paid liveness probe for the MimirAPI counter. Returns pong, the SKU id, and a server timestamp. One tenth of a cent buys a complete challenge, sign, settle, serve round trip — the cheapest possible proof that your x402 client wiring works before you spend real money on real SKUs.","endpoint":"https://mimirapi.com/v1/ping","method":"GET","priceUsd":0.001,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{},"additionalProperties":false},"outputSchema":{"type":"object","properties":{"pong":{"type":"boolean"},"sku":{"type":"string"},"ts":{"type":"string","description":"ISO-8601 server time"}},"required":["pong","sku","ts"]},"tags":["test","liveness","x402","micropayment"]},{"name":"provenance-cert","description":"Chain-of-custody license certificate for any digital asset: a SHA-256 content hash bound to issuer, subject, and license terms under an HMAC-SHA-256 signature. Deterministic, portable, and verifiable through the issuer while the current HMAC v1 profile is active — a receipt an agent can carry to record what it licensed, from whom, and on what terms.","endpoint":"https://mimirapi.com/v1/provenance/certificate","method":"POST","priceUsd":0.25,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"contentHash":{"type":"string","description":"SHA-256 hex of the asset"},"subject":{"type":"string"},"license":{"type":"string"}},"required":["contentHash","subject","license"]},"outputSchema":{"type":"object","properties":{"certificate":{"type":"object"}}},"tags":["provenance","license","certificate","signing","trust"]},{"name":"visual-review","description":"Eyes for agents, for a penny: renders any URL in a real browser (Cloudflare Browser Rendering) and returns a full-page screenshot as an inline PNG plus an axe-core accessibility audit — WCAG violations with rule, impact, fix-it link, and affected-node counts. Verify a deploy visually, catch layout breakage, and check accessibility in one call, without running a browser yourself. https URLs only.","endpoint":"https://mimirapi.com/v1/visual-review","method":"POST","priceUsd":0.01,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Public https URL to render + audit"}},"required":["url"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"url":{"type":"string"},"screenshot":{"type":"string","description":"Full-page PNG as a data: URI"},"audit":{"type":"object","description":"axe-core violations + summary"},"checkedAt":{"type":"string"}},"required":["url","screenshot","audit"]},"tags":["browser","screenshot","accessibility","audit","render","a11y","wcag"]},{"name":"ephemeral-db","description":"Ephemeral Postgres for agents: one POST provisions a real database and returns its connection string with a TTL; teardown at expiry is automatic and guaranteed. Scratch space for a pipeline, a test run, or a day of work — priced per DB-day, no signup, no cleanup, no leftovers.","endpoint":"https://mimirapi.com/v1/db","method":"POST","priceUsd":0.25,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"ttlHours":{"type":"integer","minimum":1,"maximum":168}}},"outputSchema":{"type":"object","properties":{"connectionString":{"type":"string"},"expiresAt":{"type":"string"}}},"tags":["postgres","database","ephemeral","provisioning"]},{"name":"wallet-screen","description":"Sanctions screen for an EVM wallet: one deterministic read of the public Chainalysis sanctions oracle contract. Call it mid-transaction before settling with an unknown counterparty — no account, no API key, one paid call returns sanctioned true/false with the oracle address for independent verification. Fail-closed: if the oracle is unreachable you get an error, never a false all-clear.","endpoint":"https://mimirapi.com/v1/wallet/screen","method":"GET","priceUsd":0.05,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"address":{"type":"string","description":"0x-prefixed 40-hex-char EVM address"}},"required":["address"]},"outputSchema":{"type":"object","properties":{"address":{"type":"string"},"sanctioned":{"type":"boolean"},"source":{"type":"string"},"oracle":{"type":"string"},"checkedAt":{"type":"string"}},"required":["address","sanctioned","source"]},"tags":["compliance","sanctions","wallet","screening","evm","risk"]},{"name":"og-image","description":"Deterministic 1200x630 social-card SVG from a title and optional subtitle, dark or light theme. Same input, byte-identical output — an agent building pages gets an Open Graph image in one call with no headless browser and no font pipeline.","endpoint":"https://mimirapi.com/v1/og-image","method":"GET","priceUsd":0.01,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"title":{"type":"string","maxLength":120},"subtitle":{"type":"string","maxLength":200},"theme":{"type":"string","enum":["dark","light"]}},"required":["title"]},"outputSchema":{"type":"object","properties":{"svg":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"contentType":{"type":"string"}},"required":["svg","width","height"]},"tags":["image","og-image","social-card","svg","media"]},{"name":"qr-svg","description":"QR code as a crisp deterministic SVG from any text or URL up to 1000 characters, with selectable error-correction level (L/M/Q/H). Vector output scales to any size with no rasterization step.","endpoint":"https://mimirapi.com/v1/qr","method":"GET","priceUsd":0.002,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"data":{"type":"string","maxLength":1000},"ecl":{"type":"string","enum":["L","M","Q","H"]}},"required":["data"]},"outputSchema":{"type":"object","properties":{"svg":{"type":"string"},"modules":{"type":"number"},"ecl":{"type":"string"}},"required":["svg","modules"]},"tags":["qr","qrcode","barcode","svg","media"]},{"name":"chart-svg","description":"Data to chart in one call: a numeric series rendered as a deterministic 800x400 line or bar chart SVG with optional labels and title. No charting library, no browser — an agent composing a report gets a predictable picture of its numbers.","endpoint":"https://mimirapi.com/v1/chart","method":"POST","priceUsd":0.01,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"type":{"type":"string","enum":["line","bar"]},"values":{"type":"array","items":{"type":"number"},"minItems":1,"maxItems":100},"labels":{"type":"array","items":{"type":"string","maxLength":24}},"title":{"type":"string","maxLength":80}},"required":["values"]},"outputSchema":{"type":"object","properties":{"svg":{"type":"string"},"type":{"type":"string"},"points":{"type":"number"}},"required":["svg","type","points"]},"tags":["chart","graph","visualization","svg","media"]},{"name":"x402-audit","description":"Weigh any x402 counter and get a verdict: does its URL answer a coherent 402, would the CDP Bazaar validator accept its discovery metadata, and is it actually listed in the discovery index? Returns a per-check report (passed / found-wanting / unweighed) with evidence, optionally HMAC-signed. Three keyless checks for sellers and machine-service buyers.","endpoint":"https://mimirapi.com/v1/x402-audit","method":"POST","priceUsd":0.25,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"https URL of the x402 resource to weigh"}},"required":["url"]},"outputSchema":{"type":"object","properties":{"verdict":{"type":"object","properties":{"resource":{"type":"string"},"balances":{"type":"boolean"},"weighings":{"type":"array","items":{"type":"object"}},"summary":{"type":"object"}},"required":["resource","balances","weighings","summary"]},"certificate":{"type":"object"}},"required":["verdict"]},"tags":["x402","audit","conformance","bazaar","discovery","trust"]},{"name":"route-price","description":"Live crypto/token spot price in USD, routed to the best live x402 provider and returned normalized. Pass ?symbol=BTC (or ETH, WIF, a coin name) and optional ?vs=USD. One integration, always-live: the router ranks providers by measured reliability (cheapest live source wins) and buys on your behalf, falling over to the next provider if one is down — so you never chase a dead endpoint or manage six provider accounts. Add ?verify=1 to cross-validate against a second independent source: the confidence signal reads \"cross-validated\" when they agree within 2%, \"divergent\" (both prices returned, none hidden) when they don't, else \"single-source\". Returns the price, its as-of time, the upstream source(s), and that confidence signal.","endpoint":"https://mimirapi.com/v1/route/price","method":"GET","priceUsd":0.03,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"symbol":{"type":"string","description":"Asset symbol or name (BTC, ETH, WIF, bitcoin)"},"vs":{"type":"string","description":"Quote currency (default USD)"},"verify":{"type":"string","description":"Set to 1/true to cross-validate against a second independent source"}},"required":["symbol"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"priceUsd":{"type":"number"},"asOf":{"type":"string","description":"ISO-8601 as-of time from the upstream source"},"source":{"type":"string"},"confidence":{"type":"string","enum":["single-source","cross-validated","divergent"]},"spreadPct":{"type":"number","description":"Fractional gap between the two sources (present only with ?verify)"},"sources":{"type":"array","items":{"type":"object"}}},"required":["priceUsd","source","confidence","sources"]},"tags":["price","crypto","market-data","router","x402","oracle"]},{"name":"phone-intel","description":"Phone number intelligence for agents: pass any number and get back whether it is a valid E.164 number, its country, the carrier that holds it, and the line type — mobile, landline, or VoIP. One paid call, no account, no API key. Decide whether a number is worth calling or texting, or flag a VoIP number before you trust it. Free-format numbers are normalized; a syntactically bad number is rejected before any charge.","endpoint":"https://mimirapi.com/v1/phone/intel","method":"GET","priceUsd":0.03,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"number":{"type":"string","description":"Phone number in E.164 (+14155552671) or loosely formatted"}},"required":["number"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"number":{"type":"string","description":"Normalized E.164"},"valid":{"type":"boolean"},"countryCode":{"type":"string"},"carrier":{"type":"string"},"lineType":{"type":"string","description":"mobile | landline | voip | ..."},"source":{"type":"string"},"checkedAt":{"type":"string"}},"required":["number","valid","source"]},"tags":["phone","telephony","number-lookup","carrier","line-type","voip","validation"]},{"name":"send-sms","description":"Send an SMS on your agent behalf: one POST with an E.164 recipient and message text hands the message to a real carrier and returns a delivery receipt id. No account, no API key — pay per message over x402. The recipient is validated to E.164 before sending and the body is length-bounded; a rejected or undelivered message is never charged. Telephony as an access primitive: reach a human, not just an HTTP endpoint.","endpoint":"https://mimirapi.com/v1/sms","method":"POST","priceUsd":0.05,"rails":{"stripe":false,"x402":["base"]},"inputSchema":{"type":"object","properties":{"to":{"type":"string","description":"Recipient in E.164 (+14155552671)"},"text":{"type":"string","maxLength":320,"description":"Message body (<= 320 chars)"}},"required":["to","text"],"additionalProperties":false},"outputSchema":{"type":"object","properties":{"id":{"type":"string","description":"Provider message id"},"to":{"type":"string"},"from":{"type":"string"},"status":{"type":"string","description":"queued | sending | ..."},"segments":{"type":"number"},"source":{"type":"string"},"sentAt":{"type":"string"}},"required":["to","status","source"]},"tags":["sms","telephony","messaging","notification","text","a2p"]}]}