Key takeaways:
- RB2B’s documented API is an OEM partner API, not a general customer API. It exposes four endpoints: add a domain, remove a domain, list active domains, and check credit usage.
- There is no endpoint to query identified visitors. Data leaves RB2B through a webhook that pushes every page view from your tracked domains in real time.
- RB2B does not support HMAC signature verification on outgoing webhooks, and its own recommended workaround is to treat the destination URL as a shared secret.
- Enrolling in the OEM program deactivates your consumer RB2B account. An account is one or the other, never both.
If you came here expecting a REST API that returns the people who visited your website, this review has bad news and a useful explanation.
The RB2B API documentation that exists publicly covers the OEM partner program, which is built for companies embedding RB2B’s identification technology into their own platform. It manages which domains are tracked and reports credit usage. It does not let you query visitors.
The actual data path is a webhook, and understanding that distinction is most of what a developer needs before planning an integration. This review covers both surfaces, the constraints attached to each, and what the pricing looks like on either side of the OEM line. Our own product sits downstream of tools like this one, and our integrations page lists where that handoff usually lands.
What the RB2B API Actually Is
RB2B identifies people who visit your website, resolving anonymous traffic to individuals rather than just to companies. That capability is the product, and the RB2B API is a thin control plane around it rather than a way to reach the data.
The RB2B API is aimed at companies and agencies who want to embed RB2B’s website visitor identification directly into their own platforms or white-labeled solutions, which the OEM program exists to support. Through the API and webhook system, partners manage domains and receive live data into their systems.
That framing explains the endpoint list, which is short by design.
| Endpoint | Method | What it does |
| Add a domain | POST |
Registers a domain for tracking under your OEM account |
| Remove a domain | POST |
Stops tracking a domain |
| List all active domains | GET |
Returns every domain currently tracked |
| Credit usage | GET |
Reports consumption against your OEM account |
Notice what is missing. There is no GET /visitors, no search, no filter by date range, and no way to pull yesterday’s identifications. The API tells RB2B where to look and tells you what you have spent. Everything else arrives by webhook.
That is a genuinely different shape from most tools in the wider lead generation API category, where the normal contract is a request-response lookup you control. Here the vendor controls the timing and you control only the destination, which inverts who has to handle backpressure, retries and storage.
The Webhook Is the Real Integration
The RB2B API plays no part in moving the data itself. Once you set a webhook URL, RB2B begins sending every page view from your added domains to that endpoint in real time, as visitor de-anonymization and pageviews occur.
This is a firehose rather than a query interface, and it shapes the architecture on your side. You need an endpoint that can absorb continuous traffic, deduplicate people across page views, store what you receive, and decide what matters. RB2B does not hold that state for you to query later.
By default the OEM script identifies both contact-level and company-level visitors. If you only want person-level records, company-level collection can be switched off in the dashboard, which is worth doing before you start receiving traffic rather than filtering afterward.
The Webhook Security Problem
This deserves its own section because it is the most consequential technical fact in the integration, and RB2B documents it plainly rather than hiding it.
RB2B does not currently support signature verification, such as HMAC, on outgoing webhook payloads. There is no cryptographic way to confirm that an incoming request genuinely came from RB2B.
Its recommended approach is to treat the webhook URL itself as a shared secret: generate a long random token and include it as a path segment, for example https://your-app.com/webhooks/rb2b/<random-token>, rather than as a query parameter. RB2B’s stated reasoning is that a secret placed in the query string is far more likely to be captured somewhere it should not be, whether by a proxy, a log file or a referrer header.
That advice is sound and RB2B is right to give it. It is also, as the company acknowledges, not a full substitute for a signature, because it provides no payload-level integrity checking. Anyone who learns the URL can post to it, and you cannot tell a forged payload from a real one.
The practical implications are worth stating concretely. Treat inbound payloads as untrusted input, validate their shape before processing, rate-limit the endpoint, rotate the URL if it ever appears anywhere it should not, and avoid triggering irreversible actions such as outbound sends directly from a webhook payload without a verification step in between.
Most teams do not write that receiver themselves. RB2B publishes a setup guide for n8n, and routing the stream through an automation layer gives you somewhere obvious to put deduplication and qualification logic, much as we described when writing up n8n’s MCP support. The trade is another moving part between the visitor and the sequence, which is usually worth it here precisely because the payload cannot be verified.
What It Costs
RB2B has two commercial models, and the OEM line separates them absolutely.
Standard consumer plans are published and start at nothing, though the free tier is narrower than the marketing implies.
| Plan | Price per month | What you get |
| Free | $0 | Basic resolution, company-level ID only, push to Slack. No person-level ID, no email addresses |
| Starter | $79 | Basic resolution, push LinkedIn URLs to Slack and Teams, still no email addresses |
| Pro | $149 | Adds business email addresses and all other integrations |
| Pro+ | $199 | Premium resolution, business email addresses, all integrations |
The free plan does not do the thing RB2B is known for. Person-level identification, LinkedIn URLs and business email addresses arrive progressively across the paid tiers, with emails appearing only at Pro. A seven-day Pro trial is offered.
OEM accounts are billed differently. Instead of a monthly credit pool, they use a cost-per-resolution structure reconciled once a month. RB2B states directly that custom pricing is not offered on the OEM program, that its plans and rates are fixed, and that if none of the available plans fit, the program may not be the right fit.
Cost per resolution is the honest way to price this, and it also removes your ceiling. A traffic spike becomes a bill rather than a throttle, so an OEM partner passing costs to end customers needs its own metering rather than relying on RB2B to cap anything. That is a familiar dynamic across intent data APIs, where consumption tracks attention rather than effort and the invoice follows whatever your marketing did that month.
How to Set It Up
Setup differs depending on which side of the OEM line you are on, and the consumer path is the one most readers need.
Standard Accounts
There is no API key to generate, because there is no query API to call. What you configure is the destination.
- Add the RB2B script to your site so identification can begin.
- Open the webhook settings in your dashboard and set your destination URL.
- Decide whether you want company-level records alongside contact-level ones, and switch company-level collection off if you only want named individuals.
- Confirm data is arriving before you build anything downstream, because there is no backfill if you miss it.
OEM Partner Accounts
OEM partners get the four-endpoint API on top of the webhook, and the key for it lives in the dashboard once you are enrolled.
- Retrieve your OEM API key from the dashboard and store it server-side.
- Send it in the request headers on every call to the domain-management endpoints.
- Register each domain you intend to track with the add-domain endpoint, and confirm the list with the list-domains call.
- Set your webhook destination, using a long random token as a path segment rather than a query parameter.
- Poll the credit-usage endpoint on whatever schedule your billing needs, since consumption is reconciled monthly.
The ordering matters more here than in most integrations. Domains start producing page views the moment they are registered, so having the receiving endpoint live before you add the first domain avoids losing records you cannot request again.