# Agent Exchange Media > Keyless pay-per-call AI media and inference on Cloudflare Workers AI: 13 POST routes paid per call in USDC on Base with x402 (payTo 0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c). No account, no API key, no subscription. How to pay: POST the JSON body. Without payment the answer is HTTP 402 with x402 v1 requirements in the body (accepts[0]: scheme exact, network base / eip155:8453, asset USDC 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913, maxAmountRequired in atomic units, payTo 0xc91cE6291eDC0713ec753BAFBA002506ffb2b95c) and the v2 envelope in the PAYMENT-REQUIRED header. Sign the EIP-3009 transferWithAuthorization for that amount and resend the identical request with X-PAYMENT (base64 JSON payload); the facilitator https://facilitator.payai.network verifies and settles; the response carries PAYMENT-RESPONSE. GET and HEAD on paid routes also answer 402. Malformed paid requests answer 400/413 before settlement. A model failure after settlement answers 502 {code:"model_failed"} and the same X-PAYMENT is honoured once more within 10 minutes (wait 10 s). Unpaid probes: 20 per minute per address. ## Paid routes - POST https://media.agentexchange.work/image $0.02 USDC: One 1024x1024 JPEG from a text prompt with FLUX.1 [schnell] (1-8 steps); Stable Diffusion XL base (PNG) if FLUX fails. Body {"prompt":"a lighthouse on a basalt cliff at dawn, thick fog, film grain","steps":4,"seed":7}. Limits: prompt <= 1,000 characters; steps 1-8; seed 0-4294967295; one image per call. Sample: https://media.agentexchange.work/samples/image.json - POST https://media.agentexchange.work/caption $0.005 USDC: One or two sentences describing an image (LLaVA 1.5 7B; Llama 3.2 11B Vision as fallback). Body {"image_url":"https://upload.wikimedia.org/wikipedia/commons/3/3a/Cat03.jpg"}. Limits: image <= 5 MB (JPEG, PNG, WebP, GIF); image_url fetched in 8 s from a public https host; prompt <= 500 characters. Sample: https://media.agentexchange.work/samples/caption.json - POST https://media.agentexchange.work/speech $0.01 USDC: MP3 speech for up to 2,000 characters with MeloTTS (en, es, fr, zh, ja, ko); Deepgram Aura-1 (English) as fallback for texts under 600 characters. Body {"text":"Your order has shipped and will arrive on Thursday.","lang":"en"}. Limits: text <= 2,000 characters; lang one of en, es, fr, zh, ja, ko (default en). Sample: https://media.agentexchange.work/samples/speech.json - POST https://media.agentexchange.work/transcribe $0.01 USDC: Transcript of an audio file up to 10 MB with Whisper large-v3-turbo (Whisper as fallback up to 3 MB). Body {"audio_url":"https://upload.wikimedia.org/wikipedia/commons/c/c8/Example.ogg","language":"en"}. Limits: audio <= 10 MB by URL, <= 4.5 MB inline (6 MB request cap); fetched in 8 s from a public https host. Sample: https://media.agentexchange.work/samples/transcribe.json - POST https://media.agentexchange.work/translate $0.002 USDC: Translation between 100 languages with Meta M2M100 1.2B (Llama 3.1 8B with a translation prompt as fallback). Body {"text":"The invoice is due in thirty days.","source_lang":"en","target_lang":"es"}. Limits: text <= 5,000 characters; language codes ISO 639-1 (en, es, fr, de, ja, ...). Sample: https://media.agentexchange.work/samples/translate.json - POST https://media.agentexchange.work/summarize $0.002 USDC: A summary of up to 20,000 characters of text by Llama 3.1 8B instruct with a summarization prompt (BART-large-CNN is no longer in the Workers AI catalog). Body {"text":"Cloudflare Workers AI runs machine learning models on Cloudflare's global network... (up to 20,000 characters)","max_words":60}. Limits: text 20 to 20,000 characters; max_words 20-400. Sample: https://media.agentexchange.work/samples/summarize.json - POST https://media.agentexchange.work/embed $0.001 USDC: 1024-dimension multilingual embeddings for up to 32 texts per call with BAAI bge-m3 (bge-base-en-v1.5, 768 dims, as fallback). Body {"texts":["pay-per-call image generation","USDC settlement on Base"]}. Limits: 1-32 texts, each <= 2,000 characters. Sample: https://media.agentexchange.work/samples/embed.json - POST https://media.agentexchange.work/chat $0.005 USDC ($0.02 with model "llama-3.3-70b"): OpenAI-style chat completion: Llama 3.1 8B instruct fp8 for $0.005, or Llama 3.3 70B instruct fp8-fast for $0.02 when model is "llama-3.3-70b". Body {"model":"llama-3.1-8b","messages":[{"role":"user","content":"Give me three names for a lighthouse-keeping robot."}],"max_tokens":120}. Limits: <= 20 messages, <= 12,000 characters in total; max_tokens <= 1024; roles system, user, assistant. Sample: https://media.agentexchange.work/samples/chat.json - POST https://media.agentexchange.work/classify $0.001 USDC: Sentiment (POSITIVE/NEGATIVE with scores) from DistilBERT SST-2, or zero-shot into 2-10 labels of your own with Llama 3.1 8B when labels are sent. Body {"text":"The checkout kept timing out and support never answered."}. Limits: text <= 5,000 characters (<= 2,000 with labels); 2-10 labels of <= 60 characters. Sample: https://media.agentexchange.work/samples/classify.json - POST https://media.agentexchange.work/ocr $0.005 USDC: The text visible in an image, read by a vision-language model (LLaVA 1.5 7B; Llama 3.2 11B Vision as fallback). Not a dedicated OCR engine. Body {"image_url":"https://upload.wikimedia.org/wikipedia/commons/2/25/Stop_sign_MUTCD.svg.png"}. Limits: image <= 5 MB; image_url fetched in 8 s from a public https host. Sample: https://media.agentexchange.work/samples/ocr.json - POST https://media.agentexchange.work/detect-language $0.001 USDC: Language of a text by a heuristic: Unicode script ranges plus stopword frequencies for 20 Latin-script languages. No model. Body {"text":"La factura vence en treinta días y el pago se realiza por transferencia."}. Limits: text <= 20,000 characters; 'und' when nothing matches. Sample: https://media.agentexchange.work/samples/detect-language.json - POST https://media.agentexchange.work/batch $1.00 USDC: Up to 100 items across embed, translate, summarize and classify in one request for $1.00, each item answered separately. Body {"items":[{"op":"translate","text":"Where is the station?","target_lang":"de"},{"op":"classify","text":"Loved it, fast and simple."},{"op":"embed","texts":["one","two"]}]}. Limits: 1-100 items; ops embed (<=32 texts of 2,000 chars), translate (<=5,000 chars), summarize (<=20,000 chars), classify (<=5,000 chars); total text <= 500,000 characters; a single bad item fails the whole batch before payment. Sample: https://media.agentexchange.work/samples/batch.json - POST https://media.agentexchange.work/image-set $5.00 USDC: Twenty 1024x1024 JPEGs from a list of 1-20 prompts with FLUX.1 [schnell] at 1-4 steps each (schnell-grade quality), returned as base64. Body {"prompts":["a red lighthouse at dawn, fog","a blue lighthouse at noon, clear sky","a white lighthouse at dusk, storm"],"steps":4,"seed":100}. Limits: 1-20 prompts of <= 1,000 characters; steps 1-4; always 20 images (prompts cycle); response about 2-4 MB of base64. Sample: https://media.agentexchange.work/samples/image-set.json ## Models (Workers AI ids, verified 2026-09-30) - @cf/black-forest-labs/flux-1-schnell: text-to-image; list price $0.0000528 per 512x512 tile + $0.0001056 per step; https://developers.cloudflare.com/workers-ai/models/flux-1-schnell/ - @cf/stabilityai/stable-diffusion-xl-base-1.0: text-to-image (fallback); list price $0.00 per step (beta; listed price on the model page); https://developers.cloudflare.com/workers-ai/models/stable-diffusion-xl-base-1.0/ - @cf/llava-hf/llava-1.5-7b-hf: image caption, OCR; list price no unit price published (beta); billed in neurons at $0.011 per 1,000; https://developers.cloudflare.com/workers-ai/models/llava-1.5-7b-hf/ - @cf/meta/llama-3.2-11b-vision-instruct: caption, OCR (fallback); list price $0.049 per M input tokens, $0.676 per M output tokens; https://developers.cloudflare.com/workers-ai/models/llama-3.2-11b-vision-instruct/ - @cf/myshell-ai/melotts: text to speech; list price $0.0002 per audio minute; https://developers.cloudflare.com/workers-ai/models/melotts/ - @cf/deepgram/aura-1: text to speech (fallback, <600 chars); list price $0.015 per 1,000 input characters; https://developers.cloudflare.com/workers-ai/models/aura-1/ - @cf/openai/whisper-large-v3-turbo: speech to text; list price $0.0005 per audio minute; https://developers.cloudflare.com/workers-ai/models/whisper-large-v3-turbo/ - @cf/openai/whisper: speech to text (fallback, <=3 MB); list price $0.0005 per audio minute; https://developers.cloudflare.com/workers-ai/models/whisper/ - @cf/meta/m2m100-1.2b: translation; list price $0.342 per M input tokens, $0.342 per M output tokens; https://developers.cloudflare.com/workers-ai/models/m2m100-1.2b/ - @cf/baai/bge-m3: embeddings; list price $0.012 per M input tokens; https://developers.cloudflare.com/workers-ai/models/bge-m3/ - @cf/baai/bge-base-en-v1.5: embeddings (fallback); list price $0.067 per M input tokens; https://developers.cloudflare.com/workers-ai/models/bge-base-en-v1.5/ - @cf/meta/llama-3.1-8b-instruct-fp8: chat, summarize, zero-shot classify, translate fallback; list price $0.152 per M input tokens, $0.287 per M output tokens; https://developers.cloudflare.com/workers-ai/models/llama-3.1-8b-instruct-fp8/ - @cf/meta/llama-3.3-70b-instruct-fp8-fast: chat ($0.02 tier); list price $0.293 per M input tokens, $2.253 per M output tokens; https://developers.cloudflare.com/workers-ai/models/llama-3.3-70b-instruct-fp8-fast/ - @cf/meta/llama-3.2-3b-instruct: summarize, chat 8B fallback; list price $0.051 per M input tokens, $0.335 per M output tokens; https://developers.cloudflare.com/workers-ai/models/llama-3.2-3b-instruct/ - @cf/huggingface/distilbert-sst-2-int8: sentiment; list price $0.026 per M input tokens; https://developers.cloudflare.com/workers-ai/models/distilbert-sst-2-int8/ ## Free - https://media.agentexchange.work/: front page: routes, prices, models, how to pay, today's counters (HTML) - https://media.agentexchange.work/pricing: prices against Workers AI list prices, limits, fallbacks (HTML) - https://media.agentexchange.work/terms: terms: payments final, one free replay, content refusals, limits, data (HTML) - https://media.agentexchange.work/samples: index of free sample requests and responses (JSON) - https://media.agentexchange.work/samples/.json: one sample request and response per paid route (JSON) - https://media.agentexchange.work/live.json: per-route counters: 402s served, paid calls, successes, failures per day (JSON) - https://media.agentexchange.work/health: service health (JSON) - https://media.agentexchange.work/openapi.json: OpenAPI 3.1 with x-payment-info on each paid operation - https://media.agentexchange.work/.well-known/x402: x402 manifest: every paid route with the same prices as the challenges - https://media.agentexchange.work/.well-known/agent-card.json: A2A agent card, one skill per route - https://media.agentexchange.work/llms.txt: this list for language models - https://media.agentexchange.work/mcp: MCP Streamable HTTP endpoint (JSON-RPC 2.0 over POST): tools/list, tools/call returns payment instructions - https://media.agentexchange.work/a2a: A2A JSON-RPC 2.0 endpoint (POST; protocol 0.3.0): message/send, tasks/get, tasks/cancel; free skills complete at once, paid skills answer input-required with the same x402 terms as the HTTP 402 (a2a-x402 v0.1) ## A2A POST https://media.agentexchange.work/a2a (JSON-RPC 2.0, A2A 0.3.0; agent card https://media.agentexchange.work/.well-known/agent-card.json). message/send with a DataPart {"skill": "", "input": {}} or message.metadata.skillId. Free skills (pricing, samples) complete at once. A paid skill answers a task in state input-required whose status.message.metadata carries x402.payment.status "payment-required" and x402.payment.required {x402Version, accepts} with the same accepts[] as the HTTP 402 of that route; reply on the same taskId with metadata x402.payment.status "payment-submitted" and x402.payment.payload (the signed PaymentPayload) and the task completes with the result as an artifact and x402.payment.receipts (a2a-x402 v0.1, https://github.com/google-agentic-commerce/a2a-x402/blob/main/spec/v0.1). tasks/get {id} returns a stored task for 24 hours; tasks/cancel cancels a task that is not finished. ## Content rules Refused with 400 before payment: sexual content involving minors, non-consensual intimate imagery, deepfakes or sexual imagery of identifiable real people. Nothing else is judged. ## Related - https://inference.agentexchange.work: OpenAI-compatible completions, $0.005 per call - https://tools.agentexchange.work: browser render, screenshot and extract - https://agentexchange.work: Agent Exchange ## Licence - https://media.agentexchange.work/rsl.xml: machine-readable licence (RSL 1.0). Search, AI answers and AI indexing are free with attribution; AI training is $0.01 per crawl or per asset (Cloudflare Pay Per Crawl or this host's x402 routes). - https://media.agentexchange.work/licence: the same terms in plain words.