Data enrichment for AI agents: a complete guide (2026)

Hiba FathimaHiba Fathima
Oct 23, 2026

TL;DR

  • Data enrichment adds missing facts to a record you already hold. The record can describe a company, a person, a product, a filer or a software package. AI data enrichment uses models and AI agents to find those facts, and more AI agents read the results mid-task.
  • Get each fact from the source that knows it best. Facts that rarely change, like a company's headquarters, come from data providers. Facts that change often, like a product's price, come from the seller's own web page. Recent news, like a funding round, comes from searching the web. In our tests, provider lookups and page reads each took under 2 seconds.
  • One key covers it. Firecrawl Alexandria serves company, people, financial, product, public records and developer data. It runs on the same API, MCP server and CLI as Firecrawl /scrape.
  • Enterprise ready. 67% of Fortune 100 companies use Firecrawl. Zero data retention, SSO with SCIM, key restrictions and audit logging cover AI agents as well as SDK calls.

What is data enrichment?

Data enrichment is the process of adding missing details to a record you already hold, using outside sources. You start with a match key, such as a company domain, a work email, a product SKU, a stock ticker or a package name. Then you append fields like headcount, a job title, a current price, a recent filing or a known vulnerability.

Enrichment differs from data cleansing. Cleansing fixes what's already in your table: duplicates, formats and typos. Enrichment adds facts that were never there. Cleansing usually comes first, because a misspelled key makes every lookup miss.

B2B data enrichment in a CRM is the best-known case. Sales and marketing teams fill company and contact records so leads get routed, scored and segmented. The same pattern runs well beyond sales. Ecommerce teams enrich catalogs with specs, prices and ratings. Finance teams add statements and filings to a list of tickers. Risk teams check vendors against registries and sanctions lists, and engineering teams add known vulnerabilities to a dependency list.

What does AI data enrichment mean?

AI data enrichment uses language models and AI agents to find, extract and structure missing fields, instead of relying only on a fixed database. It covers two jobs: AI doing the enrichment, and AI agents reading enriched data while they work on something else.

The first job replaces manual research. A model reads a product page and returns its specs and price, or reads a company's homepage and returns what it sells. An AI agent searches the web, opens a press release and returns a funding round with its URL.

The second job grew fast in 2026. An AI agent drafting an account brief, comparing prices across retailers or auditing a dependency list calls enrichment as a tool, mid-task. It needs typed fields, quick responses and a source it can cite. Stack Overflow's May 2026 pulse survey found AI agent use at work rose from 31% to 59% in a year.

Why do AI agents need enriched data?

AI agents need enriched data because they act on whatever a record says. With a missing or stale field, a model either guesses or carries the error into every later step. Enrichment with a source attached gives the AI agent a fact to use and a way to check it.

The cost of skipping that check is already visible. Validity surveyed 500 marketing professionals for its State of CRM Data Management in 2026 report, released August 25, 2026:

  • 92% of SVP and VP respondents said they had acted on an AI recommendation they later suspected was wrong because of bad data. Nearly 78% of C-suite respondents said the same.
  • Two in three organizations gave more marketing decisions to autonomous AI agents over the past year.
  • Only 21% of marketers said their CRM data was "very well prepared" to support AI.

AI agents are taking on more decisions while the records under them stay patchy. Enrichment closes that gap only when each field can be traced back to where it came from.

What kinds of data can you enrich?

Most enrichment falls into seven groups: company, people, product, financial, risk, technical and event data. Each group comes from different sources and changes at a different speed. A good AI data enrichment pipeline sends each field to the source that fits it.

Data typeExample fieldsWhere it usually comes fromHow often it changes
CompanyHeadcount, HQ, founding year, industryCompany data providers, company sites, registriesSlowly for HQ and founding year, faster for headcount
PeopleName, title, work email, employment historyPeople data providersOften, as people change jobs
ProductPrice, specs, stock, ratingsRetailer catalogs, the seller's own pagesDaily for price and stock
FinancialIncome statements, filings, market dataFinancial data providers, regulators' filing systemsEach reporting period for statements, daily or faster for market prices
Risk and complianceLegal entity IDs, licenses, sanctions matchesRegistries, sanctions lists, government recordsAny day for sanctions, slowly for registrations
TechnicalTools a company runs, package versions, known vulnerabilitiesProviders, docs, package registries, vulnerability databasesWeeks to months for tools and versions, any day for new vulnerabilities
Events and signalsFunding, launches, open rolesPress releases, news, job boardsAny day

Stable reference fields suit a provider database. Facts a company or seller states about itself live on its own pages. Events are the hardest group, because a fact that's a week old hasn't reached most databases yet.

How does an AI data enrichment pipeline work?

An AI data enrichment pipeline takes a match key and sends each missing field to the source most likely to have it right. It extracts answers into a fixed schema, stores a source and timestamp beside each value, and checks the result before anything downstream reads it. Six steps cover most pipelines:

  1. Pick the match key. Use a stable ID. That's a domain for a company, a SKU or UPC for a product, a ticker for a public filer and a package URL for a dependency. A bare name is the weakest key, because names collide.
  2. Route each field. Send stable reference fields to a provider lookup, current facts to the source's own page, and events to web research.
  3. Extract to a schema. Define every field and its type up front, so a model returns JSON instead of prose.
  4. Store provenance. Keep the source URL or provider name, plus the retrieval time, next to each value.
  5. Validate. Compare fields against each other and against a second source before writing them.
  6. Refresh. Re-run each field on a schedule that matches how fast it changes, or when its source page changes.

Step 4 is what makes a record safe for an AI agent. An agent that reads "2,510 employees, People Data Labs, retrieved October 23, 2026" can cite it, and a reviewer can trace it.

Which data enrichment approach fits which field?

Provider lookups suit stable reference fields: firmographics, contacts, filings and catalog data. Structured extraction from a source's own pages suits facts it states about itself. Agentic web research suits events and long-tail questions that no database holds yet. We timed all three on five companies on October 23, 2026.

ApproachWhat it returnsMedian time in our testCredits in our testBest for
Provider lookup through Firecrawl Alexandria (timed with People Data Labs)Typed fields from a provider's database, such as headcount, size band and HQ1.8 s50 per lookupStable reference fields, each from the provider that covers it
Structured extraction (Firecrawl /scrape with a JSON schema)What a page says today1.5 s5 per pageProduct, pricing and policy pages
Agentic web research (Firecrawl /agent)An answer plus the URL it came from42 s for one runCapped per run with maxCreditsFunding, launches, recent events
Manual researchAnything a person can find and confirmMinutes to hoursAnalyst timeHigh-stakes records and edge cases

The five companies were stripe.com, ramp.com, posthog.com, vercel.com and retool.com. The Firecrawl /agent run asked for Ramp's latest funding round and returned a $1.85 billion round dated October 15, 2026, with its source.

How accurate are company data enrichment providers?

Company data is the most measured kind of enrichment. Providers are accurate on stable fields and uneven on fast-moving ones. In Firecrawl's company enrichment benchmark of 200 US companies, Apollo scored 89.3% on four common fields, including headquarters, employee count and founding year. Employee count was the weakest of those four fields for every provider tested.

The company enrichment benchmark gave six providers only each company's website. It scored their answers against SEC filings, federal records and each company's own website. Four results matter for anyone building a pipeline:

  • Apollo led the four common fields at 89.3%, and People Data Labs placed second at 80.6%. Both run through Firecrawl Alexandria.
  • Employee count averaged 57% across the six providers. Apollo led at 77.2%, 20.7 points ahead of the next provider.
  • Revenue for public companies split sharply. Apollo returns a figure and scored 82.8% within 5% of the filing, while range-based answers rarely landed that close.
  • On 6 of the 7 fields, the best provider in Firecrawl Alexandria beat the strongest provider outside it.

So decide which source your AI agent trusts for each field, and store where every value came from. Check headcount against a second provider before it drives routing or scoring. Our comparison of company enrichment APIs breaks the results down provider by provider.

What are the main types of data enrichment tools?

Data enrichment tools fall into five categories: provider databases, waterfall platforms, CRM-native enrichment, web extraction APIs and agentic research APIs. AI agents tend to need a mix of all five, reachable through one interface instead of five separate integrations.

Tool typeHow it worksStrengthWhere it falls short
Provider databasesLook up a record by domain, email, SKU or IDFast, consistent fieldsLags behind recent changes
Waterfall platformsQuery providers in order until a field fillsHigher fill ratesEach provider adds cost and a contract
CRM-native enrichmentFills fields inside the CRMNo extra integrationLimited to the CRM's own sources
Web extraction APIsRead a page and return structured fieldsCurrent, first-party factsNeeds a URL to start from
Agentic research APIsSearch, read and answer with sourcesHandles long-tail questionsMore time per record
FirecrawlLicensed providers through Firecrawl Alexandria, page extraction with Firecrawl /scrape, research with Firecrawl /agentOne API key, MCP server and CLI for every row above, with a source on each field

The open-source Fire Enrich project shows the agentic pattern in practice. You upload a list of emails, and AI agents fill in company, funding and product fields for each one.

How does Firecrawl Alexandria handle AI data enrichment?

Firecrawl Alexandria gives AI agents licensed provider data through the same Firecrawl API key, MCP server and CLI they already use. An agent finds a provider tool for free, reads its inputs and price in credits, then runs it. Its providers cover company, people, financial, product, public records and developer data, among others.

Firecrawl tested the difference in September 2026. In 845 tasks run with the same model and prompts, AI agents with Firecrawl Alexandria earned answer-quality scores 21% above agents with built-in web tools, judged blind. Our explainer on data connectors for AI agents covers that test.

Providers are paid under agreement when AI agents pull their data. Teams pay with Firecrawl credits, at each tool's posted price, with no per-vendor minimum. Some providers need an org admin to approve their terms one time before the first call.

Firecrawl Alexandria groups its providers into categories, and each one can supply an enrichment job:

CategoryExample providers
CompanyPeople Data Labs, Apollo, Fireround
PeopleApollo, FullEnrich, Data Legion
FinanceFiscal.ai, Benzinga, FRED
JobsGreenhouse, Ashby and Workday job boards
Public recordsSEC EDGAR, Companies House, USPTO, OpenSanctions
RetailBest Buy US, Etsy, IKEA, StockX
HealthFDA, UniProt, NIH RePORTER
TravelSkyscanner, Trip.com, Recreation.gov
SportsESPN, MLB Baseball Savant, NFL.com
PlacesOpenStreetMap, Bing Maps, BBB business profiles
Real estateNYC property records, National Weather Service, FEMA / ORNL USA Structures
DeveloperGitHub, Docker Hub, OSV.dev
AI modelsHugging Face, OpenRouter, Artificial Analysis
EntertainmentTMDB, JustWatch, BFI Collections Search
RestaurantDomino's US, Pizza Hut US, SevenRooms
AppsApple App Store, npm, PyPI
SocialCommunity forums and review sites
ResearchResearch Index, Canadian Nutrient File
NewsSubstack, Trends
ToolsWayback Machine, DOI.org
MarketingWikipedia, Upspring
PodcastsParticle
Web analytics and marketingSimilarweb

These are enrichment jobs teams bring to Firecrawl Alexandria. We checked each one with a live call on October 23, 2026.

Enrichment jobProvider and capability
Build a prospect list with a buying signalFullEnrich people/search
Check headcount against a second sourceApollo companies/enrich
Add hiring signals to an accountApollo companies/job-postings
Add financials without parsing filingsFiscal.ai financials/income-statement
Attach recent filings to a public companySEC EDGAR filings/filings
Add price and ratings to a product recordBest Buy products/search
Check dependencies for known vulnerabilitiesOSV.dev vulnerabilities/query

Prospect lists with a signal. A sales agent rarely wants "every VP of Sales". It wants the ones at companies running a specific tool, inside a headcount range. FullEnrich people/search takes title, technology and headcount filters in one call, so the AI agent skips the company-then-people two-step.

import os
 
from firecrawl import Firecrawl
 
firecrawl = Firecrawl(api_key=os.environ["FIRECRAWL_API_KEY"])
 
doc = firecrawl.scrape(alexandria={
    "provider": "fullenrich",
    "capability": "people/search",
    "options": {
        "limit": 2,
        "current_position_titles": [{"value": "VP of Sales"}],
        "current_company_technologies": [{"value": "Salesforce"}],
        "current_company_headcounts": [{"min": 200, "max": 1000}],
    },
})
 
result = doc.alexandria[0]
print(f"{result.records} returned, {result.data['metadata']['total']} matches, {result.credits_cost} credits")
2 returned, 24 matches, 10 credits

A second opinion on headcount. Firecrawl's company enrichment benchmark showed headcount is where providers differ most. Calling Apollo next to People Data Labs gives the AI agent two numbers with two sources. It can then flag a gap like Ramp's instead of picking one silently.

Hiring signals. Open roles tell a sales or research agent what a company is building. Ramp had 186 postings in Apollo's data, and the five newest included backend engineering and recruiting roles posted within the past week.

Financials for public companies. Fiscal.ai returns standardized income statements, balance sheets and cash flow statements. Each standardized line names the reported lines behind it, so an AI agent comparing two companies can trace a figure instead of trusting it.

Product records. A product search returns the fields a catalog or pricing agent needs in one call. Best Buy products/search for "airpods pro" returned AirPods Pro 3 at $249.99, rated 4.8 from 11,745 reviews, with the SKU to key later lookups on.

Dependency checks. OSV.dev vulnerabilities/query takes a package and version and returns each known vulnerability with the release that fixes it. For lodash 4.17.15 it returned six advisories. A coding agent can use that to decide what to upgrade before it ships.

For people data, our post on people enrichment in Firecrawl Alexandria covers Apollo and FullEnrich in more depth.

How does an AI agent call enrichment mid-task?

An AI agent calls Firecrawl Alexandria through the Firecrawl MCP server with three tools. It uses firecrawl_search to find a provider, firecrawl_find_tools to read its inputs and price, and firecrawl_scrape to run it. Discovery is free, and each run costs the credits listed on the tool.

A prompt like this works in Claude, ChatGPT, Cursor or any MCP client connected to Firecrawl:

Use Firecrawl to enrich ramp.com. Get headcount from two company data providers, what they sell from their homepage, and their latest funding round with a source link.

Our guides to people search in Claude and lead generation in ChatGPT walk through the same flow end to end.

How do you build an AI data enrichment pipeline with Firecrawl?

Firecrawl is the context API for AI agents, and one key covers every enrichment route. That means extraction with Firecrawl /scrape, research with Firecrawl /agent, and provider lookups through Firecrawl Alexandria. The script below runs all three on a company record and stores a source and timestamp on every field. The same pattern fits a product, a person or a vendor: change the match key and the sources.

Teams already run enrichment on Firecrawl in production. 11x, an AI growth platform for revenue teams, uses Firecrawl /crawl and Firecrawl /search to build the company research briefs behind its AI outbound. It has processed more than 11 million requests across 175,000 unique domains.

Firecrawl gathers and structures information from across the web to give us a detailed picture of any company, from its position in the market down to the tools in its tech stack. That depth of research is what makes our outbound so context-rich.

Jeson Patel, CTO at 11x

Install the SDK with pip install firecrawl-py and set FIRECRAWL_API_KEY.

The script uses Python, but Python is only one way in. Firecrawl has official SDKs for Node.js and TypeScript, Go, Java, Ruby, Rust, .NET, PHP and Elixir, plus a REST API you can call with cURL. The Firecrawl CLI runs them from a terminal, and the MCP server brings them to Claude, ChatGPT, Cursor and Codex. LangChain, LlamaIndex, CrewAI, n8n, Zapier and Make have integrations too.

import os
from datetime import datetime, timezone
from typing import Optional
 
from firecrawl import Firecrawl
from pydantic import BaseModel, Field
 
firecrawl = Firecrawl(api_key=os.environ["FIRECRAWL_API_KEY"])
 
 
class SiteFacts(BaseModel):
    one_line_description: str = Field(description="What the company sells, in one sentence")
    pricing_page_url: Optional[str] = Field(None, description="Absolute URL of the pricing page, if linked")
 
 
class FundingRound(BaseModel):
    round_name: Optional[str] = Field(None, description="For example Series B")
    amount_usd: Optional[str] = Field(None, description="Amount raised, as stated")
    announced_on: Optional[str] = Field(None, description="Announcement date, YYYY-MM-DD")
    source_url: Optional[str] = Field(None, description="URL of the announcement or filing")
 
 
def now():
    return datetime.now(timezone.utc).isoformat()
 
 
def field(value, source, retrieved_at):
    return {"value": value, "source": source, "retrieved_at": retrieved_at}
 
 
def provider(name, capability, options):
    result = firecrawl.scrape(alexandria={"provider": name, "capability": capability, "options": options}).alexandria[0]
    if result.error:
        raise RuntimeError(f"{name} {capability} failed: {result.error}")
    return result.data or {}, now()
 
 
def headcount_conflicts(pdl, apollo):
    conflicts = []
    count, band = pdl.get("employee_count"), pdl.get("size") or ""
    if count and "-" in band:
        low, high = (int(x) for x in band.split("-"))
        if not low <= count <= high:
            conflicts.append(f"people-data-labs count {count} is outside its own size band {band}")
    second = apollo.get("estimated_num_employees")
    if count and second and abs(count - second) / max(count, second) > 0.1:
        conflicts.append(f"people-data-labs says {count}, apollo says {second}")
    return conflicts
 
 
def enrich_company(domain: str) -> dict:
    pdl, pdl_at = provider("people-data-labs", "company/enrich", {"website": domain})
    apollo, apollo_at = provider("apollo", "companies/enrich", {"domain": domain})
    apollo = apollo.get("organization") or {}
 
    site = firecrawl.scrape(
        f"https://{domain}",
        formats=[{"type": "json", "schema": SiteFacts.model_json_schema()}],
        only_main_content=True,
    ).json or {}
    site_at = now()
 
    funding = firecrawl.agent(
        prompt=f"Find the most recent funding round announced by the company at {domain}. Cite the announcement.",
        schema=FundingRound,
        max_credits=150,
    ).data or {}
    funding_at = now()
    review_reasons = headcount_conflicts(pdl, apollo)
    if not funding.get("source_url"):
        review_reasons.append("latest_funding has no source URL")
 
    return {
        "domain": domain,
        "needs_review": bool(review_reasons),
        "review_reasons": review_reasons,
        "employee_count": [
            field(pdl.get("employee_count"), "people-data-labs", pdl_at),
            field(apollo.get("estimated_num_employees"), "apollo", apollo_at),
        ],
        "size_band": field(pdl.get("size"), "people-data-labs", pdl_at),
        "founded": field(pdl.get("founded"), "people-data-labs", pdl_at),
        "hq": field((pdl.get("location") or {}).get("name"), "people-data-labs", pdl_at),
        "industry": field(apollo.get("industry"), "apollo", apollo_at),
        "description": field(site.get("one_line_description"), f"https://{domain}", site_at),
        "pricing_page": field(site.get("pricing_page_url"), f"https://{domain}", site_at),
        "latest_funding": field(funding, funding.get("source_url"), funding_at),
    }
 
 
if __name__ == "__main__":
    import json
    print(json.dumps(enrich_company("ramp.com"), indent=2))

The full run for ramp.com took 26 seconds, most of it the Firecrawl /agent step. Trimmed output:

{
  "domain": "ramp.com",
  "needs_review": true,
  "review_reasons": [
    "people-data-labs count 2510 is outside its own size band 501-1000",
    "people-data-labs says 2510, apollo says 2200"
  ],
  "employee_count": [
    {"value": 2510, "source": "people-data-labs", "retrieved_at": "2026-10-23T23:12:51.677290+00:00"},
    {"value": 2200, "source": "apollo", "retrieved_at": "2026-10-23T23:12:52.544014+00:00"}
  ],
  "latest_funding": {
    "value": {
      "round_name": "Primary financing round",
      "amount_usd": "$1.85 billion",
      "announced_on": "2026-10-15",
      "source_url": "https://www.prnewswire.com/news-releases/ramp-reaches-60-billion-valuation-as-annualized-revenue-tops-2-billion-302909315.html"
    },
    "source": "https://www.prnewswire.com/news-releases/ramp-reaches-60-billion-valuation-as-annualized-revenue-tops-2-billion-302909315.html",
    "retrieved_at": "2026-10-23T23:13:13.680047+00:00"
  }
}

The record flags itself. Both headcount conflicts land in review_reasons: the People Data Labs count sits outside its own size band, and the two providers disagree. A routing or scoring step can hold the record until someone picks a value. A funding round with no source URL lands there too, and a failed provider call raises an error instead of passing an empty record downstream. Each timestamp marks when its own source answered, not when the record was assembled. The funding round was eight days old, and the agent cited the press release it came from.

The same provider call works from the Firecrawl CLI, which reported 50 credits for the lookup:

npx -y firecrawl-cli@latest scrape people-data-labs/company/enrich --options '{"website":"linear.app"}'

How do you scale and refresh enrichment?

Scale enrichment with Firecrawl batch scrape for many company sites at once. Keep it fresh with Firecrawl /monitor, which re-checks pages on a schedule and notifies you when they change. Then re-enrich only the records whose source changed, instead of re-running the whole table.

Firecrawl batch scrape takes a list of URLs and runs them as one job, with the same JSON schema applied to every page. Firecrawl /monitor can watch a pricing page or a newsroom and send a webhook when it changes. For a sales team, the AI SDR build shows enrichment wired into outreach.

What do enterprise teams need from AI data enrichment?

Enterprise teams need AI data enrichment with controls that help meet their data-handling requirements. That covers what's retained, who can call it, what each key can do and what gets logged. Firecrawl Enterprise plans include those controls, and they apply to the same API and MCP server that run the pipeline.

67% of Fortune 100 companies use Firecrawl today. Enrichment touches customer lists, prospect names and internal account data, so security and procurement teams ask the same questions each time. Firecrawl Enterprise plans include zero data retention, PII redaction, and SAML or OIDC single sign-on with SCIM. Each key can be limited by endpoint, IP and spend, and SIEM audit logging records usage. The security docs go deeper on each control.

Zero data retention has three details to plan around. A zero data retention Firecrawl /agent result can be retrieved for 24 hours, then it's deleted. Those agent runs only call Firecrawl Alexandria providers that support zero data retention, and zero data retention searches return no Firecrawl Alexandria tools.

These controls apply whether the call comes from an SDK, the CLI or an AI agent using the MCP server. Teams can also buy Firecrawl through AWS Marketplace or Google Cloud Marketplace. As Replit puts it: "If your agent or LLM needs web content, Firecrawl delivers the best-formatted results."

What are common data enrichment mistakes?

The most common data enrichment mistakes are matching on names, trusting one source for every field, dropping the source, and refreshing everything on one schedule. Each one is easy to avoid once the pipeline stores provenance next to every value.

  1. Matching on names. Company, person and product names all collide. Use a stable key such as a domain, a ticker, a SKU or a package URL.
  2. One source for every field. Sources disagree most on fast-moving fields, such as a company's headcount or a product's price. Send those fields to a second source, or validate them.
  3. No source on the field. Without a URL or provider name, nobody can tell a stale value from a wrong one.
  4. Letting the model answer from memory. A model asked for a funding round without a live source will answer anyway. Make a source URL part of the schema.
  5. One refresh schedule for everything. Contact data moves fastest. Lusha's CEO wrote in Demand Gen Report that roughly 13,600 B2B contacts change jobs every working day.
  6. Ignoring internal conflicts. If a size band and an employee count disagree inside one record, flag it before an AI agent uses either.

Enrichment used to fill a CRM column for a person to skim. Now it fills an AI agent's context, whether the record is an account, a product or a dependency. Sources will disagree, and an agent that sees each value beside its source can say so or check another.

Try it without an API key. Firecrawl /search and Firecrawl /scrape work keyless, free within a daily per-IP limit, through npx firecrawl-cli@latest or the keyless MCP server at https://mcp.firecrawl.dev/v2/mcp. Firecrawl Alexandria and Firecrawl /agent need a free account. Enterprise teams can talk to sales about zero data retention, SSO and custom concurrency.

Frequently Asked Questions

What is data enrichment in simple terms?

Data enrichment means taking a record you already hold, such as a company domain, a work email, a product SKU or a package name, and adding the missing details from other sources. A domain can become a company profile, a SKU can gain its current price and rating, and a package version can gain its known vulnerabilities.

What is the difference between data enrichment and data cleansing?

Cleansing fixes the data you already have: duplicates, formats and typos. Enrichment adds facts you never had. Most teams cleanse first, because a misspelled domain makes every enrichment lookup miss.

Can an LLM do data enrichment on its own?

Only for facts that were in its training data and haven't changed since. Ask a model for a company's headcount or latest funding round and it will often answer from memory, which can be months out of date or invented. Connect it to a live source so each answer comes back with a URL or a provider name.

How much does AI data enrichment cost?

Each source has its own price. In our October 2026 tests through Firecrawl Alexandria, a People Data Labs company lookup cost 50 credits, a Best Buy product search cost 5 credits and an OSV.dev vulnerability check cost 5 credits. A structured scrape of a web page cost 5 credits. Firecrawl Alexandria shows each tool's price in credits before you call it.

How often should enriched data be refreshed?

Match the refresh to how fast each field moves. A company's founding year or a product's specs rarely change, so a yearly check is enough. Prices and stock can change daily, and contacts, headcount and funding within months, so refresh those on a schedule or when a monitored page changes.

Which data enrichment fields are least accurate?

For company data, employee count. In Firecrawl's company enrichment benchmark of 200 US companies, it was the hardest of the four common fields, averaging 57% across six providers. Revenue for public companies was also uneven, because most providers return a range instead of a figure.

What is the best data enrichment tool for AI agents?

One that an AI agent can call mid-task and that returns typed fields with their source. Firecrawl covers structured extraction from any web page, source-backed web research and licensed provider data through Firecrawl Alexandria, all with one API key, MCP server or CLI.

Can AI data enrichment run with zero data retention?

On Firecrawl Enterprise plans, yes. Zero data retention is available for scrape, interact, search and agent runs. A zero data retention agent result can be retrieved for 24 hours and is then deleted, those agent runs only call Firecrawl Alexandria providers that support it, and zero data retention searches return no Firecrawl Alexandria tools.