---
title: "Validate a Bulk Submission"
method: POST
path: "/bulk/validate"
tags: ["Bulk Jobs"]
---

# Validate a Bulk Submission

`POST /bulk/validate`

Validate a bulk submission payload without persisting or processing a job.

## Request body

- BulkSubmissionRequest — Request body for submitting a bulk enrichment job via POST /bulk/submit. Provide exactly one of rows, csv, fileUrl, or scrape.
  - `product` string, required — The enrichment product to run on each row (e.g. email_finder, email_validation, mobile_finder, profile_search, company_search).
  - `rows` object[] — JSON array of row objects for /bulk/json (or /bulk/submit auto-detect). Each row is an object whose keys match the input fields the selected product expects.
  - `csv` string — Inline CSV string for /bulk/csv (or /bulk/submit).
  - `fileUrl` string, uri — Public HTTPS URL to a remote file (CSV, JSON, JSONL). SSRF-validated server-side.
  - `format` 'csv' | 'json' | 'jsonl' — File format for fileUrl submissions.
  - `scrape` object — Browser-rendering config for /bulk/scrape (or /bulk/submit).
    - `url` string, uri
    - `mode` 'scrape' | 'crawl' | 'content' | 'markdown' | 'links' | 'json' | 'snapshot'
    - `extractPrompt` string
    - `render` boolean
    - `maxPages` integer
    - `maxDepth` integer
  - `inputMapping` object — Optional column mapping from CSV/JSON columns to product input fields.
  - `callback` object — Webhook configuration.
    - `url` string, uri — HTTPS URL to receive a POST on completion/failure. SSRF-validated.
    - `events` string[]
    - `inlineResults` boolean
    - `secret` string
    - `metadata` object
  - `idempotencyKey` string — Optional idempotency key for safe retries.
  - `metadata` object
  - `presetId` string
  - `outputTransform` object
    - `model` string
    - `prompt` string
    - `jsonSchema` unknown
  - `priority` integer
  - `fileName` string

## Response `200`

Validation result.

- object

## Other responses

- `400` — Bad Request - The request was malformed or contains invalid parameters. **Common causes:** - Missing required fields - Invalid field format (e.g., malformed email) - Invalid JSON syntax - Invalid parameter values
- `401` — Unauthorized - Authentication failed. **Common causes:** - Missing X-API-Key header - Invalid or expired API key - Malformed API key

---

[API](https://skmtc.net/leadmagic/apis/leadmagic-api.md) · [All operations](https://skmtc.net/leadmagic/apis/leadmagic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/leadmagic/leadmagic-api/revisions/aa19cf9bc46a/schema)
