Updates
API changelog
Every change to the Reverse Contact API: new endpoints, improvements, fixes and deprecations.
- v2.32.0
Skills, languages, keywords and job changes in People Search
People Search can now target what people know, the languages they speak, any word on their profile and who just started a new role.
✨ Features
- People Search and its free count accept
skills: one skill name or a list, matched as whole names, so"Java"does not return people who only list"JavaScript" - People Search and its free count accept
languagesandexcludeLanguageswith language names in English, which also match the spellings profiles use (FrenchfindsFrançais), and about one profile in six lists its languages - People Search and its free count accept
keywords: every word must appear somewhere in the profile, from the headline and summary to past job titles, schools and location - People Search and its free count accept
changedJobsWithinDayswith30,60,90or120to find people who started their current position within that many days - Agentic Search now reads skills, spoken languages, recent job changes and free keywords from a prompt instead of reporting them as not applied
- The People Search MCP tools
search_personsandcount_personsaccept the same four filters
- People Search and its free count accept
- v2.31.0
People Lookalike, email and phone finding in MCP
Your AI agent can now find people like a profile and look up their professional email addresses and phone numbers through the MCP server.
✨ Features
- The MCP tool
search_persons_lookalikefinds people who look like one seed profile, given by its LinkedIn profile URL, and returns full profiles shaped likesearch_personswith cursor pagination up to 100 per request search_persons_lookalikecosts 1 credit per profile delivered, and an empty page or a seed that is not in the search index yet costs 0 credits- The MCP tools
find_emailandfind_phonefind a person's professional email addresses and phone numbers from a LinkedIn profile URL, or from a name withcompanyDomain, and return ataskIdto poll withcheck_task find_emailcosts 3 credits andfind_phone20 credits, debited when the job is created and refunded when nothing is found- A workspace without phone finding access gets
CONTACT_PHONE_FINDER_DISABLEDfromfind_phoneand is not charged - The MCP setup guide lists the 16 tools with their credits, and documents the new error codes
- The MCP tool
- v2.30.0
Agentic Search API
Describe the people you are looking for in one sentence, and get their full profiles back without building a single filter.
✨ Features
- Agentic Search is available at
POST /v2/search/people/prompt: send a plain-languagepromptin any language, up to 1000 tokens, and get back full profiles as People Search returns them - Every response carries
data.interpretation, with the People Search filters read from the prompt and warnings for anything the search could not apply, such as skills or schools - Agentic Search uses cursor pagination with
perPagefrom 1 to 100 (default 25): send the same prompt withmetadata.nextCursorto get the next page, which runs on the same filters - Agentic Search costs 1 credit per page for the search itself, plus 1 credit per profile delivered, and a prompt refused before the search, for example one no filter can be read from, costs 0 credits
- The Agentic Search page documents the request, the filters a prompt can express, the response and every error
- Agentic Search is available at
- v2.29.0
People Lookalike
Start from one profile you know and find the people who look like it, from the API or from the dashboard.
✨ Features
- People Lookalike is available at
POST /v2/search/people/lookalike: send one seed profile, as a Social URL (url) or a Reverse Contact person id (id), and get back the full profiles of people with a similar current function, sub-function, seniority and location - People Lookalike uses cursor pagination with
perPagefrom 1 to 100 (default 25), and never returns the seed itself - People Lookalike costs 1 credit per profile delivered, and a seed that is not in the search index yet returns
404for 0 credits - The People lookalike page documents the request, the response and every error
🚀 Improvements
- The Lookalike page of the dashboard accepts a Reverse Contact person id (
prs_...) as the seed, as Fetch does, and keeps it in the page address so the link can be shared
- People Lookalike is available at
- v2.28.0
Retirement of Resolve and persons search on October 13, 2026
The previous persons search and Resolve endpoints are retired on October 13, 2026: migrate to People search and Enrich before that date.
⚠️ Deprecated
/v2/search/personsand/v2/search/persons/available-fieldsare retired on October 13, 2026 (use/v2/search/peopleand/v2/search/people/available-fields)/v2/resolve/persons/emailand/v2/resolve/persons/nameare retired on October 13, 2026 (use/v2/enrich/persons, which answers synchronously with the same input and cost)/v2/resolve/companies/liveis retired on October 13, 2026 (use/v2/enrich/companies, which answers synchronously with the same input and cost)- The endpoint transition guide and the new Migrating from Resolve to Enrich guide cover every change step by step
- v2.27.0
Full profile by default on Enrich endpoints
Enrich Person and Enrich Company now return the full profile in every response, at the same 2 credits.
🚀 Improvements
/v2/enrich/personsand/v2/enrich/companiesnow return the full profile by default (same fields as/v2/fetch/personsand/v2/fetch/companies) for 2 credits when a match is found, with no extra credit- The alternative candidates in
data.alternativePersonscome back as full profiles too, at no extra credit - The response stays compatible: every field of the previous light profile keeps its name, place and type, and the full profile only adds fields
- A new
data.isFullProfilefield istruewhen the full profile is returned, andfalsein the rare case where only the light profile could be retrieved in time (you can then complete it with/v2/fetch/personsor/v2/fetch/companies) - Not-found responses (
404) stay free
⚠️ Deprecated
- The
fullProfilerequest field is deprecated and ignored: it is still accepted so existing requests keep working, and you can remove it - The
--full-profileflag ofrc enrich personandrc enrich companyand thefullProfileparameter of the MCPenrich_persontool are still accepted but ignored
- v2.26.0
New People Search with full profiles and free counts
People search returns full profiles, paginates with cursors, and can be sized for free before you spend credits.
✨ Features
- People Search is available at
POST /v2/search/peopleand returns full profiles directly, with cursor pagination andperPagefrom 1 to 100 (default 25) - People Search accepts position taxonomy filters:
currentFunctionacross 32 functions,currentSubFunctionacross 386 sub-functions andcurrentSeniorityacross 10 seniorities, plus past-experience requirements with a minimum tenure - People Search also matches current and past positions through the
positionTitle,companyName,companyId,companyLinkedinId,companyPublicIdandcompanyIndustryfilters, and accepts anemailfilter POST /v2/search/people/countreturns the total number of matching people for the same filters, for freeGET /v2/search/people/available-fieldslists every accepted people filter with its accepted values, for free
🚀 Improvements
- People Search costs 1 credit per profile delivered, and a page with no result or a rejected filter costs 0 credits
- The previous people search path
/v2/search/personsand its available-fields route keep working during the migration but have left the endpoint catalog, and the migration guide covers every change
- People Search is available at
- v2.25.0
Find Email is generally available
Find Email leaves beta and is now generally available on every plan.
🚀 Improvements
- Find Email is now generally available and is no longer marked as beta
- v2.24.0
Search pagination capped at 50 pages
Search pagination now reaches the first 50 pages instead of 500, while
perPageand search exports stay as they are.💥 Breaking Changes
pageon/v2/search/personsand/v2/search/companiesnow accepts1to50(previously1to500), which reaches the first 5,000 matching records at the defaultperPageof 100- A
pageabove 50 returns a 422PAGINATION_LIMIT_EXCEEDEDwhosedetailscarriesfieldset topageandmaxset to 50, the same shape already used forperPage pageNumberandtotalstill describe the whole matching set, so a search can report more than 50 pages while only the first 50 are retrievable, and narrower filters are the way to reach the restperPageis unchanged on both endpoints and still accepts up to 100 results per page, and search exports are unaffected
- v2.23.0
August round-up: Contact Email Finder, Claude directory, Ask, search guards
✨ Features
- Contact Email Finder is available in public beta on every plan, including trials, with an API key scoped to
contact - Contact Email Finder accepts a profile URL,
fullNamepluscompanyDomain, orfirstNameandlastNamepluscompanyDomain, with an optionalwebhookUrl - Contact Email Finder returns results asynchronously through
GET /v2/webhooks/:idor a callback as[{value, type}], wheretypeisprofessionalorpersonal - Contact Email Finder returns only verified addresses, and unsuccessful lookups return
email-not-foundinstead of an unverified candidate - Contact Email Finder costs 3 credits only when an email is found, and 0 credits for
email-not-found,person-not-found,invalid-request, andfetch-data-error - A Contact Email Finder delivery failure after a match remains billed, and the result stays available through
GET /v2/webhooks/:id - Contact Email Finder is available in Ask as
contact_email_findand in the CLI asrc contact email, but not in MCP - You can add ReverseContact to Claude from
https://claude.ai/directory/reverse-contactin one click, without creating a custom connector - Claude can enrich people and companies with cached or live data, search people and companies, check a task, and view usage, using the same credit pricing as the API
- Live mode on
/v2/fetch/persons/liveand/v2/fetch/companies/liveaccepts internalprs_...andcom_...ids as alternatives to profile URLs - An id that cannot be resolved returns
422rather than not-found, and the live fetch cost remains 2 credits
🚀 Improvements
- Ask keeps watching live enrichment jobs that outlast a conversation turn, polling every 3 seconds and then every 6 seconds after 60 seconds for up to 10 minutes
- Ask inserts the result into the thread when the job completes, or shows a Resume button when the monitoring budget ends
- Stopping Ask monitoring never cancels the job, and the job is billed when it completes
- Search going past the last page now returns a clear error instead of an empty billed page
- Unknown search filter keys and invalid filter types return
422with 0 credits charged - Search documents employee count ranges for people and company filters, and list filters accept at most 20 values per field
- Error codes are documented end to end in the MCP and CLI documentation, with code documentation added earlier in August
- Requests that exceed their deadline return structured JSON with
504status, cost 0 credits, and are safe to retry;503remains reserved for real service unavailability
💥 Breaking Changes
- Search pagination is now capped at 500 pages, down from 1,000; requests beyond that return a
422validation error and are not charged
- Contact Email Finder is available in public beta on every plan, including trials, with an API key scoped to
- v2.22.0
One-click ChatGPT MCP listing
ReverseContact is now listed in the ChatGPT plugin directory, so you can connect MCP without creating a custom connector.
✨ Features
- You can now add ReverseContact to ChatGPT in one click from the ChatGPT plugin directory, with no API key and no custom connector
- v2.21.0
Ask exports and stricter input validation
Ask results can now leave the chat as a file, and V2 endpoints reject unusable input up front instead of answering with an empty match.
✨ Features
- Download any Ask result as CSV or JSON directly from the result card, no credits spent
- Ask for it in plain language: "export these results to CSV" prepares the file from what is already on screen
- Export everything a conversation returned in a single file, with duplicate people and companies removed
- Exports only ever contain results already returned, so a search exports the page it answered with and widening it still means running a new search
🚀 Improvements
- V2 endpoints now trim surrounding whitespace and strip invisible characters from every text field, so a value copied from a spreadsheet no longer fails to match for an invisible reason
- Email addresses are lowercased automatically on V2 endpoints
- API keys are trimmed before validation, so a key pasted with a trailing space no longer returns an authentication error
🐛 Bug Fixes
- Changing your account email now states clearly that both the current and the new address have to confirm before the change takes effect
💥 Breaking Changes
- V2 endpoints now reject unusable identity values with a 422 instead of returning no match: placeholders such as
[not provided]orn/a(INVALID_PLACEHOLDER_VALUE), spreadsheet error tokens such as#N/Aor#REF!(SPREADSHEET_ERROR_VALUE), an email address in a name field (EMAIL_IN_NAME_FIELD), and HTML tags (INVALID_CHARACTERS), all at 0 credits - People endpoints return a 422
MISSING_PERSON_IDENTIFIERwhen only a company domain or company name is provided, and point you to/v2/enrich/companiesinstead - A
webhookUrlthat is not publicly reachable, such aslocalhostor a private IP address, is now rejected with a 400WEBHOOK_URL_UNREACHABLEon every V2 endpoint that accepts one (previously accepted)
- v2.20.0
Faster live enrichment for CSV imports
Live enrichment on CSV imports now runs many more profiles in parallel, cutting large jobs from hours to minutes.
🚀 Improvements
- Live enrichment on CSV imports now processes up to 150 profiles at once (previously 10), so a 8,000 row import finishes in minutes instead of hours
- Rows are picked up faster once a live scrape completes, removing idle time between profiles
- Per-profile scrape time and credit cost are unchanged: only the number of profiles running in parallel increased
- v2.19.0
Live profile rescrapes in Ask
Ask can now live-rescrape people and company profiles when you ask for fresh data, with a free follow-up when a scrape is still running.
✨ Features
- Ask can live-rescrape a person or company LinkedIn profile when you explicitly ask for fresh, live, or up-to-date data, instead of only using the cached profile
- Live rescrapes run asynchronously: Ask waits for the result when it can, and if the job is still running you get a task id and can continue with a free
check_taskfollow-up - Live jobs target under 15 seconds but can take several minutes depending on conditions; credits are billed when the job completes, and
check_tasknever costs credits
- v2.18.0
Live enrichment for bulk CSV LinkedIn URL rows
Bulk imports can now fresh-scrape LinkedIn URL rows when you opt in to Live enrichment on the Review step.
✨ Features
- Live enrichment on bulk CSV imports: when your mapping includes a LinkedIn URL column, enable Live enrichment on the Review step to fresh-scrape those URL rows instead of using cached match data
- Live URL rows are async only: each scrape targets under 15 seconds, and a full job can take several minutes depending on size and conditions
- Live URL rows cost 2 credits only when the row succeeds; not-found rows cost 0 credits, and reserved surplus is settled when the job completes
- Email and name rows stay on the standard path and pricing, even when Live enrichment is enabled on the job
- Live jobs show a Live badge in import history and on the job detail page
- Live enrichment is not available on free trial workspaces
- v2.17.0
CLI 0.2: fetch, check, contact, live jobs, and richer search
The ReverseContact CLI (
rc0.2.0) expands what you can do from the terminal: cheaper URL fetches, free existence checks, async live scrapes, contact tools, and more search filters.✨ Features
- Fetch a person or company by LinkedIn URL or internal id with
rc fetch personandrc fetch company(1 credit when cached, cheaper than enrich when you already have a URL) - Check whether a profile exists and how fresh it is for free with
rc check personandrc check company(0 credits) - Trigger a live scrape with
rc fetch … --live, poll the job withrc task <taskId>, or pass--waitwhen you want the CLI to block until it finishes - Find and verify contact emails from the CLI with
rc contact emailandrc contact verify - Discover server-side search filters with
rc search fields peopleandrc search fields companiesso agents stay aligned with the API schema - Install on macOS with Homebrew:
brew install visum-run/tap/rc
🚀 Improvements
rc enrich personandrc enrich companyaccept--full-profilefor the full profile shape (+1 credit when a match is found)- People and company search expose more filters: multi-value country, city and industry, company ids, open-to-work, premium, verified, followers range, and max data age
rc auth statusandrc usagesurface rate limit and daily limit alongside credit balance
- Fetch a person or company by LinkedIn URL or internal id with
- v2.16.0
LinkedIn URL column for bulk CSV enrichment
Bulk CSV enrichment now accepts a LinkedIn profile URL as an input column, enriching straight from the URL at a lower cost per row.
✨ Features
- Bulk CSV import now accepts a LinkedIn profile URL column, auto-detected from headers like
linkedin_url,linkedin,profile_urlorurl, or mapped manually in the Map step - Sales Navigator links and messy URLs, including query strings, a missing scheme, or a bare slug, are normalized automatically before enrichment
🚀 Improvements
- A row enriched directly from a valid LinkedIn profile URL now costs 1 credit on success, instead of 2 for the standard email or name based match, and rows that fail or come back not found are never charged
- Company URLs are not valid person profiles: rows pointing to a company page are skipped, marked
invalid_inputin the result CSV, and never charged - Duplicate detection across rows now recognizes the same profile across URL variants, and a matching LinkedIn URL takes priority over a matching email when both are present
- Bulk CSV import now accepts a LinkedIn profile URL column, auto-detected from headers like
- v2.15.0
Full profile on Enrich endpoints
Enrich Person and Enrich Company can now return the complete profile in a single call, no extra round trip to the fetch endpoints needed.
✨ Features
- You can now pass
fullProfile: trueon/v2/enrich/personsand/v2/enrich/companiesto get the full profile (same completeness as the fetch endpoints) for 1 extra credit - The extra credit is only charged when a match is found and the full profile is delivered; not-found responses stay free, even with
fullProfile - On Enrich Person, the full profile adds fields such as
summary,photoUrl,experience,education,skills,languagesandcertifications, whilealternativePersonskeeps the light shape - Default behavior is unchanged: without the flag you get the light profile at the current cost
- You can now pass
- v2.14.0
Alternative candidates on Enrich Person
The Enrich Person endpoint now surfaces the other candidates it considered, so you can see who else matched before settling on the top result.
✨ Features
- Enrich Person now returns
alternativePersons, the other candidates that matched your input, ranked best first - Alternative candidates are visible in the dashboard right below your enriched profile, with a link to each one's LinkedIn profile
- Mostly populated when enriching by email or by name and company; empty when the match is unique, which is typical for a LinkedIn URL lookup
- Enrich Person now returns
- v2.13.0
Clearer delivery expectations for live endpoints
This release clarifies how live endpoints are meant to be used: the docs and the live lookup form now spell out realistic delivery timing and the async-first design.
🚀 Improvements
- Live endpoints now state a clear delivery expectation across the docs and the lookup form: results target under 15 seconds but can take tens of minutes depending on conditions
- Clarified that live endpoints are built to update databases and feed async pipelines, not to sit inside a synchronous real-time request where a user is waiting on the response
- v2.12.0
Trial feedback rewards, bulk usage visibility and API key fixes
This release rewards feedback after your trial ends, makes bulk CSV usage visible across your stats and logs, adds people search by current company, and fixes API key permissions on the Enrichment endpoints.
✨ Features
- Share feedback after your trial ends and receive 50 bonus credits plus a 7-day trial reactivation on your first submission
- Filter people searches by current employer using a company id (
com_…) in the Company ID field, matching only the person's current company - A new Integrations section in the sidebar groups the MCP server, CLI and other ways to connect
- Bulk CSV enrichments now appear everywhere you track usage: a dedicated Bulk CSV channel in usage analytics and a matching source in your request logs
🚀 Improvements
- Webhook enrichments where the data was fetched but delivery to your
webhookUrlfailed are now returned as succeeded with a newdeliveryStatusfield, so you no longer discard a result you already paid for - Refunded credits from failed async enrichments are now reflected in your usage analytics and the Top Endpoints breakdown
- Support replies now render Markdown formatting, both in-app and in email
- You can set a password on your account even if you signed up with Google or a magic link, enabling email and password sign-in as a backup
- The Contact tool has been merged into Enrich: resolve a person straight from their email address on the Enrich page
- The API playground now ships sensible default values, dynamic search filters and a mobile-friendly layout
- Pasting a LinkedIn profile URL on the Enrich page now sends you to Fetch, the right tool for URL lookups
🐛 Bug Fixes
- Granular and resolve-only API keys can now call the
/v2/enrich/personsand/v2/enrich/companiesendpoints, which previously returned a 403 permissions error - Polling an async result at
/v2/webhooks/:webhookIdwith a granular API key no longer returns a 403 - The search filter panel no longer opens automatically when you load the search page
- v2.11.0
Bulk enrichment, search exports to CSV and MCP sign-in
This release introduces bulk enrichment from CSV files or pasted lists, CSV export for search results, and account sign-in (OAuth) for the MCP server.
✨ Features
- Bulk enrichment: upload a CSV or paste a list of emails or names on the new
/bulkpage, map your columns, and enrich up to 25,000 people in one job - Follow each bulk job live with row-by-row progress, a breakdown of enriched, not found and invalid rows, and a results CSV ready to download
- When your credit balance runs low mid-job, bulk jobs enrich as many rows as your balance allows instead of failing the whole job
- You receive an in-app notification and an email when a bulk job completes, with a direct link to the results
- Export search results to CSV: people and company searches now have an Export CSV button, and a new exports page keeps your past exports available for download
- Connect to the MCP server by signing in with your account: Claude clients (claude.ai, Claude Desktop, Claude Code, mobile) now support OAuth with a consent page, no API key to copy
- Each MCP OAuth connection creates a dedicated API key named
MCP - {app}in your workspace, revoke it anytime from the API Keys page
🚀 Improvements
- The CLI install page now detects your operating system and shows the matching one-line install command, with a new install script for Windows
- The MCP setup page now includes one-line terminal commands to connect Claude Code and other CLI clients
- Trial workspaces can now run bulk enrichments and search exports
/v2/fetch/personsresponses now include the person's ReverseContactid(prs_…), and ids are documented across fetch, enrich, resolve and search responses- API latency stats now include P50, P90 and P95 percentiles
🐛 Bug Fixes
- Retired v2 activity endpoints now return a proper 410 JSON error pointing to the sunset guide, instead of an HTML error page
💥 Breaking Changes
- Sign-in with GitHub has been removed, accounts that used it can sign in with Google or with email and password
- Bulk enrichment: upload a CSV or paste a list of emails or names on the new
- v2.10.0
Fetch by ReverseContact id and discover available fields
This release lets you fetch profiles and companies by their ReverseContact id, adds endpoints to discover every field you can request, and points Resolve users toward synchronous Enrichment.
✨ Features
- Fetch a person or company by its ReverseContact id: pass
id(prs_…orcom_…) to/v2/fetch/personsand/v2/fetch/companiesas an alternative to the LinkedIn URL - The dashboard status check now accepts a ReverseContact id and runs the lookup automatically
- New available-fields endpoints:
/v2/search/persons/available-fieldsand/v2/search/companies/available-fieldslist every field you can request, at no credit cost
🚀 Improvements
- Resolve pages now point you toward synchronous Enrichment, with a new "Resolve or Enrichment?" guide in the docs (Resolve stays fully supported)
- The MCP
enrich_persontool now accepts a work email in addition to a LinkedIn URL - The enrich profile form now guides you toward work emails for better match rates
- The MCP and CLI setup page now includes troubleshooting sections
- Fetch a person or company by its ReverseContact id: pass
- v2.9.0
ReverseContact CLI and optional two-factor authentication
This release ships the official ReverseContact CLI, adds optional two-factor authentication to your account, and trims the MCP server down to a focused tool set.
✨ Features
- ReverseContact CLI: install the
rcbinary with a single command from the new install page at/cli, with signed binaries for macOS, Linux and Windows - Enrich from your terminal:
rc enrich personandrc enrich companyresolve profiles and companies with the same inputs and pricing as the API - Search from your terminal:
rc search peopleandrc search companiesreturn results with JSON output ready for scripting - CLI sign-in without copy-paste:
rc auth loginopens a browser device flow you approve from your workspace, andrc auth statusandrc auth logoutmanage the session - CLI usage and updates:
rc usageshows your credit consumption andrc versionchecks daily for new releases - CLI agent skill: run
npx skills add visum-run/skillsto let coding agents drive ReverseContact from the terminal - Optional two-factor authentication: enable an authenticator app from your account security settings, your sign-ins then require a 6-digit code (nothing changes if you don't enable it)
🚀 Improvements
- You can now create up to 25 active API keys per workspace (previously 10)
- People search results now display each person's location
- Every "persons" label across the dashboard and docs now reads "people", endpoint URLs are unchanged
- Expired trials now show a clear trial-expired message instead of a generic workspace-disabled error
- Docs navigation now lists Search above Fetch to match how most integrations start
💥 Breaking Changes
- The MCP server now exposes 6 focused tools covering enrich, search and utilities, the resolve, contact and activity tools have been removed
⚠️ Deprecated
- The Contact API family is now marked as deprecated in the docs and navigation
- ReverseContact CLI: install the
- v2.8.0
Enrich: synchronous person and company resolution
This release introduces Enrich, a new family of synchronous endpoints that resolve people and companies from partial information, and rebuilds the dashboard experience around it.
✨ Features
- Enrich Profile endpoint:
POST /v2/enrich/personsresolves a LinkedIn profile from any combination of email, first name, last name, and company domain or name, a single field is enough and the result is returned inline (no webhook needed) - Enrich Company endpoint:
POST /v2/enrich/companiesresolves a company from its domain, with the result returned inline - Enrich in the dashboard: A new Enrich page lets you resolve profiles and companies interactively, and is now the default landing page after login and onboarding
- Match alternatives preview: Enrich results now include a teaser of the alternative candidates evaluated during matching
- Trial access: Workspaces on trial can use the new Enrich endpoints without a paid plan
🚀 Improvements
- Simple pricing: Both Enrich endpoints cost 2 credits per resolved result, not-found lookups are free
- Enrichment-first navigation: Enrichment now leads the navigation, docs, and pricing pages, replacing the legacy dashboard home
- Redesigned results: Enrich results render as profile cards with inline reveal, clearer error states, and validation feedback before you submit
- Member ID always present: The
memberIdfield in person responses is now always a string, aligned withpublicIdandlinkedinUrl(previously nullable) - Playground defaults: The Enrich playground opens with all input fields available and accepts URL-style domains
🐛 Bug Fixes
- Credit balance refresh: Your credit balance now updates immediately after running an enrichment from the dashboard
- Enrich Profile endpoint:
- v2.7.0
Sturdier webhooks, accurate industries and stale cache billing
Webhook polling and events get sturdier, industries follow the official LinkedIn taxonomy, cached records older than 90 days are now billed as a fresh lookup, and the Activities endpoints are discontinued on July 1, 2026.
✨ Features
- SLA disclaimer on live endpoints: Live endpoints now show an inline disclaimer clarifying their best-effort service level
🚀 Improvements
- Accurate industries: Industry names now follow the official LinkedIn V2 taxonomy
- Webhook polling resilience: Polling an errored async job now returns the stored result payload instead of an empty response
- Richer webhook events: The original request payload is now propagated to the final webhook events
🐛 Bug Fixes
- Employee count display: Fixed
employeeCountRangeshowing1instead of10,000+when the range had no upper bound - LinkedIn URLs: Schemeless and company LinkedIn URLs are now normalized and accepted in the person search filter
- Error contract: Upstream timeouts now return
503instead of408to match the documented error contract - Status page: Fixed the platform status widget failing to load due to a cross-origin error
💥 Breaking Changes
- Stale cache now billed: Cached records older than 90 days are charged as a fresh lookup instead of being served for free
⚠️ Deprecated
- Activities endpoints: Person and company posts, comments, and reactions endpoints are discontinued on July 1, 2026
- Contact Email Finder transition:
/v2/contact/emailwas unavailable during the July 1 transition and is now available again for opted-in workspaces
- v2.6.0
Refreshed interface, email preferences, and public docs
A redesigned dashboard, full control over the emails you receive, and documentation you can read without logging in.
✨ Features
- Email preferences center: A new page to manage which lifecycle and notification emails you receive, with one-click unsubscribe
- Public documentation: The full API documentation is now available without logging in at docs.reversecontact.com
- Country flags: Locations across the app now show country flag emojis for faster scanning
🚀 Improvements
- Interface refresh: Page transitions, animated KPI counters, smoother tab and filter motion, and fluid typography across the dashboard
- Design system alignment: Modals, toasts, cards, and colors now follow a single design system, with a refreshed payment success page
- Banners: Trial and workspace banners have a cleaner layout and styling
- JsonViewer: Added search with data-path tracking and improved responsiveness for large payloads
- v2.5.0
Usage insights, transparent pricing, and a multi-conversation Agent
See exactly what each call costs, break down usage by channel, and keep multiple Agent conversations going at once.
✨ Features
- Multi-conversation Agent: The Agent now keeps multiple persistent conversations, each with a title generated automatically from your first message
- Usage by channel: Filter usage and credit consumption by channel (API, Agent, dashboard) with dedicated KPI cards
- API pricing in-app: Per-endpoint credit pricing is now surfaced across the dashboard so you can see what each call costs before running it
- Edit billing info: Update your billing details directly from the billing overview
🚀 Improvements
- Per-key limits in quotas: The quotas response now reports each key's RPM and daily limits
- Smoother onboarding: New accounts start a trial automatically, get a default API key, and see clearer pay-as-you-go copy, with the survey step removed
🐛 Bug Fixes
- Credits card: Improved readability of the remaining-credits cards
- Daily limit display: Fixed the daily rate limit shown when the gateway returns a
dailyLimitobject instead of a number
- v2.4.0
Guided lookups, richer profiles, and a docs home
Find the right guide faster, trigger live lookups when a profile is missing, and get fuller current-job details on every person result.
✨ Features
- Docs home: A curated documentation hub at
/docsto find the right guide and endpoint faster - Live lookup CTA: When a profile is not in the database, you can now trigger a live lookup directly from the result
- Lookup format hints: Input fields now show format examples so you know exactly what to paste
🚀 Improvements
- Richer current position: Person results now include full current-job details from
currentPosition, including title, company, and dates - Calendar-day date labels: Usage and log dates now group by calendar day instead of a rolling 24-hour window
🐛 Bug Fixes
- JsonViewer: Tall payloads are now scrollable inside the viewer instead of being clipped, and no longer scroll the page behind them
- Zero-cost endpoints: Calls to
/v2/usageand other zero-cost endpoints no longer run a credit check - Enterprise credit purchases: Removed a legacy x2 credit multiplier that affected enterprise pay-as-you-go top-ups and auto-top-up
- Docs home: A curated documentation hub at
- v2.3.0
Agent, webhook polling & revamped API documentation
Chat with the new Agent to run lookups in natural language, retrieve async job results via a new polling endpoint, and explore a fully redesigned API documentation. Some of the features below are gated by feature flags and rolled out progressively, so they may not be visible on every account yet: reach out to support if you want early access.
✨ Features
- Agent: A new AI chat interface that runs person and company lookups in natural language (private beta, feature-flagged)
- Webhook polling endpoint: Retrieve async job status and results without waiting for a callback (private beta, feature-flagged)
- Job Lookup page: Paste a
webhookIdunder Logs and watch an async job progress in real time, with direct links from Webhook Events (private beta, feature-flagged) - Support bubble redesign: Now has Support and Tips tabs, with proactive tip teasers on V2 lookup pages
- Buy credits shortcut: Button added to remaining credits cards for faster top-ups
- LLMs discovery files:
llms.txtandllms-full.txtexposed so AI agents can index the documentation
🚀 Improvements
- API endpoint pages: Redesigned with a field-list pattern, sticky examples panel, and an embedded API playground modal
- Docs playground: Rebuilt with a shared body form, command palette endpoint picker, and richer search filters
- Rewritten guides: Authentication, first API call, which endpoint to use, API key management, rate limits and credits, errors and retries, webhooks, data freshness and production checklist
- Person and company docs: Person activities split into three dedicated endpoint pages, company endpoints rewritten to match the same pattern
- MCP setup guide: Helps connect AI agents to the ReverseContact API
- Post Reactions endpoint: Now handles live reactions with clearer error messaging
- Search input: Placeholder is now in English across the app
🐛 Bug Fixes
- Changelog dark mode: Bug fix bullets are now visible
- Custom webhook URLs: Requests are now properly forwarded and their payload is stored
- Async webhook docs: Error callback payload structure corrected
- Docs navigation: Article scroll position now resets correctly
- Overage cost display: Now shows the effective per-credit value for legacy accounts
- Sync profile docs: Endpoint response structure corrected
- v2.2.0
API key controls, MCP for AI agents & documentation upgrades
Fine-tune each API key with custom rate limits, permissions, and expiry dates, and connect AI agents to your account via MCP.
✨ Features
- Per-key controls: Configure rate limits (RPM, daily), endpoint permissions, and expiry dates from the dashboard
- MCP integration: Connect AI agents like Claude to the ReverseContact API via the MCP protocol with 12 intent-based tools (beta)
- Dismissible survey: Onboarding survey can now be skipped
- RPM visibility: Plan summary now shows your RPM limits with an upgrade hint when applicable
🚀 Improvements
- API key management guide: New documentation page covering key configuration
- Paid plan badges: API documentation now shows which endpoints require a paid plan
- Enterprise-only flag:
dailyLimitparameter documented as Enterprise-only in API docs - Upgrade prompts: Now include a direct link to relevant documentation
- Notification badge: Improved visibility in the header
🐛 Bug Fixes
- API key expiration: Fixed timezone and display issues with expiration dates
- RPM input validation: RPM input no longer allows values above the workspace limit
- Source labels: Fixed incorrect display for activities and webhook results
- Onboarding survey: Modal now scrollable on mobile
- Trial billing portal: Trial users now see a clear message instead of a 400 error
- v2.1.0
Free trial, Google sign-in & new pricing tiers
Start exploring ReverseContact with a free trial, sign in faster with Google One Tap, and choose from expanded pay-as-you-go pricing options.
✨ Features
- Free trial: New users can explore the platform with no payment required upfront
- Google One Tap: Sign in on login and signup pages for faster account creation
- New pricing tiers: $100 for 5,000 credits and $250 for 15,000 credits in pay-as-you-go
- Revamped usage page: Credits-focused overview with dynamic burn rate visualization
- Period filters: Quickly switch between current month and past month on the usage page
🚀 Improvements
- Trial banner: Redesigned with clearer messaging and direct links to the credits tab
- Onboarding visibility: Pay-as-you-go plan highlighted during onboarding
🐛 Bug Fixes
- Download links: Fixed file download links expiring when clicking enrichment results
- Docs drawer: Now opens correctly from search pages
- Person search: Removed an unsupported email filter that could cause errors
- Public docs access: Fixed access for unauthenticated users
- Trial auto top-up: Configuration now correctly blocked for trial users
- v2.0.8
More API keys and onboarding improvements
Create more API keys, pick your theme during onboarding, and enjoy a more accurate dashboard.
✨ Features
- More API keys: Create up to 10 API keys per workspace (previously 5)
- Theme during onboarding: Light/dark mode toggle available during setup
🚀 Improvements
- Burn rate accuracy: Dashboard now uses a 7-day rolling average for more accurate projections
- Docs sidebar: Reorganized so guides appear above endpoints for easier navigation
- Rate limits docs: Updated for clarity and accuracy
- Webhook deliveries: Now include a
webhookIdfield and use a structured data payload
🐛 Bug Fixes
- Light mode contrast: Fixed pricing slider and premium text readability
- Loading indicator: Fixed a display issue
- v2.0.7
Credit monitoring and live status
Stay on top of your credit usage with real-time monitoring, low-balance alerts, and a live platform status indicator.
✨ Features
- Credit overview: Dashboard section showing remaining credits, burn rate, and requests per minute
- Low-balance alerts: Automatic notifications when your credits reach 10%, 5%, and 0%
- Platform status: Live status indicator in the sidebar
🚀 Improvements
- Webhook error docs: API documentation now describes the 422
WEBHOOK_URL_REQUIREDerror on all async endpoints - Missing webhook URL: Async enrichment endpoints return a clear 422 error when no webhook URL is configured
🐛 Bug Fixes
- Pricing card contrast: Fixed unreadable text on the pay-as-you-go card in light mode
- Invitation redirect: Invited users are now correctly redirected to the invitation page instead of onboarding
- v2.0.6
Subscription management and reliability improvements
You can now cancel your subscription directly from the billing portal, and we've improved enrichment reliability with automatic credit refunds on data errors.
✨ Features
- Subscription cancellation: Cancel directly from the billing portal, choosing between immediate or end-of-period
- Raw JSON viewer: View the raw JSON response for any search result directly from the dashboard
🚀 Improvements
- LinkedIn URL validation: Now accepts names with diacritics and locale-specific subdomains
- Automatic credit refund: Credits are refunded when an enrichment fails with a data error
- Credit indicator: Now shows "for 100 results" subtitle for clarity
🐛 Bug Fixes
- Default theme: Now set to dark instead of following system preference
- No-data transition: Enrichment results show a smoother transition when no data is found
- iPad Pro zoom: Terms of Service accept button is now reachable with zoom enabled
- Color mode persistence: Preference is correctly restored on page load
- Light mode contrast: Improved for text, borders and chips across the dashboard
- Slideover backgrounds: Now use the correct background color in light mode
- Auth pages: Fixed white text on white background in light mode
- Backend stability: Resolved an issue causing high CPU usage under sustained load
- v2.0.5
Onboarding branding and dark mode fixes
Workspace onboarding now detects your domain automatically, plus readability fixes across the dashboard.
✨ Features
- Auto-detected branding: Workspace domain and branding are now auto-detected during onboarding
🚀 Improvements
- Error breakdown formatting: Counts now display with thousand separators for readability
- Cleaner error codes: API error codes no longer include internal prefixes
🐛 Bug Fixes
- Dark mode charts: Chart labels are now visible in dark mode
- Webhook preview: Removed inaccurate webhook delivery preview from enrichment result pages
- v2.0.4
Smarter notifications and changelog improvements
Credit alerts no longer repeat, and the changelog now highlights what you haven't read yet.
🚀 Improvements
- One-shot credit alerts: Notifications are now one-shot per threshold, no more repeated alerts
- Changelog highlights: New entries are highlighted so you can spot what's new at a glance
🐛 Bug Fixes
- Public docs redirect: Public documentation pages no longer redirect to the login screen
- v2.0.3
Dashboard polish and error visibility
Better error visibility on endpoints, dark mode readability, and small UX improvements across the dashboard.
✨ Features
- Error columns: Endpoint statistics now show separate 4xx and 5xx error columns for clearer debugging
🚀 Improvements
- Button loading: Smoother loading indicators across the app
- Dark mode charts: Chart axes are now easier to read in dark mode
- Input trimming: User inputs are automatically trimmed to prevent whitespace-related errors
🐛 Bug Fixes
- Notification emails: Fixed missing fields in API key revocation and role change emails
- Terms of Service: Scroll prompt is now clearly visible before accepting
- v2.0.2
UI polish and LinkedIn slug handling
Small quality-of-life fixes across the dashboard and improved LinkedIn URL handling.
🚀 Improvements
- LinkedIn slug handling: Enrichment now accepts Unicode characters and percent-encoded slugs
- Responsive layouts: Improved on documentation and enrichment result pages
🐛 Bug Fixes
- Unlimited plan display: Billing page no longer shows a daily limit for unlimited plans
- Billing visibility: Current plan and payment method now visible for all billing managers
- Action labels: Clearer labels on fetch profile and company pages
- Webhook docs: Fixed webhook response format in API documentation
- v2.0.1
Integrations, smarter notifications, and API improvements
New integrations with Clay and Zapier, proactive credit usage alerts, and a batch of API reliability improvements.
✨ Features
- Graduated credit notifications: Receive alerts when your balance reaches 10%, 5%, and 0% remaining
- Clay integration: New retrocompatible endpoint for Clay workflows
- Zapier integration: New authentication endpoint enabling Zapier automations
- Enterprise provisioning: Dedicated system for setting up enterprise workspaces
🚀 Improvements
- Flexible LinkedIn URL input: The API now accepts URLs with or without the
https://prefix, and bothlinkedInUrlandlinkedinUrlfield names - API documentation: Post interactions split into separate Comments and Reactions pages
- Billing access control: Non-billing roles now see a clear "access restricted" message instead of broken UI on billing tabs
🐛 Bug Fixes
- Stale trial status: Fixed display issue after completing a Stripe checkout
- Auto top-up retries: Fixed excessive retry attempts when a card payment is declined
- Unlimited rate limit: Now correctly shows no rate limit in API responses instead of 0
- v2.0.0
ReverseContact V2 platform launch
The complete new V2 platform, rebuilt from the ground up with a new API, real-time enrichment, webhooks, billing, and a redesigned dashboard experience.
✨ Features
- API V2: 7 fetch endpoints (person, company, posts, comments, reactions), resolve endpoints (company from domain, person by email or names), contact email verification, check endpoints, and search with 100 default results per page
- Webhooks: Real-time delivery replacing async polling, events page with filtering, stats, pagination, and live tail mode
- Live Enrichment: Real-time tracking, stop button, toast notifications, and persistent results across navigation
- Billing: Stripe checkout, multi-account support, auto top-up, pay-as-you-go rate limits, subscription management, enterprise credit selection, and credit purchases history
- Dashboard: Usage analytics, tabbed layout, stacked bar charts, error breakdown, KPI trend comparisons, and resizable table columns
- API Documentation: Rewritten with endpoint sidebar, split-panel layout, full-text search, public access without login, and code examples with copy button
- Support Chat: Real-time messaging, file upload, and conversation management
- Notifications: User preferences and email templates
- Feature Requests: Board to request and vote on features with infinite scroll
- OAuth sign-in: Google and GitHub authentication, Terms of Service acceptance, and change password
- GDPR/CCPA blocklist: Data subject blocklist with HTTP 451 enforcement
- Spotlight redesign: Global shortcuts, LinkedIn direct fetch, and docs search
- Integrations: Detection and management page
- Log retention: Workspace-level log retention policies
- API Playground: Live endpoint testing with credits display, line numbers, and curl preview
💥 Breaking Changes
- Bearer prefix: Authorization header must use Bearer prefix for all V2 endpoints
- Credit pricing: 2 credits for webhook delivery, 1 for synchronous calls
- Search pagination: Default results increased from 25 to 100 per page
🚀 Improvements
- Pricing tiers: Updated credit pricing tiers
- Brand assets: New logos and favicon
- Usage stats: Finer-grained usage stats (15-minute intervals)
- API key management: Preview and copy support
⚠️ Deprecated
- Watcher feature: Removed