{"version":"1.0.0","generated_at":"2026-05-29T15:11:16.716Z","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"},"features":{"dedup":{"supported":true,"ttl_seconds":30,"header":"X-Dedup","bypass_header":"X-No-Cache"},"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"}},"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, retrieve with get_job_result.","job_types":["video","video-image","image-3d","transcription","epub-audiobook"],"statuses":["queued","processing","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, Seedream 4, Nano Banana 2. 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":200,"models":[{"id":2,"name":"Standard","sats":100,"isDefault":false},{"id":8,"name":"Better","sats":150,"isDefault":false},{"id":16,"name":"Best","sats":200,"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-05-29T15:00:07.428Z","consecutive_failures":0}},{"name":"edit_image","category":"image","endpoint_type":"primitive","description":"Edit images with natural language instructions. Uses Nano Banana 2. Handles object addition/removal, style transfer, inpainting. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/edit-image","pricing":{"type":"fixed","min":200,"max":200,"models":[{"id":18,"name":"Best","sats":200,"isDefault":false}]},"input":{"required":["paymentId","prompt","imageBase64"],"optional":["aspectRatio","outputFormat"]},"output":{"format":"{ image_url, fallback }"},"performance":{"latency_ms":{"p50":6000,"p95":15000},"reliability":"high","failure_modes":["image_too_large","upstream_timeout"]},"health":{"status":"ok","last_checked":"2026-05-29T15:00:07.430Z","consecutive_failures":0}},{"name":"generate_video","category":"video","endpoint_type":"primitive","description":"Generate video from text prompts. Uses Kling v3 — cinematic quality, physics-aware rendering. Standard/pro modes, optional audio. 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":"Standard: 300 sats/sec (no audio), 400 sats/sec (audio). Pro: 450 sats/sec (no audio), 550 sats/sec (audio).","min":50,"max":50,"models":[{"id":25,"name":"Video Generation","sats":50,"isDefault":true}]},"input":{"required":["paymentId","prompt","duration"],"optional":["modelId","mode","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-05-29T15:00:07.458Z","consecutive_failures":0}},{"name":"animate_image","category":"video","endpoint_type":"primitive","description":"Animate a still image into video with text guidance. Uses Grok Imagine Video — preserves source fidelity with natural motion. 100 sats/sec. 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":"100 sats per second of video.","min":100,"max":100,"models":[{"id":24,"name":"Image to Video","sats":100,"isDefault":true}]},"input":{"required":["paymentId","prompt","imageBase64","duration"],"optional":["modelId"]},"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-05-29T15:00:07.461Z","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 K2.5 (best), GPT-OSS-120B (better), Qwen3-32B (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. Better: 333 chars/sat. Best: 100 chars/sat.","min":4,"max":15,"models":[{"id":31,"name":"Standard","sats":4,"isDefault":false},{"id":1,"name":"Better","sats":5,"isDefault":false},{"id":6,"name":"Best","sats":15,"isDefault":true}]},"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-05-29T15:00:07.411Z","consecutive_failures":0}},{"name":"translate_text","category":"text","endpoint_type":"primitive","untrusted_output":true,"description":"Translate text across 119 languages. Uses Qwen3-32B with strong low-resource language support. 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, minimum 1 sat per request."},"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-05-29T15:00:07.425Z","consecutive_failures":0}},{"name":"generate_music","category":"audio","endpoint_type":"primitive","description":"Generate full songs (up to 6 min) with natural AI vocals, BPM/key control (99%+ accuracy), and 14+ section tags for precise arrangement. Uses Music-2.6. Orchestral and traditional instruments, style-aware mixing. 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":"fixed","min":300,"max":7500,"models":[{"id":23,"name":"Music-2.6","sats":300,"isDefault":true},{"id":22,"name":"Voice Cloning","sats":7500,"isDefault":false}]},"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","is_instrumental","lyrics_optimizer","sample_rate","bitrate","audio_format"]},"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-05-29T15:00:07.463Z","consecutive_failures":0}},{"name":"text_to_speech","category":"audio","endpoint_type":"primitive","description":"Text-to-speech with 3 tiers: OmniVoice Global (602+ languages, zero-shot voice cloning, 100 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, 50 chars/sat), Minimax Studio (voice cloning from reference clip, 10 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":3,"name":"Minimax Speech-2.8-HD","sats":1,"isDefault":true},{"id":33,"name":"Inworld TTS 1.5 Max","sats":1,"isDefault":false},{"id":34,"name":"Inworld TTS 1.5 Mini","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-05-29T15:00:07.465Z","consecutive_failures":0}},{"name":"transcribe_audio","category":"audio","endpoint_type":"primitive","untrusted_output":true,"description":"Transcribe audio to text with timestamps. Uses Mistral Transcription. 13 languages, handles accents and background noise. Up to 3 hours 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? }"},"performance":{"latency_ms":{"p50":15000,"p95":60000},"reliability":"high","failure_modes":["audio_too_long","unsupported_format","corrupted_audio"]},"health":{"status":"ok","last_checked":"2026-05-29T15:00:07.469Z","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. 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-05-29T15:00:07.472Z","consecutive_failures":0}},{"name":"clone_voice","category":"audio","endpoint_type":"primitive","description":"Clone any voice from a single audio sample. Returns reusable voice_id for text_to_speech. High-fidelity reproduction. Pay with Bitcoin Lightning — no API key or signup needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/clone-voice","pricing":{"type":"fixed","min":300,"max":7500,"models":[{"id":23,"name":"Music-2.6","sats":300,"isDefault":true},{"id":22,"name":"Voice Cloning","sats":7500,"isDefault":false}]},"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-05-29T15:00:07.467Z","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-05-29T15:00:07.456Z","consecutive_failures":0}},{"name":"extract_document","category":"document","endpoint_type":"recipe","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-05-29T15:00:07.474Z","consecutive_failures":0}},{"name":"extract_receipt","category":"document","endpoint_type":"recipe","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":50,"note":"50 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-05-29T15:00:07.476Z","consecutive_failures":0}},{"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, 100 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, 50 chars/sat), Minimax Studio (voice cloning from reference clip, 10 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 100 chars/sat, Inworld 50 chars/sat, Minimax 10 chars/sat. Minimum 500 sats."},"input":{"required":["paymentId","epubBase64","fileName"],"optional":["voice","language","speed","modelId","selectedChapterIndices","translateToLanguage"]},"output":{"format":"{ jobId } → poll → { resultUrl }"},"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-05-29T15:00:07.485Z","consecutive_failures":0}},{"name":"generate_3d_model","category":"3d","endpoint_type":"primitive","description":"Convert a photo into a textured 3D GLB model. Uses Seed3D — accurate geometry and materials from one image. 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":350,"max":350,"models":[{"id":17,"name":"Best","sats":350,"isDefault":true}]},"input":{"required":["paymentId","imageBase64"],"optional":["modelId"]},"output":{"format":"{ requestId } → poll → { modelUrl }"},"performance":{"latency_ms":{"p50":30000,"p95":90000},"reliability":"medium","failure_modes":["image_not_suitable_for_3d","generation_timeout","queue_delay"]},"health":{"status":"ok","last_checked":"2026-05-29T15:00:07.432Z","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. 5 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/remove-background","pricing":{"type":"fixed","min":2,"max":20,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":35,"name":"BiRefNet","sats":5,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":10,"isDefault":true},{"id":42,"name":"NAFNet","sats":20,"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-05-29T15:00:07.436Z","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":20,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":35,"name":"BiRefNet","sats":5,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":10,"isDefault":true},{"id":42,"name":"NAFNet","sats":20,"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-05-29T15:00:07.438Z","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. 5 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/restore-face","pricing":{"type":"fixed","min":2,"max":20,"models":[{"id":38,"name":"NSFW Detector","sats":2,"isDefault":true},{"id":35,"name":"BiRefNet","sats":5,"isDefault":true},{"id":36,"name":"Real-ESRGAN","sats":5,"isDefault":true},{"id":37,"name":"CodeFormer","sats":5,"isDefault":true},{"id":39,"name":"Grounding DINO","sats":5,"isDefault":true},{"id":41,"name":"DDColor","sats":5,"isDefault":true},{"id":40,"name":"Bria Eraser","sats":10,"isDefault":true},{"id":42,"name":"NAFNet","sats":20,"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-05-29T15:00:07.441Z","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-05-29T15:00:07.443Z","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-05-29T15:00:07.446Z","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'. 15 sats, no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/remove-object","pricing":{"type":"fixed","amount":15,"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-05-29T15:00:07.448Z","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-05-29T15:00:07.450Z","consecutive_failures":0}},{"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. 20 sats (~2 min), no API key needed.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/deblur-image","pricing":{"type":"fixed","amount":20,"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-05-29T15:00:07.453Z","consecutive_failures":0}},{"name":"convert_file","category":"file","endpoint_type":"primitive","description":"Convert files between 200+ formats. 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":50,"max":200,"models":[{"id":30,"name":"Receipt OCR","sats":50,"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":28,"name":"Unknown","sats":200,"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-05-29T15:00:07.478Z","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":50,"max":200,"models":[{"id":30,"name":"Receipt OCR","sats":50,"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":28,"name":"Unknown","sats":200,"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-05-29T15:00:07.483Z","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":50,"max":200,"models":[{"id":30,"name":"Receipt OCR","sats":50,"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":28,"name":"Unknown","sats":200,"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-05-29T15:00:07.481Z","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.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/send-email","pricing":{"type":"fixed","min":50,"max":200,"models":[{"id":30,"name":"Receipt OCR","sats":50,"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":28,"name":"Unknown","sats":200,"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-05-29T15:00:07.490Z","consecutive_failures":0}},{"name":"send_sms","category":"communication","endpoint_type":"primitive","description":"Reach a human via SMS for real-world coordination. Pay with Bitcoin Lightning — no phone plan, no telecom account, no KYC.","async":false,"l402_endpoint":"https://sats4ai.com/api/l402/send-sms","pricing":{"type":"dynamic","note":"Varies by destination country."},"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"]},"health":{"status":"ok","last_checked":"2026-05-29T15:00:07.488Z","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.","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-05-29T15:00:07.496Z","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-05-29T15:00:07.492Z","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-05-29T15:00:07.494Z","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.","async":true,"l402_endpoint":"https://sats4ai.com/api/l402/ai-call","pricing":{"type":"deposit","note":"Telephony + AI agent per-minute rate. ~150-250 sats for 3-min US call. 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","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-05-29T15:00:07.499Z","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 — real-time phone call infrastructure where YOUR LLM is the brain. Sats4AI provides PSTN + streaming STT + TTS as composable primitives; you drive each turn via say/poll/end. Unlike ai_call, your conversation context never leaves your side. 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":"Per-minute deposit: ~10 sats US/CA, ~30 intl, ~80 rare. Unused time 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","endpoint_type":"recipe","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","endpoint_type":"recipe","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","endpoint_type":"recipe","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","endpoint_type":"recipe","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-05-29T15:00:07.499Z","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":[]},"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 }"}}]}