{"version":"1.0.0","generated_at":"2026-07-14T01:59:01.615Z","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":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 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":["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-07-14T01:46:03.847Z","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-07-14T01:46:03.850Z","consecutive_failures":0}},{"name":"generate_video","category":"video","endpoint_type":"primitive","description":"Generate cinematic video from a text prompt with ByteDance Seedance 2.0 — #1 on the Artificial Analysis text-to-video leaderboard — with native audio. 480p/720p/1080p, 4-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 (BTC-pegged; native audio free): ~480p 310 / 720p 690 / 1080p 1720 sats/sec at current rates.","min":50,"max":50,"models":[{"id":25,"name":"Video Generation","sats":50,"isDefault":true}]},"input":{"required":["paymentId","prompt","duration"],"optional":["modelId","resolution","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-07-14T01:46:03.902Z","consecutive_failures":0}},{"name":"animate_image","category":"video","endpoint_type":"primitive","description":"Animate a still image into cinematic video with ByteDance Seedance 2.0 (first/last frame + prompt). Native audio, 480p/720p/1080p, 4-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 (BTC-pegged; native audio free): ~480p 310 / 720p 690 / 1080p 1720 sats/sec at current rates.","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-07-14T01:46:03.906Z","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-07-14T01:46:03.801Z","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-07-14T01:46:03.844Z","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-07-14T01:46:03.908Z","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":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":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-07-14T01:46:03.911Z","consecutive_failures":0}},{"name":"transcribe_audio","category":"audio","endpoint_type":"primitive","untrusted_output":true,"description":"Transcribe audio to text with timestamped segments and ready-to-use SRT/VTT subtitle files. Uses Mistral Transcription. 13 languages, handles accents and background noise. 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-07-14T01:46:03.916Z","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-07-14T01:46:03.919Z","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","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-07-14T01:46:03.914Z","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-07-14T01:46:03.900Z","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-07-14T01:46:03.921Z","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-07-14T01:46:03.924Z","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-07-14T01:46:03.937Z","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":350,"max":350,"models":[{"id":17,"name":"Best","sats":350,"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-07-14T01:46:03.854Z","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-07-14T01:46:03.877Z","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-07-14T01:46:03.882Z","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-07-14T01:46:03.885Z","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-07-14T01:46:03.887Z","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-07-14T01:46:03.889Z","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-07-14T01:46:03.893Z","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-07-14T01:46:03.895Z","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-07-14T01:46:03.897Z","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-07-14T01:46:03.927Z","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-07-14T01:46:03.933Z","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-07-14T01:46:03.930Z","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. Scam screening is in place: content that impersonates a company or government, threatens or harasses the recipient, or solicits credentials or codes is flagged after payment, NOT sent, and the payment is NOT automatically refunded; a human review can be requested via the docs page.","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-07-14T01:46:03.943Z","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. Scam screening is in place: content that impersonates a company or government, threatens or harasses the recipient, or solicits credentials or codes is flagged after payment, NOT sent, and the payment is NOT automatically refunded; a human review can be requested via the docs page. Per-destination send limits apply.","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-07-14T01:46:03.940Z","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. Scam screening is in place: message content that impersonates a company or government, threatens or harasses the recipient, or solicits credentials or codes is flagged after payment, the call is NOT placed, and the payment is NOT automatically refunded; a human review can be requested via the docs page. Per-destination send limits apply.","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-07-14T01:46:03.952Z","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-07-14T01:46:03.946Z","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-07-14T01:46:03.949Z","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. Scam screening is in place: tasks that impersonate a company or government, threaten or harass the recipient, or solicit credentials or codes are flagged after payment, the call is NOT placed, and the payment is NOT automatically refunded; a human review can be requested via the docs page. Per-destination send limits apply.","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-07-14T01:46:03.954Z","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","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-07-14T01:46:03.954Z","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":"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":[]},"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 }"}}]}