https://api.richapi.ai/api/v1/{endpoint} with x-api-key. Success-weighted billing on waterfalls, per-result billing on search, receipts in every response. 25 free credits, no card.
RichAPI is a GTM data API: 50+ REST endpoints and 35+ MCP tools behind one key. LinkedIn profile/company enrichment (1 credit), people search (0.1 credit/result), email finder (2 credits on success, 1 on soft miss, 0 on provider failure), phone finder, email verifier, post signals, web intelligence, AI enrich. Base URL api.richapi.ai/api/v1, header x-api-key. 25 free credits.
Quickstart
# 1. Key (25 free credits, no card): app.richapi.ai/signup
export RICHAPI_KEY="rk_live_..."
# 2. First call — enrich a profile (1 credit)
curl -X POST https://api.richapi.ai/api/v1/enrich_profile \
-H "x-api-key: $RICHAPI_KEY" -H "Content-Type: application/json" \
-d '{"url": "https://www.linkedin.com/in/satyanadella"}'
# 3. What did that cost? (free)
curl https://api.richapi.ai/api/v1/usage -H "x-api-key: $RICHAPI_KEY"Auth
Header x-api-key: rk_live_... on every request. One key per workspace, both protocols. OAuth (Claude connectors) auto-provisions the same key. Rotate in dashboard.
Billing
| Model | Endpoints | Rule |
|---|---|---|
| Success-weighted | 5 waterfalls | full / reduced / zero — table below |
| Per result | people_search | 0.1 cr × results returned |
| Per call | enrichment, signals, web, AI | flat; non-2xx never billed |
| Free | inquiries, usage, health | 0 |
| Waterfall | Success | Soft miss | Hard fail |
|---|---|---|---|
email_finder | 2 | 1 | 0 (billed: false) |
phone_finder | 3 | 1 | 0 |
email_verifier | 1 | 0.5 | 0 |
person_enricher | 2 | 1 | 0 |
company_enricher | 2 | 1 | 0 |
Soft miss = all providers responded, none had data. Hard fail = providers unreachable (5xx/timeout/rate-limit/circuit-breaker) — unbilled, safe to retry with backoff.
Waterfall response shape
{
"success": true,
"result": { "email": "john.doe@acme.com", "email_status": "valid" },
"provider": "email_finding_prospeo",
"providers_tried": 2,
"execution_log": [
{ "provider": "email_finding_hunter", "status": "no_result", "latency_ms": 410 },
{ "provider": "email_finding_prospeo", "status": "success", "latency_ms": 342 }
]
}Miss shape: "success": false, "billed_credits": <reduced rate>, full execution_log. Hard-fail shape: "billed": false. Input flexibility on email_finder: name+domain, or full_name, or linkedin_url — the engine routes by what's present.
Endpoint catalog
enrich_profile · enrich_company · enrich_profiles_bulk · enrich_companies_bulk · person_enricher · company_enricher · find_linkedin_url_by_email · find_linkedin_url_by_name · find_website_by_company_name · find_personal_email
people_search · company_search · lead_search · linkedin_company_employees_search · profile_search · geo_id_search · search_reference_data
post_keyword_search · post_details · post_activities · profile_activities · company_posts · linkedin_job_search · linkedin_job_detail
email_finder · email_verifier · phone_finder · email_finding (bulk jobs) · email_verification (bulk jobs) · free inquiry endpoints for both
web_scrape · web_meta_tags · web_json_ld · web_pixels · web_social_links · web_tech_stack · web_emails · web_sitemap · website_intelligence · Google Maps/Search/Trends + Bing scrapers · crunchbase-company-scraper-sync · directory_yellowpages · YouTube (search/video/channel/channel_videos) · slack_channel_members
ai_enrich (OpenAI, Anthropic, Gemini: 2cr · Perplexity: 5cr)
clean_domain · predict_gender · identify_email_type · normalize_list · find_sitemap_urls · encode_uri · count_occurrences · more
usage (free) · history · my-endpoints · webhooks management
Bulk jobs + webhooks
email_finding and email_verification accept arrays and run as jobs: poll the free inquiry endpoint, or register a webhook. Webhook payloads are HMAC-signed (X-RichAPI-Signature); verification snippet in docs. White-label signatures available on Enterprise.
MCP
Endpoint https://mcp.richapi.ai/mcp · 35+ tools, namespaced richapi_* · same key and credit pool · OAuth via claude.ai connectors or x-api-keyheader via shim. Tool list is what your client shows — we don't inflate the count. Per-client install: docs.richapi.ai/mcp.
MCP install guideErrors
| Code | Meaning | Billed? |
|---|---|---|
| 200 | Success (check success + billed fields for waterfall outcomes) | per rules above |
| 400/422 | Bad request / validation | no |
| 401 | Bad or revoked key | no |
| 402 | Credits exhausted — buy or enable auto top-up | no |
| 429 | Rate limit (100K/endpoint/mo default) — Retry-After | no |
| 5xx | Our fault — retry with backoff | no |
Failed calls are never billed. Rate-limit slots refund on failure.
SDKs
Python: pip install richapi-sdk — all core endpoints. TypeScript: @richapi/sdk — in progress; the OpenAPI spec (docs.richapi.ai/openapi.json) generates clients for everything meanwhile. (Legacy texau-sdk keeps working as a deprecated alias during the migration window.)
Example
import os, requests
S = requests.Session()
S.headers.update({"x-api-key": os.environ["RICHAPI_KEY"]})
BASE = "https://api.richapi.ai/api/v1"
# 1. Who's posting about our topic this week?
posts = S.post(f"{BASE}/post_keyword_search",
json={"keywords": "revops hiring", "datePosted": "past-week"}).json()
# 2. Enrich authors (1 credit each)
profiles = [S.post(f"{BASE}/enrich_profile", json={"url": p["author_url"]}).json()
for p in posts["results"][:20]]
# 3. Find emails (2 credits on success, 1 on soft miss, 0 on hard fail)
for p in profiles:
r = S.post(f"{BASE}/email_finder", json={
"first_name": p["firstname"], "last_name": p["lastname"],
"domain": p["company_domain"]}).json()
if r.get("success"):
print(p["firstname"], r["result"]["email"], "via", r["provider"])/llms.txt (ships at launch)
# RichAPI
> GTM data API: 50+ endpoints, one key, REST + MCP. Success-weighted billing.
- REST: https://api.richapi.ai/api/v1/{endpoint} (header: x-api-key)
- MCP: https://mcp.richapi.ai/mcp (35+ tools)
- Billing: 1 credit = $0.02. Waterfalls: full on result, half or less on soft miss, $0 on provider failure.
- Free: 25 sandbox credits, inquiry + usage endpoints.
- Docs: docs.richapi.ai · OpenAPI: docs.richapi.ai/openapi.json · Status: status.richapi.aiPair with /llms-full.txt (full catalog + shapes).
Status & changelog
status.richapi.ai (public incident history) · docs.richapi.ai/changelog (versioned; breaking changes get a 90-day deprecation window) · GitHub: github.com/richapi-ai · security@richapi.ai for disclosures.