{"version":"0.3.0","name":"Sats4AI","description":"Bitcoin-powered AI services marketplace. No signup, no KYC. Pay per request with Lightning Network. Model selection is optional — omit modelId to get the best default model automatically.","homepage":"https://sats4ai.com","onion_url":"http://j5tfaz7s7osapdbry4d2wb5usyhtcvrm7kutonliqq7sjv2c47lsgoid.onion","protocol":"L402","protocols":["L402","MPP"],"payment_network":"lightning","model_discovery":"https://sats4ai.com/api/l402/models","error_codes_url":"https://sats4ai.com/api/error-codes","estimate_cost_url":"https://sats4ai.com/api/estimate-cost","docs_url":"https://sats4ai.com/docs","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."}},"authentication":{"protocols_supported":["L402","MPP"],"l402":{"challenge_header":"www-authenticate","challenge_format":"L402 macaroon=\"<base64_standard>\", invoice=\"<bolt11_invoice>\"","authorization_header":"Authorization","authorization_format":"L402 <base64_macaroon>:<hex_preimage>","macaroon_encoding":"base64_standard","preimage_encoding":"hex","token_expiry":"10 minutes"},"mpp":{"spec":"IETF draft-ryan-httpauth-payment","challenge_header":"www-authenticate","challenge_format":"Payment id=\"<chargeId>\", realm=\"sats4ai.com\", method=\"lightning\", intent=\"charge\", request=\"<base64url_json>\", expires=\"<iso8601>\"","authorization_header":"Authorization","authorization_format":"Payment <base64url_json>","credential_json":"{ \"challenge\": { \"id\": \"<chargeId>\", \"macaroon\": \"<base64>\" }, \"payload\": { \"preimage\": \"<hex>\" } }","receipt_header":"Payment-Receipt (base64url JSON with status, method, timestamp, reference, preimage)","note":"Both L402 and Payment schemes are returned in the WWW-Authenticate header. Clients may use either."}},"services":[{"id":"generate-image","name":"Image Generation","description":"Generate images from text prompts. Models: Grok Imagine (fast creative, 100 sats), Seedream 4 (photorealistic, 150 sats), Nano Banana 2 (premium, 200 sats, default). Supports img2img with optional base64 input. Stable endpoints — models upgrade as SOTA evolves. Pay with Bitcoin Lightning — no API key or signup needed.","models":["Grok Imagine (Standard)","Seedream 4 (Better)","Nano Banana 2 (Best)"],"endpoint":"https://sats4ai.com/api/l402/generate-image","method":"POST","content_type":"application/json","pricing":{"amount":100,"currency":"SAT","type":"fixed"},"request_body":{"input":{"type":"object","required":true,"properties":{"prompt":{"type":"string","required":true,"description":"Text description of the image to generate"},"width":{"type":"integer","default":1024},"height":{"type":"integer","default":1024}}},"modelId":{"type":"string|number","required":false,"description":"Optional. 'best','better','standard' or numeric ID. Omit for best default."}},"response":{"content_type":"application/json","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"]}},{"id":"generate-text","name":"Text Generation","description":"Generate text with frontier LLMs. Pure per-character pricing (no minimum). Models: Kimi K2.5 (best, 100 chars/sat), GPT-OSS-120B (better, 333 chars/sat), Qwen3-32B (standard, 1000 chars/sat). Supports document Q&A and vision. Pay with Bitcoin Lightning — no API key or signup needed.","models":["Kimi K2.5 (Best)","GPT-OSS-120B (Better)","Qwen3-32B (Standard)"],"endpoint":"https://sats4ai.com/api/l402/generate-text","method":"POST","content_type":"application/json","pricing":{"amount":4,"currency":"SAT","type":"dynamic","note":"Pure per-character pricing, no minimum. Standard: 1000 chars/Sat. Better: 333 chars/Sat. Best: 100 chars/Sat. POST without Authorization to get priced invoice."},"request_body":{"input":{"type":"array","required":true,"description":"Array of {role, content} chat messages"},"modelId":{"type":"string|number","required":false,"description":"Optional. 'best' or 'standard'. Omit for best default."}},"response":{"content_type":"text/plain","format":"text"},"performance":{"latency_ms":{"p50":3000,"p95":10000},"reliability":"high","failure_modes":["context_too_long","rate_limited_upstream"]}},{"id":"send-sms","name":"SMS Messaging","description":"Reach a human via SMS for real-world coordination. Send to any phone number worldwide — messages delivered in seconds. Pay with Bitcoin Lightning — no phone plan, no telecom account, no KYC.","endpoint":"https://sats4ai.com/api/l402/send-sms","method":"POST","content_type":"application/json","pricing":{"amount":1000,"currency":"SAT","type":"dynamic","note":"Price varies by destination country."},"request_body":{"phone_number":{"type":"string","required":true,"example":"+1234567890","description":"E.164 format"},"message":{"type":"string","required":true,"max_length":120}},"response":{"content_type":"text/plain","format":"text"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["invalid_phone_number","destination_not_reachable","country_not_supported"]}},{"id":"generate-video","name":"Video Generation","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.","model":"Kling v3","endpoint":"https://sats4ai.com/api/l402/generate-video","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"dynamic","note":"Charged per second. standard: 300 sats/sec (no audio), 400 sats/sec (with audio). pro: 450 sats/sec (no audio), 550 sats/sec (with audio). Example: 5 sec pro no audio = 2,250 sats. POST without Authorization to receive a priced invoice."},"request_body":{"prompt":{"type":"string","required":true},"modelId":{"type":"string|number","required":false,"description":"Optional. Omit for best default."},"duration":{"type":"integer","min":3,"max":15,"default":5,"description":"Duration in seconds (3–15)"},"mode":{"type":"string","enum":["standard","pro"],"default":"pro"},"generate_audio":{"type":"boolean","default":false,"description":"Include AI-generated audio track"}},"response":{"content_type":"application/json","format":"{ requestId, status: 'processing', poll_url, poll_interval_ms }","async":true,"note":"Poll poll_url until status is 'completed', then retrieve videoUrl from the result."},"performance":{"latency_ms":{"p50":60000,"p95":180000},"reliability":"medium","failure_modes":["generation_timeout_on_long_clips","queue_delay_during_peak","safety_filter_rejection"]}},{"id":"animate-image","name":"Image Animation","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.","model":"Grok Imagine Video","endpoint":"https://sats4ai.com/api/l402/animate-image","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"dynamic","note":"100 sats/sec. Example: 5 sec = 500 sats. POST without Authorization to receive a priced invoice."},"request_body":{"prompt":{"type":"string","required":true},"image":{"type":"string","required":true,"description":"Base64-encoded image"},"modelId":{"type":"string|number","required":false},"duration":{"type":"integer","min":3,"max":15,"default":5,"description":"Duration in seconds (3–15)"}},"response":{"content_type":"application/json","format":"{ requestId, status: 'processing', poll_url, poll_interval_ms }","async":true,"note":"Poll poll_url until status is 'completed', then retrieve videoUrl from the result."},"performance":{"latency_ms":{"p50":45000,"p95":120000},"reliability":"medium","failure_modes":["image_quality_too_low","generation_timeout","queue_delay_during_peak"]}},{"id":"generate-music","name":"Music Generation","description":"Generate full songs (up to 6 min) with natural AI vocals, BPM/key control (99%+ accuracy), and 14+ section tags. 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.","model":"Music-2.6","endpoint":"https://sats4ai.com/api/l402/generate-music","method":"POST","content_type":"application/json","pricing":{"amount":300,"currency":"SAT","type":"fixed"},"billing":{"type":"prepaid","refund_on_failure":"lnurl_withdraw"},"request_body":{"prompt":{"type":"string","required":true,"description":"Music style with BPM, key, genre, mood, instruments (up to 2,000 chars)"},"lyrics":{"type":"string","required":false,"description":"Song lyrics with section tags (up to 3,500 chars). Tags: [Intro], [Verse], [Pre Chorus], [Chorus], [Bridge], [Outro], [Solo], [Hook], etc."},"is_instrumental":{"type":"boolean","required":false,"default":false,"description":"Set true for instrumental-only tracks (no vocals)"},"lyrics_optimizer":{"type":"boolean","required":false,"default":false,"description":"Set true to auto-generate lyrics from prompt"},"modelId":{"type":"string|number","required":false},"sample_rate":{"type":"integer","default":44100},"bitrate":{"type":"integer","default":256000},"audio_format":{"type":"string","default":"mp3","enum":["mp3","wav","pcm"]}},"response":{"content_type":"application/json","format":"{ audioUrl }"},"performance":{"latency_ms":{"p50":40000,"p95":90000},"reliability":"high","failure_modes":["generation_timeout_on_long_tracks"]}},{"id":"text-to-speech","name":"Text to Speech","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.","model":"OmniVoice / Inworld Max / Minimax","endpoint":"https://sats4ai.com/api/l402/text-to-speech","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"per_character","note":"OmniVoice: 100 chars/sat, Inworld: 50 chars/sat, Minimax: 10 chars/sat"},"request_body":{"text":{"type":"string","required":true,"description":"Text to convert. 1-5000 chars."},"voice":{"type":"string","required":false,"default":"Ashley","description":"Voice ID (e.g., Ashley, Deep_Voice_Man, English_CalmWoman). Not needed for OmniVoice tier — use language + voice_description instead."},"speed":{"type":"number","required":false,"default":1,"min":0.5,"max":2},"modelId":{"type":"string|number","required":false,"description":"Model ID. 3 tiers: OmniVoice Global (602+ langs), Inworld Premium (#1 ranked), Minimax Studio (voice cloning)."},"language":{"type":"string","required":false,"default":"en","description":"OmniVoice only: ISO 639 language code (e.g., 'en', 'yo', 'bn', 'ceb', 'sw', 'mr'). 602+ languages supported."},"voice_description":{"type":"string","required":false,"description":"OmniVoice only: describe desired voice (e.g., 'female, young adult, high pitch, british accent')."}},"response":{"content_type":"application/json","format":"{ audioUrl }"},"performance":{"latency_ms":{"p50":4000,"p95":10000},"reliability":"high","failure_modes":["text_too_long_for_single_request","voice_id_not_found"]}},{"id":"transcribe-audio","name":"Audio Transcription","description":"Transcribe audio to text with timestamps. Uses Mistral Transcription — handles accents, background noise, overlapping speakers. 13 languages, up to 3 hours per file. Pay with Bitcoin Lightning — no API key or signup needed.","model":"Mistral Transcription","endpoint":"https://sats4ai.com/api/l402/transcribe-audio","method":"POST","content_type":"application/json","pricing":{"amount":1,"currency":"SAT","type":"per_minute"},"request_body":{"file":{"type":"string","required":true,"description":"Base64-encoded audio (mp3, wav, flac, ogg, m4a)"},"type":{"type":"string","required":true,"enum":["transcription","translation"]},"language":{"type":"string","default":"auto","description":"Language code or omit for auto-detect"},"modelId":{"type":"string|number","required":false}},"async":true,"async_note":"Returns 202 with requestId and poll_url. Poll /api/l402/job-status?requestId=...&jobType=transcription until status is 'completed'.","response":{"content_type":"application/json","format":"{ requestId, status, poll_url }"},"performance":{"latency_ms":{"p50":15000,"p95":60000},"reliability":"high","failure_modes":["audio_too_long","unsupported_format","corrupted_audio"]}},{"id":"analyze-image","name":"Image Analysis","description":"Analyze images, answer visual questions, extract info from screenshots. Uses Qwen VL — strong OCR, chart reading, and spatial reasoning. Pay with Bitcoin Lightning — no API key or signup needed.","model":"Qwen VL","endpoint":"https://sats4ai.com/api/l402/analyze-image","method":"POST","content_type":"application/json","pricing":{"amount":21,"currency":"SAT","type":"fixed"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image or data URI"},"prompt":{"type":"string","default":"What's in this image?"},"modelId":{"type":"string|number","required":false}},"response":{"content_type":"application/json","format":"{ content }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["image_too_large","corrupted_image"]}},{"id":"generate-3d-model","name":"3D Model Generation","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.","model":"Seed3D","endpoint":"https://sats4ai.com/api/l402/generate-3d-model","method":"POST","content_type":"application/json","pricing":{"amount":350,"currency":"SAT","type":"fixed"},"request_body":{"image":{"type":"string","required":true,"description":"Base64 data URI (PNG, JPEG, WEBP)"},"modelId":{"type":"string|number","required":false}},"response":{"content_type":"application/json","format":"{ modelUrl }"},"performance":{"latency_ms":{"p50":30000,"p95":90000},"reliability":"medium","failure_modes":["image_not_suitable_for_3d","generation_timeout","queue_delay"]}},{"id":"convert-file","name":"File Conversion","description":"Convert files between 200+ formats: documents (PDF, DOCX, XLSX), images (PNG, JPG, WEBP, SVG), audio (MP3, WAV, FLAC), video (MP4, AVI, MOV). Preserves formatting and quality. Pay with Bitcoin Lightning — no account needed.","endpoint":"https://sats4ai.com/api/l402/convert-file","method":"POST","content_type":"application/json","pricing":{"amount":50,"currency":"SAT","type":"fixed"},"request_body":{"file":{"type":"string","required":true,"description":"Base64-encoded file"},"file_name":{"type":"string","required":true},"extensionFrom":{"type":"string","required":true},"extensionTo":{"type":"string","required":true}},"response":{"content_type":"application/json","format":"{ url }"},"performance":{"latency_ms":{"p50":5000,"p95":20000},"reliability":"high","failure_modes":["unsupported_format_pair","file_too_large","corrupted_file"]}},{"id":"extract-document","name":"Document Extraction","description":"Extract text from PDFs and images as clean Markdown. Uses Mistral OCR — handles complex layouts, tables, handwriting, multi-column documents, and mathematical notation. Pay with Bitcoin Lightning — no API key or signup needed.","model":"Mistral OCR","endpoint":"https://sats4ai.com/api/l402/extract-document","method":"POST","content_type":"application/json","pricing":{"amount":10,"currency":"SAT","type":"per_page"},"request_body":{"document":{"type":"string","required":true,"description":"Base64-encoded document as data URI (PDF or image)"},"modelId":{"type":"string|number","required":false}},"response":{"content_type":"application/json","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"]}},{"id":"place-call","name":"Phone Call","description":"Bridge the digital-physical gap — deliver spoken messages or audio to any phone number. Deposit billing: pay for N minutes upfront, unused time refunded automatically to your Lightning address. Pay with Bitcoin Lightning — no telecom account, no KYC.","endpoint":"https://sats4ai.com/api/l402/place-call","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","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 duration is measured server-side. Unused sats are refunded automatically to a Lightning address (if provided) or claimable via bolt11 invoice.","refund_field":"refund_address (Lightning address, optional)"},"request_body":{"phone_number":{"type":"string","required":true,"description":"E.164 format"},"message":{"type":"string","required":false,"description":"TTS message (max 500 chars)"},"audio_url":{"type":"string","required":false,"description":"Audio file URL to play"},"duration_minutes":{"type":"number","required":false,"description":"Minutes to deposit for (1-30). Required with audio_url."},"refund_address":{"type":"string","required":false,"description":"Lightning address for automatic refund of unused time"}},"response":{"content_type":"application/json","format":"{ success, sid, status, to }"},"performance":{"latency_ms":{"p50":5000,"p95":15000},"reliability":"high","failure_modes":["invalid_phone_number","destination_not_reachable","call_rejected"]}},{"id":"ai-call","name":"AI Phone Call","description":"Send an AI voice agent to make a two-way phone call. Deposit billing: pay for N minutes upfront, unused time refunded automatically. The agent analyzes the task before calling — if critical info is missing (e.g., booking without date/time), it returns clarification questions (push-back). Confirm with answers to proceed. Auto-retries up to 3 attempts on voicemail/busy/no-answer (included in payment). On task failure, returns full transcript + analysis so the orchestrator can adjust and retry with a new payment.","endpoint":"https://sats4ai.com/api/l402/ai-call","method":"POST","content_type":"application/json","async":true,"pricing":{"currency":"SAT","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 duration is measured server-side. Unused sats are refunded automatically to a Lightning address (if provided) or claimable via bolt11 invoice.","refund_field":"refund_address (Lightning address, optional)"},"request_body":{"phone_number":{"type":"string","required":true,"description":"E.164 format"},"task":{"type":"string","required":true,"description":"Instructions for the AI agent (max 2000 chars)"},"duration_minutes":{"type":"number","required":false,"description":"Minutes to deposit for (1-30, default 3). Pricing scales with duration."},"voice":{"type":"string","required":false,"description":"AI agent voice (Adrian, Myra, Paola, Chris, etc.)"},"language":{"type":"string","required":false,"description":"Language code (en-US, es-ES, fr-FR, etc.)"},"begin_message":{"type":"string","required":false,"description":"Optional opening line"},"refund_address":{"type":"string","required":false,"description":"Lightning address for automatic refund of unused time"}},"response":{"content_type":"application/json","format":"{ success, call_id, state, session_id, poll_url } or { state: 'pending_confirm', session_id, questions }"},"poll_status":"GET /api/l402/ai-call?call_id={call_id}","confirm_action":{"description":"If response has state:'pending_confirm', POST with action:'confirm' to provide answers and proceed.","method":"POST","body":"{ action: 'confirm', session_id: string, answers?: Record<string, string> }","note":"No re-authentication needed — session validates prior payment."},"auto_retry":"Up to 3 attempts on voicemail, busy, no answer, or short hangup (<30s). Included in payment. Poll status shows retry progress.","failure_response":"On task failure, poll returns full transcript, call_analysis, disconnection_reason, and task_completed:false. Adjust task and retry with a new payment.","performance":{"latency_ms":{"p50":10000,"p95":30000},"reliability":"medium","failure_modes":["call_not_answered","ivr_navigation_failed","call_timeout","destination_not_reachable"]}},{"id":"send-fax","name":"Send Fax","description":"When your task requires a paper-trail on the other end — loan paperwork to a bank, signed contract to a notary, booking confirmation to a hotel that still accepts only fax — send a fax to any number worldwide. Two modes: 'pdf' (fetch from public URL) or 'text' (we format typed text into a PDF locally). Optional cover page. Pay with Bitcoin Lightning — no fax machine, no phone line, no telecom account.","endpoint":"https://sats4ai.com/api/l402/send-fax","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"tiered","base_sats":500,"base_pages":10,"per_page_after_sats":50,"note":"500 sats for up to 10 pages, +50 sats per additional page. Max 350 pages."},"request_body":{"phone_number":{"type":"string","required":true,"description":"Destination fax number in E.164 format"},"mode":{"type":"string","required":true,"enum":["pdf","text"],"description":"pdf: send from pdf_url. text: generate PDF from typed text."},"pdf_url":{"type":"string","required":false,"description":"Required for mode=pdf: public HTTPS URL returning application/pdf"},"text":{"type":"string","required":false,"description":"Required for mode=text: message text"},"cover_text":{"type":"string","required":false,"description":"Optional cover page text (mode=pdf only, +1 page)"},"pages":{"type":"number","required":true,"description":"Expected page count (1-350). Determines invoice amount. Actual page count verified after PDF download; overpayment not refunded, underpayment returns error with refund."}},"response":{"content_type":"application/json","format":"{ status, fax_id, pages, paid_pages, amount_sats }"},"limits":{"max_pages":350,"max_size_mb":50},"performance":{"latency_ms":{"p50":15000,"p95":45000},"reliability":"high","failure_modes":["invalid_pdf_url","page_limit_exceeded","destination_not_reachable"]}},{"id":"receive-fax","name":"Receive Fax","description":"When you're expecting a fax back — bank confirmation, court filing, signed document, medical report — open a 24h receive window at our shared number (+1 320 299 1523). Matched by caller ID (last 10 digits of sender). Delivered to your email as soon as the fax arrives. Optional OCR text extraction add-on returns a searchable text file alongside the PDF, useful for feeding to AI agents or archiving. First-come-first-served. No refund if no fax arrives (prevents subscription squatting). If OCR fails, an LNURL-withdraw for the 200-sat OCR fee is included in the delivery email. Pay with Bitcoin Lightning — no dedicated fax number rental, no monthly subscription.","endpoint":"https://sats4ai.com/api/l402/receive-fax","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"tiered","tiers":[{"amount":500,"note":"base"},{"amount":700,"note":"with OCR add-on"}],"overage_note":"Faxes >10 pages trigger an overage invoice emailed separately (+50 sats/page, +20 sats/page OCR)."},"request_body":{"email":{"type":"string","required":true,"description":"Email to deliver the PDF to"},"from_number":{"type":"string","required":true,"description":"Expected sender fax number in E.164 (matched by last 10 digits of caller ID)"},"ocr":{"type":"boolean","required":false,"default":false,"description":"Add OCR text extraction (+200 sats). If OCR fails, LNURL-withdraw for 200 sats included in delivery email."}},"response":{"content_type":"application/json","format":"{ status, subscription_id, from_number, email, ocr, expires_at, forward_to_number }"},"behavior":{"window":"24 hours from purchase","matching":"First matching fax consumes the subscription. Subsequent faxes from same origin during window are dropped.","failure_extension":"Telnyx failure events extend window by 8h (max 2 extensions).","overage_hold":"PDFs over quota held 7 days pending overage payment.","no_refund":"Purchasing this window is non-refundable. No fax arriving does not trigger refund."},"performance":{"latency_ms":{"p50":1000,"p95":3000},"reliability":"high","failure_modes":["conflicting_subscription","invalid_sender_number"]}},{"id":"clone-voice","name":"Voice Cloning","description":"Clone any voice from a single audio sample. Returns a reusable voice_id for text_to_speech. High-fidelity reproduction capturing tone, cadence, and accent. Turbo or HD modes. Pay with Bitcoin Lightning — no API key or signup needed.","models":["Speech-02 Turbo","Speech-02 HD"],"endpoint":"https://sats4ai.com/api/l402/clone-voice","method":"POST","content_type":"application/json","pricing":{"amount":7500,"currency":"SAT","type":"fixed"},"request_body":{"voice_file":{"type":"string","required":true,"description":"URL to audio file (MP3, WAV)"},"model":{"type":"string","required":false,"enum":["speech-02-turbo","speech-02-hd"],"default":"speech-02-turbo"},"accuracy":{"type":"number","required":false,"default":0.7,"min":0,"max":1}},"response":{"content_type":"application/json","format":"{ voice_id, model, message }"},"performance":{"latency_ms":{"p50":8000,"p95":20000},"reliability":"high","failure_modes":["audio_sample_too_short","poor_audio_quality"]}},{"id":"edit-image","name":"Image Editing","description":"Edit images with natural language instructions. Uses Nano Banana 2 — handles object addition/removal, style transfer, inpainting. Resolution-tiered pricing. Pay with Bitcoin Lightning — no API key or signup needed.","model":"Nano Banana 2","endpoint":"https://sats4ai.com/api/l402/edit-image","method":"POST","content_type":"application/json","pricing":{"amount":200,"currency":"SAT","type":"fixed"},"request_body":{"prompt":{"type":"string","required":true,"description":"Editing instructions"},"image":{"type":"string","required":true,"description":"Base64-encoded image"},"resolution":{"type":"string","required":false,"enum":["1k","2k","4k"],"default":"1k","description":"Output resolution. 1k: 200 sats, 2k: 300 sats, 4k: 450 sats"},"aspect_ratio":{"type":"string","required":false,"default":"match_input_image"},"output_format":{"type":"string","required":false,"enum":["jpg","png","webp"],"default":"jpg"},"modelId":{"type":"string|number","required":false}},"response":{"content_type":"application/json","format":"{ image_url, fallback }"},"performance":{"latency_ms":{"p50":6000,"p95":15000},"reliability":"high","failure_modes":["image_too_large","upstream_timeout"]}},{"id":"merge-pdfs","name":"PDF Merge","description":"Merge multiple PDFs into one. Preserves bookmarks, links, formatting. Pay with Bitcoin Lightning — no account needed.","endpoint":"https://sats4ai.com/api/l402/merge-pdfs","method":"POST","content_type":"application/json","pricing":{"amount":100,"currency":"SAT","type":"fixed"},"request_body":{"files":{"type":"array","required":true,"description":"Array of base64-encoded PDF files (minimum 2)"}},"response":{"content_type":"application/json","format":"{ url, fileName }"},"performance":{"latency_ms":{"p50":4000,"p95":12000},"reliability":"high","failure_modes":["pdf_too_large","corrupted_pdf"]}},{"id":"send-email","name":"Email Sending","description":"Reach anyone via email — formal comms, reports, notifications. No SMTP server or domain verification needed. Pay with Bitcoin Lightning — no API key or signup needed.","endpoint":"https://sats4ai.com/api/l402/send-email","method":"POST","content_type":"application/json","pricing":{"amount":200,"currency":"SAT","type":"fixed"},"request_body":{"to":{"type":"string","required":true,"description":"Recipient email"},"subject":{"type":"string","required":true,"max_length":200},"body":{"type":"string","required":true,"max_length":10000,"description":"Plain text body"},"replyTo":{"type":"string","required":false,"description":"Reply-to address"}},"response":{"content_type":"application/json","format":"{ success, message }"},"performance":{"latency_ms":{"p50":2000,"p95":5000},"reliability":"high","failure_modes":["invalid_email_address","smtp_delivery_failure"]}},{"id":"convert-html-to-pdf","name":"HTML/Markdown to PDF","description":"Convert HTML or Markdown to pixel-perfect PDF. Great for invoices, reports, documents. Pay with Bitcoin Lightning — no API key or signup needed.","endpoint":"https://sats4ai.com/api/l402/convert-html-to-pdf","method":"POST","content_type":"application/json","pricing":{"amount":50,"currency":"SAT","type":"fixed"},"request_body":{"html":{"type":"string","required":true,"description":"HTML or Markdown content"},"format":{"type":"string","required":false,"enum":["html","markdown"],"default":"html"}},"response":{"content_type":"application/json","format":"{ url, fileName }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["html_too_complex","rendering_timeout"]}},{"id":"translate-text","name":"Text Translation","model":"Qwen3-32B","description":"Translate text across 119 languages. Uses Qwen3-32B with strong low-resource language support. Auto-detects source. Privacy-preserving: no data stored. 1 sat per 1000 characters, no minimum. Pay with Bitcoin Lightning — no API key or signup needed.","endpoint":"https://sats4ai.com/api/l402/translate-text","method":"POST","content_type":"application/json","pricing":{"currency":"SAT","type":"dynamic","note":"1,000 characters per sat, no minimum. POST without Authorization to receive a priced invoice."},"request_body":{"text":{"type":"string","required":true,"description":"Text to translate"},"targetLanguage":{"type":"string","required":true,"description":"Target language name (e.g., 'Spanish')"},"sourceLanguage":{"type":"string","required":false,"description":"Source language (auto-detected if omitted)"},"modelId":{"type":"string|number","required":false}},"response":{"content_type":"application/json","format":"{ translatedText, sourceLanguage, targetLanguage }"},"performance":{"latency_ms":{"p50":2000,"p95":6000},"reliability":"high","failure_modes":["unsupported_language_pair","context_too_long"]}},{"id":"extract-receipt","name":"Receipt Extraction","description":"Extract structured data from receipts and invoices. Dual-model pipeline for high-accuracy extraction. Returns JSON with merchant, date, line items, totals, tax, currency, and expense category. Handles crumpled receipts and faded text. Pay with Bitcoin Lightning — no API key or signup needed.","models":["Mistral OCR","Kimi K2.5"],"endpoint":"https://sats4ai.com/api/l402/extract-receipt","method":"POST","content_type":"application/json","pricing":{"amount":50,"currency":"SAT","type":"per_page","note":"50 sats per page. Multi-page PDFs charged per page, single images = 1 page."},"request_body":{"document":{"type":"string","required":true,"description":"Base64-encoded receipt/invoice image or PDF"}},"response":{"content_type":"application/json","format":"{ structured, rawText }"},"performance":{"latency_ms":{"p50":6000,"p95":12000},"reliability":"high","failure_modes":["unreadable_receipt","non_receipt_document"]}},{"id":"epub-audiobook","name":"Book to Audiobook","description":"Convert books (EPUB/PDF/TXT) to full audiobooks with chapter markers. 3 voice tiers: OmniVoice Global (602+ langs, 100 chars/sat), Inworld Premium (#1 ranked, 50 chars/sat), Minimax Studio (voice clone, 10 chars/sat). Pay with Bitcoin Lightning — no API key or signup needed. Async.","endpoint":"https://sats4ai.com/api/l402/epub-audiobook","method":"POST","content_type":"application/json","async":true,"pricing":{"currency":"SAT","type":"dynamic","minimum":500,"note":"Per-character pricing varies by voice tier: OmniVoice 100 chars/sat, Inworld 50 chars/sat, Minimax 10 chars/sat. Minimum 500 sats. POST without Authorization to receive a priced invoice."},"request_body":{"epubBase64":{"type":"string","required":true,"description":"Base64-encoded book file (EPUB, PDF, or TXT, max 50 MB)"},"fileName":{"type":"string","required":true,"description":"Original filename with extension (e.g. 'mybook.epub', 'document.pdf', 'story.txt')"},"voice":{"type":"string","required":false,"default":"Ashley","description":"TTS voice name"},"language":{"type":"string","required":false,"default":"English","description":"Narration language"},"speed":{"type":"number","required":false,"default":1,"min":0.5,"max":2,"description":"Narration speed"},"modelId":{"type":"string|number","required":false,"description":"3 voice tiers: OmniVoice Global (602+ langs), Inworld Premium (#1 ranked), Minimax Studio (voice clone). Omit for default."},"selectedChapterIndices":{"type":"array","required":false,"description":"Optional array of chapter indices to include (0-based). Omit to auto-filter front/back matter."},"translateToLanguage":{"type":"string","required":false,"description":"Translate book to this language before narration (e.g., 'Spanish', 'French'). Translation cost added to price."}},"response":{"content_type":"application/json","format":"{ jobId, jobType, status, poll_url, poll_interval_ms }","async":true,"note":"Poll poll_url until status is 'COMPLETED', then read resultUrl from the response."},"performance":{"latency_ms":{"p50":120000,"p95":600000},"reliability":"medium","failure_modes":["epub_parsing_error","chapter_extraction_failed","tts_timeout_on_long_chapters"]}},{"id":"remove-background","name":"Background Removal","description":"Remove background from any image, returning transparent PNG. Uses BiRefNet (SOTA, Papers with Code — Sm 0.901 on DIS5K). Handles hair, fur, glass, transparency, complex edges. Stable endpoint — model upgrades as SOTA evolves. 5 sats, pay with Bitcoin Lightning — no API key needed.","model":"BiRefNet (CAAI AIR 2024)","endpoint":"https://sats4ai.com/api/l402/remove-background","method":"POST","content_type":"application/json","pricing":{"amount":2,"currency":"SAT","type":"fixed"},"quality":{"benchmark":"DIS5K-TE (Papers with Code)","scores":{"Sm":0.901,"maxFm":0.896,"MAE":0.035},"source":"https://paperswithcode.com/task/image-matting"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image or data URI (PNG, JPEG, WEBP)"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["image_too_large"]}},{"id":"upscale-image","name":"Image Upscaling","description":"Upscale images 2x/4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, 100M+ runs). Recovers real detail, not interpolation. Optional face enhancement. Stable endpoint — model upgrades as SOTA evolves. 5 sats, pay with Bitcoin Lightning — no API key needed.","model":"Real-ESRGAN (ICCV Workshop 2021)","endpoint":"https://sats4ai.com/api/l402/upscale-image","method":"POST","content_type":"application/json","pricing":{"amount":2,"currency":"SAT","type":"fixed"},"quality":{"benchmark":"Set5 4x (Papers with Code)","scores":{"PSNR":32.73,"SSIM":0.9011},"source":"https://paperswithcode.com/task/image-super-resolution"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image or data URI"},"scale":{"type":"integer","required":false,"enum":[2,4],"default":4,"description":"Upscale factor"},"face_enhance":{"type":"boolean","required":false,"default":false,"description":"Apply face enhancement"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":8000,"p95":25000},"reliability":"high","failure_modes":["image_too_large_for_4x","upstream_timeout_on_high_res"]}},{"id":"restore-face","name":"Face Restoration","description":"Restore blurry, damaged, or AI-generated faces. Uses CodeFormer (NeurIPS 2022, SOTA on CelebA-Test). Adjustable fidelity — balance quality vs identity preservation. Stable endpoint — model upgrades as SOTA evolves. 5 sats, pay with Bitcoin Lightning — no API key needed.","model":"CodeFormer (NeurIPS 2022)","endpoint":"https://sats4ai.com/api/l402/restore-face","method":"POST","content_type":"application/json","pricing":{"amount":2,"currency":"SAT","type":"fixed"},"quality":{"benchmark":"CelebA-Test (Papers with Code)","scores":{"FID":32.65,"LPIPS":0.3668},"source":"https://paperswithcode.com/task/blind-face-restoration"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image containing faces"},"fidelity":{"type":"number","required":false,"default":0.5,"min":0,"max":1,"description":"0.0 = max quality, 1.0 = max identity preservation"},"background_enhance":{"type":"boolean","required":false,"default":true},"face_upsample":{"type":"boolean","required":false,"default":true},"upscale":{"type":"integer","required":false,"default":2,"description":"Output upscale factor (1-4)"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":5000,"p95":12000},"reliability":"high","failure_modes":["no_face_detected","image_too_large"]}},{"id":"detect-nsfw","name":"NSFW Detection","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 per image, pay per request with Bitcoin Lightning, no API key needed.","endpoint":"https://sats4ai.com/api/l402/detect-nsfw","method":"POST","content_type":"application/json","pricing":{"amount":2,"currency":"SAT","type":"fixed"},"quality":{"model":"Falcons.ai NSFW Detection","source":"https://huggingface.co/Falconsai/nsfw_image_detection"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image"}},"response":{"content_type":"application/json","format":"{ classification, is_nsfw }"},"performance":{"latency_ms":{"p50":2000,"p95":5000},"reliability":"high","failure_modes":["image_too_large"]}},{"id":"detect-objects","name":"Object Detection","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 per image, pay per request with Bitcoin Lightning, no API key needed.","endpoint":"https://sats4ai.com/api/l402/detect-objects","method":"POST","content_type":"application/json","pricing":{"amount":5,"currency":"SAT","type":"fixed"},"quality":{"model":"Grounding DINO","paper":"ECCV 2024","source":"https://arxiv.org/abs/2303.05499"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image"},"query":{"type":"string","required":true,"description":"Comma-separated object names to detect"},"box_threshold":{"type":"number","required":false,"default":0.25,"description":"Detection confidence threshold (0-1)"},"text_threshold":{"type":"number","required":false,"default":0.25,"description":"Text matching confidence threshold (0-1)"}},"response":{"content_type":"application/json","format":"{ detections: [{ label, confidence, bbox }] }"},"performance":{"latency_ms":{"p50":3000,"p95":8000},"reliability":"high","failure_modes":["no_objects_matched","image_too_large"]}},{"id":"remove-object","name":"Smart Object Removal","description":"Remove unwanted objects from images by describing what to remove — no mask needed. Combines Grounding DINO detection (ECCV 2024) with Bria Eraser inpainting. Just say 'person', 'car', or 'watermark'. 15 sats per image, pay per request with Bitcoin Lightning, no API key needed.","endpoint":"https://sats4ai.com/api/l402/remove-object","method":"POST","content_type":"application/json","pricing":{"amount":15,"currency":"SAT","type":"fixed"},"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"}},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded image"},"query":{"type":"string","required":true,"description":"What to remove (e.g. 'person', 'car', 'watermark')"},"box_threshold":{"type":"number","required":false,"description":"Detection confidence 0-1, default 0.25"},"text_threshold":{"type":"number","required":false,"description":"Text matching threshold 0-1, default 0.25"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":6000,"p95":15000},"reliability":"high","failure_modes":["object_not_detected","image_too_large"]}},{"id":"colorize-image","name":"Photo Colorization","description":"Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023). Vivid, natural color impossible for text/vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning, no API key needed.","endpoint":"https://sats4ai.com/api/l402/colorize-image","method":"POST","content_type":"application/json","pricing":{"amount":5,"currency":"SAT","type":"fixed"},"quality":{"model":"DDColor","paper":"ICCV 2023","source":"https://arxiv.org/abs/2309.14518"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded grayscale or B&W image"},"model_size":{"type":"string","required":false,"enum":["tiny","large"],"default":"large","description":"Model variant"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":4000,"p95":10000},"reliability":"high","failure_modes":["already_color_image","image_too_large"]}},{"id":"deblur-image","name":"Image Deblurring","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 per image (~2 min), pay per request with Bitcoin Lightning, no API key needed.","endpoint":"https://sats4ai.com/api/l402/deblur-image","method":"POST","content_type":"application/json","pricing":{"amount":20,"currency":"SAT","type":"fixed"},"quality":{"model":"NAFNet","paper":"ECCV 2022","benchmark":"GoPro + SIDD","source":"https://arxiv.org/abs/2204.04676"},"request_body":{"image":{"type":"string","required":true,"description":"Base64-encoded blurry image"},"task_type":{"type":"string","required":false,"enum":["Image Debluring","Image Denoising"],"default":"Image Debluring","description":"Deblurring or denoising"}},"response":{"content_type":"application/json","format":"{ image_url }"},"performance":{"latency_ms":{"p50":90000,"p95":180000},"reliability":"high","failure_modes":["image_too_large","not_motion_blur"]}},{"id":"vote","name":"Roadmap Vote","description":"Vote on which service gets built next. 1 sat per vote. GET to see planned services with vote counts, POST with slug to vote. Pay with Bitcoin Lightning.","endpoint":"https://sats4ai.com/api/l402/vote","method":"POST","content_type":"application/json","pricing":{"amount":1,"currency":"SAT","type":"fixed"},"request_body":{"slug":{"type":"string","required":true,"description":"Service slug to vote for (GET endpoint returns valid slugs)"}},"response":{"content_type":"application/json","format":"{ success, slug, votes }"}},{"id":"refund","name":"Refund Request","description":"Request a refund for a failed service. Authenticate with the payment preimage (hex). Refunds are reviewed manually and processed within 48 hours. No payment required.","endpoint":"https://sats4ai.com/api/l402/refund","method":"POST","content_type":"application/json","pricing":{"amount":0,"currency":"SAT","type":"free","note":"No payment required"},"request_body":{"preimage":{"type":"string","required":true,"description":"Hex preimage from your Lightning payment (SHA256(preimage) === paymentHash)"},"invoice":{"type":"string","required":true,"description":"Lightning address or bolt11 invoice to receive the refund"},"email":{"type":"string","required":false,"description":"Optional contact email"},"feedback":{"type":"string","required":false,"description":"Optional description of what went wrong"}},"response":{"content_type":"application/json","format":"{ success, message, chargeId, amountSats }"}},{"id":"job-status","name":"Async Job Status","description":"Check status of async jobs (video, video-image, image-3d, transcription, epub-audiobook). No payment required.","endpoint":"https://sats4ai.com/api/l402/job-status","method":"GET","content_type":"application/json","pricing":{"amount":0,"currency":"SAT","type":"free","note":"No payment required"},"request_body":{"requestId":{"type":"string","required":true,"description":"Job ID from the async endpoint response"},"jobType":{"type":"string","required":true,"enum":["video","video-image","image-3d","transcription","epub-audiobook"],"description":"Type of async job"}},"response":{"content_type":"application/json","format":"{ status, result? }","note":"status: queued | processing | completed | failed. result available when completed."}}],"support":{"issues":"https://github.com/cnghockey/sats4ai-mcp-server/issues","discussions":"https://github.com/cnghockey/sats4ai-mcp-server/discussions","contact":"https://sats4ai.com/contact","l402_examples":"https://github.com/cnghockey/sats4ai-l402-examples"},"mcp":{"endpoint":"https://sats4ai.com/api/mcp","documentation":"https://sats4ai.com/mcp","description":"Full MCP server with 28+ AI tools (generate-image, edit-image, remove-background, upscale-image, restore-face, generate-video, animate-image, generate-text, translate-text, generate-music, text-to-speech, transcribe-audio, clone-voice, analyze-image, extract-document, extract-receipt, epub-audiobook, generate-3d-model, convert-file, merge-pdfs, convert-html-to-pdf, send-sms, send-email, place-call, ai-call). JSON-RPC over HTTP."}}