---
title: "Upload And Run Requirements Extraction"
method: POST
path: "/internal/evals/requirements-extraction/upload"
tags: ["internal"]
---

# Upload And Run Requirements Extraction

`POST /internal/evals/requirements-extraction/upload`

Upload a guideline PDF and bench the extraction over it.

Returns as soon as the upload exists and the run is registered; extraction takes tens of
seconds, so it continues in the background and the run's `status` reports where it is.

`document_type` types the stored file, and defaults from the profile: marketing standards for
`marketing`, `GENERIC_POLICY` otherwise. Pass it explicitly when you know what the document is
— the regulatory default is deliberately unopinionated about content, and `GENERIC_POLICY` is
one of the types `is_guideline_document` refuses, so re-benching that upload from the CLI needs
`--allow-any-doc-type`. A document typed specifically does not.

The run itself is not subject to that guard: the document was uploaded expressly to be benched.

## Response `200`

Successful Response

- UploadAndRunResponse — Where to look for the run that was just started.
  - `run_id` string, required
  - `upload_id` string, required

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/kobaltlabs/apis/fastapi.md) · [All operations](https://skmtc.dev/kobaltlabs/apis/fastapi/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/kobaltlabs/fastapi/revisions/425d5b8a3c17/schema)
