RichAPI design system

API runner and logs

Call runner

Endpoint
Estimated 5 cr · balance 1,284 cr
JSX
<Combobox label="Endpoint" options={[
  {
    value: "people_search",
    label: "People Search",
    hint: "0.1 cr",
  },
  {
    value: "email_finder",
    label: "Email Finder",
    hint: "5 cr",
  },
  {
    value: "enrich_company",
    label: "Company Enrichment",
    hint: "1 cr",
  },
]} defaultValue="email_finder" searchPlaceholder="Search endpoints" />
<FieldGrid>
  <Input label="Domain" defaultValue="acme.com" />
  <Input label="Full name" defaultValue="Dana Whitfield" />
</FieldGrid>
<RunBar estimate="Estimated 5 cr" balance="balance 1,284 cr" action={<Button variant="primary">Run endpoint</Button>} />
HTML
<div class="g-frame g-frame--lg g-frame--stack"><div class="ra-combo"><span class="ra-combo__label" id="_R_1_-label">Endpoint</span><button type="button" id="_R_1_-btn" class="ra-combo__btn" aria-haspopup="listbox" aria-expanded="false" aria-labelledby="_R_1_-label _R_1_-btn"><span class="ra-combo__value">Email Finder</span><span class="ra-combo__hint">5 cr</span><svg width="14" height="14" viewBox="0 0 16 16" fill="none" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="m4 6 4 4 4-4"></path></svg></button></div><div class="ra-field-grid ra-field-grid--2"><div class="ra-field"><label class="ra-field__label" for="_R_6_">Domain</label><input id="_R_6_" class="ra-input" value="acme.com"/></div><div class="ra-field"><label class="ra-field__label" for="_R_a_">Full name</label><input id="_R_a_" class="ra-input" value="Dana Whitfield"/></div></div><div class="ra-run-bar"><span class="ra-run-bar__meta">Estimated 5 cr · balance 1,284 cr</span><button type="button" class="ra-btn ra-btn--primary">Run endpoint</button></div></div>

Result: running

Responsequerying providers…
Running
JSX
<ResultPanel status="running" title="Response" meta="querying providers…">rows</ResultPanel>
HTML
<section class="ra-result ra-result--running" aria-busy="true" aria-label="Response"><div class="ra-result__head"><b>Response</b><span class="ra-result__meta">querying providers…</span><span class="ra-result__tools"></span></div><div class="ra-result__body"><div class="ra-skel-group" aria-busy="true"><span class="ra-sr-only">Running</span><div class="ra-skel" aria-hidden="true"></div><div class="ra-skel" aria-hidden="true"></div><div class="ra-skel" aria-hidden="true"></div><div class="ra-skel" aria-hidden="true" style="width:60%"></div></div></div></section>

Result: ok

Response1 result
{
  "success": true,
  "results": 1,
  "credits_billed": 5,
  "data": [
    {
      "email": "dana@acme.com",
      "confidence": 0.97
    }
  ]
}
Billed
5 cr
Calls
1
Get this data
JSX
<ResultPanel status="ok" title="Response" meta="1 result" toolbar={<Button size="sm">Copy JSON</Button>} footer={<DataOut>
  <Button size="sm">CSV</Button>
  <Button size="sm">Copy</Button>
</DataOut>}>
  <Json value={{
    success: true,
    results: 1,
    credits_billed: 5,
    data: [{ email: "dana@acme.com", confidence: 0.97 }],
  }} />
  <Receipt rows={[
    { label: "Billed", value: "5 cr" },
    { label: "Calls", value: "1" },
  ]} />
</ResultPanel>
HTML
<section class="ra-result ra-result--ok" aria-label="Response"><div class="ra-result__head"><b>Response</b><span class="ra-result__meta">1 result</span><span class="ra-result__tools"><button type="button" class="ra-btn ra-btn--sm">Copy JSON</button></span></div><div class="ra-result__body"><pre class="ra-json">{
  <span class="ra-json__key">&quot;success&quot;</span>: <span class="ra-json__bool">true</span>,
  <span class="ra-json__key">&quot;results&quot;</span>: <span class="ra-json__num">1</span>,
  <span class="ra-json__key">&quot;credits_billed&quot;</span>: <span class="ra-json__num">5</span>,
  <span class="ra-json__key">&quot;data&quot;</span>: [
    {
      <span class="ra-json__key">&quot;email&quot;</span>: <span class="ra-json__str">&quot;dana@acme.com&quot;</span>,
      <span class="ra-json__key">&quot;confidence&quot;</span>: <span class="ra-json__num">0.97</span>
    }
  ]
}</pre><div class="ra-receipt"><dl class="ra-kv"><div class="ra-kv__row"><dt class="ra-kv__label">Billed</dt><dd class="ra-kv__value">5 cr</dd></div><div class="ra-kv__row"><dt class="ra-kv__label">Calls</dt><dd class="ra-kv__value">1</dd></div></dl></div></div><div class="ra-result__foot"><div class="ra-data-out" role="group" aria-label="Get this data"><span class="ra-label">Get this data</span><button type="button" class="ra-btn ra-btn--sm">CSV</button><button type="button" class="ra-btn ra-btn--sm">Copy</button></div></div></section>

Result: empty

Response

0 results · not billed

12 providers tried, none returned a verified match.

Billed
5 cr
Calls
1
JSX
<ResultPanel status="empty" title="Response" footer={<Receipt rows={[
  { label: "Billed", value: "5 cr" },
  { label: "Calls", value: "1" },
]} />}>
  <EmptyState title="0 results · not billed">12 providers tried, none returned a verified match.</EmptyState>
</ResultPanel>
HTML
<section class="ra-result ra-result--empty" aria-label="Response"><div class="ra-result__head"><b>Response</b><span class="ra-result__meta"></span><span class="ra-result__tools"></span></div><div class="ra-result__body"><div class="ra-empty"><h3 class="ra-empty__title">0 results · not billed</h3><p class="ra-empty__text">12 providers tried, none returned a verified match.</p></div></div><div class="ra-result__foot"><div class="ra-receipt"><dl class="ra-kv"><div class="ra-kv__row"><dt class="ra-kv__label">Billed</dt><dd class="ra-kv__value">5 cr</dd></div><div class="ra-kv__row"><dt class="ra-kv__label">Calls</dt><dd class="ra-kv__value">1</dd></div></dl></div></div></section>

Error: 429

Response
JSX
<ResultPanel status="error" title="Response">
  <ErrorBox code="HTTP 429" title="Too many requests" cause="You sent more than 60 calls in one minute." fix="Wait 12 seconds, then retry. Batch lists with a bulk run." actions={<Button variant="primary">Retry</Button>} details={{ error: { type: "rate_limited", retry_after: 12 } }} />
</ResultPanel>
HTML
<section class="ra-result ra-result--error" aria-label="Response"><div class="ra-result__head"><b>Response</b><span class="ra-result__meta"></span><span class="ra-result__tools"></span></div><div class="ra-result__body"><div class="ra-err" role="alert"><div class="ra-err__top"><span class="ra-pill ra-pill--err ra-pill--mono">HTTP 429</span><b class="ra-err__title">Too many requests</b></div><p class="ra-err__cause">You sent more than 60 calls in one minute.</p><div class="ra-err__fix"><span class="ra-label">Fix</span><span>Wait 12 seconds, then retry. Batch lists with a bulk run.</span></div><div class="ra-err__actions"><button type="button" class="ra-btn ra-btn--primary">Retry</button></div><details class="ra-err__details"><summary>Response body</summary><pre class="ra-json">{
  <span class="ra-json__key">&quot;error&quot;</span>: {
    <span class="ra-json__key">&quot;type&quot;</span>: <span class="ra-json__str">&quot;rate_limited&quot;</span>,
    <span class="ra-json__key">&quot;retry_after&quot;</span>: <span class="ra-json__num">12</span>
  }
}</pre></details></div></div></section>

Run log

Email FinderYou · personio.com · HTTP 5042 min ago0 cr
Request
{
  "endpoint": "email_finder",
  "domain": "personio.com",
  "full_name": "Dana Whitfield"
}
Response
{
  "success": false,
  "results": 0,
  "credits_billed": 0,
  "error": "Upstream timeout after 30s"
}
Open
Company EnrichmentSales agent · acme.com · 1 row5 min ago1 cr
Request
{
  "domain": "acme.com"
}
Response
{
  "success": true,
  "results": 1
}
Mobile PhoneYou · dana@acme.com · 0 results1 h ago0 cr
People SearchAPI key · 25 rows3 h ago2.5 cr
Email FinderYou · stripe.com · 1 rowYesterday5 cr
JSX
<RunLog>
  <RunRow status="err" name="Email Finder" meta="You · personio.com · HTTP 504" when="2 min ago" credits="0 cr" open highlight>
    <RunDetail request={{
      endpoint: "email_finder",
      domain: "personio.com",
      full_name: "Dana Whitfield",
    }} response={{
      success: false,
      results: 0,
      credits_billed: 0,
      error: "Upstream timeout after 30s",
    }} footer={<Button size="sm" variant="ghost">CSV</Button>
    <Button size="sm" variant="ghost">cURL</Button>
    <Button size="sm" variant="ghost" href="#">Open</Button>
    <Button size="sm" variant="ghost">Run again</Button>} />
  </RunRow>
  <RunRow status="ok" name="Company Enrichment" meta="Sales agent · acme.com · 1 row" when="5 min ago" credits="1 cr">
    <RunDetail request={{ domain: "acme.com" }} response={{ success: true, results: 1 }} />
  </RunRow>
  <RunRow status="empty" name="Mobile Phone" meta="You · dana@acme.com · 0 results" when="1 h ago" credits="0 cr" />
  <RunRow status="ok" name="People Search" meta="API key · 25 rows" when="3 h ago" credits="2.5 cr" />
  <RunRow status="ok" name="Email Finder" meta="You · stripe.com · 1 row" when="Yesterday" credits="5 cr" />
</RunLog>
HTML
<div class="g-frame g-frame--lg"><div class="ra-runs" role="list" aria-label="Runs"><details class="ra-run" role="listitem" open="" data-highlight="true"><summary class="ra-run__row"><svg class="ra-run__chev" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg><span class="ra-run__ic ra-run__ic--err" role="img" aria-label="Failed"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m6 6 12 12M18 6 6 18"></path></svg></span><span class="ra-run__main"><b>Email Finder</b><small>You · personio.com · HTTP 504</small></span><span class="ra-run__when">2 min ago</span><span class="ra-run__cr">0 cr</span></summary><div class="ra-run__detail"><div class="ra-run-detail"><div class="ra-run-detail__box"><div class="ra-run-detail__head"><span class="ra-label">Request</span><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy request</button><span class="ra-sr-only" aria-live="polite"></span></div><pre class="ra-json">{
  <span class="ra-json__key">&quot;endpoint&quot;</span>: <span class="ra-json__str">&quot;email_finder&quot;</span>,
  <span class="ra-json__key">&quot;domain&quot;</span>: <span class="ra-json__str">&quot;personio.com&quot;</span>,
  <span class="ra-json__key">&quot;full_name&quot;</span>: <span class="ra-json__str">&quot;Dana Whitfield&quot;</span>
}</pre></div><div class="ra-run-detail__box"><div class="ra-run-detail__head"><span class="ra-label">Response</span><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy response</button><span class="ra-sr-only" aria-live="polite"></span></div><pre class="ra-json">{
  <span class="ra-json__key">&quot;success&quot;</span>: <span class="ra-json__bool">false</span>,
  <span class="ra-json__key">&quot;results&quot;</span>: <span class="ra-json__num">0</span>,
  <span class="ra-json__key">&quot;credits_billed&quot;</span>: <span class="ra-json__num">0</span>,
  <span class="ra-json__key">&quot;error&quot;</span>: <span class="ra-json__str">&quot;Upstream timeout after 30s&quot;</span>
}</pre></div><div class="ra-run-detail__foot"><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">CSV</button><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">cURL</button><a class="ra-btn ra-btn--ghost ra-btn--sm" href="#">Open</a><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Run again</button></div></div></div></details><details class="ra-run" role="listitem"><summary class="ra-run__row"><svg class="ra-run__chev" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg><span class="ra-run__ic ra-run__ic--ok" role="img" aria-label="Succeeded"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m5 12 5 5 9-10"></path></svg></span><span class="ra-run__main"><b>Company Enrichment</b><small>Sales agent · acme.com · 1 row</small></span><span class="ra-run__when">5 min ago</span><span class="ra-run__cr">1 cr</span></summary><div class="ra-run__detail"><div class="ra-run-detail"><div class="ra-run-detail__box"><div class="ra-run-detail__head"><span class="ra-label">Request</span><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy request</button><span class="ra-sr-only" aria-live="polite"></span></div><pre class="ra-json">{
  <span class="ra-json__key">&quot;domain&quot;</span>: <span class="ra-json__str">&quot;acme.com&quot;</span>
}</pre></div><div class="ra-run-detail__box"><div class="ra-run-detail__head"><span class="ra-label">Response</span><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy response</button><span class="ra-sr-only" aria-live="polite"></span></div><pre class="ra-json">{
  <span class="ra-json__key">&quot;success&quot;</span>: <span class="ra-json__bool">true</span>,
  <span class="ra-json__key">&quot;results&quot;</span>: <span class="ra-json__num">1</span>
}</pre></div></div></div></details><div class="ra-run" role="listitem"><div class="ra-run__row"><span class="ra-run__ic ra-run__ic--empty" role="img" aria-label="No results"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="M6 12h12"></path></svg></span><span class="ra-run__main"><b>Mobile Phone</b><small>You · dana@acme.com · 0 results</small></span><span class="ra-run__when">1 h ago</span><span class="ra-run__cr">0 cr</span></div></div><div class="ra-run" role="listitem"><div class="ra-run__row"><span class="ra-run__ic ra-run__ic--ok" role="img" aria-label="Succeeded"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m5 12 5 5 9-10"></path></svg></span><span class="ra-run__main"><b>People Search</b><small>API key · 25 rows</small></span><span class="ra-run__when">3 h ago</span><span class="ra-run__cr">2.5 cr</span></div></div><div class="ra-run" role="listitem"><div class="ra-run__row"><span class="ra-run__ic ra-run__ic--ok" role="img" aria-label="Succeeded"><svg viewBox="0 0 24 24" aria-hidden="true"><path d="m5 12 5 5 9-10"></path></svg></span><span class="ra-run__main"><b>Email Finder</b><small>You · stripe.com · 1 row</small></span><span class="ra-run__when">Yesterday</span><span class="ra-run__cr">5 cr</span></div></div></div></div>

Usage filters and summary

Clear
Calls
2,384
Credits
716 cr
0.3 cr per call on average
Success
96.2%
41 misses, 49 errors · all free
Paid by the pass
212 cr
of enrichment
JSX
<FilterBar clearHref="#">
  <Segmented label="Range" options={[
    { value: "7D", label: "7D" },
    { value: "30D", label: "30D" },
    { value: "6W", label: "6W" },
  ]} defaultValue="30D" />
  <Select aria-label="Filter by source" defaultValue="all">
    <option value="all">All sources</option>
    <option value="you">You</option>
  </Select>
  <Select aria-label="Filter by status" defaultValue="all">
    <option value="all">Any status</option>
    <option value="billed">Billed</option>
    <option value="failed">Failed (free)</option>
  </Select>
</FilterBar>
<SummaryStrip items={[
  { label: "Calls", value: "2,384" },
  {
    label: "Credits",
    value: "716 cr",
    sub: "0.3 cr per call on average",
  },
  {
    label: "Success",
    value: "96.2%",
    sub: "41 misses, 49 errors · all free",
  },
  {
    label: "Paid by the pass",
    value: "212 cr",
    sub: "of enrichment",
  },
]} />
HTML
<div class="g-frame g-frame--lg"><div class="ra-filters" role="group" aria-label="Filters"><div class="ra-seg" role="group" aria-label="Range"><button type="button" class="ra-seg__item" aria-pressed="false">7D</button><button type="button" class="ra-seg__item" aria-pressed="true">30D</button><button type="button" class="ra-seg__item" aria-pressed="false">6W</button></div><select id="_R_15_" class="ra-input ra-select" aria-label="Filter by source"><option value="all" selected="">All sources</option><option value="you">You</option></select><select id="_R_1l_" class="ra-input ra-select" aria-label="Filter by status"><option value="all" selected="">Any status</option><option value="billed">Billed</option><option value="failed">Failed (free)</option></select><a class="ra-btn ra-btn--link ra-btn--sm" href="#">Clear</a></div><dl class="ra-summary"><div class="ra-summary__item"><dt>Calls</dt><dd>2,384</dd></div><div class="ra-summary__item"><dt>Credits</dt><dd>716 cr</dd><small>0.3 cr per call on average</small></div><div class="ra-summary__item"><dt>Success</dt><dd>96.2%</dd><small>41 misses, 49 errors · all free</small></div><div class="ra-summary__item"><dt>Paid by the pass</dt><dd>212 cr</dd><small>of enrichment</small></div></dl></div>

Bulk input

One per line, or comma separated

2 rows

JSX
<BulkInput label="Domains" max={1000} help="One per line, or comma separated" defaultValue={`personio.com
pitch.com`} />
HTML
<div class="g-frame g-frame--md"><div class="ra-field"><label class="ra-field__label" for="_R_1_">Domains</label><textarea id="_R_1_" class="ra-input ra-textarea ra-bulk__input" aria-describedby="_R_1_-help">personio.com
pitch.com</textarea><p class="ra-field__help" id="_R_1_-help">One per line, or comma separated</p></div><p class="ra-bulk__count" aria-live="polite">2 rows</p></div>

CSV upload and preview

CSV preview
InputNameIndustryHeadcountHQ
personio.comPersonioSoftware480Berlin
pitch.comPitchFintech137San Francisco
taxfix.deTaxfixHR Tech234London
contentful.comContentfulDeveloper Tools331Tallinn
acme.comAcmeSoftware428Berlin
stripe.comStripeFintech525San Francisco
notion.soNotionHR Tech622London
linear.appLinearDeveloper Tools719Tallinn
vercel.comVercelSoftware816Berlin
figma.comFigmaFintech913San Francisco

Showing 10 of 13 rows

JSX
<FileDrop label="Upload a CSV" accept=".csv" hint="Up to 1,000 rows" onFile={() => {}} />
<CsvPreview rows={[
  ["Input", "Name", "Industry", "Headcount", "HQ"],
  ["personio.com", "Personio", "Software", "480", "Berlin"],
  ["pitch.com", "Pitch", "Fintech", "137", "San Francisco"],
  ["taxfix.de", "Taxfix", "HR Tech", "234", "London"],
  [
    "contentful.com",
    "Contentful",
    "Developer Tools",
    "331",
    "Tallinn",
  ],
  ["acme.com", "Acme", "Software", "428", "Berlin"],
  ["stripe.com", "Stripe", "Fintech", "525", "San Francisco"],
  ["notion.so", "Notion", "HR Tech", "622", "London"],
  [
    "linear.app",
    "Linear",
    "Developer Tools",
    "719",
    "Tallinn",
  ],
  ["vercel.com", "Vercel", "Software", "816", "Berlin"],
  ["figma.com", "Figma", "Fintech", "913", "San Francisco"],
  ["airbnb.com", "Airbnb", "HR Tech", "1010", "London"],
  [
    "github.com",
    "GitHub",
    "Developer Tools",
    "107",
    "Tallinn",
  ],
  ["slack.com", "Slack", "Software", "204", "Berlin"],
]} caption="CSV preview" />
HTML
<div class="g-frame g-frame--lg g-frame--stack"><div class="ra-drop-field"><label class="ra-drop"><input type="file" class="ra-drop__input" accept=".csv"/><span class="ra-drop__title">Upload a CSV</span><small>Up to 1,000 rows</small></label></div><div class="ra-csv"><div class="ra-table-wrap"><table class="ra-table"><caption class="ra-sr-only">CSV preview</caption><thead><tr><th scope="col" class="ra-table__th">Input</th><th scope="col" class="ra-table__th">Name</th><th scope="col" class="ra-table__th">Industry</th><th scope="col" class="ra-table__th">Headcount</th><th scope="col" class="ra-table__th">HQ</th></tr></thead><tbody><tr><td class="ra-table__td">personio.com</td><td class="ra-table__td">Personio</td><td class="ra-table__td">Software</td><td class="ra-table__td">480</td><td class="ra-table__td">Berlin</td></tr><tr><td class="ra-table__td">pitch.com</td><td class="ra-table__td">Pitch</td><td class="ra-table__td">Fintech</td><td class="ra-table__td">137</td><td class="ra-table__td">San Francisco</td></tr><tr><td class="ra-table__td">taxfix.de</td><td class="ra-table__td">Taxfix</td><td class="ra-table__td">HR Tech</td><td class="ra-table__td">234</td><td class="ra-table__td">London</td></tr><tr><td class="ra-table__td">contentful.com</td><td class="ra-table__td">Contentful</td><td class="ra-table__td">Developer Tools</td><td class="ra-table__td">331</td><td class="ra-table__td">Tallinn</td></tr><tr><td class="ra-table__td">acme.com</td><td class="ra-table__td">Acme</td><td class="ra-table__td">Software</td><td class="ra-table__td">428</td><td class="ra-table__td">Berlin</td></tr><tr><td class="ra-table__td">stripe.com</td><td class="ra-table__td">Stripe</td><td class="ra-table__td">Fintech</td><td class="ra-table__td">525</td><td class="ra-table__td">San Francisco</td></tr><tr><td class="ra-table__td">notion.so</td><td class="ra-table__td">Notion</td><td class="ra-table__td">HR Tech</td><td class="ra-table__td">622</td><td class="ra-table__td">London</td></tr><tr><td class="ra-table__td">linear.app</td><td class="ra-table__td">Linear</td><td class="ra-table__td">Developer Tools</td><td class="ra-table__td">719</td><td class="ra-table__td">Tallinn</td></tr><tr><td class="ra-table__td">vercel.com</td><td class="ra-table__td">Vercel</td><td class="ra-table__td">Software</td><td class="ra-table__td">816</td><td class="ra-table__td">Berlin</td></tr><tr><td class="ra-table__td">figma.com</td><td class="ra-table__td">Figma</td><td class="ra-table__td">Fintech</td><td class="ra-table__td">913</td><td class="ra-table__td">San Francisco</td></tr></tbody></table></div><p class="ra-csv__more">Showing 10 of 13 rows</p></div></div>

Skipped rows

2 rows skipped, not billed
  • not-a-domain not a domain
  • acme missing top-level domain
JSX
<SkippedRows rows={[
  { value: "not-a-domain", reason: "not a domain" },
  { value: "acme", reason: "missing top-level domain" },
]} />
HTML
<div class="g-frame g-frame--md"><div class="ra-skipped"><b>2 rows skipped, not billed</b><ul><li><code>not-a-domain</code> not a domain</li><li><code>acme</code> missing top-level domain</li></ul></div></div>

Send to

JSX
<div role="radiogroup" aria-label="Send to">
  <ChoiceCard name="dest" value="sheets" title="Google Sheets" description="Append rows to a sheet" defaultChecked />
  <ChoiceCard name="dest" value="clay" title="Clay" description="Push to a Clay table" />
  <ChoiceCard name="dest" value="webhook" title="Webhook" description="POST each row to a URL" />
</div>
HTML
<div class="g-frame g-frame--md"><div role="radiogroup" aria-label="Send to"><div class="g-frame g-frame--stack" style="gap:6px"><label class="ra-choice"><input type="radio" class="ra-choice__input" name="dest" checked="" value="sheets"/><span class="ra-choice__title">Google Sheets</span><small>Append rows to a sheet</small></label><label class="ra-choice"><input type="radio" class="ra-choice__input" name="dest" value="clay"/><span class="ra-choice__title">Clay</span><small>Push to a Clay table</small></label><label class="ra-choice"><input type="radio" class="ra-choice__input" name="dest" value="webhook"/><span class="ra-choice__title">Webhook</span><small>POST each row to a URL</small></label></div></div></div>

Goal cards

ChoiceCard as a button. aria-pressed marks the chosen goal.

JSX
<ChoiceCard as="button" pressed title="Find work emails" cost="5 cr" description="Verified addresses for a list of people" code="POST /v1/email_finder" />
<ChoiceCard as="button" title="Enrich profiles" cost="1 cr" description="Title, company and location from LinkedIn" code="POST /v1/enrich_profile" />
<ChoiceCard as="button" title="Search people" cost="0.1 cr" description="Find people by role and company" code="POST /v1/people_search" />
HTML
<div class="g-frame g-frame--lg g-frame--stack" style="grid-template-columns:repeat(3, 1fr);gap:10px"><button type="button" class="ra-choice ra-choice--button" aria-pressed="true"><span class="ra-choice__title">Find work emails</span><span class="ra-choice__cost">5 cr</span><small>Verified addresses for a list of people</small><code class="ra-choice__code">POST /v1/email_finder</code></button><button type="button" class="ra-choice ra-choice--button" aria-pressed="false"><span class="ra-choice__title">Enrich profiles</span><span class="ra-choice__cost">1 cr</span><small>Title, company and location from LinkedIn</small><code class="ra-choice__code">POST /v1/enrich_profile</code></button><button type="button" class="ra-choice ra-choice--button" aria-pressed="false"><span class="ra-choice__title">Search people</span><span class="ra-choice__cost">0.1 cr</span><small>Find people by role and company</small><code class="ra-choice__code">POST /v1/people_search</code></button></div>

Endpoint catalog

JSX
<Input aria-label="Search endpoints" leading={<svg className="ra-icon" viewBox="0 0 24 24" aria-hidden="true">
  <circle cx="11" cy="11" r="7" />
  <path d="m20 20-3.5-3.5" />
</svg>} trailing={<Kbd>/</Kbd>} placeholder="Search endpoints, e.g. email, company, jobs" />
<div style={{ marginTop: 12 }}>
  <FilterPills label="Category" options={[
    { value: "All", label: "All" },
    {
      value: "LinkedIn enrichment",
      label: "LinkedIn enrichment",
    },
    { value: "Search", label: "Search" },
    { value: "Signals", label: "Signals" },
    { value: "Waterfalls", label: "Waterfalls" },
    { value: "Web intelligence", label: "Web intelligence" },
    { value: "AI enrichment", label: "AI enrichment" },
    { value: "Utilities", label: "Utilities" },
  ]} defaultValue="All" />
</div>
<EndpointList>
  <EndpointItem href="#people" name="People Search" description="Find people by title, company, location and seniority." cost="0.1 cr / result" />
  <EndpointItem href="#email" name="Email Finder" badge={<Pill tone="pass" mono>pass</Pill>} description="Work emails from a name and a company domain." cost="5 cr / call" note="misses free" />
  <EndpointItem href="#company" name="Company Enrichment" description="Firmographics, headcount and tech stack from a domain." cost="1 cr / call" />
  <EndpointItem href="#verify" name="Email Verifier" description="SMTP and catch-all checks before you send." cost="2 cr / call" />
  <EndpointItem href="#profile" name="Profile Enrichment" description="Full LinkedIn profile data from a profile URL." cost="1 cr / call" />
</EndpointList>
HTML
<div class="g-frame g-frame--xl"><div class="ra-input-wrap"><span class="ra-input-wrap__lead"><svg class="ra-icon" viewBox="0 0 24 24" aria-hidden="true"><circle cx="11" cy="11" r="7"></circle><path d="m20 20-3.5-3.5"></path></svg></span><input id="_R_1_" class="ra-input" aria-label="Search endpoints" placeholder="Search endpoints, e.g. email, company, jobs"/><span class="ra-input-wrap__trail"><kbd class="ra-kbd">/</kbd></span></div><div style="margin-top:12px"><div class="ra-pills" role="group" aria-label="Category"><button type="button" class="ra-pills__item" aria-pressed="true">All</button><button type="button" class="ra-pills__item" aria-pressed="false">LinkedIn enrichment</button><button type="button" class="ra-pills__item" aria-pressed="false">Search</button><button type="button" class="ra-pills__item" aria-pressed="false">Signals</button><button type="button" class="ra-pills__item" aria-pressed="false">Waterfalls</button><button type="button" class="ra-pills__item" aria-pressed="false">Web intelligence</button><button type="button" class="ra-pills__item" aria-pressed="false">AI enrichment</button><button type="button" class="ra-pills__item" aria-pressed="false">Utilities</button></div></div><ul class="ra-endpoints" aria-label="Endpoints"><li><a class="ra-endpoint" href="#people"><span class="ra-endpoint__name">People Search</span><span class="ra-endpoint__desc">Find people by title, company, location and seniority.</span><span class="ra-endpoint__cost">0.1 cr / result</span><svg class="ra-icon ra-icon--sm ra-endpoint__go" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg></a></li><li><a class="ra-endpoint" href="#email"><span class="ra-endpoint__name">Email Finder<span class="ra-pill ra-pill--pass ra-pill--mono">pass</span></span><span class="ra-endpoint__desc">Work emails from a name and a company domain.</span><span class="ra-endpoint__cost">5 cr / call<small>misses free</small></span><svg class="ra-icon ra-icon--sm ra-endpoint__go" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg></a></li><li><a class="ra-endpoint" href="#company"><span class="ra-endpoint__name">Company Enrichment</span><span class="ra-endpoint__desc">Firmographics, headcount and tech stack from a domain.</span><span class="ra-endpoint__cost">1 cr / call</span><svg class="ra-icon ra-icon--sm ra-endpoint__go" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg></a></li><li><a class="ra-endpoint" href="#verify"><span class="ra-endpoint__name">Email Verifier</span><span class="ra-endpoint__desc">SMTP and catch-all checks before you send.</span><span class="ra-endpoint__cost">2 cr / call</span><svg class="ra-icon ra-icon--sm ra-endpoint__go" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg></a></li><li><a class="ra-endpoint" href="#profile"><span class="ra-endpoint__name">Profile Enrichment</span><span class="ra-endpoint__desc">Full LinkedIn profile data from a profile URL.</span><span class="ra-endpoint__cost">1 cr / call</span><svg class="ra-icon ra-icon--sm ra-endpoint__go" viewBox="0 0 24 24" aria-hidden="true"><path d="m9 6 6 6-6 6"></path></svg></a></li></ul></div>

API keys

NameKeyUsed byLast used
ProductionCreated Sep 9
rk_live••••a91f
Claude Code
2 min ago
Clay tableCreated Sep 14
rk_live••••44c0
Clay table
Yesterday
JSX
<Card>
  <div className="ra-key-head ra-label">
    <span>Name</span>
    <span>Key</span>
    <span>Used by</span>
    <span>Last used</span>
    <span />
  </div>
  <KeyRow name="Production" created="Created Sep 9" secret={<SecretField value="rk_live_7Hq2mX9vLpT4cWn8a91f" label="Production key" />} usedBy={<Pill>Claude Code</Pill>} lastUsed="2 min ago" actions={<IconButton label="Revoke Production" icon={<svg className="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true">
    <path d="M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3" />
  </svg>} />} />
  <KeyRow name="Clay table" created="Created Sep 14" secret={<SecretField value="rk_live_P0sV3kQe8RtYb2Lm44c0" label="Clay table key" />} usedBy={<Pill>Clay table</Pill>} lastUsed="Yesterday" actions={<IconButton label="Revoke Clay table" icon={<svg className="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true">
    <path d="M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3" />
  </svg>} />} />
</Card>
HTML
<div class="g-frame g-frame--xl"><div class="ra-card"><div class="ra-key-head ra-label"><span>Name</span><span>Key</span><span>Used by</span><span>Last used</span><span></span></div><div class="ra-key-row"><div><b>Production</b><small>Created Sep 9</small></div><div class="ra-secret" role="group" aria-label="Production key"><code class="ra-secret__value">rk_live••••a91f</code><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Reveal</button><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy</button><span class="ra-sr-only" aria-live="polite"></span><span class="ra-secret__timer" aria-hidden="true"></span><span class="ra-sr-only" aria-live="polite"></span></div><div class="ra-key-row__used"><span class="ra-pill">Claude Code</span></div><small class="ra-key-row__last">2 min ago</small><div class="ra-key-row__acts"><button type="button" class="ra-btn ra-btn--ghost ra-btn--icon ra-tip" aria-label="Revoke Production" data-tip="Revoke Production"><svg class="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3"></path></svg></button></div></div><div class="ra-key-row"><div><b>Clay table</b><small>Created Sep 14</small></div><div class="ra-secret" role="group" aria-label="Clay table key"><code class="ra-secret__value">rk_live••••44c0</code><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Reveal</button><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy</button><span class="ra-sr-only" aria-live="polite"></span><span class="ra-secret__timer" aria-hidden="true"></span><span class="ra-sr-only" aria-live="polite"></span></div><div class="ra-key-row__used"><span class="ra-pill">Clay table</span></div><small class="ra-key-row__last">Yesterday</small><div class="ra-key-row__acts"><button type="button" class="ra-btn ra-btn--ghost ra-btn--icon ra-tip" aria-label="Revoke Clay table" data-tip="Revoke Clay table"><svg class="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M4 7h16M10 11v6M14 11v6M6 7l1 13h10l1-13M9 7V4h6v3"></path></svg></button></div></div></div></div>

Docs nav

JSX
<DocNav label="Endpoints" back={{ href: "#endpoints", label: "All endpoints" }} groups={[
  {
    items: [
      { href: "#start", label: "Getting started" },
      { href: "#errors", label: "Errors" },
    ],
  },
  {
    label: "LinkedIn enrichment",
    items: [
      {
        href: "#enrich_profile",
        label: "Enrich Profile",
        current: true,
      },
      { href: "#enrich_company", label: "Company Enrichment" },
    ],
  },
]} />
HTML
<div class="g-frame g-frame--sm"><nav class="ra-doc-nav" aria-label="Endpoints"><a class="ra-doc-nav__link ra-doc-nav__link--back" href="#endpoints"><svg class="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M19 12H5m6-6-6 6 6 6"></path></svg>All endpoints</a><a class="ra-doc-nav__link" href="#start">Getting started</a><a class="ra-doc-nav__link" href="#errors">Errors</a><span class="ra-doc-nav__label ra-label">LinkedIn enrichment</span><a class="ra-doc-nav__link" href="#enrich_profile" aria-current="page">Enrich Profile</a><a class="ra-doc-nav__link" href="#enrich_company">Company Enrichment</a></nav></div>

Endpoint header

POST/api/v1/enrich_profile1 cr per callEnrichment Pass
For your AIOpen in ClaudeOpen in ChatGPT
JSX
<DocMeta method="POST" path="/api/v1/enrich_profile" copyValue="https://api.richapi.ai/api/v1/enrich_profile" cost="1 cr per call" pass />
<div style={{ marginTop: 16 }}>
  <ActionBar label="For your AI">
    <CopyButton value={`# Enrich Profile

POST https://api.richapi.ai/api/v1/enrich_profile
Auth: x-api-key header
Cost: 1 credits per call (Enrichment Pass eligible)

Full LinkedIn profile data from a profile URL.

## Parameters
- \`linkedin_url\` (url, required): Public LinkedIn profile URL, e.g. linkedin.com/in/jane-doe. Example: linkedin.com/in/jane-doe`} label="Copy as Markdown" />
    <Button variant="ghost" size="sm" href="https://claude.ai/new?q=Here%20is%20the%20RichAPI%20reference%20for%20Enrich%20Profile.%20Help%20me%20call%20it%20from%20my%20code.%0A%0A%23%20Enrich%20Profile%0A%0APOST%20https%3A%2F%2Fapi.richapi.ai%2Fapi%2Fv1%2Fenrich_profile%0AAuth%3A%20x-api-key%20header%0ACost%3A%201%20credits%20per%20call%20(Enrichment%20Pass%20eligible)%0A%0AFull%20LinkedIn%20profile%20data%20from%20a%20profile%20URL.%0A%0A%23%23%20Parameters%0A-%20%60linkedin_url%60%20(url%2C%20required)%3A%20Public%20LinkedIn%20profile%20URL%2C%20e.g.%20linkedin.com%2Fin%2Fjane-doe.%20Example%3A%20linkedin.com%2Fin%2Fjane-doe" target="_blank" rel="noopener" iconEnd={<svg className="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true">
      <path d="M7 17 17 7M8 7h9v9" />
    </svg>}>Open in Claude</Button>
    <Button variant="ghost" size="sm" href="https://chatgpt.com/?q=Here%20is%20the%20RichAPI%20reference%20for%20Enrich%20Profile.%20Help%20me%20call%20it%20from%20my%20code.%0A%0A%23%20Enrich%20Profile%0A%0APOST%20https%3A%2F%2Fapi.richapi.ai%2Fapi%2Fv1%2Fenrich_profile%0AAuth%3A%20x-api-key%20header%0ACost%3A%201%20credits%20per%20call%20(Enrichment%20Pass%20eligible)%0A%0AFull%20LinkedIn%20profile%20data%20from%20a%20profile%20URL.%0A%0A%23%23%20Parameters%0A-%20%60linkedin_url%60%20(url%2C%20required)%3A%20Public%20LinkedIn%20profile%20URL%2C%20e.g.%20linkedin.com%2Fin%2Fjane-doe.%20Example%3A%20linkedin.com%2Fin%2Fjane-doe" target="_blank" rel="noopener" iconEnd={<svg className="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true">
      <path d="M7 17 17 7M8 7h9v9" />
    </svg>}>Open in ChatGPT</Button>
  </ActionBar>
</div>
HTML
<div class="g-frame g-frame--lg"><div class="ra-doc-meta"><span class="ra-pill ra-pill--mono">POST</span><code class="ra-doc-meta__path">/api/v1/enrich_profile</code><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy URL</button><span class="ra-sr-only" aria-live="polite"></span><span class="ra-pill ra-pill--brand">1 cr per call</span><span class="ra-pill ra-pill--pass">Enrichment Pass</span></div><div style="margin-top:16px"><div class="ra-action-bar" role="group" aria-label="For your AI"><span class="ra-label">For your AI</span><button type="button" class="ra-btn ra-btn--ghost ra-btn--sm">Copy as Markdown</button><span class="ra-sr-only" aria-live="polite"></span><a class="ra-btn ra-btn--ghost ra-btn--sm" href="https://claude.ai/new?q=Here%20is%20the%20RichAPI%20reference%20for%20Enrich%20Profile.%20Help%20me%20call%20it%20from%20my%20code.%0A%0A%23%20Enrich%20Profile%0A%0APOST%20https%3A%2F%2Fapi.richapi.ai%2Fapi%2Fv1%2Fenrich_profile%0AAuth%3A%20x-api-key%20header%0ACost%3A%201%20credits%20per%20call%20(Enrichment%20Pass%20eligible)%0A%0AFull%20LinkedIn%20profile%20data%20from%20a%20profile%20URL.%0A%0A%23%23%20Parameters%0A-%20%60linkedin_url%60%20(url%2C%20required)%3A%20Public%20LinkedIn%20profile%20URL%2C%20e.g.%20linkedin.com%2Fin%2Fjane-doe.%20Example%3A%20linkedin.com%2Fin%2Fjane-doe" target="_blank" rel="noopener">Open in Claude<svg class="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 17 17 7M8 7h9v9"></path></svg></a><a class="ra-btn ra-btn--ghost ra-btn--sm" href="https://chatgpt.com/?q=Here%20is%20the%20RichAPI%20reference%20for%20Enrich%20Profile.%20Help%20me%20call%20it%20from%20my%20code.%0A%0A%23%20Enrich%20Profile%0A%0APOST%20https%3A%2F%2Fapi.richapi.ai%2Fapi%2Fv1%2Fenrich_profile%0AAuth%3A%20x-api-key%20header%0ACost%3A%201%20credits%20per%20call%20(Enrichment%20Pass%20eligible)%0A%0AFull%20LinkedIn%20profile%20data%20from%20a%20profile%20URL.%0A%0A%23%23%20Parameters%0A-%20%60linkedin_url%60%20(url%2C%20required)%3A%20Public%20LinkedIn%20profile%20URL%2C%20e.g.%20linkedin.com%2Fin%2Fjane-doe.%20Example%3A%20linkedin.com%2Fin%2Fjane-doe" target="_blank" rel="noopener">Open in ChatGPT<svg class="ra-icon ra-icon--sm" viewBox="0 0 24 24" aria-hidden="true"><path d="M7 17 17 7M8 7h9v9"></path></svg></a></div></div></div>

MCP playground

inputSchema
{
  "type": "object",
  "properties": {
    "linkedin_url": {
      "type": "string",
      "description": "Public LinkedIn profile URL, e.g. linkedin.com/in/jane-doe."
    }
  },
  "required": [
    "linkedin_url"
  ]
}
Arguments
JSX
<Card>
  <SplitPane layout="sidebar">
    <ToolList label="Tools" tools={[
      {
        value: "enrich_profile",
        name: "enrich_profile",
        cost: "1 cr",
      },
      {
        value: "enrich_company",
        name: "enrich_company",
        cost: "1 cr",
      },
      {
        value: "people_search",
        name: "people_search",
        cost: "0.1 cr",
      },
      {
        value: "post_keyword_search",
        name: "post_keyword_search",
        cost: "0.1 cr",
      },
      {
        value: "profile_activities",
        name: "profile_activities",
        cost: "2 cr",
      },
      {
        value: "post_details",
        name: "post_details",
        cost: "3 cr",
      },
      { value: "find_emails", name: "find_emails", cost: "5 cr" },
      {
        value: "verify_emails",
        name: "verify_emails",
        cost: "2 cr",
      },
      { value: "check_usage", name: "check_usage", cost: "free" },
    ]} defaultValue="enrich_profile" />
    <div style={{ padding: "16px 20px 20px", minWidth: 0 }}>
      <SplitPane>
        <div>
          <span className="ra-label">inputSchema</span>
          <Json value={{
            type: "object",
            properties: {
              linkedin_url: {
                type: "string",
                description: "Public LinkedIn profile URL, e.g. linkedin.com/in/jane-doe.",
              },
            },
            required: ["linkedin_url"],
          }} />
        </div>
        <div>
          <span className="ra-label">Arguments</span>
          <Textarea aria-label="Tool arguments as JSON" mono defaultValue={`{
  "linkedin_url": "linkedin.com/in/jane-doe"
}`} />
        </div>
      </SplitPane>
    </div>
  </SplitPane>
</Card>
HTML
<div class="g-frame g-frame--xl"><div class="ra-card"><div class="ra-split ra-split--sidebar"><nav class="ra-tools" aria-label="Tools"><button type="button" class="ra-tools__item" aria-pressed="true"><span class="ra-tools__name">enrich_profile</span><span class="ra-tools__cost">1 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">enrich_company</span><span class="ra-tools__cost">1 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">people_search</span><span class="ra-tools__cost">0.1 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">post_keyword_search</span><span class="ra-tools__cost">0.1 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">profile_activities</span><span class="ra-tools__cost">2 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">post_details</span><span class="ra-tools__cost">3 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">find_emails</span><span class="ra-tools__cost">5 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">verify_emails</span><span class="ra-tools__cost">2 cr</span></button><button type="button" class="ra-tools__item" aria-pressed="false"><span class="ra-tools__name">check_usage</span><span class="ra-tools__cost">free</span></button></nav><div style="padding:16px 20px 20px;min-width:0"><div class="ra-split ra-split--even"><div><span class="ra-label">inputSchema</span><pre class="ra-json">{
  <span class="ra-json__key">&quot;type&quot;</span>: <span class="ra-json__str">&quot;object&quot;</span>,
  <span class="ra-json__key">&quot;properties&quot;</span>: {
    <span class="ra-json__key">&quot;linkedin_url&quot;</span>: {
      <span class="ra-json__key">&quot;type&quot;</span>: <span class="ra-json__str">&quot;string&quot;</span>,
      <span class="ra-json__key">&quot;description&quot;</span>: <span class="ra-json__str">&quot;Public LinkedIn profile URL, e.g. linkedin.com/in/jane-doe.&quot;</span>
    }
  },
  <span class="ra-json__key">&quot;required&quot;</span>: [
    <span class="ra-json__str">&quot;linkedin_url&quot;</span>
  ]
}</pre></div><div><span class="ra-label">Arguments</span><textarea id="_R_1a_" class="ra-input ra-textarea ra-textarea--mono" aria-label="Tool arguments as JSON" spellCheck="false">{
  &quot;linkedin_url&quot;: &quot;linkedin.com/in/jane-doe&quot;
}</textarea></div></div></div></div></div></div>

Agent setup prompt

Using Claude Code or Cursor? Let your agent set itself up.Paste this into your agent. It installs the MCP server, checks your balance and makes one test call.
Set up RichAPI for me:
1. Run: claude mcp add --transport http richapi https://mcp.richapi.ai/mcp --header "x-api-key: rk_live_7Hq2••••••••••a91f"
2. Call check_usage to confirm the connection and tell me my balance.
3. Call enrich_company for linear.app and show me the result.
Ask me before any single call that costs more than 10 credits.
JSX
<PromptCard title="Using Claude Code or Cursor? Let your agent set itself up." description="Paste this into your agent. It installs the MCP server, checks your balance and makes one test call." prompt={`Set up RichAPI for me:
1. Run: claude mcp add --transport http richapi https://mcp.richapi.ai/mcp --header "x-api-key: rk_live_7Hq2••••••••••a91f"
2. Call check_usage to confirm the connection and tell me my balance.
3. Call enrich_company for linear.app and show me the result.
Ask me before any single call that costs more than 10 credits.`} copyValue={`Set up RichAPI for me:
1. Run: claude mcp add --transport http richapi https://mcp.richapi.ai/mcp --header "x-api-key: rk_live_7Hq2mX9vLpT4cWn8a91f"
2. Call check_usage to confirm the connection and tell me my balance.
3. Call enrich_company for linear.app and show me the result.
Ask me before any single call that costs more than 10 credits.`} copyLabel="Copy prompt for my agent" />
HTML
<div class="g-frame g-frame--lg"><div class="ra-prompt-card"><div class="ra-prompt-card__text"><b>Using Claude Code or Cursor? Let your agent set itself up.</b><span>Paste this into your agent. It installs the MCP server, checks your balance and makes one test call.</span></div><div class="ra-prompt-card__actions"><button type="button" class="ra-btn ra-btn--primary">Copy prompt for my agent</button><span class="ra-sr-only" aria-live="polite"></span></div><pre class="ra-prompt-card__prompt">Set up RichAPI for me:
1. Run: claude mcp add --transport http richapi https://mcp.richapi.ai/mcp --header &quot;x-api-key: rk_live_7Hq2••••••••••a91f&quot;
2. Call check_usage to confirm the connection and tell me my balance.
3. Call enrich_company for linear.app and show me the result.
Ask me before any single call that costs more than 10 credits.</pre></div></div>