---
title: "Get Dataset Upload URL"
method: GET
path: "/api/v1/data-collection/datasets/{dataset_id}/upload-url/{filename}"
tags: ["aiTaskBuilder"]
---

# Get Dataset Upload URL

`GET /api/v1/data-collection/datasets/{dataset_id}/upload-url/{filename}`

Generates a presigned S3 URL for uploading a file to the dataset. Use the returned URL to PUT the file directly to S3.

**V3 datasets** (CSV/ZIP): returns `upload_url` and `http_method`. After the upload completes, poll `GET /datasets/{dataset_id}/status` for processing status.

**V4 datasets** (JSONL/CSV): additionally returns `import_id`. After the upload completes, poll `GET /datasets/{dataset_id}/imports/{import_id}` for per-upload status. Multiple upload URLs can be requested before any upload completes — each creates a distinct import job and S3 key.

Supported file types:
- V3: `.csv`, `.zip`
- V4: `.csv`, `.jsonl`

## Path parameters

- `dataset_id` string, required
- `filename` string, required

## Headers

- `Authorization` string, required

## Response `201`

Presigned URL generated successfully

- AITaskBuilderGetDatasetUploadUrlResponse201
  - `dataset_id` string, uuid, required — The ID of the dataset the upload URL was requested for.
  - `upload_url` string, required — Presigned S3 URL. Make a PUT request to this URL with your file as the body.
  - `http_method` 'PUT', required — HTTP method to use with the presigned URL.
  - `content_type` string, required — The `Content-Type` header value to use when making the S3 PUT request. Use this value exactly — e.g. `application/x-ndjson` for JSONL files.
  - `expires_at` string, date-time, required — When the presigned URL expires (ISO 8601, UTC). The URL cannot be used after this time.
  - `file_key` string — The S3 object key for the uploaded file. Provided for reference only.
  - `import_id` string, uuid — Import job ID. **V4 datasets only.** Use with `GET /datasets/{dataset_id}/imports/{import_id}` to poll for upload and processing status.

## Other responses

- `400` — Bad request (e.g., unsupported file type for this dataset version)
- `403` — Forbidden (e.g., user does not have access to the workspace)
- `404` — Dataset not found

---

[API](https://skmtc.dev/prolific/apis/api-reference.md) · [All operations](https://skmtc.dev/prolific/apis/api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/prolific/api-reference/revisions/578f400cea53/schema)
