{"version":"1.0.0","generated_at":"2026-10-12T12:11:44.101Z","server":{"name":"sats4ai-mcp","mcp_endpoint":"https://sats4ai.com/api/mcp","well_known":"https://sats4ai.com/.well-known/mcp","agent_card":"https://sats4ai.com/.well-known/agent.json","l402_manifest":"https://sats4ai.com/.well-known/l402-services","l402_discovery":"https://sats4ai.com/.well-known/l402","mpp_discovery":"https://sats4ai.com/.well-known/mpp","issues":"https://github.com/cnghockey/sats4ai-mcp-server/issues","discussions":"https://github.com/cnghockey/sats4ai-mcp-server/discussions"},"payment":{"protocol":"L402","network":"lightning","currency":"SAT","create_tool":"create_payment","check_tool":"check_payment_status"},"quickstart":{"description":"Translate a short string for ~1 sat — the minimal create → pay → call → result loop. Pays a REAL Lightning invoice (~1 sat); safe to run, not free.","transport":"JSON-RPC 2.0 over POST https://sats4ai.com/api/mcp. Each step is a tools/call with { name, arguments }. No signup and no API key — the paid invoice IS your authorization.","steps":[{"step":1,"why":"Quote + mint the invoice for the exact text you'll translate.","call":{"method":"tools/call","name":"create_payment","arguments":{"toolName":"translate_text","prompt":"Hello, world."}},"returns":"{ paymentId, lightningInvoice, amountSats (~1), hostedCheckoutUrl }"},{"step":2,"why":"Pay lightningInvoice with any Lightning wallet (or open hostedCheckoutUrl).","note":"No account is created. Paying the invoice is the only credential."},{"step":3,"why":"Confirm settlement before calling the service.","call":{"method":"tools/call","name":"check_payment_status","arguments":{"paymentId":"<paymentId from step 1>"}},"returns":"{ paid: true } once the invoice settles"},{"step":4,"why":"Run the service with the same paymentId.","call":{"method":"tools/call","name":"translate_text","arguments":{"paymentId":"<paymentId from step 1>","text":"Hello, world.","targetLanguage":"Spanish"}},"returns":"translated text"}],"on_failure":"Any post-payment failure returns a refund.lnurl_withdraw link — claim it in any LNURL wallet. No support ticket, no account needed."},"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."},"estimate_cost":{"supported":true,"endpoint":"https://sats4ai.com/api/estimate-cost"},"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."}},"performance_schema":{"description":"Each tool includes a 'performance' object with latency estimates and failure modes to help agents choose the right tool.","fields":{"latency_ms":"Estimated latency in milliseconds. p50 = median, p95 = worst-case typical. Async tools measure time-to-first-poll-result.","reliability":"high = >99% success rate, medium = 95-99% (typically async/external-dependent tools).","failure_modes":"Known failure scenarios. On failure, a one-time LNURL-withdraw refund link is returned in the error response."}},"async_lifecycle":{"description":"Async tools return a requestId. Poll with check_job_status then get_job_result, or call await_result once to wait for the result (streams progress over SSE when the request uses Accept: text/event-stream).","job_types":["video","video-image","video-fal-standard","video-fal-pro","image-3d","transcription","epub-audiobook"],"statuses":["IN_PROGRESS","COMPLETED","FAILED"],"poll_interval_ms":5000,"max_wait_ms":600000,"on_failure":"On failure, error response includes a one-time LNURL-withdraw refund link (lnurl_withdraw field). Create a new payment to retry."},"tools":[{"name":"generate_image","category":"image","endpoint_type":"primitive","description":"Generate images from text prompts. Models: Grok Imagine 2 (100 sats), Seedream 5 Pro (150 sats at 1K / 300 at 2K, most permissive content policy), GPT Image 2.5 (1200 sats, ranked #1 on the Artificial Analysis text-to-image leaderboard as of September 2026). Stable endpoints — models upgrade as SOTA evolves. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/generate-image","pricing":{"type":"fixed","min":100,"max":1200,"models":[{"id":2,"name":"Standard","sats":100,"isDefault":false},{"id":8,"name":"Better","sats":150,"isDefault":false},{"id":16,"name":"Top-ranked","sats":1200,"isDefault":true}]},"input":{"required":["paymentId","prompt"],"optional":["modelId","imageBase64"]},"output":{"format":"{ image_url } or { image_base64 }"},"performance":{"latency_ms":{"p50":5000,"p95":12000},"reliability":"high","failure_modes":["prompt_rejected_by_safety_filter","upstream_timeout_on_complex_scenes"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.483Z","consecutive_failures":0}},{"name":"edit_image","category":"image","endpoint_type":"primitive","description":"Edit images with natural language instructions. Uses MAI-Image-2.6, ranked #3 on the Artificial Analysis image-editing leaderboard as of September 2026. Handles object addition/removal, style transfer, inpainting. One flat price at any output size. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/edit-image","pricing":{"type":"flat","min":200,"max":200,"tiers":{"1K":200,"2K":200,"4K":200},"note":"200 sats per edit at any output size. The resolution field is accepted for compatibility and does not change the price.","models":[{"id":18,"name":"Best","sats":200,"isDefault":false}]},"input":{"required":["paymentId","prompt","imageBase64"],"optional":["aspectRatio","outputFormat","resolution","returnBase64"]},"output":{"format":"{ success, imageUrl, fallback, base64Image? }"},"performance":{"latency_ms":{"p50":6000,"p95":15000},"reliability":"high","failure_modes":["image_too_large","upstream_timeout"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.485Z","consecutive_failures":0}},{"name":"generate_video","category":"video","endpoint_type":"primitive","description":"Generate cinematic video from a text prompt with MiniMax H3 — top 2 on the Artificial Analysis text-to-video leaderboard — with native audio. 768p or 2K (2K upscaled from a 768p render), 5-15s. Pay with Bitcoin Lightning — no API key or signup needed. Async.","async":true,"job_type":"video","l402_endpoint":"https://sats4ai.com/api/l402/generate-video","pricing":{"type":"per_second","note":"Per second by resolution (fixed round rate; native audio free): 768p 250 / 2K 400 sats/sec.","sats_per_second":{"768p":250,"2K":400},"min":1250,"max":6000,"duration_seconds":{"min":5,"max":15},"models":[{"id":25,"name":"Video Generation","isDefault":true}]},"input":{"required":["paymentId","prompt","duration"],"optional":["modelId","resolution","reference_audio","reference_image","generate_audio"]},"output":{"format":"{ requestId } → poll → { videoUrl }"},"performance":{"latency_ms":{"p50":60000,"p95":180000},"reliability":"medium","failure_modes":["generation_timeout_on_long_clips","queue_delay_during_peak","safety_filter_rejection"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.501Z","consecutive_failures":0}},{"name":"animate_image","category":"video","endpoint_type":"primitive","description":"Animate a still image into cinematic video with MiniMax H3 (first frame + prompt). Native audio, 768p or 2K upscaled, 5-15s. Pay with Bitcoin Lightning — no API key or signup needed. Async.","async":true,"job_type":"video-image","l402_endpoint":"https://sats4ai.com/api/l402/animate-image","pricing":{"type":"per_second","note":"Per second by resolution (fixed round rate; native audio free): 768p 250 / 2K 400 sats/sec.","sats_per_second":{"768p":250,"2K":400},"min":1250,"max":6000,"duration_seconds":{"min":5,"max":15},"models":[{"id":24,"name":"Image to Video","isDefault":true}]},"input":{"required":["paymentId","prompt","imageBase64","duration"],"optional":["modelId","resolution"]},"output":{"format":"{ requestId } → poll → { videoUrl }"},"performance":{"latency_ms":{"p50":45000,"p95":120000},"reliability":"medium","failure_modes":["image_quality_too_low","generation_timeout","queue_delay_during_peak"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.502Z","consecutive_failures":0}},{"name":"generate_text","category":"text","endpoint_type":"primitive","untrusted_output":true,"description":"Generate text with frontier LLMs. Pure per-character pricing (no minimum). Models: Kimi K3 (best), GPT-OSS-120B (standard). Supports document Q&A and vision. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/generate-text","pricing":{"type":"dynamic","note":"Pure per-character pricing, no minimum. Standard: ~1000 chars/sat. Best: ~10 chars/sat. BTC-pegged and re-quoted hourly — the 402 challenge is authoritative.","min":1,"max":5,"models":[{"id":31,"name":"Standard","sats":1,"isDefault":false},{"id":6,"name":"Kimi K3","sats":1,"isDefault":true},{"id":1,"name":"Better","sats":5,"isDefault":false}]},"input":{"required":["paymentId","prompt"],"optional":["modelId","systemPrompt","maxTokens","fileContext","fileName","imageBase64"]},"output":{"format":"text"},"performance":{"latency_ms":{"p50":3000,"p95":10000},"reliability":"high","failure_modes":["context_too_long","rate_limited_upstream"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.472Z","consecutive_failures":0}},{"name":"multilingual_ask","category":"text","endpoint_type":"recipe","untrusted_output":true,"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.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/multilingual-ask","pricing":{"type":"dynamic","note":"Question length + a fixed 2,000-char answer allowance at the chosen tier's rate, +15% bundle margin, min 2 sats. The rare-language path costs more (GPU both ways)."},"input":{"required":["paymentId","question","language"],"optional":["model"]},"output":{"format":"{ answer, language, translated }"},"language_catalog":"https://sats4ai.com/api/languages","performance":{"latency_ms":{"p50":5000,"p95":60000},"reliability":"medium","failure_modes":["unsupported_language_rejected_pre_payment","gpu_cold_start_latency","low_quality_on_unverified_languages"]}},{"name":"translate_rare_language","category":"text","endpoint_type":"primitive","untrusted_output":true,"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).","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/translate-rare-language","pricing":{"type":"base_plus_per_char","base":50,"perChar":0.002,"note":"50 sats base (GPU cold start) + 0.002 sats/char"},"input":{"required":["paymentId","text","targetLanguage"]},"output":{"format":"{ translatedText, targetLanguage, targetLanguageName, quality: { tier, chrf } }"},"language_catalog":"https://sats4ai.com/api/languages","performance":{"latency_ms":{"p50":6000,"p95":60000},"reliability":"medium","failure_modes":["unsupported_language_rejected_pre_payment","gpu_cold_start_latency"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.481Z","consecutive_failures":0}},{"name":"translate_text","category":"text","endpoint_type":"primitive","untrusted_output":true,"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. Auto-detects source. Privacy-preserving. 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 with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/translate-text","pricing":{"type":"dynamic","note":"1 sat per 1000 characters on the standard engine, minimum 1 sat per request. The target language picks the engine, so a routed language costs more — GET /api/languages for the per-language price, engine and measured chrF."},"input":{"required":["paymentId","text","targetLanguage"],"optional":["sourceLanguage","modelId"]},"output":{"format":"{ translatedText, sourceLanguage, targetLanguage }"},"performance":{"latency_ms":{"p50":2000,"p95":6000},"reliability":"high","failure_modes":["unsupported_language_pair","context_too_long"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.480Z","consecutive_failures":0}},{"name":"generate_music","category":"audio","endpoint_type":"primitive","description":"Generate a full song with AI vocals from a style prompt plus lyrics. You choose the length: 15-300 seconds at 5 sats/second. Returns 44.1 kHz 16-bit stereo WAV. Structure tags must each be on their OWN line — words on a tag line are dropped by the model, which silently shortens the song. Send only tags and no words for an instrumental bed or underscore (background music under narration, intros and outros). Don't want to write lyrics? Set lyricsAddon:true (+25 sats) and optionally lyricsAbout. Prepaid with LNURL-withdraw refund on failure. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/generate-music","pricing":{"type":"per_second","sats_per_second":5,"min":75,"max":1500,"duration_seconds":{"min":15,"max":300},"addons":{"lyrics":{"sats":25,"param":"lyricsAddon"}},"models":[{"id":23,"name":"Music-3","isDefault":true}]},"billing":"prepaid","billing_detail":"Regular invoice with instant settlement. On failure, LNURL-withdraw refund link returned in error response.","input":{"required":["paymentId","prompt"],"optional":["modelId","lyrics","duration","lyricsAddon","lyricsAbout"]},"output":{"format":"{ audioUrl, billing }"},"performance":{"latency_ms":{"p50":40000,"p95":90000},"reliability":"high","failure_modes":["generation_timeout_on_long_tracks"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.504Z","consecutive_failures":0}},{"name":"text_to_speech","category":"audio","endpoint_type":"primitive","description":"Text-to-speech with 3 tiers: OmniVoice Global (602+ languages, voice design, ~106 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, ~16 chars/sat), Minimax Studio (voice cloning from reference clip, ~5 chars/sat). Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/text-to-speech","pricing":{"type":"fixed","min":1,"max":10,"models":[{"id":43,"name":"OmniVoice TTS","sats":1,"isDefault":false},{"id":33,"name":"Inworld TTS 1.5 Max","sats":1,"isDefault":true},{"id":34,"name":"Inworld TTS 1.5 Mini","sats":1,"isDefault":false},{"id":3,"name":"Minimax Speech-2.8-HD","sats":1,"isDefault":false},{"id":10,"name":"Transcription","sats":10,"isDefault":true}]},"input":{"required":["paymentId","text"],"optional":["modelId","voice","speed","language","voice_description"]},"output":{"format":"{ audioUrl }"},"performance":{"latency_ms":{"p50":4000,"p95":10000},"reliability":"high","failure_modes":["text_too_long_for_single_request","voice_id_not_found"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.505Z","consecutive_failures":0}},{"name":"transcribe_audio","category":"audio","endpoint_type":"primitive","untrusted_output":true,"description":"Transcribe audio to text with WORD-LEVEL or segment timestamps (timestamps:'word' gives per-word start/end times for subtitle alignment and cutting video to speech) and ready-to-use SRT/VTT subtitle files. Uses Mistral Transcription. 13 languages, handles accents and background noise. Pass names (the people and places spoken) to help the speech model spell them right — free. Up to 60 minutes per file. Pay with Bitcoin Lightning — no API key or signup needed.","async":true,"job_type":"transcription","l402_endpoint":"https://sats4ai.com/api/l402/transcribe-audio","pricing":{"type":"per_minute","note":"Per-minute rate based on audio duration. Separate from TTS pricing."},"input":{"required":["paymentId","audioBase64"],"optional":["language"]},"output":{"format":"{ text, segments?, srt?, vtt? }"},"performance":{"latency_ms":{"p50":15000,"p95":60000},"reliability":"high","failure_modes":["audio_too_long","unsupported_format","corrupted_audio"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.508Z","consecutive_failures":0}},{"name":"transcribe_translate","category":"audio","endpoint_type":"recipe","untrusted_output":true,"description":"Compound — audio → transcript → translation in one payment. Auto-detects source language across 13 STT languages, translates to any of 119 target languages. WhatsApp voice message in Yoruba → English in one call; cheaper than chaining transcribe_audio + translate_text separately. Pass names (the people and places spoken) to help the speech model spell them right — free. Pay with Bitcoin Lightning — no API key or signup needed.","async":true,"job_type":"transcribe-translate","l402_endpoint":"https://sats4ai.com/api/l402/transcribe-translate","pricing":{"type":"bundle","note":"Flat bundle = STT base + 5 sats translate headroom + 15% compound margin."},"input":{"required":["paymentId","audioBase64","targetLanguage"],"optional":["sourceLanguage"]},"output":{"format":"{ transcript, translation, sourceLanguage, targetLanguage, translated }"},"performance":{"latency_ms":{"p50":18000,"p95":70000},"reliability":"high","failure_modes":["audio_too_long","unsupported_format","corrupted_audio","no_speech_detected"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.509Z","consecutive_failures":0}},{"name":"clone_voice","category":"audio","endpoint_type":"primitive","description":"Clone a voice you own or have permission to use, from a single audio sample. Returns reusable voice_id for text_to_speech. High-fidelity reproduction. Sample must be MP3, M4A or WAV, 10 seconds to 5 minutes, 20 MB max, one speaker, no background music. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/clone-voice","pricing":{"type":"fixed","amount":7500,"currency":"SAT"},"input":{"required":["paymentId","voiceFileUrl"],"optional":["model","accuracy"]},"output":{"format":"{ voice_id, model, message }"},"performance":{"latency_ms":{"p50":8000,"p95":20000},"reliability":"high","failure_modes":["audio_sample_too_short","poor_audio_quality"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.506Z","consecutive_failures":0}},{"name":"analyze_image","category":"vision","endpoint_type":"primitive","untrusted_output":true,"description":"Analyze images, answer visual questions, extract info from screenshots. Uses Qwen VL with strong OCR and spatial reasoning. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/analyze-image","pricing":{"type":"fixed","min":21,"max":21,"models":[{"id":5,"name":"Vision Chat","sats":21,"isDefault":true}]},"input":{"required":["paymentId","imageBase64"],"optional":["prompt","modelId"]},"output":{"format":"{ content }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["image_too_large","corrupted_image"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.500Z","consecutive_failures":0}},{"name":"extract_document","category":"document","endpoint_type":"primitive","untrusted_output":true,"description":"Extract text from PDFs and images as clean Markdown. Uses Mistral OCR — handles complex layouts, tables, handwriting, math notation. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/extract-document","pricing":{"type":"per_page","min":10,"max":10,"models":[{"id":27,"name":"Mistral OCR","sats":10,"isDefault":true}]},"input":{"required":["paymentId","documentBase64"],"optional":["modelId"]},"output":{"format":"{ content, pages }"},"performance":{"latency_ms":{"p50":5000,"p95":15000},"reliability":"high","failure_modes":["pdf_too_many_pages","corrupted_document","scanned_image_too_low_res"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.512Z","consecutive_failures":0}},{"name":"extract_receipt","category":"document","endpoint_type":"primitive","untrusted_output":true,"description":"Extract structured data from receipts and invoices. Dual-model pipeline for high-accuracy extraction. Returns JSON with merchant, items, totals. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/extract-receipt","pricing":{"type":"per_page","perPage":25,"note":"25 sats per page"},"input":{"required":["paymentId","documentBase64"]},"output":{"format":"{ structured, rawText }"},"performance":{"latency_ms":{"p50":6000,"p95":12000},"reliability":"high","failure_modes":["unreadable_receipt","non_receipt_document"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.513Z","consecutive_failures":0}},{"name":"e_signature","category":"document","endpoint_type":"primitive","description":"Send a document for legally binding e-signature; the signed copy is emailed back. One document, one payment - no subscription. The signed copy arrives once every signer has signed, so expect their turnaround — hours to days — not seconds. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/e-signature","pricing":{"type":"flat","flat":1000,"note":"1000 sats flat per document"},"input":{"required":["paymentId","documentBase64","signers","customerEmail"],"optional":["note"]},"output":{"format":"{ success, message }"},"performance":{"latency_ms":{"p50":1500,"p95":5000},"latency_measures":"acknowledgement","completion_note":"The signed copy depends on your signers, not on us. Expect hours to days. Do not schedule or poll against latency_ms.","reliability":"medium","failure_modes":["invalid_pdf","invalid_signer_email","file_too_large","signer_never_signed"]}},{"name":"boardingpass_wallet","category":"document","endpoint_type":"recipe","untrusted_output":true,"description":"Turn airline boarding passes (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. Multi-file — one boarding pass per file for a whole family (up to 8), returning one save link per passenger plus an 'add all' link. 100 sats per pass (one per passenger per leg, so a connection is 2). Source files are processed in memory and not written to Sats4AI storage; each save link self-expires in 30 minutes. The operational transaction record remains without a customer account. Pay with Bitcoin Lightning — no card.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/boardingpass-wallet","pricing":{"type":"per_pass","perPass":100,"note":"100 sats per pass (one per passenger per leg, so a connection is 2)"},"input":{"required":["paymentId"],"note":"Provide `documentBase64` (single) OR `documents` (array of base64 strings, up to 8, for a family) — at least one required."},"output":{"format":"{ passes: [{ passenger, flight, from, to, seat, zone, gate, boarding_time, save_url }], count, save_all_url, warnings, partial_refund? }"},"performance":{"latency_ms":{"p50":4000,"p95":15000},"reliability":"high","failure_modes":["no_barcode_found_unreadable","unsupported_file_type","file_too_large"]}},{"name":"epub_to_audiobook","category":"document","endpoint_type":"recipe","description":"Convert books (EPUB/PDF/TXT) to full audiobooks with automatic chapter detection, optional translation to any language before narration, and M4B output with chapter markers. 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. Single payment, full outcome — no multi-step orchestration required. Pay with Bitcoin Lightning — no API key or signup needed. Async (5-60+ min).","async":true,"job_type":"epub-audiobook","l402_endpoint":"https://sats4ai.com/api/l402/epub-audiobook","pricing":{"type":"dynamic","note":"Varies by voice tier: OmniVoice ~106 chars/sat, Inworld ~16 chars/sat, Minimax ~5 chars/sat. Minimum 500 sats."},"input":{"required":["paymentId","epubBase64","fileName"],"optional":["voice","language","speed","modelId","selectedChapterIndices","translateToLanguage"]},"output":{"format":"{ jobId } → poll → { url, annexeUrl }","note":"annexeUrl is a companion PDF holding equations, tables, addresses, keys and hashes that are not read aloud — the audio speaks a numbered marker pointing into it. null when the book had none."},"performance":{"latency_ms":{"p50":120000,"p95":600000},"reliability":"medium","failure_modes":["epub_parsing_error","chapter_extraction_failed","tts_timeout_on_long_chapters"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.520Z","consecutive_failures":0}},{"name":"translate_epub","category":"document","endpoint_type":"recipe","description":"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 (the same per-character rate as translate_text for that language, min 50 sats). Single payment, full outcome. Pay with Bitcoin Lightning — no API key or signup needed. Async: minutes for a short book, up to about 3 hours near the 3,000,000-character cap.","async":true,"job_type":"translate-epub","l402_endpoint":"https://sats4ai.com/api/l402/translate-epub","pricing":{"type":"dynamic","note":"Visible characters × the target language's engine rate (GET /api/languages). Minimum 50 sats. create_payment needs characterCount and targetLanguage; the real file is re-priced at execution and a short-pay is refunded with the exact amount."},"input":{"required":["paymentId","epubBase64","targetLanguage"],"optional":["sourceLanguage","fileName","callback_url","callback_id"]},"output":{"format":"{ requestId } → poll → { url, fileName, docs, visibleChars, targetLanguage, engine }","note":"url is a temporary download (6h token; the file is kept ~12h). get_job_result mints a fresh url on every read."},"performance":{"latency_ms":{"p50":180000,"p95":1200000},"reliability":"medium","failure_modes":["epub_parsing_error","translation_shape_error","engine_timeout"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.510Z","consecutive_failures":0}},{"name":"generate_3d_model","category":"3d","endpoint_type":"primitive","description":"Generate a textured 3D GLB model from EITHER a photo OR a text prompt (exactly one, not both). Uses Tencent Hunyuan3D — high-fidelity geometry and PBR materials. Pay with Bitcoin Lightning — no API key or signup needed. Async.","async":true,"job_type":"image-3d","l402_endpoint":"https://sats4ai.com/api/l402/generate-3d-model","pricing":{"type":"fixed","min":1600,"max":1600,"models":[{"id":17,"name":"Best","sats":1600,"isDefault":true}]},"input":{"required":["paymentId"],"optional":["imageBase64","prompt","modelId"],"note":"Provide exactly one of imageBase64 (image-to-3D) or prompt (text-to-3D)."},"output":{"format":"{ requestId } → poll → { modelUrl }"},"performance":{"latency_ms":{"p50":120000,"p95":200000},"reliability":"medium","failure_modes":["image_not_suitable_for_3d","generation_timeout","queue_delay"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.486Z","consecutive_failures":0}},{"name":"remove_background","category":"image-processing","endpoint_type":"primitive","description":"Remove background from any image, returning transparent PNG. Uses BiRefNet (state-of-the-art, Papers with Code). Handles hair, fur, glass, transparency, complex edges. Stable endpoint — model upgrades as SOTA evolves. 44 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/remove-background","pricing":{"type":"fixed","min":2,"max":130,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":48,"name":"Depth Anything V2","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":25,"isDefault":true},{"id":35,"name":"BiRefNet","sats":44,"isDefault":true},{"id":42,"name":"NAFNet","sats":110,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":130,"isDefault":true}]},"quality":{"model":"BiRefNet","paper":"CAAI AIR 2024","benchmark":"DIS5K-TE","scores":{"Sm":0.901,"MAE":0.035},"source":"https://paperswithcode.com/task/image-matting"},"input":{"required":["paymentId","imageBase64"],"optional":[]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.488Z","consecutive_failures":0}},{"name":"upscale_image","category":"image-processing","endpoint_type":"primitive","description":"Upscale images 2x/4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, 100M+ production runs). Recovers real detail, not interpolation. Stable endpoint — model upgrades as SOTA evolves. 5 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/upscale-image","pricing":{"type":"fixed","min":2,"max":130,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":48,"name":"Depth Anything V2","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":25,"isDefault":true},{"id":35,"name":"BiRefNet","sats":44,"isDefault":true},{"id":42,"name":"NAFNet","sats":110,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":130,"isDefault":true}]},"quality":{"model":"Real-ESRGAN","paper":"ICCV Workshop 2021","benchmark":"Set5 4x","scores":{"PSNR":32.73,"SSIM":0.9011},"source":"https://paperswithcode.com/task/image-super-resolution"},"input":{"required":["paymentId","imageBase64"],"optional":["scale","face_enhance"]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":8000,"p95":25000},"reliability":"high","failure_modes":["image_too_large_for_4x","upstream_timeout_on_high_res"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.489Z","consecutive_failures":0}},{"name":"restore_face","category":"image-processing","endpoint_type":"primitive","description":"Restore blurry, damaged, or AI-generated faces. Uses CodeFormer (NeurIPS 2022, SOTA on CelebA-Test). Adjustable fidelity. Stable endpoint — model upgrades as SOTA evolves. 25 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/restore-face","pricing":{"type":"fixed","min":2,"max":130,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":48,"name":"Depth Anything V2","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":25,"isDefault":true},{"id":35,"name":"BiRefNet","sats":44,"isDefault":true},{"id":42,"name":"NAFNet","sats":110,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":130,"isDefault":true}]},"quality":{"model":"CodeFormer","paper":"NeurIPS 2022","benchmark":"CelebA-Test","scores":{"FID":32.65,"LPIPS":0.3668},"source":"https://paperswithcode.com/task/blind-face-restoration"},"input":{"required":["paymentId","imageBase64"],"optional":["fidelity","background_enhance","face_upsample","upscale"]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":5000,"p95":12000},"reliability":"high","failure_modes":["no_face_detected","image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.491Z","consecutive_failures":0}},{"name":"detect_nsfw","category":"image-processing","endpoint_type":"primitive","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, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/detect-nsfw","pricing":{"type":"fixed","amount":2,"currency":"SAT"},"quality":{"model":"Falcons.ai NSFW Detection","source":"https://huggingface.co/Falconsai/nsfw_image_detection"},"input":{"required":["paymentId","imageBase64"]},"output":{"format":"{ classification, is_nsfw }"},"performance":{"latency_ms":{"p50":2000,"p95":5000},"reliability":"high","failure_modes":["image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.493Z","consecutive_failures":0}},{"name":"detect_objects","category":"image-processing","endpoint_type":"primitive","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, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/detect-objects","pricing":{"type":"fixed","amount":5,"currency":"SAT"},"quality":{"model":"Grounding DINO","paper":"ECCV 2024","source":"https://arxiv.org/abs/2303.05499"},"input":{"required":["paymentId","imageBase64","query"],"optional":["box_threshold","text_threshold"]},"output":{"format":"{ detections: [{ label, confidence, bbox }] }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["no_objects_matched","image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.494Z","consecutive_failures":0}},{"name":"remove_object","category":"image-processing","endpoint_type":"primitive","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, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/remove-object","pricing":{"type":"fixed","amount":130,"currency":"SAT"},"quality":{"detection":{"model":"Grounding DINO","source":"https://paperswithcode.com/paper/grounding-dino-marrying-dino-with-grounded"},"removal":{"model":"Bria Eraser","source":"https://huggingface.co/briaai/BRIA-2.3-FAST"}},"input":{"required":["paymentId","imageBase64","query"]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":6000,"p95":15000},"reliability":"high","failure_modes":["object_not_detected","image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.496Z","consecutive_failures":0}},{"name":"colorize_image","category":"image-processing","endpoint_type":"primitive","description":"Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023). Vivid, natural color impossible for text/vision LLMs. 5 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/colorize-image","pricing":{"type":"fixed","amount":5,"currency":"SAT"},"quality":{"model":"DDColor","paper":"ICCV 2023","source":"https://arxiv.org/abs/2309.14518"},"input":{"required":["paymentId","imageBase64"],"optional":["model_size"]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":4000,"p95":10000},"reliability":"high","failure_modes":["already_color_image","image_too_large"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.497Z","consecutive_failures":0}},{"name":"estimate_depth","category":"image-processing","endpoint_type":"primitive","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, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/estimate-depth","pricing":{"type":"fixed","amount":5,"currency":"SAT"},"quality":{"model":"Depth Anything V2","paper":"NeurIPS 2024","benchmark":"monocular relative depth","source":"https://depth-anything-v2.github.io/"},"input":{"required":["paymentId","imageBase64"],"optional":["model_size"]},"output":{"format":"{ depth_map, depth_color }"},"performance":{"latency_ms":{"p50":2000,"p95":6000},"reliability":"high","failure_modes":["unsupported_image_format"]}},{"name":"deblur_image","category":"image-processing","endpoint_type":"primitive","description":"Recover detail from camera-shake and accidental motion blur. NAFNet (ECCV 2022, SOTA on GoPro/SIDD). Best for: handheld shake, bumped camera, whole-frame uniform blur. NOT for: intentional panning blur, bokeh, or artistic motion effects. Also denoises grainy photos. 110 sats (~2 min), no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/deblur-image","pricing":{"type":"fixed","amount":110,"currency":"SAT"},"quality":{"model":"NAFNet","paper":"ECCV 2022","benchmark":"GoPro + SIDD","source":"https://arxiv.org/abs/2204.04676"},"input":{"required":["paymentId","imageBase64"],"optional":["task_type"]},"output":{"format":"{ image_url }"},"performance":{"latency_ms":{"p50":90000,"p95":180000},"reliability":"high","failure_modes":["image_too_large","not_motion_blur"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.499Z","consecutive_failures":0}},{"name":"convert_file","category":"file","endpoint_type":"primitive","description":"Convert files between 200+ formats — DOCX→PDF, PDF→JPG/PNG (first page), HTML→PDF, WAV→MP3, MOV→MP4. Preserves formatting and quality. No API key, no account needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/convert-file","pricing":{"type":"fixed","min":5,"max":1000,"models":[{"id":53,"name":"Render Card","sats":5,"isDefault":false},{"id":30,"name":"Receipt OCR","sats":25,"isDefault":true},{"id":29,"name":"HTML to PDF","sats":50,"isDefault":true},{"id":11,"name":"Unknown","sats":100,"isDefault":false},{"id":12,"name":"Unknown","sats":100,"isDefault":false},{"id":13,"name":"Unknown","sats":100,"isDefault":false},{"id":26,"name":"Unknown","sats":100,"isDefault":false},{"id":47,"name":"Boarding Pass Wallet","sats":100,"isDefault":false},{"id":28,"name":"Unknown","sats":200,"isDefault":false},{"id":46,"name":"E-Signature","sats":1000,"isDefault":false}]},"input":{"required":["paymentId","extensionFrom","extensionTo"],"optional":["fileBase64","fileUrl"]},"output":{"format":"{ url }"},"performance":{"latency_ms":{"p50":5000,"p95":20000},"reliability":"high","failure_modes":["unsupported_format_pair","file_too_large","corrupted_file"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.515Z","consecutive_failures":0}},{"name":"merge_pdfs","category":"file","endpoint_type":"primitive","description":"Merge multiple PDFs into one. Preserves bookmarks, links, formatting. Pay with Bitcoin Lightning — no account needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/merge-pdfs","pricing":{"type":"fixed","min":5,"max":1000,"models":[{"id":53,"name":"Render Card","sats":5,"isDefault":false},{"id":30,"name":"Receipt OCR","sats":25,"isDefault":true},{"id":29,"name":"HTML to PDF","sats":50,"isDefault":true},{"id":11,"name":"Unknown","sats":100,"isDefault":false},{"id":12,"name":"Unknown","sats":100,"isDefault":false},{"id":13,"name":"Unknown","sats":100,"isDefault":false},{"id":26,"name":"Unknown","sats":100,"isDefault":false},{"id":47,"name":"Boarding Pass Wallet","sats":100,"isDefault":false},{"id":28,"name":"Unknown","sats":200,"isDefault":false},{"id":46,"name":"E-Signature","sats":1000,"isDefault":false}]},"input":{"required":["paymentId","files"]},"output":{"format":"{ url, fileName }"},"performance":{"latency_ms":{"p50":4000,"p95":12000},"reliability":"high","failure_modes":["pdf_too_large","corrupted_pdf"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.519Z","consecutive_failures":0}},{"name":"convert_html_to_pdf","category":"file","endpoint_type":"primitive","description":"Convert HTML or Markdown to pixel-perfect PDF. Great for invoices, reports, documents. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/convert-html-to-pdf","pricing":{"type":"fixed","min":5,"max":1000,"models":[{"id":53,"name":"Render Card","sats":5,"isDefault":false},{"id":30,"name":"Receipt OCR","sats":25,"isDefault":true},{"id":29,"name":"HTML to PDF","sats":50,"isDefault":true},{"id":11,"name":"Unknown","sats":100,"isDefault":false},{"id":12,"name":"Unknown","sats":100,"isDefault":false},{"id":13,"name":"Unknown","sats":100,"isDefault":false},{"id":26,"name":"Unknown","sats":100,"isDefault":false},{"id":47,"name":"Boarding Pass Wallet","sats":100,"isDefault":false},{"id":28,"name":"Unknown","sats":200,"isDefault":false},{"id":46,"name":"E-Signature","sats":1000,"isDefault":false}]},"input":{"required":["paymentId","html"],"optional":["format"]},"output":{"format":"{ url, fileName }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["html_too_complex","rendering_timeout"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.516Z","consecutive_failures":0}},{"name":"render_card","category":"image","endpoint_type":"primitive","description":"Render a typographic card — headline, versus, list, stat or quote — as PNG or JPEG (1920x1080 or 2560x1440). Deterministic layout, no AI model: the text you send is exactly what appears. For video title cards and slides, thumbnails and quote cards; lists and comparisons reveal one beat at a time so cuts never shift the text. Latin, Greek and Cyrillic scripts (the render box ships DejaVu Sans; CJK, Indic, Thai and emoji glyphs are not available). Returns a signed download url valid 2 h. Caps are enforced before payment. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/render-card","pricing":{"type":"fixed","amount":5,"currency":"SAT"},"input":{"required":["paymentId","variant"],"optional":["size","format","theme","lines","accent_line","left_label","left","right_label","right","show_right","title","items","revealed","value","label","sub","text","source"]},"output":{"format":"{ url, width, height, format, mime, expires_in_seconds }"},"performance":{"latency_ms":{"p50":400,"p95":1500},"reliability":"high","failure_modes":["invalid_spec_rejected_pre_payment","text_too_long_rejected_pre_payment"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.517Z","consecutive_failures":0}},{"name":"send_email","category":"communication","endpoint_type":"primitive","description":"Reach anyone via email — formal comms, reports, notifications. No SMTP server or domain verification. Pay with Bitcoin Lightning — no API key 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.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/send-email","pricing":{"type":"fixed","min":5,"max":1000,"models":[{"id":53,"name":"Render Card","sats":5,"isDefault":false},{"id":30,"name":"Receipt OCR","sats":25,"isDefault":true},{"id":29,"name":"HTML to PDF","sats":50,"isDefault":true},{"id":11,"name":"Unknown","sats":100,"isDefault":false},{"id":12,"name":"Unknown","sats":100,"isDefault":false},{"id":13,"name":"Unknown","sats":100,"isDefault":false},{"id":26,"name":"Unknown","sats":100,"isDefault":false},{"id":47,"name":"Boarding Pass Wallet","sats":100,"isDefault":false},{"id":28,"name":"Unknown","sats":200,"isDefault":false},{"id":46,"name":"E-Signature","sats":1000,"isDefault":false}]},"input":{"required":["paymentId","to","subject","body"],"optional":["replyTo"]},"output":{"format":"{ success, message }"},"performance":{"latency_ms":{"p50":2000,"p95":5000},"reliability":"high","failure_modes":["invalid_email_address","smtp_delivery_failure"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.523Z","consecutive_failures":0}},{"name":"send_sms","category":"communication","endpoint_type":"primitive","description":"Reach a human via SMS for real-world coordination. Plain text only — URLs/links are rejected. Pay with Bitcoin Lightning — no phone plan, no telecom account, no KYC. 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.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/send-sms","pricing":{"type":"dynamic","note":"Varies by destination country and message length (billed per SMS segment — long or accented/UCS-2 messages cost more)."},"input":{"required":["paymentId","phoneNumber","message"]},"output":{"format":"{ success, sid }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["invalid_phone_number","destination_not_reachable","country_not_supported","content_rejected"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.521Z","consecutive_failures":0}},{"name":"place_call","category":"communication","endpoint_type":"primitive","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, no 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.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/place-call","pricing":{"type":"deposit","note":"Per-minute rate varies by destination. Pay for N minutes upfront — unused time is automatically refunded."},"billing":{"model":"deposit","description":"You deposit for N minutes at a per-minute rate. After the call ends, actual usage is measured server-side. Unused sats are refunded automatically to a Lightning address (if provided) or claimable via bolt11 invoice.","refund_field":"refundAddress (Lightning address, optional — include in MCP create_payment or web UI)"},"input":{"required":["paymentId","phoneNumber"],"optional":["message","audioUrl","durationMinutes","refundAddress"]},"output":{"format":"{ success, sid, status, to }"},"performance":{"latency_ms":{"p50":5000,"p95":15000},"reliability":"high","failure_modes":["invalid_phone_number","destination_not_reachable","call_rejected"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.527Z","consecutive_failures":0}},{"name":"send_fax","category":"communication","endpoint_type":"recipe","description":"When your task requires a paper-trail on the other end — loan paperwork to a bank, signed contract to a notary, hotel booking confirmation in Japan — send a fax 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, no phone line, no telecom account.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/send-fax","pricing":{"type":"tiered","base_sats":500,"base_pages":10,"per_page_after_sats":50,"unit":"fax","limits":{"max_pages":350,"max_size_mb":50}},"input":{"required":["paymentId","phoneNumber","mode"],"optional":["pdfUrl","text","coverText"]},"output":{"format":"{ success, status, fax_id, pages, to }"},"performance":{"latency_ms":{"p50":15000,"p95":45000},"reliability":"high","failure_modes":["invalid_pdf","destination_not_reachable","page_limit_exceeded"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.524Z","consecutive_failures":0}},{"name":"receive_fax","category":"communication","endpoint_type":"recipe","description":"When you're expecting a fax back (bank confirmation, court filing, signed document), open a 24h receive window at our shared number (+13202991523). Matched by caller ID (last 10 digits), delivered to your email. Optional OCR add-on returns a searchable text file. Pay with Bitcoin Lightning — no dedicated number rental, no account.","async":true,"l402_endpoint":"https://sats4ai.com/api/l402/receive-fax","pricing":{"type":"tiered","tiers":[{"sats":500,"note":"base"},{"sats":700,"note":"with OCR add-on"}],"note":"Overage (>10 pages) invoiced separately via email."},"input":{"required":["paymentId","email","fromNumber"],"optional":["ocr"]},"output":{"format":"{ success, status, subscription_id, expires_at, forward_to_number }"},"performance":{"latency_ms":{"p50":1000,"p95":3000},"reliability":"high","failure_modes":["conflicting_subscription","invalid_sender_number","no_fax_arrived_in_window_no_refund"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.526Z","consecutive_failures":0}},{"name":"ai_call","category":"communication","endpoint_type":"recipe","untrusted_output":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. Returns transcript + analysis. Pay with Bitcoin Lightning — no telecom account or API key needed. 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.","async":true,"l402_endpoint":"https://sats4ai.com/api/l402/ai-call","pricing":{"type":"deposit","note":"Telephony + AI agent per-minute rate, starting at ~150 sats/min and varying by destination — create_payment returns the exact amount. Pay for N minutes upfront — unused time is automatically refunded."},"billing":{"model":"deposit","description":"You deposit for N minutes at a per-minute rate (telephony + AI agent cost). After the call ends, actual usage is measured server-side. Unused sats are refunded automatically to a Lightning address (if provided) or claimable via bolt11 invoice.","refund_field":"refundAddress (Lightning address, optional — include in MCP create_payment or web UI)"},"input":{"required":["paymentId","phoneNumber","task"],"optional":["durationMinutes","voice","language","beginMessage","callerName","reason","callbackNumber","voicemail","callScreening","refundAddress"]},"output":{"format":"{ success, call_id, status, poll_url }"},"voices":["Adrian","Myra","Paola","Chris","Marissa","Nathan","Cimo","Drew","Olivia"],"languages":["en-US","en-GB","es-ES","fr-FR","de-DE","ja-JP","zh-CN","multi"],"performance":{"latency_ms":{"p50":10000,"p95":30000},"reliability":"medium","failure_modes":["call_not_answered","ivr_navigation_failed","call_timeout","destination_not_reachable"]},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.528Z","consecutive_failures":0}},{"name":"list_models","category":"utility","description":"List available AI models with IDs, tiers, and pricing. No payment required.","async":false,"l402_endpoint":null,"pricing":{"type":"free"},"input":{"required":[],"optional":["category"]},"output":{"format":"{ models: [{ id, name, tier, sats, isDefault }] }"}},{"name":"get_model_pricing","category":"utility","description":"Get pricing for a specific model by ID. No payment required.","async":false,"l402_endpoint":null,"pricing":{"type":"free"},"input":{"required":["modelId"],"optional":[]},"output":{"format":"{ id, name, type, sats, isDefault }"}},{"name":"open_voice_bridge","category":"communication","endpoint_type":"recipe","untrusted_output":true,"description":"Voice Bridge — a phone call you drive one turn at a time via say/poll/end. Sats4AI supplies PSTN, streaming transcription and speech. Unlike ai_call, the call content never leaves your side. ⚠ Turn-based, NOT real-time: each turn costs an HTTP round trip plus your model plus speech synthesis (measured 2.5-4s to first audio), and nothing signals you when the other side stops talking. Good for voicemail, IVR navigation, announcements and slow exchanges. For a real conversation with a human, use ai_call — we run the agent at conversational speed. Deposit billing with LNURL-withdraw refund for unused time. 602-lang TTS, ~100-lang streaming STT.","async":true,"l402_endpoint":"https://sats4ai.com/api/l402/voice-bridge/open","pricing":{"type":"deposit","note":"Destination-priced from the carrier rate sheet and BTC-pegged — no fixed per-minute figure. Deposit billing, unused time auto-refunded. Refunded via LNURL-withdraw or Lightning address."},"billing":{"model":"deposit","description":"Prepaid deposit for N minutes. Actual elapsed time billed on /end. Unused sats auto-sent to refundAddress (Lightning address) or returned as LNURL-withdraw.","refund_field":"refundAddress (Lightning address, optional)"},"input":{"required":["paymentId","phoneNumber"],"optional":["language","durationMinutes","codec","sttEnabled","ttsEnabled","refundAddress"]},"output":{"format":"{ success, sessionId, callId, activeCodec, hdAvailable, language, depositSats, perMinuteSats, maxDurationSec }"},"companion_tools":["voice_bridge_say","poll_voice_bridge","end_voice_bridge"],"coverage_endpoint":"https://sats4ai.com/api/l402/voice-bridge/coverage","performance":{"latency_ms":{"p50":2000,"p95":8000},"reliability":"medium","failure_modes":["call_not_answered","destination_unreachable","stt_init_failed","stream_attach_failed"]}},{"name":"voice_bridge_say","category":"communication","description":"Inject audio into an open Voice Bridge call. Text mode: we synthesize via OmniVoice TTS (602 languages). BYO-audio mode: pass audio_base64 + encoding (mulaw_8000 or pcm_l16_16000). STT auto-muted during playback to prevent self-echo.","async":false,"l402_endpoint":null,"pricing":{"type":"included","note":"Covered by session deposit"},"input":{"required":["sessionId"],"optional":["text","language","voiceDescription","audioBase64","encoding"]},"output":{"format":"{ success, bytesSent }"}},{"name":"poll_voice_bridge","category":"communication","description":"Fetch new transcript events from an open Voice Bridge call since the last cursor. Returns partial + final transcripts + system events. Poll in a loop (~500ms-1s).","async":false,"l402_endpoint":null,"pricing":{"type":"included","note":"Covered by session deposit"},"input":{"required":["sessionId"],"optional":["cursor"]},"output":{"format":"{ success, sessionId, state, events: [{seq, type, text, ts_ms}], nextCursor, callId }"}},{"name":"end_voice_bridge","category":"communication","description":"Hang up a Voice Bridge call, finalize billing (elapsed time × perMinuteSats), and return refund info for unused deposit. Auto-sends to refundAddress if set, else returns LNURL-withdraw.","async":false,"l402_endpoint":null,"pricing":{"type":"included","note":"Covered by session deposit"},"input":{"required":["sessionId"],"optional":[]},"output":{"format":"{ success, elapsedSec, usedSats, depositSats, refundableSats, refund, finalTranscript }"}},{"name":"confirm_ai_call","category":"communication","description":"Confirm an AI call after reviewing push-back questions, optionally providing answers. Required when ai_call returns state='pending_confirm'. Uses the original payment — no new payment needed.","async":true,"l402_endpoint":"https://sats4ai.com/api/l402/ai-call","pricing":{"type":"free","note":"Uses original ai_call payment"},"input":{"required":["sessionId"],"optional":["answers"]},"output":{"format":"{ success, call_id, status, poll_url }"},"health":{"status":"ok","last_checked":"2026-10-12T12:01:30.528Z","consecutive_failures":0}},{"name":"check_job_status","category":"async","description":"Check status of an async job (video, video-image, image-3d, transcription, epub-audiobook). No payment required.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/job-status","pricing":{"type":"free"},"input":{"required":["requestId","jobType"],"optional":[]},"output":{"format":"{ status, result? }"}},{"name":"get_job_result","category":"async","description":"Retrieve the result of a completed async job. No payment required.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/job-status","pricing":{"type":"free"},"input":{"required":["requestId","jobType"],"optional":["paymentId"]},"output":{"format":"{ status, result }"}},{"name":"await_result","category":"async","description":"Wait for an async job and return its result in one call (check_job_status + get_job_result combined). Streams notifications/progress over SSE when the MCP request uses Accept: text/event-stream; otherwise returns a single status check. Waits up to ~4 min/call, then returns status=IN_PROGRESS (timed_out) — call again to keep waiting. No payment required.","async":false,"pricing":{"type":"free"},"input":{"required":["requestId","jobType"],"optional":["paymentId"]},"output":{"format":"{ status, result? }"}},{"name":"vote_on_service","category":"voting","description":"Vote for a planned service to be built next. 1 sat per vote. Highest-voted services get built first. Pay with Bitcoin Lightning.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/vote","pricing":{"type":"fixed","note":"1 sat per vote"},"input":{"required":["paymentId","slug"],"optional":[]},"output":{"format":"{ success, slug, votes }"}},{"name":"list_planned_services","category":"voting","description":"List planned services with current vote counts. No payment required. Services sorted by most-voted first.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/vote","pricing":{"type":"free"},"input":{"required":[],"optional":[]},"output":{"format":"{ services: [{ slug, name, description, votes }] }"}},{"name":"request_refund","category":"support","description":"Request a refund for a failed service. Requires the paymentId from the original payment. Only works when the service marked the payment as refund-eligible. No payment required.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/refund","pricing":{"type":"free"},"input":{"required":["paymentId","invoice"],"optional":["email","feedback"]},"output":{"format":"{ success, message, chargeId, amountSats }"}}]}