{"services":[{"service":"embeddings","operation":"embed","path":"/v1/services/embeddings/embed","scope":"broker:embeddings","description":"Turn text into embedding vectors (text-embedding-3-small by default, or text-embedding-3-large)."},{"service":"translation","operation":"translate","path":"/v1/services/translation/translate","scope":"broker:translation","description":"Translate text into any of ~80 languages, keeping placeholders such as {{count}} unchanged (pass them in \"protect\")."},{"service":"speech","operation":"synthesize","path":"/v1/services/speech/synthesize","scope":"broker:speech","description":"Turn text into speech audio (tts-1 by default, or tts-1-hd); returns base64 audio and its content type."},{"service":"speech","operation":"transcribe","path":"/v1/services/speech/transcribe","scope":"broker:speech","description":"Transcribe speech audio (base64, up to 12 MB: mp3, mp4, m4a, wav, webm, ogg, flac) to text with whisper-1; returns text, language, duration and segments."},{"service":"moderation","operation":"check","path":"/v1/services/moderation/check","scope":"broker:moderation","description":"Score text for harassment, hate, sexual content, self-harm, violence and illicit content; returns per-category scores and a flagged verdict."},{"service":"moderation","operation":"check-image","path":"/v1/services/moderation/check-image","scope":"broker:moderation","description":"Score an image (base64 png, jpeg, webp or gif, up to 4 MB) for sexual content, violence and self-harm; returns per-category scores and a flagged verdict."},{"service":"ocr","operation":"recognize","path":"/v1/services/ocr/recognize","scope":"broker:ocr","description":"Extract the text from an image (base64 png, jpeg, webp or gif, up to 8 MB) with a vision model."},{"service":"web-search","operation":"search","path":"/v1/services/web-search/search","scope":"broker:web-search","description":"Search the web (Brave index) and get ranked results with titles, URLs and snippets — grounding for agents and answer engines."},{"service":"image-generation","operation":"generate","path":"/v1/services/image-generation/generate","scope":"broker:image-generation","description":"Generate an image from a text prompt (OpenAI gpt-image models) — posters, illustrations, icons; every result passes the hosted moderation classifier before it returns."},{"service":"geocoding","operation":"geocode","path":"/v1/services/geocoding/geocode","scope":"broker:maps","description":"Geocode an address to coordinates and structured components on molecule.dev (self-hosted OpenStreetMap geocoder, no vendor account; metered per request at zero upstream cost). Coverage is the region molecule has loaded; an unmatched or unloaded query returns an empty array."},{"service":"geocoding","operation":"reverse","path":"/v1/services/geocoding/reverse","scope":"broker:maps","description":"Reverse geocode coordinates to the nearest addresses on molecule.dev (self-hosted OpenStreetMap geocoder, no vendor account; metered per request at zero upstream cost). Coverage is the region molecule has loaded; an unmatched or unloaded point returns an empty array."},{"service":"ai-decisions","operation":"decide","path":"/v1/services/ai-decisions/decide","scope":"broker:ai-decisions","description":"Answer typed questions (pick an option, score on a scale, yes/no) about a piece of text or JSON — with probability distributions, not just a label. Optionally reads up to 3 images (screenshots, receipts) alongside the state."},{"service":"image","operation":"transform","path":"/v1/services/image/transform","scope":"broker:image","description":"Transform an image (base64 in, base64 out): resize, crop, rotate, flip, flop, thumbnail, optimize or convert between jpeg/png/webp/avif/gif/tiff — up to 6 operations per request, 8 MB input, on molecule.dev (self-hosted, no vendor account; metered per image at zero upstream cost)."},{"service":"push","operation":"send","path":"/v1/services/push/send","scope":"broker:push-notifications","description":"Send a web push notification to one subscription on molecule.dev (VAPID handled for you, no vendor account; metered per send at zero upstream cost). The browser must have subscribed with molecule.dev's public VAPID key — get it from push/vapid-key."},{"service":"push","operation":"vapid-key","path":"/v1/services/push/vapid-key","scope":"broker:push-notifications","description":"Get molecule.dev's public VAPID key — the applicationServerKey a browser's pushManager.subscribe() needs for the resulting subscriptions to be sendable through molecule.dev. Free, metered as one request."},{"service":"pdf","operation":"from-html","path":"/v1/services/pdf/from-html","scope":"broker:pdf","description":"Render HTML to a PDF on molecule.dev (headless Chrome, self-hosted; A3-A5/Letter/Legal/Tabloid, margins, scale, header/footer) — invoices, reports, tickets; metered per document at zero upstream cost."},{"service":"pdf","operation":"merge","path":"/v1/services/pdf/merge","scope":"broker:pdf","description":"Merge up to 20 PDFs (8 MB each, 24 MB total) into one document, in order, on molecule.dev (self-hosted; metered per document at zero upstream cost)."},{"service":"pdf","operation":"watermark","path":"/v1/services/pdf/watermark","scope":"broker:pdf","description":"Add a text watermark (font size, color, rotation, opacity) to every page of a PDF on molecule.dev (self-hosted; metered per document at zero upstream cost)."},{"service":"screenshots","operation":"capture","path":"/v1/services/screenshots/capture","scope":"broker:screenshots","description":"Capture a URL or an HTML string to a PNG/JPEG image on molecule.dev (headless Chrome, self-hosted; viewport, full-page, device scale, settle delay) — thumbnails, OG images, visual checks; metered per capture at zero upstream cost."}]}