{"name":"io.github.cnghockey/sats4ai","version":"2.0.0","protocol_version":"2024-11-05","supported_protocol_versions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05"],"description":"The tools layer of the sovereign AI stack — the hands, eyes and ears no LLM has on its own. 40+ tools — AI phone calls, voice synthesis in 602 languages, translation across 119, fax, SMS, transcription, audiobooks, image generation, music, document extraction, and more. Payment is the only credential — there isn't even a login endpoint. No signup, no API keys, no KYC. Pay per request over Bitcoin Lightning.","homepage":"https://sats4ai.com","onion_url":"http://j5tfaz7s7osapdbry4d2wb5usyhtcvrm7kutonliqq7sjv2c47lsgoid.onion","documentation":"https://sats4ai.com/mcp","contact":{"url":"https://sats4ai.com","issues":"https://github.com/cnghockey/sats4ai-mcp-server/issues","discussions":"https://github.com/cnghockey/sats4ai-mcp-server/discussions"},"packages":[{"type":"http","url":"https://sats4ai.com/api/mcp","transport":"json-rpc","methods":["server/discover","initialize","tools/list","tools/call","resources/list","resources/read","ping"]}],"capabilities":{"tools":true,"resources":true,"prompts":false,"async_tasks":true},"discovery":{"agent_card":"https://sats4ai.com/.well-known/agent.json","catalog":"https://sats4ai.com/api/mcp/discovery","search":"https://sats4ai.com/api/discover","l402_discovery":"https://sats4ai.com/.well-known/l402","l402_services":"https://sats4ai.com/.well-known/l402-services","mpp_discovery":"https://sats4ai.com/.well-known/mpp","models":"https://sats4ai.com/api/l402/models","routing":"https://sats4ai.com/api/models/routing","error_codes":"https://sats4ai.com/api/error-codes","estimate_cost":"https://sats4ai.com/api/estimate-cost","docs":"https://sats4ai.com/docs"},"quickstart":{"description":"Translate a short string for ~1 sat: create_payment → pay → check_payment_status → translate_text. Pays a REAL Lightning invoice; safe but not free.","steps":["create_payment { toolName: 'translate_text', prompt: 'Hello, world.' } -> { paymentId, lightningInvoice, amountSats }","Pay lightningInvoice with any Lightning wallet","check_payment_status { paymentId } -> { paid: true }","translate_text { paymentId, text: 'Hello, world.', targetLanguage: 'Spanish' } -> translated text"],"on_failure":"Post-payment failures return refund.lnurl_withdraw — claim in any LNURL wallet. No account needed.","full":"https://sats4ai.com/api/mcp/discovery"},"features":{"dedup":{"supported":false,"note":"Not implemented. Do not rely on retry-safety: a repeated authed request returns 403 Service already used, not a cached result."},"auto_routing":{"supported":true,"categories":["text-generation","image","audio"],"param":"model: 'auto'","routed_header":"X-Route-Model"},"async_jobs":{"supported":true,"response_status":202,"fields":["job_id","poll_url","poll_interval_ms"],"headers":["X-Job-Id","X-Poll-Url","X-Poll-Interval-Ms"]},"callbacks":{"supported":true,"opt_in":true,"body_fields":["callback_url","callback_id"],"signature_header":"X-Sats4AI-Signature","signature_algorithm":"HMAC-SHA256","url_requirements":"public HTTPS only, no loopback or RFC1918","id_max_length":128,"note":"Polling remains the default. callback_id is opaque — do not embed PII."},"refunds":{"supported":true,"type":"lnurl-withdraw","note":"Every post-payment failure includes a refund.lnurl_withdraw link"},"error_codes":{"supported":true,"response_field":"error_code","header":"X-Error-Code","catalog_url":"https://sats4ai.com/api/error-codes"},"url_path_model":{"supported":true,"pattern":"/api/m/{service}/{model}","note":"Convenience wrapper. Body field still wins if both are set."},"quality_assurance":{"delivery_checked":"weekly — 11 services are bought with real sats and the returned content asserted, not just the status code","delivery_rotation_note":"Covers the automated rotation, not every service. Audiobook has its own automated check every 6 hours; the fixture-dependent surfaces are checked by hand.","purchasability_checked":"daily — every advertised service is quoted to confirm it can actually be bought","payment_path_checked":"daily — real end-to-end paid round-trips against production","liveness_checked":"every 15 minutes","on_failure":"automatic LNURL refund in the error response — no ticket, no account, no email","improvements_carry_forward":"Fixes learned from one job apply to every later job. Audiobook pronunciation is the worked example: a name corrected once is spoken correctly in every book after it."}},"tools":[{"name":"create_payment","category":"payment","async":false,"description":"Create a Lightning invoice to pay for any tool"},{"name":"check_payment_status","category":"payment","async":false,"description":"Check if a Lightning payment has been received"},{"name":"list_models","category":"discovery","async":false,"description":"List available AI models with pricing"},{"name":"get_model_pricing","category":"discovery","async":false,"description":"Get pricing for a specific model"},{"name":"generate_image","category":"image","endpoint_type":"primitive","async":false,"description":"Generate images from text prompts. Models: Grok Imagine 2, Seedream 5 Pro, GPT Image 2.5 (ranked #1 on the Artificial Analysis text-to-image leaderboard as of September 2026)"},{"name":"edit_image","category":"image","endpoint_type":"primitive","async":false,"description":"Edit images with natural language instructions using MAI-Image-2.6 (ranked #3 on the Artificial Analysis image-editing leaderboard as of September 2026)"},{"name":"generate_text","category":"text","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"Generate text with frontier LLMs. Models: Kimi K3 (best), GPT-OSS-120B (standard)"},{"name":"analyze_image","category":"vision","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"Analyze and describe image content using Qwen VL","price":{"amount":21,"currency":"SAT","unit":"call"}},{"name":"generate_music","category":"audio","endpoint_type":"primitive","async":false,"description":"Generate a full song with AI vocals, or an instrumental bed/underscore for video and narration (send structure tags with no words). You choose the length, 15-300s at 5 sats/second. Returns 44.1 kHz stereo WAV. Optional written lyrics, +25 sats.","price":{"amount":75,"currency":"SAT","unit":"call"}},{"name":"text_to_speech","category":"audio","endpoint_type":"primitive","async":false,"description":"Convert text to natural speech audio. 3 quality tiers: OmniVoice Global (602+ languages, voice design, ~106 chars/sat), Inworld Max Premium (#1 ranked TTS ELO 1217, 40+ languages, emotion control, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, 40+ languages, ~5 chars/sat). Pay with Bitcoin Lightning."},{"name":"transcribe_audio","category":"audio","endpoint_type":"primitive","untrusted_output":true,"async":true,"description":"Transcribe audio to text using Mistral Transcription with speaker diarization, WORD-LEVEL or segment timestamps (timestamps:'word' gives per-word start/end times — subtitle alignment, karaoke captions, cutting video to speech), and downloadable SRT/VTT subtitle files. Pass names (the people and places spoken) to help the speech model spell them right — free","price":{"amount":10,"currency":"SAT","unit":"minute"}},{"name":"transcribe_translate","category":"audio","endpoint_type":"recipe","untrusted_output":true,"async":true,"description":"Compound — audio → transcript → translation in one payment. 13 source languages (auto-detect), 119 target languages. Perfect for WhatsApp voice messages in a language you don't speak. Cheaper than chaining transcribe + translate separately. Pass names (the people and places spoken) to help the speech model spell them right — free."},{"name":"extract_document","category":"document","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"Extract text from PDFs and images as Markdown using Mistral OCR","price":{"amount":10,"currency":"SAT","unit":"page"}},{"name":"extract_receipt","category":"document","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"Extract structured data from receipts and invoices using Mistral OCR + GPT-OSS-120B","price":{"amount":25,"currency":"SAT","unit":"page"}},{"name":"e_signature","category":"document","endpoint_type":"primitive","async":false,"description":"Send a document for legally binding e-signature; the signed copy is emailed back. One document, one payment - no subscription, no account. The signed copy arrives once every signer has signed, so expect their turnaround — hours to days — not seconds.","price":{"amount":1000,"currency":"SAT","unit":"call"}},{"name":"multilingual_ask","category":"text","endpoint_type":"recipe","untrusted_output":true,"async":false,"description":"Ask a frontier AI a question in your own language and get the answer back in that same language, in ONE payment. We translate your question to English, answer it with a frontier model, then translate the answer back. Two engines behind one endpoint: 119 mainstream languages use our 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). 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. Tier: Standard | Better | Best."},{"name":"translate_rare_language","category":"text","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"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) — 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) on our own GPU. Quality varies and is PUBLISHED PER LANGUAGE as a measured tier (good/fair/unverified/experimental) so you can judge before paying; the response repeats the tier. Unsupported languages are rejected before payment. For mainstream languages use translate_text (cheaper, more fluent)."},{"name":"boardingpass_wallet","category":"document","endpoint_type":"recipe","untrusted_output":true,"async":false,"description":"Turn any airline boarding pass (PDF or screenshot) into Google Wallet passes with every field the barcode drops — boarding zone, gate, seat, boarding time; the original barcode is preserved byte-for-byte so it scans at the gate. One save link per passenger plus an add-all link (max 8). 100 sats per pass (one per passenger per leg, so a connection is 2). Files are never stored and the link expires in 30 min. Pay with Bitcoin Lightning — no account, no card.","price":{"amount":100,"currency":"SAT","unit":"pass"}},{"name":"translate_text","category":"text","endpoint_type":"primitive","untrusted_output":true,"async":false,"description":"Translate text across 119 languages. The target language picks the engine — GPT-OSS 120B by default, or a higher-scoring model where one measurably beats it; GET /api/languages for the per-language price, engine and measured chrF. Supported: 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 with Bitcoin Lightning."},{"name":"convert_file","category":"file","endpoint_type":"primitive","async":false,"description":"Convert files between 200+ formats — DOCX→PDF, PDF→JPG/PNG (first page), HTML→PDF, WAV→MP3, MOV→MP4. Pay with Bitcoin Lightning — no account needed.","price":{"amount":100,"currency":"SAT","unit":"call"}},{"name":"merge_pdfs","category":"file","endpoint_type":"primitive","async":false,"description":"Merge multiple PDFs into one. Preserves bookmarks and formatting.","price":{"amount":100,"currency":"SAT","unit":"call"}},{"name":"convert_html_to_pdf","category":"file","endpoint_type":"primitive","async":false,"description":"Convert HTML or Markdown to pixel-perfect PDF.","price":{"amount":50,"currency":"SAT","unit":"call"}},{"name":"render_card","category":"image","endpoint_type":"primitive","async":false,"description":"Typographic card — headline, versus, list, stat or quote — as PNG/JPEG (1920x1080 or 2560x1440). Exact text, deterministic layout, no AI model; lists reveal beat by beat for video. Latin, Greek and Cyrillic scripts. Returns a 2 h signed url. 5 sats.","price":{"amount":5,"currency":"SAT","unit":"call"}},{"name":"send_email","category":"communication","endpoint_type":"primitive","async":false,"description":"Reach anyone via email — formal comms, reports, notifications. Pay with Bitcoin Lightning — no SMTP or domain verification needed. 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.","price":{"amount":200,"currency":"SAT","unit":"call"}},{"name":"send_sms","category":"communication","endpoint_type":"primitive","async":false,"description":"Reach a human via SMS for real-world coordination. Plain text only — URLs are rejected; priced per SMS segment (longer/accented messages cost more). Pay with Bitcoin Lightning — no phone plan, no telecom account. 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 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."},{"name":"place_call","category":"communication","endpoint_type":"primitive","async":false,"description":"Bridge digital-physical gap — deliver spoken messages or audio to any phone. Deposit billing: pay for N minutes upfront, unused time refunded automatically to your Lightning address. Pay with Bitcoin Lightning — no telecom account or KYC. 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."},{"name":"ai_call","category":"communication","endpoint_type":"recipe","untrusted_output":true,"async":true,"description":"When your task hits a wall requiring a human — booking, negotiating, navigating IVR — send an AI voice agent. Deposit billing: pay for N minutes upfront, unused time refunded automatically. Two-way conversation, returns transcript + 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. Pay with Bitcoin Lightning. 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. 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."},{"name":"confirm_ai_call","category":"communication","async":true,"description":"Confirm an AI call after push-back. Provide answers to clarification questions and the call proceeds."},{"name":"open_voice_bridge","category":"communication","endpoint_type":"recipe","untrusted_output":true,"async":true,"description":"Voice Bridge — a phone call you drive one turn at a time via say/poll/end. We supply PSTN, transcription and speech; the call content never leaves your side. ⚠ Turn-based, NOT real-time: each turn is an HTTP round trip plus your model plus TTS (2.5-4s to first audio), and no signal tells you when the other side stopped talking. Good for voicemail, IVR navigation and announcements; for a real conversation use ai_call. Deposit billing, unused time refunded. Priced per destination, BTC-pegged. 602-lang TTS, ~100-lang STT."},{"name":"voice_bridge_say","category":"communication","async":false,"description":"Inject text (TTS, auto-fallback across engines) or raw audio into an open Voice Bridge call. STT auto-muted during playback. Companion of open_voice_bridge."},{"name":"poll_voice_bridge","category":"communication","async":false,"description":"Fetch new transcript events from an open Voice Bridge call since the last cursor. Returns partial + final transcripts + system events."},{"name":"end_voice_bridge","category":"communication","async":false,"description":"Hang up a Voice Bridge call, finalize metered billing, and return refund info (auto-sent to Lightning address or LNURL-withdraw) for unused deposit."},{"name":"send_fax","category":"communication","endpoint_type":"recipe","async":false,"description":"When your task needs a paper-trail on the other end (bank, notary, hotel in Japan), send a fax to any number worldwide. PDF URL or typed text. 500 sats for up to 10 pages, +50 sats per additional page (max 350). Pay with Bitcoin Lightning — no fax machine or phone line."},{"name":"receive_fax","category":"communication","endpoint_type":"recipe","async":true,"description":"When you're expecting a fax back, open a 24h receive window at our shared number. Matched by caller ID, delivered to your email. Optional OCR add-on. Pay with Bitcoin Lightning — no monthly number rental."},{"name":"remove_background","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Remove background from any image. BiRefNet (SOTA, Papers with Code). Handles hair, glass, transparency. 44 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":44,"currency":"SAT","unit":"call"}},{"name":"upscale_image","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Upscale images 2x/4x with Real-ESRGAN (ICCV 2021, 100M+ runs). Neural super-resolution. 5 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":5,"currency":"SAT","unit":"call"}},{"name":"restore_face","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Restore blurry/damaged faces with CodeFormer (NeurIPS 2022, SOTA CelebA-Test). Adjustable fidelity. 25 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":25,"currency":"SAT","unit":"call"}},{"name":"detect_nsfw","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Classify image safety (normal/suggestive/explicit). Falcons.ai NSFW detection — 100x cheaper and faster than asking an LLM. Returns classification + is_nsfw flag. 2 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":2,"currency":"SAT","unit":"call"}},{"name":"detect_objects","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Detect and locate objects by name with bounding boxes and confidence scores. Grounding DINO (open-set detector, ECCV 2024). Structured pixel data agents can't get from LLMs. 5 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":5,"currency":"SAT","unit":"call"}},{"name":"remove_object","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Remove unwanted objects from images by describing what to remove — no mask needed. Grounding DINO detection + Bria Eraser inpainting. Just say 'person', 'car', or 'watermark'. 130 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":130,"currency":"SAT","unit":"call"}},{"name":"colorize_image","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023). Vivid, natural color impossible for text/vision LLMs. 5 sats, pay with Bitcoin Lightning, no API key needed.","price":{"amount":5,"currency":"SAT","unit":"call"}},{"name":"estimate_depth","category":"image-processing","endpoint_type":"primitive","async":false,"description":"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, pay with Bitcoin Lightning, no API key needed.","price":{"amount":5,"currency":"SAT","unit":"call"}},{"name":"deblur_image","category":"image-processing","endpoint_type":"primitive","async":false,"description":"Fix blurry or out-of-focus photos. NAFNet (ECCV 2022, SOTA on GoPro/SIDD). Real pixel reconstruction, not just sharpening. Also denoises. 110 sats (~2 min), pay with Bitcoin Lightning, no API key needed.","price":{"amount":110,"currency":"SAT","unit":"call"}},{"name":"generate_video","category":"video","endpoint_type":"primitive","async":true,"description":"Generate video from text with MiniMax H3 — top 2 on the Artificial Analysis text-to-video leaderboard. 768p or 2K (2K upscaled from a 768p render), 5-15s, native audio. Per-second pricing by resolution."},{"name":"animate_image","category":"video","endpoint_type":"primitive","async":true,"description":"Animate a still image into video with MiniMax H3 (first frame + prompt). 768p or 2K (2K upscaled from a 768p render), 5-15s, native audio. Per-second pricing by resolution."},{"name":"generate_3d_model","category":"3d","endpoint_type":"primitive","async":true,"description":"Generate a textured 3D GLB model from a photo OR a text prompt (exactly one) using Tencent Hunyuan3D.","price":{"amount":1600,"currency":"SAT","unit":"call"}},{"name":"clone_voice","category":"audio","endpoint_type":"primitive","async":false,"description":"Clone a voice you own or have permission to use, from a single audio sample (MP3/M4A/WAV, 10 seconds to 5 minutes, 20 MB max, one speaker). Returns reusable voice_id for text_to_speech. Pay with Bitcoin Lightning.","price":{"amount":7500,"currency":"SAT","unit":"call"}},{"name":"epub_to_audiobook","category":"document","endpoint_type":"recipe","async":true,"description":"Book to Audiobook — convert EPUB, PDF, or TXT into AI-narrated audiobooks (M4B with chapters). Same 3 TTS tiers. Dynamic pricing based on book length"},{"name":"translate_epub","category":"document","endpoint_type":"recipe","async":true,"description":"Translate EPUB — a whole EPUB translated into another language, markup, images and links intact; EPUB in, EPUB out. 119 target languages; the target language picks the engine and the engine's row carries the per-character price (min 50 sats)"},{"name":"list_planned_services","category":"discovery","async":false,"description":"List planned services with vote counts. No payment required"},{"name":"vote_on_service","category":"discovery","async":false,"description":"Vote for a planned service to be built next. 1 sat per vote"},{"name":"request_refund","category":"support","async":false,"description":"Request a refund for a failed service (no payment required)"},{"name":"check_job_status","category":"async","async":false,"description":"Check status of an async job (video, 3d, voice_clone, transcription, epub-audiobook)"},{"name":"get_job_result","category":"async","async":false,"description":"Retrieve the result of a completed async job"},{"name":"await_result","category":"async","async":false,"description":"Wait for an async job and return its result in one call (check_job_status + get_job_result combined); streams progress over SSE when the request uses Accept: text/event-stream"}],"async_tasks":{"description":"Some tools return a requestId instead of immediate results. Use check_job_status to poll, then get_job_result when complete.","supported_job_types":["video","video-image","video-fal-standard","video-fal-pro","image-3d","transcription","transcribe-translate","translate-epub","epub-audiobook"],"statuses":["IN_PROGRESS","COMPLETED","FAILED"],"polling":{"recommended_interval_ms":5000,"max_duration_ms":600000,"note":"Each async reply carries its own polling.max_wait_ms. translate-epub can run up to 4 hours (14400000) for a book near the 3,000,000-character cap: poll until the job says completed or failed."},"lifecycle":{"create":"Call the async tool (generate_video, animate_image, generate_3d_model, clone_voice) → returns { requestId }","poll":"Call check_job_status({ requestId, jobType }) → returns { status }","retrieve":"Call get_job_result({ requestId, jobType }) → returns final output URL","wait":"Or call await_result({ requestId, jobType }) once to wait for the result in a single call — streams notifications/progress over SSE when the request uses Accept: text/event-stream","retry":"If status is 'failed', the payment is marked refundable. Create a new payment and retry."}},"payment":{"protocol":"L402","protocols":["L402","MPP"],"mpp_spec":"IETF draft-ryan-httpauth-payment","network":"lightning","currency":"SAT","description":"Each tool requires a Lightning micropayment. Call create_payment to get an invoice, pay it with any Lightning wallet, then call the tool with the paymentId. Failed executions are automatically marked refundable. L402 endpoints also accept the MPP Payment auth scheme (IETF draft-ryan-httpauth-payment) — both L402 and Payment challenges are returned in WWW-Authenticate. Success responses include a Payment-Receipt header.","flow":["1. Call create_payment({ toolName, ... }) → { paymentId, invoice, amountSats }","2. Pay the Lightning invoice (confirms in milliseconds)","3. Call check_payment_status({ paymentId }) → { paid: true }","4. Call the tool with { paymentId, ... } → result"],"l402_flow":["1. POST to L402 endpoint without Authorization → 402 with WWW-Authenticate (L402 + Payment challenges)","2. Pay the Lightning invoice from the challenge","3. Retry with Authorization: L402 <macaroon>:<preimage> (or Authorization: Payment <credential>)","4. Receive result + Payment-Receipt header"]},"tags":["bitcoin","lightning","l402","mpp","ai","micropayments","image-generation","background-removal","image-upscaling","face-restoration","nsfw-detection","object-detection","object-removal","colorization","deblurring","text-generation","video-generation","music","speech","transcription","vision","ocr","translation","file-conversion","sms","email","phone-call","voice-cloning","3d-models","pdf","audiobook","e-signature","esign","boarding-pass","google-wallet","no-signup","privacy","voting","roadmap"]}