---
title: "Create Batch Enrichment"
method: POST
path: "/public/v1/enrichment/batch/"
tags: ["Batch enrichment"]
---

# Create Batch Enrichment

`POST /public/v1/enrichment/batch/`

Create a batch enrichment job by uploading a CSV.

**How it works**
1. Upload a `.csv` file (one column: `handle` or `email`)
2. Choose the enrichment mode (handle: `raw`/`full`, email: `basic`)
3. Use the returned `batch_id` to check status and download results

**Request**
- `multipart/form-data`
- `file`: CSV (max 10MB)
- Mode fields depend on whether you’re enriching by `handle` or `email`

**Credits**
- Credits are deducted **per successfully enriched record**
- The credit rate follows the corresponding single-enrichment pricing (handle `raw`/`full`, or email enrichment)
- If no data is returned for a record, **0 credits** are deducted for that record

**Checking completion**
Poll `GET /public/v1/enrichment/batch/{batch_id}/status/` every 30–60 seconds until the job finishes. Status values:
- `queued` — waiting to start
- `processing` — actively enriching records
- `finished` — all records done; download results via `GET /public/v1/enrichment/batch/{batch_id}/`
- `failed` — job failed
- `paused_insufficient_credits` — top up credits and call the resume endpoint

This API is polling-based. There are no webhooks or push notifications.

<div class="ic-ai-prompt-root" data-endpoint="batch-create"></div>

## Response `200`

- BatchEnrichmentResponse
  - `batch_id` string, required — Unique identifier for the batch enrichment job
  - `status` string, required — Current status of the batch job (processing, finished, failed, validating)
  - `created_at` string, date-time, required — Timestamp when the batch was created
  - `platform` string, nullable — Platform used for enrichment (for handle-based enrichment)
  - `metadata` object, nullable — Metadata provided with the batch
  - `og_input_number` integer, required — Total number of records in the input file
  - `type_report` string, required — Type of enrichment: ENRICH_BY_HANDLE or ENRICH_BY_EMAIL
  - `enrichment_mode` string, nullable — Enrichment mode: raw, full, basic
  - `message` string, required — Human-readable message about the batch status

## Other responses

- `400` — Bad request — invalid or missing parameters.
- `401` — Unauthorized — missing or invalid API key.
- `403` — Forbidden - Insufficient permissions
- `422` — Unprocessable entity — validation failed.
- `429` — Too Many Requests - Rate limit exceeded

---

[API](https://skmtc.net/influencers/apis/core-api-concepts.md) · [All operations](https://skmtc.net/influencers/apis/core-api-concepts/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/influencers/core-api-concepts/versions/cd6c016f2cd6/schema)
