---
title: "Bulk Validate Source"
method: POST
path: "/api/v1/fashion-photoshoot/bulk/validate-source"
tags: ["fashionPhotoshoot"]
---

# Bulk Validate Source

`POST /api/v1/fashion-photoshoot/bulk/validate-source`

## Request

- Base URL: `https://api.brandbooster.ai` (the document declares no server; this is the origin it was published from)
- URL: `https://api.brandbooster.ai/api/v1/fashion-photoshoot/bulk/validate-source`
- Auth: HTTP bearer

Read a garment source and report what we found, WITHOUT creating anything.

An unmapped photo column comes back **200 with `missing_required`**, not a 400 —
that is the mapping screen's normal state and it needs `columns` to render the fix.
400 is reserved for a source we cannot use at all. No `db` dependency (touches no
table); rate-limited because it is the cheapest probing surface on the feature.

## Request body `multipart/form-data`

- BodyBulkValidateSourceApiV1FashionPhotoshootBulkValidateSourcePost
  - `source_type` string, required: sheet_upload | sheet_url | drive_folder
  - `file` string, binary, nullable
  - `sheet_url` string, nullable
  - `drive_folder_url` string, nullable
  - `column_mapping` string, nullable: JSON object: {"<your column>": "<our field>"}
  - `preview_limit` integer
  - `item_type` string: garment | accessory

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

## Changes

> 37 revisions in range; 1 not diffed.

- **2026-09-16** `dda5cf04b73d`: 1 info
  - added the new optional request property `item_type`

[Operation history](https://skmtc.dev/brandbooster/apis/brandbooster-api/changes/api/v1/fashion-photoshoot/bulk/validate-source/post.md)

---

[API](https://skmtc.dev/brandbooster/apis/brandbooster-api.md) - [All operations](https://skmtc.dev/brandbooster/apis/brandbooster-api/llms.txt) - [OpenAPI document](https://skmtc.dev/brandbooster/apis/brandbooster-api/revisions/02d28bde684c?raw)
