---
title: "Import Prospects"
method: POST
path: "/api/facade/import_prospects"
tags: ["facade"]
---

# Import Prospects

`POST /api/facade/import_prospects`

## Request

- Base URL: `https://api.vruum.ai`
- URL: `https://api.vruum.ai/api/facade/import_prospects`
- Auth: `HTTPBearer` (a scheme the document does not define)

Source and import prospects — the consolidated import tool.

LinkedIn and Sales Navigator people searches (linkedin_people_search,
sales_nav_search) are on research_lookup.

Sales Navigator import actions:
- sales_nav_preview: preview a Sales Nav search against your pipeline
  ({search?, count?, objective?}).
- sales_nav_import: import people or accounts. For account imports, use
  {search, target: "accounts"}; `search` is a saved account search name or
  ID, and do not pass objective or auto_enroll. A unique match returns a
  job_id to poll with fetch type='job'; no_match, ambiguous, and error
  responses do not return a job. People imports accept {search?, count?,
  profiles_json?, auto_enroll?, objective?}.
  `profiles_json` accepts research_lookup action=sales_nav_search output
  directly: each object
  needs linkedin_url plus either first_name/last_name or a single `name`
  field (mode=basic results); `headline` is used as a title fallback.
- sales_nav_dismiss: dismiss profiles from future imports
  ({linkedin_urls} — comma-separated).
- sales_nav_searches: list seats with {action: "accounts"}; each config_id
  can be passed as search_account_id. Actions list and create support saved
  people or account searches. Use search_type="company" to create an
  account search; create requires name and filters_json, where filters_json
  is a JSON-encoded array string. Register attaches replay filters to an
  existing account search and requires search_id, name, and filters_json.
  Actions update and delete support people searches only. Other fields are {name?, keywords?, search_type?:
  "lead"|"company", search_account_id?, frequency?, search_id?}.

CSV actions:
- csv_preview: parse + preview a CSV before importing ({file_content}).
  `file_content` is the CSV file's bytes, base64-encoded; raw CSV text
  is rejected.
- csv_start: start an import job ({file_content (base64, as for
  csv_preview), column_mapping, objective_id?, skip_research?}). Returns
  a job id — poll it with fetch type='csv_import'.

Payloads are validated by the underlying route's own schema, so a bad
field returns that route's precise 422.

## Request body

- WriterRequest: Uniform request body for every facade writer.
  - `action` string, required: The operation to perform — see the tool description for the action vocabulary and each action's id/payload semantics.
  - `id` union: Target entity id, or an ARRAY of ids to apply the same action+payload to each (max 100; see the tool description for which entity the id names per action).
    - string
    - string[]
  - `payload` object, nullable: Action-specific fields, validated by the underlying route's own schema (a bad field 422s with that route's precise errors). See the tool description per action.
  - `items` object[], nullable: For create-like actions only: an array of per-item payloads processed in order with per-item results (max 100). Mutually exclusive with `id` and `payload`.

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/vruum/apis/vruum-public-api.md) · [All operations](https://skmtc.dev/vruum/apis/vruum-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/vruum/apis/vruum-public-api/revisions/b8ada111c30a?raw)
