Sats4AI - Bitcoin-Powered AI Tools

io.github.cnghockey由 GitHub 账号 cnghockey 发布v1.5.13更新于 Oct 26, 2026

40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys.

已验证Streamable HTTP可网页运行沟通与协作媒体与设计AI 与机器学习

概览

AI 生成的概览

按次付费的 AI 工具箱(图像、视频、语音、翻译、文档、电话、短信、传真),用比特币闪电网络结算,无需注册或 API 密钥。

可以做什么
  • 生成与编辑媒体:文生图、文生视频、图片转视频、音乐、3D 模型、排版卡片,以及去背景、放大等图像处理
  • 语音与语言:600 多种语言的语音合成、声音克隆、带词级时间戳的转写、119 或 452 种语言的翻译、把 EPUB/PDF/TXT 转成有声书
  • 文档处理:OCR 与 Markdown 提取、收据结构化解析、200 多种格式互转、PDF 合并、HTML/Markdown 转 PDF、电子签名、登机牌转钱包卡
  • 触达真人:发送邮件、短信、传真,接收传真,拨打自动语音电话,派出 AI 语音代理,或逐轮驱动一通实时电话
  • 付费与跟踪:为单次调用创建闪电发票或为多次调用创建一张购物车发票,查询支付与任务状态、获取异步结果、申请退款
适用场景
适合需要一次性获得媒体、翻译、文档和电话等多种能力、又不想逐个服务商注册的助手,且可以接受用比特币按次小额付费。最适合已经配有闪电钱包、能自动支付发票的代理。
运行要求
可使用 sats4ai.com 的远程 HTTP 端点,或通过 npx 运行 npm 包 sats4ai-mcp 作为 stdio 代理,供不支持远程 HTTP 的客户端使用。未声明需要账号、API 密钥或环境变量。需要闪电钱包支付每张发票,README 建议再搭配一个闪电钱包 MCP 以实现自动支付。需要能访问该服务的网络。
安装前请注意
每次工具调用都花费真实比特币,价格从几个聪到数千聪不等,电话、短信、传真和语音代理按目的地与时长报价。每次调用需单独付款,若重试时未沿用同一 paymentId 可能重复扣费。发送邮件、短信、传真或拨打电话会触达真实的人,可能受相关法规约束。声音克隆需本人同意,不得用于冒充他人。上传的文档、音频和图片会发送给第三方服务。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Sats4AI - Bitcoin-Powered AI Tools,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.cnghockey%2Fsats4ai/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

{
  "mcpServers": {
    "sats4ai-bitcoin-powered-ai-tools": {
      "type": "http",
      "url": "https://sats4ai.com/api/mcp"
    }
  }
}

README

sats4ai-mcp

[图片]

The permissionless communication supercharger for AI agents. 40+ tools paid with Bitcoin Lightning. No signup, no API keys, no KYC.

A remote MCP (Model Context Protocol) server that gives AI agents access to AI phone calls in any language, voice in 602 languages, translation across 119, fax, SMS, transcription, audiobooks, image generation, music, document extraction, and more — all paid per-use with Lightning Network micropayments.

Quick Setup

Claude Desktop

Add to your claude_desktop_config.json (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

json
{  "mcpServers": {    "sats4ai": {      "url": "https://sats4ai.com/api/mcp"    }  }}

Claude Code

bash
claude mcp add sats4ai --transport http https://sats4ai.com/api/mcp

Verify the connection: ask the agent "list the first 3 Sats4AI models" — it should call list_models and return results. For agents that pay invoices autonomously, also add a Lightning wallet MCP (see Payment via Agent Wallets).

Cursor

Settings → MCP → Edit Config, then add:

json
{  "mcpServers": {    "sats4ai": {      "url": "https://sats4ai.com/api/mcp"    }  }}

Restart Cursor. In a new chat, ask "what Sats4AI tools are available?" to confirm tool discovery. For autonomous payments, pair with a Lightning wallet MCP (see Payment via Agent Wallets).

Windsurf

Edit ~/.codeium/windsurf/mcp_config.json (create it if missing). Important: Windsurf uses serverUrl (not url) for remote HTTP MCP servers:

json
{  "mcpServers": {    "sats4ai": {      "serverUrl": "https://sats4ai.com/api/mcp"    }  }}

Restart Windsurf. Sats4AI tools appear in the Cascade tool list. Cascade has a 100-tool cap across all MCPs, so keep the active set lean. For autonomous payments, pair with a Lightning wallet MCP (see Payment via Agent Wallets).

stdio proxy (legacy MCP clients)

For clients that don't support remote HTTP servers, use the bundled stdio proxy:

bash
npx sats4ai-mcp

Or in your config:

json
{  "mcpServers": {    "sats4ai": {      "command": "npx",      "args": ["sats4ai-mcp"]    }  }}

Any MCP Client

The server URL is:

https://sats4ai.com/api/mcp

This is a remote HTTP server — no local process, no dependencies, no installation needed.

What Can It Do?

Once connected, just ask your agent. These prompts exercise the full flow — discover, pay the Lightning invoice, get the result:

  • "Translate this paragraph to Spanish with Sats4AI — create the payment, pay the invoice with my lightning wallet, then run the translation."
  • "Check what an SMS to +33612345678 costs, then send it: 'Your appointment is confirmed for 3pm tomorrow.'"
  • "Generate an image of a lighthouse in a thunderstorm — pay the invoice and show me the result."
  • "Send an AI voice agent to call +14155551234 and reschedule my dentist appointment, then give me the transcript."
  • "Turn this EPUB into an audiobook — create the payment, then poll check_job_status until it's done."
  • "Remove the background from this image."
  • "Transcribe this audio file, then translate the transcript to English."
  • "Get a quote for faxing this 3-page PDF to +4930123456, then send it."

Available Tools

AI Generation

ToolDescriptionPrice
imageGenerate images from text prompts100-200 sats
videoGenerate videos from text prompts~250-400 sats/sec by resolution (768p 250 / 2K 400)
video_from_imageAnimate a still image into video~250-400 sats/sec by resolution (768p 250 / 2K 400)
textChat with AI language models (Kimi K3, 1M context, vision)~1 sat/10 chars (best) · ~1 sat/1000 (standard)
translate_textTranslate text across 119 languagesfrom 1 sat/1000 chars
translate_rare_languageTranslate into 452 languages frontier models don't serve — Bhojpuri, Maithili, Magahi, Manipuri, Quechua, Shan… each with a measured quality scorefrom 50 sats
musicGenerate songs with AI vocals, or an instrumental (structure tags, no words)5 sats/sec, 15-300s (75-1,500 sats) · written lyrics +25
3dConvert a photo to a 3D GLB model1,600 sats

Translation price varies by language. The target language picks the engine, so a language served by a stronger model costs more than the standard 1 sat/1000 characters. GET /api/languages returns the exact price, the model and its measured chrF score for every language, and the 402 challenge always quotes the real amount before you pay.

Audio & Speech

ToolDescriptionPrice
ttsText to speech (3 tiers, 602+ languages)per-char, from 1 sat
transcriptionSpeech to text (13 languages)10 sats/min
voice_cloneClone a voice from an audio sample7,500 sats
epub_to_audiobookConvert books (EPUB/PDF/TXT) to AI-narrated audiobooks500+ sats
translate_epubTranslate a whole EPUB into another language — EPUB in, EPUB out, markup intact (async; create_payment needs characterCount + targetLanguage)per character on the target language's engine rate, min 50 sats

Image Processing

ToolDescriptionPrice
remove_backgroundRemove background from any image (BiRefNet, SOTA)44 sats
upscale_imageUpscale images 2x/4x with Real-ESRGAN5 sats
restore_faceRestore blurry/damaged faces (CodeFormer)25 sats
colorize_imageColorize B&W photos (DDColor, ICCV 2023)5 sats
deblur_imageRemove camera-shake blur (NAFNet, ECCV 2022)110 sats
render_cardTypographic title card (PNG/JPEG) — deterministic layout, the text you send is the text that appears5 sats
detect_nsfwClassify image safety (normal/suggestive/explicit)2 sats
detect_objectsDetect objects with bounding boxes (Grounding DINO)5 sats
remove_objectRemove objects by description — no mask needed130 sats
image_editEdit images with AI instructionsDynamic (varies by model) — check get_model_pricing

Vision & Documents

ToolDescriptionPrice
visionAnalyze and describe image content21 sats
ocrExtract text from PDFs and images10 sats/page
extract_receiptReceipt to structured JSON25 sats/page
file_convertConvert between 200+ file formats100 sats
pdf_mergeMerge multiple PDFs into one100 sats
convert_html_to_pdfHTML/Markdown to PDF50 sats
e_signatureSign a PDF with a typed or drawn signature1,000 sats
boardingpass_walletAirline boarding pass (PDF/screenshot) to a Google Wallet pass100 sats/pass

Communication

ToolDescriptionPrice
send_emailSend email to any address200 sats
send_smsSend SMS worldwideDynamic (varies by destination) — create_payment returns the exact quote
place_callPlace automated phone callsDynamic (varies by destination) — create_payment returns the exact quote
ai_callSend an AI voice agent to make a two-way callVaries by destination and duration — create_payment returns the exact quote
open_voice_bridgeOpen a phone call that YOUR agent drives, one turn at a time. We dial and transcribe. Your agent replies. Turn-based, not real-time: about 2 seconds of ours pass between the callee's last word and the start of your reply, plus your model's thinking timeA deposit, priced by destination — create_payment returns the exact quote
voice_bridge_saySpeak into the open call: text (602 languages) or your own audio. Keep each reply to one or two sentences (700 speech units at most). The callee cannot interruptIncluded in the deposit
poll_voice_bridgeRead what the callee said. Pass waitMs (up to 25000) to get the transcript as soon as they finish talkingIncluded in the deposit
end_voice_bridgeHang up. Returns the final transcript and a refund link for the unused deposit timeIncluded in the deposit
send_faxSend a fax worldwide (PDF URL or typed text)500 sats (≤10 pages), +50 sats/page after
receive_faxOpen a 24h window to receive a fax, delivered to email500 sats (+200 OCR add-on)

Helper Tools

ToolDescription
list_modelsBrowse available AI models and pricing
get_model_pricingGet pricing for a specific model
create_paymentCreate a Lightning invoice for a service
check_payment_statusCheck if payment was received. With a cart id, it shows the state of each item
create_cartPay for 2 to 10 calls with ONE invoice (up to 2,000 sats in all). Each item then works as a normal payment. An item you do not use is refunded for its own price after about an hour
check_job_statusPoll async jobs (video, 3D, audiobook, EPUB translation)
get_job_resultGet completed job results
request_refundRequest a refund for a failed service
vote_on_serviceUpvote or downvote a planned service
list_planned_servicesSee upcoming services and vote

How It Works

  1. Agent calls list_models to discover available models and pricing
  2. Agent calls create_payment — gets a Lightning invoice
  3. Payment is made via the agent's Lightning wallet (e.g., lightning-wallet-mcp)
  4. Agent calls the tool (e.g., image, text) with the paymentId
  5. Result is returned — base64 image, text, URL, etc.

No API keys. No accounts. No rate limits tied to identity. Just Bitcoin and AI.

Error Handling & Refunds

When a paid tool fails after payment, the JSON-RPC error response includes refund information:

json
{  "jsonrpc": "2.0",  "id": 1,  "error": {    "code": -32603,    "message": "Image generation failed",    "data": {      "refund": {        "charge_id": 12345,        "refund_amount": 200,        "lnurl_withdraw": "lnurl1dp68gurn8ghj7..."      }    }  }}

Claim the refund using any LNURL-compatible wallet or the claim_lnurl_withdraw tool from lightning-wallet.

Errors also carry an error_code plus a recovery suggestion, an example, and — when the code is retryable — retry_after_seconds, in error.data. The same fields appear on a tool result with isError: true and on every FAILED final from await_result, so one vocabulary covers every path: branch on error_code, never on the error text. Payment-lifecycle codes: PAYMENT_NOT_FOUND (wrong paymentId), PAYMENT_PENDING (invoice not paid yet), PAYMENT_ALREADY_USED (each payment covers one call); a refunded failure reads L402_REFUND_ISSUED with the refund attached. Full catalog: GET https://sats4ai.com/api/error-codes.

Payment via Agent Wallets

Pair with a Lightning wallet MCP server so your agent can pay autonomously:

json
{  "mcpServers": {    "sats4ai": {      "url": "https://sats4ai.com/api/mcp"    },    "lightning-wallet": {      "command": "npx",      "args": ["lightning-wallet-mcp"]    }  }}

The agent uses lightning-wallet to pay invoices from sats4ai, enabling fully autonomous AI tool usage.

Some agent wallets cap how many payments they send in an hour. create_cart takes 2 to 10 items and returns ONE invoice, so a whole task is ONE payment. Each item then works with its own paymentId. Keep those ids: the cart id cannot run a tool.

Block Buzz

Running Block Buzz, the open-source workspace where AI agents are first-class teammates? A Buzz agent is a Goose / Codex / Claude Code subprocess, and Buzz spawns it inheriting its MCP config — so this server works inside a Buzz workspace with no Buzz-specific setup.

The one-step path is the Sats4AI persona pack: it adds an @sats4ai teammate wired to this server plus a Lightning wallet, so it can look up a price, pay the invoice, and return the result in-channel.

bash
git clone https://github.com/cnghockey/sats4ai-buzz-packbuzz pack validate ./sats4ai-buzz-pack

Wiring it by hand instead? Add sats4ai (and a wallet MCP) to whichever agent Buzz runs — its config carries straight over. Note that Buzz's .mcp.json is stdio-only, so use the npx sats4ai-mcp proxy form (shown above), not the remote url form.

L402 API

For direct HTTP integration without MCP, use the L402 API:

bash
# Step 1: Request -> get 402 + Lightning invoicecurl -X POST https://sats4ai.com/api/l402/generate-image \  -H "Content-Type: application/json" \  -d '{"input": {"prompt": "a cat in space"}}' -i
# Step 2: Pay the invoice with any Lightning wallet
# Step 3: Re-send with proofcurl -X POST https://sats4ai.com/api/l402/generate-image \  -H "Content-Type: application/json" \  -H "Authorization: L402 <macaroon>:<preimage>" \  -d '{"input": {"prompt": "a cat in space"}}'

Or skip the manual steps entirely: our L402 endpoints speak the standard L402 protocol, so lnget — Lightning Labs' own L402 client — pays them automatically. Point it at your Lightning node and call the endpoint:

bash
lnget -X POST -d '{"text": "Hello", "targetLanguage": "Spanish"}' \  --content-type application/json --max-cost 50 \  https://sats4ai.com/api/l402/translate-text# Fetches the 402, pays the invoice, retries, prints the result.

Full L402 docs: sats4ai.com/l402 | Code examples: sats4ai-l402-examples

Service Discovery

Machine-readable endpoints for agent discovery:

bash
# Full service catalog with pricing, quality benchmarks, and performance metadataGET https://sats4ai.com/.well-known/l402-services
# MCP tool catalog with latency (p50/p95), reliability, and failure modesGET https://sats4ai.com/api/mcp/discovery
# Semantic search — find tools by capabilityGET https://sats4ai.com/api/discover?q=translate
# Per-service metadata with enums and input schemasGET https://sats4ai.com/api/l402/{service}

Every paid tool includes performance metadata (latency p50/p95, reliability rating, known failure modes) so agents can make informed decisions about which tools to call and how long to wait.

Programmatic Usage

js
const { SERVER_URL, TOOLS, getClaudeConfig } = require("sats4ai-mcp");
console.log(SERVER_URL);       // "https://sats4ai.com/api/mcp"console.log(TOOLS);            // ["image", "video", "text", ...]console.log(getClaudeConfig()) // { mcpServers: { sats4ai: { url: "..." } } }

Security

Found a vulnerability? Do not open a public issue. Email [email protected]. See SECURITY.md for full disclosure policy and scope.

Links

Support / donate

Your agent just got a wallet and 40+ tools. Please do not ask us what it bought.

If this was useful to you and you like what we do, consider sending a few sats our way:

⚡ [email protected]

(It's a Bitcoin Lightning address: pay it from any Lightning wallet. Looks like an email, isn't one. Lightning sats only: no on-chain, no fiat, no cards, no altcoins, no refunds on gratitude.)

Not this time? That's cool too. We've been there. A star on the repo is a free hug.

License

MIT

来源:README.md,提交 43e063b

工具

58

create_payment

Create a Lightning invoice to pay for one AI service call. Returns JSON: { paymentId, invoice (BOLT11), amount (sats), expiresAt }. Each payment covers exactly one tool call — call this once per operation. Typical flow: list_models → create_payment → check_payment_status → call tool. The invoice expires in 10 minutes. Call list_models first to discover modelId values. modelId is optional — omit it to use the default (best) model. Some tools require extra params at payment time because pricing depends on them: generate_text requires prompt (price = f(char count)); text_to_speech requires text (price = f(char count) by tier); transcribe_audio / transcribe_translate take durationMinutes (10 sats/min — declare your audio length, default 1); send_sms, place_call, ai_call require phoneNumber; generate_video and animate_image require duration, and take an optional resolution (250-400 sats/sec by resolution — quote with the SAME duration and resolution you will execute with); edit_image is a flat 200 sats per edit (resolution is optional and does not change the price); epub_to_audiobook requires characterCount (total text characters in the book — price is per-character by voice tier, minimum 500 sats). If required params are missing, the response includes an error with the missing field names.

输入参数ocrmodetextpromptmessagemodelIddurationquantitytoolName必填resolutionfileContextphoneNumber另有 4 个

create_cart

Pay for 2 to 10 calls with ONE Lightning invoice, up to 2,000 sats in all. Each item is { toolName, ...the same inputs create_payment takes for that tool }. The server checks and prices EVERY item first: one bad item refuses the whole cart, with no invoice, and the error names the item by its index. Returns JSON: { cartId, lightningInvoice, totalSats, expiresAt, items: [{ index, toolName, paymentId, amountSats }] }. Pay the ONE invoice. Then call each item's tool with that item's own paymentId, exactly as you would after create_payment. KEEP the paymentIds from this reply: each is the only way to use that item or to be refunded for it, and nothing can show them to you again. check_payment_status(cartId) shows the state of each item (it never repeats the paymentIds). An item you do not use is refunded for its own price after about an hour. Only one-shot tools can be in a cart (text, translation, image tools, document tools, text_to_speech); for calls, SMS, fax, email, video, music and other long jobs use create_payment.

输入参数items必填

check_payment_status

Check whether a Lightning invoice has been paid. Returns JSON: { paid, serviceUsed, refundAllowed, readyToUse, next, state } — readyToUse=true means paid, not yet consumed, and no refund queued; next says what to do. state is unpaid, paid, delivered, held, refund-open, claimed or expired. held (with its appeal_url) is present while the payment is held for review. deliveryStatus and deliveryDetail are present for SMS and fax: a send that succeeded means accepted, not delivered, so poll for the carrier outcome. Call after create_payment to verify the user has paid before calling the target tool. Invoices expire after 10 minutes — if expired, create a new payment. Most MCP clients with a connected wallet pay instantly, so a single check is usually sufficient. This tool is free and does not require payment.

输入参数paymentId必填

generate_image

Generate an image from a text prompt. Returns JSON with image URL. Models: Grok Imagine 2 (fast creative generation, 100 sats), Seedream 5 Pro (most permissive content policy, 150 sats at 1K / 300 at 2K), GPT Image 2.5 (ranked #1 on the Artificial Analysis text-to-image leaderboard as of September 2026, 1200 sats, default). Supports img2img with optional base64 input. Optional aspectRatio (default 1:1) works on every model tier and does not change the price. Stable endpoints — models upgrade automatically as SOTA evolves. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_image'.

输入参数prompt必填modelIdpaymentId必填resultKeyaspectRatioimageBase64

generate_video

Generate cinematic video from a text prompt. Uses MiniMax H3 — top 2 on the Artificial Analysis text-to-video leaderboard — with native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), 5-15 seconds, priced per second by resolution (native audio free). Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_video' and duration, resolution params.

输入参数prompt必填modelIdduration必填paymentId必填resolutiongenerate_audioreference_audioreference_image

animate_image

Animate a still image into cinematic video with MiniMax H3 — provide a first frame and a prompt to direct the motion. Native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), duration 5-15 seconds, priced per second by resolution. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='animate_image'.

输入参数prompt必填modelIdduration必填paymentId必填resolutionimageBase64必填

check_job_status

Poll the status of an async job. Use this after calling any async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call) that returns a requestId. Returns JSON: { status: 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', requestId, jobType }. For epub-audiobook, also includes progress (0-100) and chapterProgress array. Poll every 5-10 seconds. When status is 'COMPLETED', call get_job_result to retrieve the output. When status is 'FAILED', the response includes an error message — do not retry automatically. This tool is free and does not require payment. Do NOT use for synchronous tools (generate_image, generate_text, etc.) — those return results immediately.

输入参数jobType必填requestId必填

get_job_result

Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='COMPLETED' — calling on a job that has not completed returns an error. Returns JSON whose shape depends on jobType: video/video-image → { videoUrl, duration }; image-3d → { modelUrl } (GLB format); transcription → { text, language, segments }; epub-audiobook → { url, annexeUrl, totalChapters, completedChapters } (annexeUrl is a companion PDF of equations, tables, addresses, keys and hashes the narration replaces with a spoken marker; null when the book had none); ai-call → { transcript, duration, summary }. A video or 3D job whose payment was refunded returns error_code RESULT_NOT_AVAILABLE, unless you pass its paymentId: the payer then gets the pending refund (error_code L402_REFUND_ISSUED). An audiobook whose payment was refunded also returns RESULT_NOT_AVAILABLE, with no link: claim the refund at /recover with the payment ID. A web 3D purchase not yet collected on its own page also returns RESULT_NOT_AVAILABLE. All URLs are temporary (valid ~1 hour) — download immediately. This tool is free and does not require payment. Do NOT use for synchronous tools — those return results directly.

输入参数jobType必填paymentIdrequestId必填

await_result

Wait for an async job to finish and return its result in ONE call — no manual polling loop. Pass the requestId + jobType from an async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call). If your MCP client opened the request with 'Accept: text/event-stream', this streams live progress (notifications/progress) while it waits, then returns the final result; otherwise it does a single status check and returns immediately (call again until status='COMPLETED'). For long jobs it waits up to ~4 minutes per call, then returns status='IN_PROGRESS' with timed_out=true — call again with the same requestId to keep waiting. Equivalent to check_job_status + get_job_result combined. Free; no payment.

输入参数jobType必填paymentIdrequestId必填

analyze_image

Analyze and describe image content, answer visual questions, extract information from screenshots or photos. Uses Qwen VL — multimodal vision-language model with strong OCR, chart reading, and spatial reasoning. 21 sats per image. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='analyze_image'.

输入参数prompt必填modelIdpaymentId必填imageBase64必填

generate_text

Generate text using frontier AI language models. Pure per-character pricing (no minimum): Kimi K3 (best, ~10 chars/sat, 1M context, default), GPT-OSS-120B (standard, ~1000 chars/sat, 119 languages, best value). Rates are BTC-pegged and re-quoted hourly, so treat them as approximate — the 402 challenge is the authoritative price. Supports document Q&A via fileContext. For images, use the analyze_image tool. Stable endpoints — models upgrade automatically. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_text' and the exact prompt.

输入参数prompt必填modelIdfileNamemaxTokenspaymentId必填fileContextimageBase64systemPrompt

generate_music

Generate a full song with AI vocals from a style prompt plus lyrics — or an INSTRUMENTAL bed / underscore (background music under video narration, intros, outros) by sending ONLY structure tags and no words. You choose the length: 15-300 seconds at 5 sats/second (75-1500 sats). Specify BPM, key, genre, mood in prompt. Returns a 44.1 kHz 16-bit stereo WAV URL. Structure tags must each be on their OWN line — words on a tag line are DROPPED by the model, which silently shortens the song. Don't want to write lyrics? Set lyricsAddon:true (+25 sats) and optionally lyricsAbout to say what they should be about. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_music' AND the same duration (the price is bound to it).

输入参数lyricsprompt必填modelIddurationpaymentId必填resultKeylyricsAboutlyricsAddon

text_to_speech

Text-to-speech with 3 tiers: OmniVoice Global (602+ languages including Yoruba, Bengali, Cebuano, Twi, voice design, ~106 chars/sat — use 'language' parameter with ISO code), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, 40+ languages, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, 40+ languages, ~5 chars/sat). Adjustable speed (0.5-2.0x). Returns audio URL. Pay with Bitcoin Lightning — no API key or signup needed. When NOT to use: not for phone calls (use place_call for one-shot broadcasts, ai_call for AI voice agents, or open_voice_bridge to drive the call with your own LLM). For rare/underserved languages (Yoruba, Twi, Marathi, Cebuano, etc.), pick OmniVoice Global via language= — Inworld/Minimax don't cover these. Requires create_payment with toolName='text_to_speech'.

输入参数text必填speedvoicemodelIdlanguagepaymentId必填resultKeyvoice_description

transcribe_audio

Transcribe audio to text with WORD-LEVEL timestamps (timestamps:'word' returns per-word start/end times — subtitle alignment, karaoke captions, cutting video to speech) or segment timestamps. Uses Mistral Transcription — high-accuracy speech recognition that handles accents, background noise, and overlapping speakers. 13 languages: en, zh, hi, es, ar, fr, pt, ru, de, ja, ko, it, nl. Pass names (the people and places spoken in the audio) to help the speech model spell them right — free, same price. Up to 500 MB / 60 minutes per file. Async — returns requestId, poll with check_job_status(jobType='transcription'), then get_job_result. 10 sats/min. Privacy: audio and transcripts are ephemeral — processed, returned, and discarded. Never persisted. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='transcribe_audio'.

输入参数namesdiarizelanguagepaymentId必填timestampsaudioBase64必填callback_idcallback_url

transcribe_translate

Compound endpoint — one payment turns audio in any of 13 source languages into both a transcript AND a translation in any of 119 target languages. Perfect for WhatsApp voice messages in a language you don't speak (Yoruba → English), or recording a meeting in another language and reading it in yours. Auto-detects source if omitted. Pass names (the people and places spoken in the audio) to help the speech model spell them right — free, same price. Async — returns requestId, poll with check_job_status(jobType='transcribe-translate'). Flat price covers STT + translation. Cheaper than calling transcribe_audio + translate_text separately for typical voice messages. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='transcribe_translate'.

输入参数namespaymentId必填audioBase64必填sourceLanguagetargetLanguage必填

translate_epub

Translate a whole EPUB into another language and get an EPUB back. Every chapter is translated with its markup intact — headings, emphasis, footnote links, images and code stay where they were — the package language is retargeted and the table of contents is translated. 119 target languages; the target language picks the engine and the engine's row carries the price (same per-character rate as translate_text for that language, min 50 sats). Async — returns requestId, poll with check_job_status(jobType='translate-epub'), then get_job_result for the download url (temporary, 6h). Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_epub', characterCount (visible characters of the book) and targetLanguage; the real file is re-priced at execution and a short-pay is refunded with the exact amount to re-pay.

输入参数fileNamepaymentId必填epubBase64必填sourceLanguagetargetLanguage必填

generate_3d_model

Generate a textured 3D GLB model from EITHER a photo OR a text prompt (provide exactly one, not both). Uses Tencent Hunyuan3D — high-fidelity geometry and PBR materials. Async — returns requestId, poll with check_job_status. 1600 sats per model. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='generate_3d_model'.

输入参数promptmodelIdpaymentId必填imageBase64

extract_document

Extract text from PDFs and images as clean Markdown. Uses Mistral OCR — handles complex layouts, tables, handwriting, multi-column documents, and mathematical notation. Preserves document hierarchy in structured Markdown. 10 sats/page. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='extract_document' and quantity=pageCount for multi-page PDFs.

输入参数modelIdpaymentId必填documentBase64必填

convert_file

Convert files between 200+ formats: documents (PDF, DOCX, XLSX, HTML→PDF), images (PNG, JPG, WEBP, SVG), PDF first page to image (PDF→JPG, PDF→PNG), audio (MP3, WAV, FLAC), video (MP4, AVI, MOV). Industrial-grade conversion engine — preserves formatting and quality. Returns download URL. 100 sats. Pay per request with Bitcoin Lightning — no API key, no account, no subscription needed. Requires create_payment with toolName='convert_file'.

输入参数fileUrlpaymentId必填resultKeyfileBase64extensionTo必填extensionFrom必填

send_email

Reach anyone with an email address — useful when your task requires formal communication, sending reports, or contacting someone outside chat. No SMTP server, no domain verification needed. Plain text, max 10,000 chars body, 200 chars subject. 200 sats. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='send_email'.

输入参数to必填body必填replyTosubject必填paymentId必填

clone_voice

Clone a voice you own or have permission to use, from a single audio sample. Returns a reusable voice_id for text_to_speech. Requires consent=true; cloning a voice to impersonate someone is prohibited. High-fidelity reproduction capturing tone, cadence, and accent. SAMPLE REQUIREMENTS: MP3, M4A or WAV, 10 seconds to 5 minutes, 20 MB max, one speaker, no background music — a sample outside these limits is rejected upstream and the clone fails. Turbo (faster) or HD (higher quality) modes. 7,500 sats per clone. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='clone_voice'.

输入参数modelconsent必填accuracypaymentId必填voiceFileUrl必填

edit_image

Edit an image with natural language instructions. Uses MAI-Image-2.6, ranked #3 on the Artificial Analysis image-editing leaderboard as of September 2026 — understands context, handles object addition/removal, style transfer, and inpainting. Returns JSON with image URL. 200 sats per edit, one flat price. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='edit_image'.

输入参数prompt必填paymentId必填resultKeyresolutionaspectRatioimageBase64必填outputFormatreturnBase64

merge_pdfs

Merge multiple PDF files into a single document. Preserves bookmarks, links, and formatting. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Minimum 2 files, no maximum. Files are concatenated in array order. 100 sats per merge regardless of file count. Use convert_file instead if you need format conversion (e.g., DOCX→PDF). Pay per request with Bitcoin Lightning — no API key, no account needed. Requires create_payment with toolName='merge_pdfs'.

输入参数files必填paymentId必填resultKey

convert_html_to_pdf

Convert HTML or Markdown to a pixel-perfect PDF. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Great for generating invoices, reports, receipts, or formatted documents programmatically. Supports full HTML/CSS including tables, images (base64 or URL), and inline styles. For Markdown input, set format='markdown'. 50 sats per conversion. Use convert_file instead for converting existing files between formats (e.g., DOCX→PDF). Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='convert_html_to_pdf'.

输入参数html必填formatpaymentId必填resultKey

render_card

Render a typographic card — headline, versus (two columns), list, stat (one big number) or quote — as a PNG or JPEG at 1920x1080 or 2560x1440. Deterministic layout, no AI model: the text you send is exactly what appears, which no image generator can promise. Built for video title cards and slides, thumbnails, quote cards and social posts. Lists and comparisons REVEAL one beat at a time (revealed:N / show_right:false) — render N states and cut between them, and the text never shifts. Optional theme (hex colours). Text coverage: Latin, Greek and Cyrillic (DejaVu Sans) with Noto Sans fallback for Arabic, Indic, Thai, Chinese, Japanese and Korean; emoji render as single-colour silhouettes in the text colour, not in full colour. Returns { url, width, height, format, mime, expires_in_seconds } — the url is a signed download valid 2 h; fetch it, the image is not inlined. Hard caps: 3 lines x 40 chars, 6 items x 40 chars — a spec over a cap is refused BEFORE payment. 5 sats per card. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='render_card'.

输入参数subleftsizetextitemslabellinesrightthemetitlevalueformat另有 8 个

translate_text

Translate text across 119 languages with high accuracy. The target language picks the engine: GPT-OSS 120B by default, or a higher-scoring model (Gemini) where one measurably beats it. Auto-detects source language. Privacy-preserving: no data stored. Pricing: 1 sat per 1,000 characters on the standard engine, minimum 1 sat per request; a routed language costs more. GET /api/languages returns the exact price, engine and measured chrF for every language, and the 402 always quotes the real amount before you pay. Language parameters accept English names ('Spanish', 'Chinese (Simplified)') or ISO-639 codes / locale tags ('es', 'en-US', 'pt-BR', 'zh-Hans'). Supported languages: Afrikaans, Albanian, Amharic, Arabic, Armenian, Assamese, Azerbaijani, Basque, Belarusian, Bengali, Bosnian, Bulgarian, Burmese, Catalan, Cebuano, Chichewa, Chinese (Simplified), Chinese (Traditional), Corsican, Croatian, Czech, Danish, Dari, Dutch, English, Esperanto, Estonian, Farsi, Fijian, Filipino, Finnish, French, Frisian, Galician, Georgian, German, Greek, Guarani, Gujarati, Haitian Creole, Hausa, Hawaiian, Hebrew, Hindi, Hmong, Hungarian, Icelandic, Igbo, Indonesian, Irish, Italian, Japanese, Javanese, Kannada, Kazakh, Khmer, Kinyarwanda, Korean, Kurdish, Kyrgyz, Lao, Latvian, Lingala, Lithuanian, Luganda, Luxembourgish, Macedonian, Malagasy, Malay, Malayalam, Maltese, Maori, Marathi, Mongolian, Nepali, Norwegian, Occitan, Odia, Pashto, Polish, Portuguese, Punjabi, Romanian, Romansh, Russian, Samoan, Scots Gaelic, Serbian, Sesotho, Setswana, Shona, Sindhi, Sinhala, Slovak, Slovenian, Somali, Spanish, Sundanese, Swahili, Swedish, Tajik, Tamil, Tatar, Telugu, Thai, Tigrinya, Tongan, Turkish, Turkmen, Ukrainian, Urdu, Uzbek, Vietnamese, Welsh, Wolof, Xhosa, Yiddish, Yoruba, Zulu. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='translate_text' and prompt (the text to translate).

输入参数text必填modelIdpaymentId必填sourceLanguagetargetLanguage必填

multilingual_ask

Ask a frontier AI a question in your OWN language and get the answer back in that same language, in ONE payment. We translate the question to English, answer it with a frontier model, then translate the answer back. Two engines behind one endpoint: 119 mainstream languages use the LLM translate tier; anything those models do not serve falls through to MADLAD-400 on our own GPU (452 languages, 251 of which ChatGPT, Claude and Gemini do not support at all). So a Wolaytta, Tiv or Q'eqchi' speaker gets frontier reasoning in their own language, which no other API offers. Rare-language quality is uneven and published per language - GET https://sats4ai.com/api/languages. Priced from question length plus a fixed 2000-character answer allowance at the chosen tier's rate; the rare-language path costs more (GPU both ways). Requires create_payment with toolName='multilingual_ask' AND the `language` you intend to use - the quote depends on it.

输入参数modellanguage必填question必填paymentId必填

translate_rare_language

Translate into 452 languages, 251 of them NOT supported by ChatGPT, Claude or Gemini (29 of those 251 measured at fair quality or better against human references) — including Bhojpuri (~50M speakers), Maithili (~34M), Egyptian Arabic (~100M), Moroccan Arabic (~30M), Chhattisgarhi, Magahi, Manipuri, Kashmiri, Shan, Kachin, Awadhi, Tamazight, Crimean Tatar, Quechua, Nuer, Sango, plus indigenous and minority languages with no callable API anywhere. Runs MADLAD-400 (Apache-2.0). QUALITY VARIES AND IS PUBLISHED PER LANGUAGE: every language carries a measured tier — good (chrF++ >= 45 vs human reference translations), fair (32-45), unverified (no benchmark exists, untested, may be poor), experimental (known weak). The response repeats the tier so you can judge how much to trust it. GET https://sats4ai.com/api/l402/translate-rare-language for the full language list with tiers, or GET /api/languages. Unsupported languages are rejected BEFORE payment. For mainstream languages use translate_text instead — it is cheaper and more fluent. Priced 50 sats base + 0.002 sats/char (GPU). Pay with Bitcoin Lightning — no API key or signup. Requires create_payment with toolName='translate_rare_language'.

输入参数text必填paymentId必填targetLanguage必填

extract_receipt

Extract structured data from receipts, invoices, and financial documents. Uses a dual-model pipeline (Mistral OCR + Kimi K3) for high-accuracy extraction. Returns JSON with merchant, date, line items, totals, tax, currency, and expense category. Handles crumpled receipts, faded text, and multi-page invoices. 25 sats/page. Pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='extract_receipt'.

输入参数paymentId必填documentBase64必填

boardingpass_wallet

Turn airline boarding passes (PDF or screenshot) into Google Wallet passes with the fields a plain scan drops — boarding zone, gate, boarding time — for a whole family in one go. Returns one save link per passenger plus a single 'add all' link. The original barcode is preserved byte-for-byte so it scans at the gate. Priced 100 sats PER PASS: create_payment with toolName='boardingpass_wallet' and quantity=<number of passes> (if you under-count, the call returns the exact price to re-pay). Image/screenshot files that turn out to carry no extra fields are refunded. Privacy: files are processed in memory and never stored; the save link expires in 30 minutes, so nothing is retained. Pay with Bitcoin Lightning — no account, no card.

输入参数documentspaymentId必填documentBase64

e_signature

Send a document out for legally binding e-signature and have the signed copy emailed back. Upload the PDF, name up to 3 signers, and give the email where the signed copy should land. Flat 1000 sats per document. The request is fulfilled through an established e-sign provider. The signed copy arrives once every signer has signed, so expect their turnaround — hours to days — not seconds. The API reply acknowledges the request; there is nothing to poll. Privacy: the PDF is processed in memory and never stored. Pay with Bitcoin Lightning — no account, no card. Requires create_payment with toolName='e_signature'.

输入参数notesigners必填paymentId必填customerEmail必填documentBase64必填

epub_to_audiobook

Convert books (EPUB/PDF/TXT) to full audiobooks with automatic chapter detection, multi-voice narration, and optional translation to any language before narration. 3 voice tiers: OmniVoice Global (602+ langs, ~106 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, ~5 chars/sat). Min 500 sats. Async — returns jobId, poll until completed (5-60+ min). Single payment, full outcome — no multi-step orchestration required. Pay with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='epub_to_audiobook'.

输入参数speedvoicemodelIdfileName必填languagepaymentId必填epubBase64必填translateToLanguageselectedChapterIndices

send_sms

Reach a human via SMS when your task requires real-world coordination. Send to any phone number worldwide — delivery timing varies by destination. No phone plan, no SIM card, no telecom account needed. Pay with Bitcoin Lightning — no API key, no KYC, no subscription. Requires create_payment with toolName='send_sms' and phoneNumber+message at payment time. The phoneNumber must match the one used in create_payment. The message must not need more SMS segments than were paid for. Free rules, refused before payment, with no invoice: no links in the text, a send limit per destination number, and no number on our do-not-contact list. A paid send checks the limit and the list again; a refusal then refunds in full. A link added after payment is held, not refunded: a link is never sent. A US number: Queued. A text to a US number can take a few hours to arrive. Each SMS ends with a short signature line naming the service and a safety/stop link, within the paid segment count. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are rep

输入参数message必填paymentId必填phoneNumber必填

place_call

Bridge the digital-physical gap — place an automated phone call to deliver a spoken message or play audio to any number. Useful when your task requires notifying a human, delivering alerts, or reaching someone who isn't online. Pay with Bitcoin Lightning — no telecom account, no KYC, no subscription. Requires create_payment with toolName='place_call' and phoneNumber. The message plays first. Then a short spoken notice names the service and how to stop these calls: call the number back, or go to sats4ai.com/c. The notice fits the prepaid minutes. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment. Held messages and calls are not sent or placed; payment is retained during review, not refunded immediately. Confirmed violations are not refunded. Unresolved communication holds become eligible for a refund after 24 hours; refund eligibility is processed by scheduled maintenance. Human review costs 1 sat at https://sats4ai.com/appeal. Recent message text and extracts of recording transcripts support recipient-scoped abuse checks for 24 hours. These context records are deleted hourly, so storage can last up to 25 hours. Original uploaded-call transcripts and raw held-request or appeal evidence enter cleanup after 30 days. We also keep a de-identified record of screened communications to measure and improve fraud detection. Identifiers in it — contact addresses, numbers and names that follow a greeting — are replaced with one-way tokens, and it holds no destination number and no account, because the service has none. De-identification is not anonymization: text a sender wrote can still identify someone. Do not submit personal information the service does not need. Providers keep records under their own policies.

输入参数messageaudioUrlpaymentId必填phoneNumber必填durationMinutes

send_fax

When your task requires a paper-trail on the other end — loan paperwork to a bank, signed contract to a notary, booking confirmation to a hotel in Japan — send a fax to any number worldwide. Two modes: 'pdf' (fetch from public URL) or 'text' (we format typed text into a PDF locally). Text/cover support Latin (incl. Central European, Vietnamese), Greek, Cyrillic, Japanese, Korean, Chinese (Simplified + Traditional), Thai, Hindi, Georgian, Armenian, Amharic; RTL scripts (Arabic/Hebrew) and emoji are rejected BEFORE your payment is consumed. Optional cover page. Pricing: 500 sats for up to 10 pages, +50 sats per additional page. Max 350 pages / 50 MB. Pass 'pages' to create_payment as 'quantity' to get the right invoice. Pay with Bitcoin Lightning — no fax machine, no phone line, no telecom account.

输入参数mode必填textpagespdfUrlcoverTextpaymentId必填phoneNumber必填

receive_fax

When you're expecting a fax back — bank confirmation, court filing, signed document — open a 24h receive window at our shared number +1 320 299 1523. Matched by caller ID (last 10 digits of the sender), delivered to your email as soon as it arrives. Optional OCR add-on (+200 sats) returns a searchable text file alongside the PDF — useful for feeding the content to an agent or archiving. Optional callback_url POSTs an HMAC-signed webhook on delivery so your agent doesn't have to poll. No refund if no fax arrives within the window (prevents subscription squatting). If OCR fails, an LNURL-withdraw for 200 sats is included in the delivery email for partial refund. Pay with Bitcoin Lightning — no dedicated fax number rental, no monthly subscription, no account.

输入参数ocremail必填paymentId必填fromNumber必填callback_idcallback_url

ai_call

When your task hits a wall that requires a human — booking, negotiating, navigating IVR menus, getting information from a business — send an AI voice agent to handle the call. The agent follows your instructions, has a real two-way conversation, and returns a full transcript with structured analysis. One redial, 2 minutes later, if nobody answers, a voicemail answers, the line is busy or the call drops within 30 seconds. No redial after the person speaks and hangs up, asks to stop or opts out, or after the agent leaves a voicemail message. A person who asks not to be called again is added to our do-not-contact list. The redial runs on the deposit's unused minutes (none left: no redial), and a connected redial bills at least 1 minute. May return state='pending_confirm' with clarification questions if critical info is missing — call confirm_ai_call to proceed. Async — poll with check_job_status(jobType='ai-call'). Priced in sats per destination and duration — create_payment returns the exact amount before you pay. Languages: en-US, en-GB, es-ES, fr-FR, de-DE, ja-JP, zh-CN, multi. Pay with Bitcoin Lightning — no telecom account, no API key, no subscription. When NOT to use: not when you want to drive the conversation with your own LLM (use open_voice_bridge — you keep the brain, we provide PSTN/STT/TTS primitives). Not for one-shot TTS broadcasts or IVR delivery (use place_call). Not for SMS (use send_sms). Requires create_payment with toolName='ai_call', phoneNumber, and durationMinutes. The agent identifies itself as a virtual assistant calling for a client, and answers questions about the service if the recipient asks. At the end of a normal call it asks the recipient for permission to share the recording; without a clear yes, the recording is deleted and never returned. No impersonation, scams, threats, harassment, credential theft, unsolicited bulk messages, or contact after an opt-out. Answering a call does not establish consent. We screen requests after payment.

输入参数task必填languagepaymentId必填phoneNumber必填beginMessagerefundAddressdurationMinutes

confirm_ai_call

Confirm an AI call after reviewing push-back questions, optionally providing answers to missing info. Required when ai_call returns state='pending_confirm'. Uses the original payment — no new payment needed. Returns call_id for polling with check_job_status(jobType='ai-call').

输入参数answerssessionId必填

open_voice_bridge

Open a phone call you drive one turn at a time: we dial, transcribe what the other side says, and speak whatever text you send. You call voice_bridge_say to talk, poll_voice_bridge to read transcripts, end_voice_bridge to hang up. ⚠ Turn-based, NOT full-duplex conversation. After the callee stops talking, about 2 seconds of ours pass before your reply starts to play (we recognise the end of their turn, then speech starts under a second after you send the text), on top of your own model's thinking time: slower than the ~0.8s a natural back-and-forth needs. The callee cannot interrupt you while you speak. Pass filler (a short phrase such as 'One moment, please.') to cover a slow reply: we say it once if you have not started answering about 3.5 seconds after they stop. The loop: poll_voice_bridge with waitMs (e.g. 20000) returns when the callee has finished talking; answer with a short voice_bridge_say (one or two sentences); repeat. Good for: leaving a spoken message, navigating a voice-driven IVR (keypad tones are not supported yet), reading something out, a slow exchange where a pause is fine. For a real conversation with a human, use ai_call — we run the agent at conversational speed and return the transcript. Unused deposit time is refunded automatically when the call ends — including when the callee hangs up. Pass refundAddress (a Lightning address your user gave you; never invent one) and the remainder is SENT there with no further action; without it the refund is held as a claimable LNURL-withdraw link returned by end_voice_bridge. Use this when the content of the call must never leave your side, and the pace can tolerate a pause between turns. When NOT to use: not for fully-managed agent-style calls where we handle the brain (use ai_call). Not for one-shot TTS broadcasts or IVR playback (use place_call). Not when live transcript polling adds no value — the per-turn overhead isn't worth it. Privacy: transcripts held in memory only, garbage-collected 30 minutes

输入参数codecfillergreetinglanguagepaymentId必填sttEnabledttsEnabledphoneNumber必填refundAddressdurationMinutes

voice_bridge_say

Inject audio into an open Voice Bridge call. Two modes: (1) text — we synthesize speech in any of 602 languages (English, Spanish and German start fastest); (2) audio_base64 + encoding — bring your own audio (mulaw_8000 or pcm_l16_16000 for MVP). Keep each reply to one or two sentences: the call is turn-based. While you speak, the callee cannot interrupt, and what they say is NOT heard (transcription is muted so you do not hear yourself, and for under a second after). One call takes at most 700 speech units of text, about 45 seconds of speech (each Chinese, Japanese, Korean or Thai character counts 3): send a longer message as several calls. The call returns when the speech has finished playing. If it fails after part of the line was spoken, the error says so: do not repeat the start. No additional payment — covered by the session deposit.

输入参数textencodinglanguagesessionId必填audioBase64voiceDescription

poll_voice_bridge

Fetch new transcript events from an open Voice Bridge call since the last cursor. Returns partial + final transcripts + system events. Pass waitMs (e.g. 20000) to hold the call until the callee has FINISHED TALKING (a final transcript, then 0.7 s of silence) or the call changes state, then get everything at once: no polling timer, and you do not answer in the middle of their sentence. Without waitMs, poll in a loop (~500ms-1s) and decide yourself when they are done. No additional payment.

输入参数cursorwaitMsquietMssessionId必填

end_voice_bridge

Hang up a Voice Bridge call, finalize billing, and return a LNURL-withdraw refund link for unused deposit time. Also returns the final transcript for convenience.

输入参数sessionId必填

list_models

Discover available AI models with numeric IDs, tier labels, capabilities, and per-call pricing in sats. Call this before create_payment to find the right modelId for your task. Returns JSON array: [{ id, name, tier, description, price, isDefault, category }]. Models marked isDefault=true are used when you omit modelId from create_payment. Filter by category to narrow results to a specific tool. This tool is free, requires no payment, and is idempotent — safe to call repeatedly.

输入参数category

get_model_pricing

Get pricing for a specific model by ID. No payment required.

输入参数modelId必填

get_cost_estimate

Get an exact sat cost quote for a service BEFORE creating a payment. Useful for budget-aware agents to price-check before committing. No payment required, no side effects. Pass service=text-to-speech&chars=1500, service=translate&chars=800, service=transcribe-audio&minutes=5, etc. Returns { amount_sats, breakdown, currency }. Omit params to see the full catalog of supported services.

输入参数charsmodelpagesminutessecondsservice

get_error_codes

Get the machine-readable catalog of all error codes this API can return (e.g. TIMEOUT, CONTENT_FILTERED, RATE_LIMITED, L402_REFUND_ISSUED, L402_AUTO_ROUTED). Agents should branch on error_code rather than parsing free-text messages. No payment required.

无需输入参数。

request_refund

Open a MANUAL 48-hour refund review ticket for a service that FAILED (error, timeout, wrong output). Sends an email to the operator. DO NOT call this for unused-minute refunds on metered services (ai_call, voice_bridge) — those are returned automatically as an LNURL-withdraw link in the service's own response under `refund.lnurl_withdraw`, no manual ticket needed. If you call this on a metered payment that already has a pending LNURL refund, this tool will detect it and return the existing LNURL instead of creating a duplicate ticket. CLAIM WINDOW: refunds must be claimed within 30 days — after that the LNURL link stops working and the refund expires, so do not bank a link for later.

输入参数emailinvoice必填feedbackpaymentId必填

remove_background

Remove background from any image, returning transparent PNG. Uses BiRefNet (state-of-the-art, Papers with Code — Sm 0.901 on DIS5K). Handles hair, fur, glass, transparency, and complex edges. Stable endpoint — model upgrades automatically as SOTA evolves. 44 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_background'.

输入参数paymentId必填resultKeyimageBase64必填

upscale_image

Upscale images 2x or 4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, PSNR 32.73dB on Set5 4x, 100M+ production runs). Recovers real detail from low-resolution images — not interpolation. Optional face enhancement. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='upscale_image'.

输入参数scalepaymentId必填resultKeyimageBase64必填face_enhance

restore_face

Restore blurry, damaged, or AI-generated faces to sharp, natural quality. Uses CodeFormer (NeurIPS 2022, state-of-the-art FID 32.65 on CelebA-Test). Adjustable fidelity — balance between quality enhancement and identity preservation. Also enhances background and upsamples. Stable endpoint — model upgrades automatically as SOTA evolves. 25 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='restore_face'.

输入参数upscalefidelitypaymentId必填resultKeyimageBase64必填face_upsamplebackground_enhance

estimate_depth

Estimate per-pixel depth from a single photo. Depth Anything V2 (NeurIPS 2024, 3.8M+ runs) returns BOTH the raw greyscale depth map — what a ControlNet, AR or 3D reconstruction pipeline consumes — and a colour visualization for humans. Structured geometry a vision LLM cannot produce. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='estimate_depth'.

输入参数paymentId必填resultKeymodel_sizeimageBase64必填

detect_nsfw

Classify image safety (normal / suggestive / explicit). Falcons.ai NSFW detection — 100x cheaper and faster than asking an LLM. Returns classification label and boolean is_nsfw flag. Essential for content moderation pipelines. 2 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='detect_nsfw'.

输入参数paymentId必填imageBase64必填

detect_objects

Detect and locate objects in an image by name. Grounding DINO (open-set detector, ECCV 2024) — describe what to find in natural language, get bounding box coordinates and confidence scores. Structured pixel data agents can't get from vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='detect_objects'.

输入参数query必填paymentId必填imageBase64必填box_thresholdtext_threshold

remove_object

Remove unwanted objects from images by describing what to remove — no mask needed. Combines Grounding DINO detection (ECCV 2024) with Bria Eraser inpainting. Just say 'person', 'car', or 'watermark' and the object is erased and filled convincingly. 130 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='remove_object'.

输入参数query必填paymentId必填resultKeyimageBase64必填box_thresholdtext_threshold

colorize_image

Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023) — vivid, natural colorization. Impossible for text/vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='colorize_image'.

输入参数paymentId必填resultKeymodel_sizeimageBase64必填

deblur_image

Recover detail from camera-shake and accidental motion blur. NAFNet (ECCV 2022, SOTA on GoPro/SIDD benchmarks). Best for: handheld shake, bumped camera, whole-frame uniform blur. NOT effective for: intentional panning blur, bokeh/depth-of-field, or artistic motion effects. Also supports denoising (grainy/noisy photos). 110 sats per image (~2 min processing), pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='deblur_image'.

输入参数paymentId必填resultKeytask_typeimageBase64必填

vote_on_service

Vote for a planned service to be built next. Returns JSON: { success, slug, newVoteCount }. 1 sat per vote — multiple votes allowed. Call list_planned_services first to discover valid slugs and current vote counts. Highest-voted services get prioritized. Requires create_payment with toolName='vote_on_service'.

输入参数slug必填paymentId必填

list_planned_services

List all planned services with current vote counts. Returns JSON array: [{ slug, name, description, votes }], sorted by votes descending. No payment required — this is a free discovery tool. Use the slug values with vote_on_service to cast votes. This tool is idempotent and safe to call repeatedly.

无需输入参数。

版本历史

3
  1. v1.5.13最新Oct 22, 2026
  2. v1.5.12Oct 17, 2026
  3. v1.5.5Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分