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.
Timeline: V1 is now the default for the FindAll API. Requests no longer need the parallel-beta: "findall-2025-09-15" header — requests without it use V1. The header is still accepted for backwards compatibility but no longer changes behavior. Existing V0 runs remain retrievable by their original run IDs.

Why Migrate to V1?

V1 delivers significant improvements across pricing, performance, and capabilities:
  1. Pay-per-Match Pricing: Charges based on matches found, not candidates evaluated
  2. Task-Powered Enrichments: Flexible enrichments via Task API with expanded processor options
  3. Enhanced Capabilities:
  4. Better Performance: Improved latency and match quality across all stages
Breaking Changes: V1 is not backward compatible. V0 runs cannot be accessed via V1 endpoints. Parameter names, response schemas, and pricing have changed.

Key Differences

Request Structure

V0 used a nested findall_spec object. V1 flattens this structure:

Response Structure

V0 included results in poll responses. V1 separates status and results:

Enrichment Handling

V0 included enrichments in initial spec. V1 adds them via separate endpoint:

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

  • Change ingest parameter: queryobjective
  • Flatten run request: extract objective, entity_type, match_conditions from findall_spec
  • Rename: result_limitmatch_limit, processorgenerator
  • Update status check: status.status == "completed" instead of checking two flags
  • Fetch results from separate /result endpoint
  • Update result parsing: resultscandidates, scorerelevance_score
  • Change field access: direct object access (output[field]) vs array iteration

Enrichment Changes (if applicable)

  • Move enrichments to separate POST /enrich call after run creation
  • Convert enrichment columns to output_schema format (see Task API)
  • Update result access: enrichments now merged into output object

Optional Enhancements

  • Implement streaming via /events endpoint for real-time updates
  • Add exclude_list to filter out specific candidates
  • Use preview: true for testing queries before full runs
  • Implement /extend endpoint to increase match limits dynamically
  • Implement /cancel endpoint 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

Core Concepts

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