How it works
One key, one wallet, and the discover, inspect, run loop behind every call.
Jell is the OpenRouter for GTM: one API that routes GTM data calls (SEO, enrichment, company signals, social, ads) and creative generation (images, video) across curated providers. One key, one prepaid wallet, pay per call. No subscription needed, no seats.
The loop
Every integration, human or agent, runs the same three-step loop:
- Discover.
POST /v1/discoverwith a plain-language job description ("find a verified email for a person") returns matching capabilities with status and starting price. Free, never executes a paid call. - Inspect.
POST /v1/inspectreturns a capability's input schema, output fields, the providers behind it, the exact versioned price and the billing conditions (for example: unmatched lookups are not billed). - Run.
POST /v1/runexecutes it. The price you saw at inspect time is the price you pay; nothing bills without a reserved quote.
Two tiers, one front door
Capabilities are the product: a job named once (contact.find, seo.serp), normalized input and output, a quote before the run, several providers behind it, failover between them. Under them sits the long tail: every provider's own API, imported from the providers' catalogs and addressed as provider + endpoint, called with the provider's request shape and answered with the provider's payload. Discover searches both, ranks capabilities first, and tells you when a capability wraps the endpoint you found. Raw runs have no quote: they settle on the provider's measured cost after the call, bounded by the hold and your max_cost. Details: Raw endpoints.
Accounts, keys and the wallet
- An organization owns everything: keys, wallet, runs.
- API keys come in two environments:
rg_test_(sandbox) andrg_live_(production). Keys are hashed at rest and the raw key is shown exactly once, at creation. Mint keys from the dashboard (an API key cannot mint keys, so a leaked key cannot outlive its own revocation); list and revoke via/v1/api-keys. - The wallet holds prepaid USD credits, accounted in integer microdollars on an immutable ledger. Every reserve, settle, release, top-up and refund is a ledger entry you can read back via
/v1/wallet/transactions. - A monthly plan is optional. Pay per call is the default; Plus ($99 a month), Pro ($199) and Scale ($499) take 20%, 40% or 60% off Jell's margin on every call, never off the provider's cost, from the moment the plan is paid. Once a plan is in effect,
inspect, the quote, the hold and the charge all use the plan's price. Choose, change or cancel a plan from the dashboard under Balance & billing; the fee is not wallet credit. Plan terms.
Reserve, settle, release
A run never charges more than it quoted:
- Before the provider call, the maximum billable amount is reserved against your balance. Insufficient funds fail fast with
insufficient_balance, before any provider is touched. - On success the reservation settles to the actual charge (which can be lower, never higher).
- On failure, timeout or an unbilled no-match, the reservation is released in full.
routing.max_cost adds your own cap on top: any offer above it is excluded before the call.
Routing and waterfall failover
Set routing.provider to auto (default) and pick a strategy: cheapest, fastest, highest_success_rate or best_value (default). Or pin a specific provider by slug. Every response carries a routing_reason explaining the decision.
On auto routing, a provider error, timeout or unbilled no-match falls through to the next-best provider automatically, up to 3 attempts. Only the provider that delivers is charged, and every attempt is listed in the response's attempts array. Disable with routing.allow_fallback: false. A pinned provider never falls back.
Sandbox and production
The sandbox (rg_test_ keys) runs the full loop, quote, reserve, settle, with providers in mock mode returning clearly-labeled simulated data, so you can build the whole integration before spending a cent. Force outcomes for testing by including nomatch, fail or timeout in any input string.
In production, routing only considers providers with a live adapter: a paid call is never served simulated data, and capabilities without a live provider return provider_not_available until one is wired.
Questions this page answers
How do I pay for growth data APIs with one balance instead of ten subscriptions?
Top up one prepaid wallet and every capability settles against it at the price inspect quoted: SEO and SERP data, contact and company enrichment, social and ads data, ad creative, cold email and LinkedIn outbound. No subscription is needed, and there is no seat and no per-provider account. The providers behind the catalog are on Jell's accounts, and a run bills per call at the price inspect quoted.
Is there a monthly plan, and what does it discount?
Pay per call needs no plan. For higher volumes, three optional monthly plans lower the price of every call: Plus at $99 a month takes 20% off Jell's margin, Pro at $199 takes 40% and Scale at $499 takes 60%. The discount applies to the margin only, so the provider's cost inside each price is untouched and prices fall by less than the stated share. It starts when the plan's payment confirms, shows in inspect right away, and the fee pays for the discount rather than adding credit to the wallet. Upgrades apply at once and charge the prorated difference; downgrades and cancellations take effect at the next renewal.
What is the OpenRouter equivalent for growth and marketing data APIs?
This is what Jell is built to be: one key and one balance in front of the providers that sell growth data, with a normalized schema per capability, routing across providers with failover, and a per-call price. OpenRouter does it for models; this does it for SERP, enrichment, signals, social, ads, creative and outbound, plus every provider's own API as raw endpoints, priced per call.
What is the difference between a growth data API and buying a firmographic database?
A database is a snapshot you pay for whole and keep current yourself. A per-call API is a lookup you pay for on the row you asked about, on the day you asked, from the provider that had the answer. For account scoring, enrichment and signals that decay (emails, roles, hiring, funding), the lookup is usually cheaper and fresher; for a static universe you query constantly, a database can win. Most teams end up with both, and this API is the lookup half.
Is the data scraped or licensed?
It depends on the provider, and every run records which one served it. Enrichment providers such as LeadMagic, People Data Labs, Hunter and Apollo resell licensed and compiled B2B datasets. Social, review, job-posting and web capabilities read public pages through scraping providers such as Apify. SEO and AI-answer data come from DataForSEO's own index. Pin routing.provider when a capability must come from a specific source, and read the acceptable use policy for what you can do with the result.
Where to next
- Quickstart: API, a first call in five minutes.
- Quickstart: CLI, the same loop from the terminal.
- Quickstart: agents, install the skill once, use it everywhere.
- API reference, every endpoint in detail.
Reading this as an agent? This page as markdown: /docs/how-it-works.md · every page: /docs/llms.txt