Overview
The Parallel FindAll API enables you to discover and research entities from across the web using natural language. It turns questions like “Find all AI companies that raised Series A funding recently” into structured, enriched databases with verified information.Alpha Notice: The FindAll API is currently in public alpha. Endpoints and request/response formats are subject to change. We will provide 30 days’ notice before any breaking changes. For production access, contact support@parallel.ai.
Key Features
FindAll excels at entity discovery and research tasks that require both breadth and depth:- Natural Language Input: Express complex search criteria in plain English
- Intelligent Entity Discovery: Automatically generates and validates potential matches
- Structured Enrichment: Extract specific attributes for each discovered entity
- Citation-backed Results: Every data point includes reasoning and source citations
- Asynchronous Processing: Handle large-scale searches without blocking your application
Common Use Cases
- Market Mapping: “Find all fintech companies offering earned-wage access in Brazil”
- Competitive Intelligence: “Find all AI infrastructure providers that raised Series B funding in the last 6 months”
- Lead Generation: “Find all residential roofing companies in Charlotte, NC”
- Financial Research: “Find all S&P 500 stocks that dropped X% in last 30 days and listed tariffs as a key risk”
How It Works
The FindAll API follows a three-step asynchronous workflow:- Ingest: Convert your natural language query into a structured FindAllSpec
- Run: Execute the FindAllSpec to start the discovery process
- Poll: Check status and retrieve results as they become available
Authentication
All requests require an API key in the header:Endpoints
1. Ingest Query
Convert a natural language query into a structured FindAllSpec.Ingest Response Example
2. Run FindAll
Start a FindAll run using the structured query from the ingest step.Request Parameters
Field | Type | Required | Description |
---|---|---|---|
findall_spec | FindAllSpec | Yes | The structured query from ingest |
candidates | array | No | Optional seed entities to include |
processor | string | No | Quality/cost tradeoff: base or pro (default: base) |
result_limit | integer | No | Maximum results to return (default: 200) |
metadata | object | No | Custom key-value pairs for tracking |
Run Response Example
3. Poll for Results
Check the status of your FindAll run and retrieve results. Important: A run is complete only when bothis_active
and are_enrichments_active
are false
.
Response Structure
4. Additional Operations
Cancel a Run
Stop a running FindAll operation:Billing Notice: You will still be charged for any processing completed before the cancellation. This includes the generator cost and any constraint/enrichment evaluations that finished prior to cancellation.
Extend a Run
Add more entities to a completed run:Data Models
Column Types
FindAll uses two types of columns:- Constraint: Boolean criteria that entities must satisfy (e.g., “is an AI company”)
- Enrichment: Attributes to extract for matching entities (e.g., “CEO name”)
Constraint Results
Constraint results can have the following values:yes
: Entity clearly meets the criterianot_sure
: Insufficient informationno
: Entity does not meet criteriaskipped
: Constraint not evaluated
confidence
: Level of confidence in the result (high
,medium
,low
)reasoning
: Detailed explanation of the decisioncitations
: URLs supporting the reasoning
Entity Scoring
Each result includes:- score: Score to rank the results, higher means better match for constraints
- pages_read: Number of web pages analyzed for this entity
- pages_considered: Total pages evaluated for this entity
Response Metadata
Poll responses include additional metadata:- pages_read: Total web pages analyzed across all entities
- pages_considered: Total web pages evaluated across all entities
- billing_metrics: Cost tracking information
cost_mode
: Processor used (base
orpro
)rows_processed
: Number of entities processedenrichment_cells
: Number of enrichment fields populated
- are_enrichments_active: Whether enrichments are still running
- filters: Array of constraint definitions with status
- enrichments: Array of enrichment definitions with status
is_active
AND are_enrichments_active
to determine if the run is truly complete. A run is finished only when both fields are false
.
Processing Steps
FindAll runs follow these steps:- understanding_question: Parse and understand the natural language query
- gen_candidates_step: Generate potential entity candidates using Parallel Index
- filter_candidates_step: Process candidates using constraints and enrichments
status
field: running
, done
, or failed
.
Quickstart
Get started with FindAll in three simple steps. We’ll find AI companies that raised Series A funding in 2024. (Or copy the docs and let your favourite LLM write the code for you).Step 1: Ingest Your Query
Convert your natural language question into a structured FindAllSpec:Step 2: Start Your FindAll Run
Execute the FindAllSpec to begin discovering companies:Step 3: Poll for Results
Check the status and retrieve your results:Complete Example
Here’s the full workflow in one script:Pricing
FindAll pricing reflects the comprehensive research performed:Cost Components
-
Generator (per query)
base
: $1.00pro
: $5.00
-
Constraint
- Per candidate evaluated, independent of number of constraints
base
: $0.030pro
: $0.200
-
Enrichment
- Per enrichment, depends on number of enrichments. Run only on candidates fully matching all the constraints
base
: $0.010pro
: $0.100
Example Calculations
Simple Example - Constraint-only query with 100 candidates using base processor:- Generator: $1.00
- Constraint: 100 entities × 3.00
- Total Cost: $4.00
- Generator: $1.00
- Constraint: 100 entities × 3.00
- Enrichment: 50 matches × 3 fields × 1.50
- Total Cost: $5.50
Best Practices
- Start with Clear Queries: Be specific about your criteria and desired attributes
- Use Appropriate Processors: Choose
base
for a balance of cost and quality,pro
for maximum accuracy - Set Reasonable Limits: Balance between coverage and cost
- Poll Efficiently: Check every 15-30 seconds to avoid rate limits
- Handle Partial Results: Process results as they arrive for better UX
Rate Limits
- Contact support@parallel.ai for production limits
Support
For questions or production access, contact our team:- Email: support@parallel.ai
- Documentation: docs.parallel.ai