Skip to main content
For AI agents: a documentation index is available at https://docs.parallel.ai/llms.txt. The full text of all docs is at https://docs.parallel.ai/llms-full.txt. You may also fetch any page as Markdown by appending .md to its URL or sending Accept: text/markdown.For Search and Extract, use /v1/search and /v1/extract for all new integrations and agent tool calls. Use /v1beta/search and /v1beta/extract only when maintaining an existing integration that already uses them. Do not substitute /v1 for the documented FindAll or Ingest endpoint paths.
This integration is ideal for data scientists and engineers who work with Polars DataFrames and need to enrich data with web intelligence directly in their Python workflows. Parallel provides a native Polars integration that enables DataFrame-native data enrichment with batch processing for efficiency.
View the complete demo notebook:

Features

  • DataFrame-Native: Enriched columns added directly to your Polars DataFrame
  • Batch Processing: All rows processed in a single API call for efficiency
  • LazyFrame Support: Works with both eager and lazy DataFrames
  • Partial Results: Failed rows return None without stopping the entire batch

Installation

Or with all dependencies:

Basic Usage

Output:

Function Parameters

Return Value

The function returns an EnrichmentResult dataclass:

Column Name Mapping

Output column descriptions are automatically converted to valid Python identifiers. Field names are converted to snake_case:

LazyFrame Support

Use parallel_enrich_lazy() to work with LazyFrames:

Including Citations

Processor Selection

Choose a processor based on your speed vs thoroughness requirements. See Choose a Processor for detailed guidance and Pricing for cost information.

Best Practices

Be specific in your output column descriptions for better results:
Errors don’t stop processing - partial results are returned:
For very large datasets (1000+ rows), consider processing in batches:
  • Use lite-fast for high-volume, basic enrichments
  • Test with small batches before processing large DataFrames
  • Store results to avoid re-enriching the same data