Blog

Clearbit's standalone API is deprecated: what a two-endpoint enrichment API replaces

Clearbit's standalone API was deprecated after the HubSpot acquisition. Here is what a two-endpoint enrichment API covers, and where it stops.

The Triguna team 17 September 2026

If you built on Clearbit’s standalone enrichment API, that key no longer points anywhere you can sign up for. HubSpot bought Clearbit and folded it into Breeze Intelligence, a data enrichment feature that runs inside the HubSpot CRM. The person and company enrichment you used to call over HTTP is now a platform feature billed in HubSpot credits, not a standalone endpoint. If you do not run on HubSpot, or you want an API you can call from your own backend, you need a replacement.

What actually changed

HubSpot announced the Clearbit acquisition in late 2023 and completed it that December. At its INBOUND 2024 conference the following September, it rebranded the product as Breeze Intelligence. The enrichment capability survived. The way you reach it did not. Enrichment now happens on a record inside HubSpot and draws down HubSpot credits, so the thing a standalone API gave you, a URL you call one record at a time from any language, is the thing that went away.

That is the same shape as the Proxycurl shutdown: a data API people had wired into their own systems stopped being a data API you could wire into your own systems. The migration question is the same too. What does the replacement actually cover, and what does it not.

Be honest about the surface first

Clearbit was a broad suite. Alongside person and company enrichment it did reveal, turning an anonymous website visitor’s IP into a company, plus prospecting search and risk scoring. A two-endpoint enrichment API replaces exactly one part of that: the enrichment. It turns an identifier you already have into a current person or company record. It does not de-anonymize traffic, it does not search for people who match a filter, and it does not score fraud risk.

So this is a replacement for the enrichment half of Clearbit and nothing else. If reveal or prospecting was the reason you paid for Clearbit, a two-endpoint API is not your tool. If you called the person and company endpoints to fill in a record you already had a handle on, it is a close fit.

The endpoint mapping

Clearbit capabilityA two-endpoint enrichment API
Person enrichment: an identifier to a profileGET /v1/people/profile on the person API
Company enrichment: an identifier to a companyGET /v1/companies/details on the company API
Reveal, prospecting search, risk scoringNot covered. No reveal, search, or scoring path
Delivered inside a CRM, drawn from platform creditsA standalone HTTP API, ApiKey header, no platform subscription

Two endpoints, plus GET /v1/credits to read your balance. Base is https://api.triguna.ai/v1. There is no bulk path and no search path, so enriching N records is N calls, paced under the published 10 requests per second. If you are moving a batch across, the enrich a list without a bulk endpoint post has the concurrency pattern.

Before and after

The old call went to Clearbit’s host with a bearer token. The new one is a single documented GET. In Node:

const res = await fetch(
  'https://api.triguna.ai/v1/people/profile?entity_urn=ACoAAB1a2b3c',
  { headers: { ApiKey: process.env.TRIGUNA_KEY } },
);
const profile = await res.json();

And in Python:

import os, requests

res = requests.get(
    "https://api.triguna.ai/v1/people/profile",
    params={"entity_urn": "ACoAAB1a2b3c"},
    headers={"ApiKey": os.environ["TRIGUNA_KEY"]},
)
profile = res.json()

One trap to fix while you migrate: store the bare entity_urn. The urn:li: prefixed form is rejected as input, and for companies company_id takes the URL slug, not the display name, so Acme Corporation returns a 404 while acme-corp resolves. The why a lookup returns 404 post lists the rest of the identifier traps.

Provenance you can audit, in the headers

Every response carries where the data came from and how old it is, in the headers rather than the body:

$ curl -sD- -H "ApiKey: $TRIGUNA_KEY" \
    "https://api.triguna.ai/v1/companies/details?company_id=acme-corp"

HTTP/2 200
X-Data-Source: live
X-Fetched-At: 2026-09-17T09:14:22Z
X-Data-Age-Seconds: 0
X-Credits-Charged: 1

X-Data-Source says whether the row was fetched live, served from a stored copy under 24 hours old, or returned as a stale_fallback during an outage. X-Fetched-At is the exact retrieval time and X-Data-Age-Seconds is how stale the answer is. A fresh fetch and a cached one carry the same audit trail, so when someone asks in six months why a record read the way it did, the answer is complete. The caching and provenance reference has the detail.

A billing contract you compute, not a platform you subscribe to

This is the axis that matters most for a Clearbit migration. Breeze Intelligence enrichment lives inside HubSpot and draws on HubSpot credits, which means the CRM subscription is part of the cost of the data. A standalone API detaches the two. You pay $0.005 per credit, one credit per answered lookup, with no platform underneath it.

The rule set is small enough to hold in your head. A cache hit costs one credit, because it is the same data delivered faster. A 404 costs one credit, because searching for an identifier that has no record is a real retrieval that ran. The statuses that cost nothing are fixed and published: 400, 401, 402, 429, 502, and 503. X-Credits-Charged is on every response, so the bill is a sum you can reconcile against your logs rather than an invoice you wait for. That contract also decides your retry policy: retry 429, 502, and 503 with backoff, and never retry a 400, 401, 402, or 404, because a retried 404 spends a credit every time. The which errors to retry post is the full table.

How to migrate

Start by sorting your Clearbit usage into two piles: enrichment calls, and everything else. The enrichment calls, person and company, map onto two endpoints and you can port them this week. The reveal, prospecting, and risk calls do not, and pretending otherwise is how a migration stalls in month two. Name that gap now and decide separately what covers it.

Then test the enrichment half on real records before you wire up billing. The five free credits on signup are enough to enrich a handful of people and companies end to end and read the provenance headers yourself, with no card. Two documented endpoints is a surface you can hold in your head and hand to an agent, which is the whole point of how the API is scoped.

Next

  • Person API: what GET /v1/people/profile returns and the identifier it expects.
  • Company API: the company fields, and why company_id takes the slug rather than the name.
  • Migrating off Proxycurl: the same mapping exercise for the other data API that went dark.
  • Enrich on signup: spend the free credits and read the provenance headers for yourself.
  • Pricing: one credit per answered lookup, and the status codes that cost nothing. Sign up for five free credits at app.triguna.ai/signup.

clearbitcomparisonmigrationenrichment

Start with one request

Free credits on signup, no card required. Usage-based pricing after that.