---
title: "Start Deep Search (Async)"
method: POST
path: "/search/start-deep-search"
tags: ["Search"]
---

# Start Deep Search (Async)

`POST /search/start-deep-search`

Start a deep, agentic search from a natural language query. Returns a task ID to poll.

## Headers

- `x-api-key` string, nullable

## Request body

- StartAgenticSearchRequest — Request to start an agentic search workflow.
  - `query` string, required — Natural-language search query.
  - `mode` 'people' | 'company' — Search mode: 'people' or 'company'.
  - `max_results` integer — Maximum number of results to return across pages.
  - `search_id` string, nullable — Optional client-supplied search ID for idempotent retries.
  - `output_mode` 'csv' | 'query_only' — Output mode: 'csv' to export, 'query_only' to return parsed query only.
  - `exclude_public_ids` string[], nullable — People-mode inline identifiers to exclude from results, applied as a post-filter. Accepts LinkedIn public IDs or profile URLs. For company searches, use `exclude_entity_ids`. Max 1000.
  - `exclude_entity_ids` string[], nullable — Inline identifiers to exclude from results, applied as a post-filter. People mode: LinkedIn public IDs or profile URLs. Company mode: numeric LinkedIn company IDs, company URLs/slugs, or exact website domains (values that resolve to no or multiple companies are ignored). Max 1000.
  - `exclude_list_ids` string[], nullable — Saved exclusion-list IDs to apply as a post-filter. Each list's entity type must match the search mode (person lists for people searches, company lists for company searches). Max 5 (10 for organizations with extended exclusion limits).

## Response `200`

Successful Response

- StartAgenticSearchResponse — Response for starting an agentic search.
  - `task_id` string, required — Async task ID; poll for status with this value.
  - `status` string, required — Initial task status, typically 'queued'.
  - `message` string, required — Human-readable status message.

## Other responses

- `400` — Request was rejected by the route's validation rules.
- `401` — Missing or invalid API key.
- `402` — Insufficient credits or no active subscription for this organization.
- `403` — Forwarded user_id does not belong to caller's organization.
- `404` — Search task or export file not found.
- `409` — Export workflow already running for this search.
- `422` — Request body failed validation.
- `429` — Rate limit exceeded.
- `500` — Unexpected server error. Retry with backoff.
- `502` — Upstream search backend returned an error.
- `503` — Search backend is not configured or unavailable.
- `504` — Upstream search backend timed out.

---

[API](https://skmtc.dev/sixtyfour/apis/sixtyfour-api.md) · [All operations](https://skmtc.dev/sixtyfour/apis/sixtyfour-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/sixtyfour/sixtyfour-api/revisions/51f0a2b62b44/schema)
