One key for 50+ GTM endpoints.
REST + MCP.

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

First 200 OK in five minutes.

terminal
# 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

One header on every request

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

1 credit = $0.02, always.
Four models, all deterministic.

ModelEndpointsRule
Success-weighted5 waterfallsfull / reduced / zero — table below
Per resultpeople_search0.1 cr × results returned
Per callenrichment, signals, web, AIflat; non-2xx never billed
Freeinquiries, usage, health0
WaterfallSuccessSoft missHard fail
email_finder210 (billed: false)
phone_finder310
email_verifier10.50
person_enricher210
company_enricher210

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

What a waterfall response looks like

email_finder — success 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

By category. Each links to docs.richapi.ai.

Enrichment

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

Search

people_search · company_search · lead_search · linkedin_company_employees_search · profile_search · geo_id_search · search_reference_data

Signals

post_keyword_search · post_details · post_activities · profile_activities · company_posts · linkedin_job_search · linkedin_job_detail

Email/Phone

email_finder · email_verifier · phone_finder · email_finding (bulk jobs) · email_verification (bulk jobs) · free inquiry endpoints for both

Web

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

ai_enrich (OpenAI, Anthropic, Gemini: 2cr · Perplexity: 5cr)

Utilities

clean_domain · predict_gender · identify_email_type · normalize_list · find_sitemap_urls · encode_uri · count_occurrences · more

Account

usage (free) · history · my-endpoints · webhooks management

Bulk jobs + webhooks

Send arrays, get jobs back

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

The same key works over 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 guide

Errors

Failed calls are never billed.

CodeMeaningBilled?
200Success (check success + billed fields for waterfall outcomes)per rules above
400/422Bad request / validationno
401Bad or revoked keyno
402Credits exhausted — buy or enable auto top-upno
429Rate limit (100K/endpoint/mo default) — Retry-Afterno
5xxOur fault — retry with backoffno

Failed calls are never billed. Rate-limit slots refund on failure.

SDKs

Python today. TypeScript in progress.

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

Prospect pipeline in ~25 lines.

pipeline.py
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)

The whole API in one text file

richapi.ai/llms.txt
# 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.ai

Pair with /llms-full.txt (full catalog + shapes).

Status & changelog

Status, changelog, and disclosures

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.