REST first. The interactive OpenAPI reference ships with the hosted API.
Early access. The interface below is final and the sandbox runs the full loop in labeled mock mode; the hosted API at api.routergrowth.com opens to early-access keys as provider terms are signed. Request a key: hello@routergrowth.com.
1 · Create an account and get a test key with $5 promotional credit:
curl -X POST https://api.routergrowth.com/v1/dev/signup \ -H "Content-Type: application/json" \ -d '{"email": "you@company.com", "organization_name": "Acme"}' # → {"api_key": "rg_test_...", ...} (shown only once, store it now)
2 · Inspect a capability: schema, providers, price and billing conditions:
curl -X POST https://api.routergrowth.com/v1/inspect \ -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \ -d '{"capability": "contact.find"}'
3 · Run it:
curl -X POST https://api.routergrowth.com/v1/run \ -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" \ -H "Idempotency-Key: my-unique-value-1" \ -d '{ "capability": "contact.find", "input": {"first_name": "Alex", "last_name": "Rivera", "company_domain": "example.com"}, "routing": {"provider": "auto", "strategy": "best_value", "max_cost": "0.10"} }'
4 · Check your wallet and run history:
curl https://api.routergrowth.com/v1/wallet -H "Authorization: Bearer $ROUTERGROWTH_API_KEY" curl https://api.routergrowth.com/v1/runs -H "Authorization: Bearer $ROUTERGROWTH_API_KEY"
Development build: providers run in mock mode and return clearly-labeled simulated data with real quoting, reservation and settlement, so you can build the full integration before live providers are enabled. Force outcomes for testing: include nomatch, fail or timeout in any input string.
Bearer keys: rg_test_ and rg_live_. Keys are hashed at rest and shown once at creation. Rotate via /v1/api-keys.
POST /v1/discover searches the catalog by job description and never executes a paid call. POST /v1/inspect returns schemas, providers, prices and billing conditions.
POST /v1/run executes a capability. The maximum billable amount is reserved first, then settled to the actual charge or released on failure. Long-running calls return 202 with a poll URL.
provider: auto with strategies cheapest, fastest, highest_success_rate, best_value, or pin a specific provider. The routing_reason field explains every decision.
Prepaid USD credits in integer microdollars on an immutable ledger. GET /v1/wallet, GET /v1/wallet/transactions. Minimum top-up $20; Stripe checkout lands in Phase 2.
POST /v1/connections/{provider} stores your credential encrypted. Your key takes routing priority and those calls are not metered. DELETE revokes instantly.
Errors use stable codes (insufficient_balance, no_match, provider_timeout, ...) with a request_id. Send an Idempotency-Key header to make /v1/run safe to retry.