---
search:
  tags:
    - customers
    - POST
seo:
  description: >-
    Bulk merchant import — Scout's write path. Each row becomes a… Reference for
    the POST /workspaces/{organizationId}/customers/import endpoint in the Pile
    API.
sidebar:
  label: Create customer import
  badge: POST
title: Create customer import
type: openapi-operation
---
Bulk merchant import — Scout's write path. Each row becomes a customer deduped on externalId (placeId maps to "gplace:&lt;place_id>"); re-runs return existing records and fill empty slots rather than duplicating. Optionally creates an initial deal per row (stage defaults to "lead"). Every row lands a receipt (created/existing/failed + why) and the batch itself is persisted as an import receipt readable via GET /customer-imports/&#123;id&#125;.

`POST /workspaces/{organizationId}/customers/import`

**Request body** (`application/json`)

- `source` (string)
- `corridor` (string)
- `rows` (object[], required)

Request body example:

```json
{
  "source": "string",
  "corridor": "string",
  "rows": [
    {
      "placeId": "string",
      "externalId": "string",
      "name": "string",
      "url": "string",
      "notes": "string",
      "status": "string",
      "statusId": "string",
      "tierId": "string",
      "ownerId": "string",
      "nextStepText": "string",
      "nextStepDueAt": "string",
      "needsHuman": true,
      "needsHumanReason": "string",
      "priorityScore": 0,
      "customFields": {
        "property1": "string",
        "property2": "string"
      },
      "deal": {
        "name": "string",
        "stage": "lead",
        "amountCents": 0,
        "currency": "str",
        "expectedCloseAt": "string",
        "description": "string",
        "priorityScore": 0
      }
    }
  ]
}
```

**Responses**

- `200` — Import receipt — per-row outcomes included

Response example, 200:

```json
{
  "id": "string",
  "organizationId": "string",
  "source": "string",
  "corridor": "string",
  "total": 0,
  "created": 0,
  "existing": 0,
  "failed": 0,
  "createdById": "string",
  "createdAt": "string",
  "rows": [
    {
      "index": 0,
      "externalId": "string",
      "outcome": "created",
      "customerId": "string",
      "dealId": "string",
      "error": "string"
    }
  ]
}
```
