Skip to main content

Supported Services

MarginFront’s pricing catalog covers 1100+ services across LLM and non-LLM categories. The catalog is the source of truth for what we can calculate cost for. If your service is in the catalog, fire events with the canonical name and cost auto-resolves.
The live list is the API. This page summarizes what’s covered. For the actual current entries, use GET /v1/services, client.services.list() in the Node SDK, or list_catalog_services in the MCP server. The list updates as we sync new entries.

Categories at a glance

The catalog is organized by serviceType. Approximate counts as of this writing:
serviceTypeApprox countExamples
LLM990+OpenAI GPT family, Anthropic Claude, Google Gemini, Mistral, DeepSeek, Llama variants, Cohere
Embeddings70+OpenAI text-embedding-, Voyage, Cohere embed-, Mistral embed
Speech-to-Text47+OpenAI Whisper, Deepgram, AssemblyAI, Google STT, Azure STT
Image Generation18+DALL-E, Stable Diffusion, Midjourney, Flux
Text-to-Speech18+OpenAI TTS, ElevenLabs, Google TTS, Cartesia
Reranking7+Cohere rerank, Voyage rerank, Jina rerank
Web Search6+Serper, Tavily, SerpAPI, Brave Search, Exa, Google Custom Search
Geocoding5+Google Places sub-endpoints (textsearch, details, nearby, autocomplete, photo)
Compute4+Google Cloud Run (CPU-second, memory-GiB-second, instance-second bundle, request count)
Web Scraping4+Firecrawl, ScrapingBee, Jina Reader
Email4+Resend, SendGrid, Postmark, Mailgun
Maps3+Google Maps, Mapbox, HERE
Document Processing3+AWS Textract, Google Document AI, Azure Form Recognizer
Data Enrichment2+Hunter.io, Clearbit
SMS1+Twilio SMS
Voice1+Twilio Voice
Code Execution1+E2B
Vector Database1+Pinecone Serverless

How the catalog gets populated

Three sources feed the service_pricing table:
  1. OpenRouter — pulled from their live API. Covers most public LLM models with current rates.
  2. LiteLLM — pulled from the LiteLLM project’s GitHub JSON. Coverage overlap with OpenRouter; we deduplicate by canonical name.
  3. Curated — hand-maintained list of non-LLM services (Twilio, Google Places, Cloud Run, web search APIs, etc.). Each entry is one block in packages/db/scripts/sync-service-pricing.ts.
Curated entries are the most likely to drift from upstream pricing. If you spot a stale rate, email [email protected] with the service name and a link to the provider’s current pricing page.

What’s NOT in the catalog

If your agent uses a service we don’t cover yet, two options:
  • Map to a similar entry with POST /v1/events/map-model. Best for cases where one of our existing entries is “close enough” (e.g. mapping a custom OpenAI fine-tune to the base model’s rate).
  • Email us. Send the service name and a link to the provider’s pricing page to [email protected]. We’ll add it to the next catalog sync.
In either case, events still land. Cost stays null (NEEDS_COST_BACKFILL) until the catalog catches up. The map_model endpoint backfills retroactively once the mapping is in place.

Discovering canonical names programmatically

Three ways to query the catalog from your tooling: Raw HTTP:
curl "https://api.marginfront.com/v1/services?provider=google" \
  -H "x-api-key: $MF_API_SECRET_KEY"
Node SDK:
const { data } = await client.services.list({ provider: "google" });
data.forEach((svc) => console.log(svc.canonicalName, svc.costUnit));
MCP (Claude / Cursor / VS Code):
“List every Google service in the MarginFront catalog.”
The AI assistant calls list_catalog_services and renders the results. See the Services Catalog API reference for the full endpoint documentation.