---
title: "Confirm extractor submission upload"
method: POST
path: "/v1/extractors/submissions/uploads/{submission_id}/confirm"
tags: ["Extractors"]
---

# Confirm extractor submission upload

`POST /v1/extractors/submissions/uploads/{submission_id}/confirm`

Step 2: Confirm upload, triggers security scan and manifest validation.

## Path parameters

- `submission_id` string, required

## Request body

- ConfirmSubmissionRequest
  - `etag` string, nullable — S3 ETag for integrity check
  - `file_size_bytes` integer, nullable

## Response `200`

Successful Response

- ConfirmSubmissionResponse
  - `success` boolean, required
  - `submission_id` string, required
  - `status` string, required
  - `security_scan_passed` boolean, nullable
  - `security_violations` object[]
  - `manifest_valid` boolean, nullable
  - `message` string, nullable

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

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