---
title: "Confirm a signed-URL upload and start processing"
method: POST
path: "/v1/data/ingest/confirm-upload"
tags: ["v1 data"]
---

# Confirm a signed-URL upload and start processing

`POST /v1/data/ingest/confirm-upload`

**Step 2 of 2** — After uploading the file to the signed URL obtained from
    `/ingest/upload-url`, call this endpoint to trigger the ingest pipeline.

    The server verifies the file exists in GCS, auto-detects the content type
    if it was not provided, and queues the processing job.

    Returns the same `IngestResponse` as the regular `/ingest` endpoint.

## Request body

- ConfirmUploadRequest — Request model for confirming a signed-URL upload
  - `job_id` string, required — Job ID returned by /ingest/upload-url
  - `object_key` string, required — GCS object key returned by /ingest/upload-url
  - `user_id` string, required — User ID (must match the upload-url request)
  - `persona_id` string, nullable
  - `project_id` string, nullable
  - `content_type` string, nullable — Content category (auto-detected from file bytes if omitted)
  - `content_description` string, nullable
  - `session_id` string, nullable
  - `timestamp` string, nullable
  - `filename` string, nullable
  - `callback_url` string, nullable — Optional URL the server will POST to when the job reaches a terminal state.
  - `notification_email` string, email, nullable — Optional email address to notify when the job reaches a terminal state.

## Response `202`

Successful Response

- IngestResponse — Response model for data ingestion
  - `job_id` string, required — Unique job identifier for tracking
  - `status` string, required — Processing status ('accepted', 'queued', 'failed')
  - `message` string, nullable — Additional status or error message
  - `success` boolean — Whether the request was accepted successfully

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `404` — User/Persona/Project/File Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

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