io.github.cnghockey/sats4ai · v1.5.5 · ai-and-media
Sats4AI - Bitcoin-Powered AI Tools is healthy: it completed an MCP handshake in 2570 ms and exposes 57 tools.
40+ Lightning-paid AI tools for agents: calls, SMS, fax, voice, translation. No signup, no keys.
Endpoint: https://sats4ai.com/api/mcp (streamable-http)
Repository · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 57 |
| Latency | 2570 ms |
| Last checked (UTC) | 2026-10-15T03:15:47.566Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-15T03:15:47.566Z | Healthy | 2570 |
create_payment | Create a Lightning invoice to pay for one AI service call. Returns JSON: { paymentId, invoice (BOLT11), amount (sats), expiresAt }. Each payment covers exactly one tool call — call this once per operation. Typical flow: list_models → create_payment → check_payment_status → call tool. The invoice exp |
check_payment_status | Check whether a Lightning invoice has been paid. Returns JSON: { paid, serviceUsed, refundAllowed, readyToUse, next, state } — readyToUse=true means paid, not yet consumed, and no refund queued; next says what to do. state is unpaid, paid, delivered, held, refund-open, claimed or expired. held (with |
generate_image | Generate an image from a text prompt. Returns JSON with image URL. Models: Grok Imagine 2 (fast creative generation, 100 sats), Seedream 5 Pro (most permissive content policy, 150 sats at 1K / 300 at 2K), GPT Image 2.5 (ranked #1 on the Artificial Analysis text-to-image leaderboard as of September 2 |
generate_video | Generate cinematic video from a text prompt. Uses MiniMax H3 — top 2 on the Artificial Analysis text-to-video leaderboard — with native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), 5-15 seconds, priced per second by resolution (native |
animate_image | Animate a still image into cinematic video with MiniMax H3 — provide a first frame and a prompt to direct the motion. Native audio. Async — returns requestId, poll with check_job_status. 768p or 2K (2K is upscaled from a 768p render), duration 5-15 seconds, priced per second by resolution. Pay per r |
check_job_status | Poll the status of an async job. Use this after calling any async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call) that returns a requestId. Returns JSON: { status: 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', requestId, jobType }. For epub-audiobook, |
get_job_result | Retrieve the final output of a completed async job. Call ONLY after check_job_status returns status='COMPLETED' — calling on a job that has not completed returns an error. Returns JSON whose shape depends on jobType: video/video-image → { videoUrl, duration }; image-3d → { modelUrl } (GLB format); t |
await_result | Wait for an async job to finish and return its result in ONE call — no manual polling loop. Pass the requestId + jobType from an async tool (generate_video, animate_image, generate_3d_model, transcribe_audio, epub_to_audiobook, ai_call). If your MCP client opened the request with 'Accept: text/event |
analyze_image | Analyze and describe image content, answer visual questions, extract information from screenshots or photos. Uses Qwen VL — multimodal vision-language model with strong OCR, chart reading, and spatial reasoning. 21 sats per image. Pay per request with Bitcoin Lightning — no API key or signup needed. |
generate_text | Generate text using frontier AI language models. Pure per-character pricing (no minimum): Kimi K3 (best, ~10 chars/sat, 1M context, default), GPT-OSS-120B (standard, ~1000 chars/sat, 119 languages, best value). Rates are BTC-pegged and re-quoted hourly, so treat them as approximate — the 402 challen |
generate_music | Generate a full song with AI vocals from a style prompt plus lyrics — or an INSTRUMENTAL bed / underscore (background music under video narration, intros, outros) by sending ONLY structure tags and no words. You choose the length: 15-300 seconds at 5 sats/second (75-1500 sats). Specify BPM, key, gen |
text_to_speech | Text-to-speech with 3 tiers: OmniVoice Global (602+ languages including Yoruba, Bengali, Cebuano, Twi, voice design, ~106 chars/sat — use 'language' parameter with ISO code), Inworld Premium (#1 ranked TTS ELO 1217, emotion control, 40+ languages, ~16 chars/sat), Minimax Studio (voice cloning from r |
transcribe_audio | Transcribe audio to text with WORD-LEVEL timestamps (timestamps:'word' returns per-word start/end times — subtitle alignment, karaoke captions, cutting video to speech) or segment timestamps. Uses Mistral Transcription — high-accuracy speech recognition that handles accents, background noise, and ov |
transcribe_translate | Compound endpoint — one payment turns audio in any of 13 source languages into both a transcript AND a translation in any of 119 target languages. Perfect for WhatsApp voice messages in a language you don't speak (Yoruba → English), or recording a meeting in another language and reading it in yours. |
translate_epub | Translate a whole EPUB into another language and get an EPUB back. Every chapter is translated with its markup intact — headings, emphasis, footnote links, images and code stay where they were — the package language is retargeted and the table of contents is translated. 119 target languages; the tar |
generate_3d_model | Generate a textured 3D GLB model from EITHER a photo OR a text prompt (provide exactly one, not both). Uses Tencent Hunyuan3D — high-fidelity geometry and PBR materials. Async — returns requestId, poll with check_job_status. 1600 sats per model. Pay per request with Bitcoin Lightning — no API key or |
extract_document | Extract text from PDFs and images as clean Markdown. Uses Mistral OCR — handles complex layouts, tables, handwriting, multi-column documents, and mathematical notation. Preserves document hierarchy in structured Markdown. 10 sats/page. Pay per request with Bitcoin Lightning — no API key or signup ne |
convert_file | Convert files between 200+ formats: documents (PDF, DOCX, XLSX, HTML→PDF), images (PNG, JPG, WEBP, SVG), PDF first page to image (PDF→JPG, PDF→PNG), audio (MP3, WAV, FLAC), video (MP4, AVI, MOV). Industrial-grade conversion engine — preserves formatting and quality. Returns download URL. 100 sats. P |
send_email | Reach anyone with an email address — useful when your task requires formal communication, sending reports, or contacting someone outside chat. No SMTP server, no domain verification needed. Plain text, max 10,000 chars body, 200 chars subject. 200 sats. Pay with Bitcoin Lightning — no API key or sig |
clone_voice | Clone a voice you own or have permission to use, from a single audio sample. Returns a reusable voice_id for text_to_speech. Requires consent=true; cloning a voice to impersonate someone is prohibited. High-fidelity reproduction capturing tone, cadence, and accent. SAMPLE REQUIREMENTS: MP3, M4A or W |
edit_image | Edit an image with natural language instructions. Uses MAI-Image-2.6, ranked #3 on the Artificial Analysis image-editing leaderboard as of September 2026 — understands context, handles object addition/removal, style transfer, and inpainting. Returns JSON with image URL. 200 sats per edit, one flat p |
merge_pdfs | Merge multiple PDF files into a single document. Preserves bookmarks, links, and formatting. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Minimum 2 files, no maximum. Files are concatenated in array order. 100 sats per merge regardless of file count. Use convert_file instead if |
convert_html_to_pdf | Convert HTML or Markdown to a pixel-perfect PDF. Returns JSON: { url } — a temporary download URL (valid ~1 hour). Great for generating invoices, reports, receipts, or formatted documents programmatically. Supports full HTML/CSS including tables, images (base64 or URL), and inline styles. For Markdo |
render_card | Render a typographic card — headline, versus (two columns), list, stat (one big number) or quote — as a PNG or JPEG at 1920x1080 or 2560x1440. Deterministic layout, no AI model: the text you send is exactly what appears, which no image generator can promise. Built for video title cards and slides, t |
translate_text | Translate text across 119 languages with high accuracy. The target language picks the engine: GPT-OSS 120B by default, or a higher-scoring model (Gemini) where one measurably beats it. Auto-detects source language. Privacy-preserving: no data stored. Pricing: 1 sat per 1,000 characters on the standa |
multilingual_ask | Ask a frontier AI a question in your OWN language and get the answer back in that same language, in ONE payment. We translate the question to English, answer it with a frontier model, then translate the answer back. Two engines behind one endpoint: 119 mainstream languages use the LLM translate tier |
translate_rare_language | Translate into 452 languages, 251 of them NOT supported by ChatGPT, Claude or Gemini (29 of those 251 measured at fair quality or better against human references) — including Bhojpuri (~50M speakers), Maithili (~34M), Egyptian Arabic (~100M), Moroccan Arabic (~30M), Chhattisgarhi, Magahi, Manipuri, |
extract_receipt | Extract structured data from receipts, invoices, and financial documents. Uses a dual-model pipeline (Mistral OCR + Kimi K3) for high-accuracy extraction. Returns JSON with merchant, date, line items, totals, tax, currency, and expense category. Handles crumpled receipts, faded text, and multi-page |
boardingpass_wallet | Turn airline boarding passes (PDF or screenshot) into Google Wallet passes with the fields a plain scan drops — boarding zone, gate, boarding time — for a whole family in one go. Returns one save link per passenger plus a single 'add all' link. The original barcode is preserved byte-for-byte so it s |
e_signature | Send a document out for legally binding e-signature and have the signed copy emailed back. Upload the PDF, name up to 3 signers, and give the email where the signed copy should land. Flat 1000 sats per document. The request is fulfilled through an established e-sign provider. The signed copy arrives |
epub_to_audiobook | Convert books (EPUB/PDF/TXT) to full audiobooks with automatic chapter detection, multi-voice narration, and optional translation to any language before narration. 3 voice tiers: OmniVoice Global (602+ langs, ~106 chars/sat), Inworld Premium (#1 ranked TTS ELO 1217, ~16 chars/sat), Minimax Studio (v |
send_sms | Reach a human via SMS when your task requires real-world coordination. Send to any phone number worldwide — delivery timing varies by destination. No phone plan, no SIM card, no telecom account needed. Pay with Bitcoin Lightning — no API key, no KYC, no subscription. Requires create_payment with too |
place_call | Bridge the digital-physical gap — place an automated phone call to deliver a spoken message or play audio to any number. Useful when your task requires notifying a human, delivering alerts, or reaching someone who isn't online. Pay with Bitcoin Lightning — no telecom account, no KYC, no subscription |
send_fax | 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 in Japan — send a fax to any number worldwide. Two modes: 'pdf' (fetch from public URL) or 'text' (we format typed text into a PDF locally). Text/cover supp |
receive_fax | When you're expecting a fax back — bank confirmation, court filing, signed document — open a 24h receive window at our shared number +1 320 299 1523. Matched by caller ID (last 10 digits of the sender), delivered to your email as soon as it arrives. Optional OCR add-on (+200 sats) returns a searchab |
ai_call | When your task hits a wall that requires a human — booking, negotiating, navigating IVR menus, getting information from a business — send an AI voice agent to handle the call. The agent follows your instructions, has a real two-way conversation, and returns a full transcript with structured analysis |
confirm_ai_call | Confirm an AI call after reviewing push-back questions, optionally providing answers to missing info. Required when ai_call returns state='pending_confirm'. Uses the original payment — no new payment needed. Returns call_id for polling with check_job_status(jobType='ai-call'). |
open_voice_bridge | Open a phone call you drive one turn at a time: we dial, transcribe what the other side says, and speak whatever text you send. You call voice_bridge_say to talk, poll_voice_bridge to read transcripts, end_voice_bridge to hang up. ⚠ NOT real-time conversation. Each turn costs an HTTP round trip plus |
voice_bridge_say | Inject audio into an open Voice Bridge call. Two modes: (1) text — we synthesize via OmniVoice TTS in any of 602 languages; (2) audio_base64 + encoding — bring your own audio (mulaw_8000 or pcm_l16_16000 for MVP). STT is automatically muted while we inject, so the agent doesn't hear itself. No addit |
poll_voice_bridge | Fetch new transcript events from an open Voice Bridge call since the last cursor. Returns partial + final transcripts + system events. Agent should poll in a loop (~500ms-1s). No additional payment. |
end_voice_bridge | Hang up a Voice Bridge call, finalize billing, and return a LNURL-withdraw refund link for unused deposit time. Also returns the final transcript for convenience. |
list_models | Discover available AI models with numeric IDs, tier labels, capabilities, and per-call pricing in sats. Call this before create_payment to find the right modelId for your task. Returns JSON array: [{ id, name, tier, description, price, isDefault, category }]. Models marked isDefault=true are used wh |
get_model_pricing | Get pricing for a specific model by ID. No payment required. |
get_cost_estimate | Get an exact sat cost quote for a service BEFORE creating a payment. Useful for budget-aware agents to price-check before committing. No payment required, no side effects. Pass service=text-to-speech&chars=1500, service=translate&chars=800, service=transcribe-audio&minutes=5, etc. Returns { amount_s |
get_error_codes | Get the machine-readable catalog of all error codes this API can return (e.g. TIMEOUT, CONTENT_FILTERED, RATE_LIMITED, L402_REFUND_ISSUED, L402_AUTO_ROUTED). Agents should branch on error_code rather than parsing free-text messages. No payment required. |
request_refund | Open a MANUAL 48-hour refund review ticket for a service that FAILED (error, timeout, wrong output). Sends an email to the operator. DO NOT call this for unused-minute refunds on metered services (ai_call, voice_bridge) — those are returned automatically as an LNURL-withdraw link in the service's ow |
remove_background | Remove background from any image, returning transparent PNG. Uses BiRefNet (state-of-the-art, Papers with Code — Sm 0.901 on DIS5K). Handles hair, fur, glass, transparency, and complex edges. Stable endpoint — model upgrades automatically as SOTA evolves. 44 sats per image, pay per request with Bitc |
upscale_image | Upscale images 2x or 4x with neural super-resolution. Uses Real-ESRGAN (ICCV 2021, PSNR 32.73dB on Set5 4x, 100M+ production runs). Recovers real detail from low-resolution images — not interpolation. Optional face enhancement. Stable endpoint — model upgrades automatically as SOTA evolves. 5 sats p |
restore_face | Restore blurry, damaged, or AI-generated faces to sharp, natural quality. Uses CodeFormer (NeurIPS 2022, state-of-the-art FID 32.65 on CelebA-Test). Adjustable fidelity — balance between quality enhancement and identity preservation. Also enhances background and upsamples. Stable endpoint — model up |
estimate_depth | Estimate per-pixel depth from a single photo. Depth Anything V2 (NeurIPS 2024, 3.8M+ runs) returns BOTH the raw greyscale depth map — what a ControlNet, AR or 3D reconstruction pipeline consumes — and a colour visualization for humans. Structured geometry a vision LLM cannot produce. 5 sats per imag |
detect_nsfw | Classify image safety (normal / suggestive / explicit). Falcons.ai NSFW detection — 100x cheaper and faster than asking an LLM. Returns classification label and boolean is_nsfw flag. Essential for content moderation pipelines. 2 sats per image, pay per request with Bitcoin Lightning — no API key or |
detect_objects | Detect and locate objects in an image by name. Grounding DINO (open-set detector, ECCV 2024) — describe what to find in natural language, get bounding box coordinates and confidence scores. Structured pixel data agents can't get from vision LLMs. 5 sats per image, pay per request with Bitcoin Lightn |
remove_object | 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' and the object is erased and filled convincingly. 130 sats per image, pay per request with Bitcoin Li |
colorize_image | Colorize black-and-white or grayscale photos. DDColor (dual-decoder, ICCV 2023) — vivid, natural colorization. Impossible for text/vision LLMs. 5 sats per image, pay per request with Bitcoin Lightning — no API key or signup needed. Requires create_payment with toolName='colorize_image'. |
deblur_image | Recover detail from camera-shake and accidental motion blur. NAFNet (ECCV 2022, SOTA on GoPro/SIDD benchmarks). Best for: handheld shake, bumped camera, whole-frame uniform blur. NOT effective for: intentional panning blur, bokeh/depth-of-field, or artistic motion effects. Also supports denoising (g |
vote_on_service | Vote for a planned service to be built next. Returns JSON: { success, slug, newVoteCount }. 1 sat per vote — multiple votes allowed. Call list_planned_services first to discover valid slugs and current vote counts. Highest-voted services get prioritized. Requires create_payment with toolName='vote_o |
list_planned_services | List all planned services with current vote counts. Returns JSON array: [{ slug, name, description, votes }], sorted by votes descending. No payment required — this is a free discovery tool. Use the slug values with vote_on_service to cast votes. This tool is idempotent and safe to call repeatedly. |