---
title: "Search Export"
method: POST
path: "/search/export"
tags: ["Search"]
---

# Search Export

`POST /search/export`

Export search results as a CSV file. Poll /search/status/{task_id} for a presigned download URL when complete.

## Headers

- `x-api-key` string, nullable

## Request body

- SaveSearchRequest — Request to export search results as CSV.
  - `search_id` string, nullable — Search history ID returned by a previous search. Replays only the query shape; pass exclusions again on this request if they should apply.
  - `parsed_query` object, nullable — Structured filter set returned by a previous search.
  - `mode` 'people' | 'company' — Search mode; inferred from DB when not set.
  - `max_results` integer — Maximum number of results to return across pages.
  - `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

- SaveSearchResponse — Response for an async save/export request.
  - `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)
