---
title: "Create Bulk Upload Job"
method: POST
path: "/documents/{child_id}/bulk"
tags: ["documents"]
---

# Create Bulk Upload Job

`POST /documents/{child_id}/bulk`

## Request

- Base URL: `https://api.projectindi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.projectindi.com/documents/{child_id}/bulk`
- Auth: none declared

Create a bulk_upload_jobs record for pre-uploaded files.

Files are already in storage (uploaded browser-direct); this only stages the
job the worker picks up. Every path must be one ``bulk-upload-urls`` minted
for this child. Whether the caller may upload to the child is the
``bulk_upload_jobs`` INSERT policy's call, the same three arms as
``_require_upload_access``; its refusal (42501) is the 403.

## Path parameters

- `child_id` string, required

## Request body

- BulkUploadCreateRequest: Body for creating a bulk upload job. Files are already in storage; this records lightweight per-file metadata the worker processes asynchronously. ``file_metadata`` items are stored as-is (camelCase keys the worker reads).
  - `fileMetadata` object[], required

## Response `202`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles.md) - [All operations](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/llms.txt) - [OpenAPI document](https://skmtc.dev/projectindi/apis/indi-agent-api-first-principles/revisions/25a7813e21fd?raw)
