---
title: "Get upload URL"
method: POST
path: "/v1/validator/uploads/presign"
tags: ["validator"]
---

# Get upload URL

`POST /v1/validator/uploads/presign`

Get a presigned URL for uploading per-problem evaluation logs.

## Request body

- PresignUploadRequest
  - `content_type` string — MIME type of the upload
  - `content_length` integer, required — Size in bytes of the upload payload
  - `eval_run_id` string, uuid, required — Evaluation run these results belong to
  - `problem_id` string, uuid, required — Problem these results belong to

## Response `200`

Successful Response

- PresignUploadResponse
  - `upload_url` string, required — Presigned URL to upload to
  - `method` string — HTTP method to use for upload
  - `results_s3_key` string, required — S3 key where the results will be stored
  - `expires_at` string, date-time, required — When the presigned URL expires

## Other responses

- `400` — Invalid request
- `404` — Run or problem not found
- `409` — Not owner of run
- `422` — Validation Error

---

[API](https://skmtc.dev/oroagents/apis/oro-api.md) · [All operations](https://skmtc.dev/oroagents/apis/oro-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/oroagents/oro-api/revisions/38ef86138115/schema)
