Documentation Index
Fetch the complete documentation index at: https://docs.parallel.ai/llms.txt
Use this file to discover all available pages before exploring further.
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.Timeline: Both APIs are currently available. Include the
parallel-beta: "findall-2025-09-15" header to use V1 API. Without this header, requests default to V0 API.Why Migrate to V1?
V1 delivers significant improvements across pricing, performance, and capabilities:- Pay-per-Match Pricing: Charges based on matches found, not candidates evaluated
- Task-Powered Enrichments: Flexible enrichments via Task API with expanded processor options
-
Enhanced Capabilities:
- Extend, Cancel, and Preview endpoints
- Real-time streaming with incremental updates
- Exclude candidates from evaluation
- Match conditions return both
valueandis_matchedboolean - Increased
match_limitfrom 200 to 1,000
- Better Performance: Improved latency and match quality across all stages
Key Differences
Request Structure
V0 used a nestedfindall_spec object. V1 flattens this structure:
| Concept | V0 API | V1 API |
|---|---|---|
| Required Header | None | parallel-beta: "findall-2025-09-15" |
| Search Goal | query | objective |
| Entity Type | findall_spec.name | entity_type |
| Filter Criteria | findall_spec.columns (type=constraint) | match_conditions |
| Model Selection | processor | generator |
| Max Results | result_limit (max: 200) | match_limit (max: 1,000) |
Response Structure
V0 included results in poll responses. V1 separates status and results:| Concept | V0 API | V1 API |
|---|---|---|
| Status Check | is_active + are_enrichments_active | status.is_active |
| Get Results | GET /v1beta/findall/runs/{id} (included in response) | GET /v1beta/findall/runs/{id}/result |
| Results Array | results | candidates |
| Relevance Score | score | relevance_score |
| Match Data | filter_results (array) | output (object) |
| Field Access | Loop through array to find key | Direct: output[field_name]["value"] |
Enrichment Handling
V0 included enrichments in initial spec. V1 adds them via separate endpoint:| Aspect | V0 API | V1 API |
|---|---|---|
| Definition | Part of columns array (type=enrichment) | Separate POST /v1beta/findall/runs/{id}/enrich call |
| Timing | At run creation only | Anytime after run creation (multiple enrichments supported) |
| Output Format | Separate enrichment_results array | Merged into output object with type=enrichment |
| Processor Options | Limited to FindAll processors | All Task API processors available |
End-to-End Migration Example
This example shows the complete workflow migration, including enrichments:Migration Checklist
Complete these steps to migrate from V0 to V1:Core Changes
- Add
parallel-beta: "findall-2025-09-15"header to all requests - Change ingest parameter:
query→objective - Flatten run request: extract
objective,entity_type,match_conditionsfromfindall_spec - Rename:
result_limit→match_limit,processor→generator - Update status check:
status.status == "completed"instead of checking two flags - Fetch results from separate
/resultendpoint - Update result parsing:
results→candidates,score→relevance_score - Change field access: direct object access (
output[field]) vs array iteration
Enrichment Changes (if applicable)
- Move enrichments to separate
POST /enrichcall after run creation - Convert enrichment columns to
output_schemaformat (see Task API) - Update result access: enrichments now merged into
outputobject
Optional Enhancements
- Implement streaming via
/eventsendpoint for real-time updates - Add
exclude_listto filter out specific candidates - Use
preview: truefor testing queries before full runs - Implement
/extendendpoint to increase match limits dynamically - Implement
/cancelendpoint to stop runs early
Testing
- Validate queries in development environment
- Review pricing impact with generator-based model
- Update error handling for new response schemas
- Monitor performance metrics
Related Topics
Core Concepts
- Quickstart: Get started with V1 FindAll API
- Candidates: Understand candidate object structure and states
- Generators and Pricing: Understand generator options and pricing
- Run Lifecycle: Understand run statuses and termination
Features
- 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
- Cancel Runs: Stop runs early to save costs
- Streaming Events: Receive real-time updates via Server-Sent Events
- Webhooks: Configure HTTP callbacks for run completion and matches