---
title: "POST /v1/prospect_imports/dry_run"
method: POST
path: "/v1/prospect_imports/dry_run"
tags: ["Other"]
---

# POST /v1/prospect_imports/dry_run

`POST /v1/prospect_imports/dry_run`

## Request

- Base URL: `https://api.yardstick.team`
- URL: `https://api.yardstick.team/v1/prospect_imports/dry_run`
- Auth: HTTP bearer

POST /v1/prospect_imports/dry_run

**Required scopes:** `prospects:read`, `prospects:write`

## Headers

- `Idempotency-Key` string, required
- `X-Request-Id` string

## Request body

- object
  - `source_label` string, nullable
  - `rows` object[], required
    - `external_id` string
    - `name` string, nullable
    - `email` string, email, nullable
    - `phone` string, nullable
    - `linkedin_url` string, uri, nullable
    - `profile_url` string, uri, nullable
    - `resume_url` string, uri, nullable
    - `current_title` string, nullable
    - `current_company` string, nullable
    - `source_label` string, nullable
    - `pool_ids` string[]
    - `pool_names` string[]
    - `owner_user_id` union: Who owns the prospect, as a UUID or teammate email. The three states are deliberate: omit the field to use the applying key's human for a newly created prospect, send `null` to leave a new prospect unowned, or send a UUID or email to name an owner. On a row that matches an existing prospect, omitted and `null` both preserve its current owner; only a UUID or email reassigns it. The value must resolve to exactly one active, non-sample member of this organization, or that row is invalid: an email matching more than one teammate carries owner_ambiguous, and anything else that fails to resolve carries owner_not_member. Assignments to another teammate are applied after the row import and create one accumulating handoff summary per teammate; unassignment, self-assignment, and an owner without a resolvable email create no summary task.
      - string, uuid
      - string, email
    - `notes` string, nullable
    - `last_contacted_at` string, nullable
  - `metadata` object

## Response `200`

Success

- object

## Other responses

- `400`: Invalid request
- `401`: Authentication failure
- `403`: Permission denied (scope or feature flag)
- `404`: Resource not found. The error uses the resource-specific code and param names the exact body field or path parameter that referenced it.
- `409`: Conflict (e.g. idempotency key reuse with different body)
- `429`: Rate limited
- `500`: Internal error

---

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