Beta Notice: Parallel FindAll is currently in public beta. 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.
What is FindAll?
FindAll is a web-scale entity discovery system that turns natural language queries into structured, enriched databases. It answers questions like “FindAll AI companies that raised Series A funding in the last 3 months” by combining intelligent search, evaluation, and enrichment capabilities. Unlike traditional search APIs that return a fixed set of results, FindAll generates candidates from web data, validates them against your criteria, and optionally enriches matches with additional structured information—all from a single natural language query.Key Features & Use Cases
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
Pricing
See Pricing for a detailed schedule of rates.
Common Use Cases
- Market Mapping: “FindAll fintech companies offering earned-wage access in Brazil.”
- Competitive Intelligence: “FindAll AI infrastructure providers that raised Series B funding in the last 6 months.”
- Lead Generation: “FindAll residential roofing companies in Charlotte, NC.”
- Financial Research: “FindAll S&P 500 stocks that dropped X% in last 30 days and listed tariffs as a key risk.”
What Happens During a Run
When you create a FindAll run, the system executes three key stages:-
Generate Candidates from Web Data: FindAll searches across the web to identify potential entities that might match your query. Each candidate enters the
generatedstatus. -
Evaluate Candidates Based on Match Conditions: Each generated candidate is evaluated against your match conditions. Candidates that satisfy all conditions reach
matchedstatus and are included in your results. Those that don’t becomeunmatched. - Extract Enrichments for Matched Candidates: For candidates that matched, FindAll uses the Task API to extract any additional enrichment fields you specified. This enrichment is orchestrated automatically by FindAll.
Quick Example
Here’s a complete example that finds portfolio companies. The workflow consists of four steps: converting natural language to a schema, starting the run, polling for completion, and retrieving results.The Basic Workflow
The FindAll API follows a simple four-step workflow:- Ingest: Convert your natural language query into a structured schema
- Run: Start the findall run to discover and match candidates
- Poll: Check status and retrieve results as they become available
- Fetch: Retrieve the final list of matched candidates with reasoning and citations
Step 1: Ingest
Purpose: Converts your natural language query into a structured schema withentity_type and match_conditions.
The ingest endpoint automatically extracts:
- What type of entities to search for (companies, people, products, etc.)
- Match conditions that must be satisfied
- Optional enrichment suggestions
Customizing the ingest schema
The ingest endpoint generates a suggested schema, but you can (and should) review and modify it before creating a run. Common modifications include:- Relaxing temporal conditions: Ingest may interpret phrases like “founded after 2023” strictly (e.g., “within the last 1 year”). You can broaden the description to be more inclusive.
- Adjusting match condition descriptions: Make descriptions more or less specific to control match rates.
- Adding or removing match conditions: Tailor the schema to your exact needs.
- Changing the entity type: Correct the entity type if ingest misidentified it.
"Company must have been founded within the last 1 year", you might change it to "Company must have been founded in 2025 or later" for more reliable matching.
Step 2: Create FindAll Run
Purpose: Starts the asynchronous findall process to generate and evaluate candidates. You can use the schema from ingest directly, or modify it before passing it to the create endpoint. Key parameters:generator: Choosepreview,base,core, orprobased on your needs (see Generators and Pricing)match_limit: Maximum number of matched candidates to return
Step 3: Poll for Status
Purpose: Monitor progress and wait for completion. Request:Step 4: Get Results
Purpose: Retrieve the final list of candidates with match details, reasoning, and citations.To understand the complete candidate object structure, see Candidates.
Troubleshooting
Run completed with 0 matched candidates
Run completed with 0 matched candidates
This typically happens when match conditions are too strict for the candidate pool. Try these fixes:
- Relax match condition descriptions: The ingest endpoint may generate overly strict conditions, especially for temporal queries. Edit condition descriptions to be more inclusive before creating the run.
- Use a stronger generator:
previewevaluates ~10 candidates,basesearches broadly,coresearches deeper, andprois the most thorough. A stronger generator evaluates more candidates, increasing the chance of finding matches. - Check temporal language: Phrases like “founded after 2023” may be interpreted as “within the last year.” Use explicit ranges (e.g., “founded in 2025 or later”) for more predictable behavior.
- Broaden your query: If your criteria are very specific, consider starting broad and using enrichments to filter results after matching.
- Start with preview: Always run with
generator: "preview"first to validate your schema and see how conditions are being evaluated before committing to a full run.
Ingest generated unexpected conditions
Ingest generated unexpected conditions
The ingest endpoint interprets natural language heuristically. If the generated
match_conditions don’t match your intent:- Modify the conditions before passing them to the create endpoint — see Customizing the ingest schema above.
- Skip ingest entirely and construct your own schema directly with
objective,entity_type, andmatch_conditions. - Use the schema endpoint on a completed run (
GET /v1beta/findall/runs/{findall_id}/schema) to see what schema was used, then iterate on it.
Next Steps
- Candidates: Understand candidate object structure, states, and exclusion
- Generators and Pricing: Understand generator options and pricing
- Preview: Test queries with ~10 candidates before running full searches
- Enrichments: Extract additional structured data for matched candidates
- Extend Runs: Increase match limits without paying new fixed costs
- Streaming Events: Receive real-time updates via Server-Sent Events
- Webhooks: Configure HTTP callbacks for run completion and matches
- API Reference: Complete endpoint documentation