Create Evaluation Upload

Mint a single-use upload URL for an evaluation set. PUT the raw `.ndjson` bytes to `upload_url` with exactly the returned `headers` (no `Authorization`); the URL accepts one PUT of exactly `byte_size` bytes, then expires. Files are at most 10,000 lines and 50 MB. The upload is bound to this collection, so a later [Create Eval](/reference/evals/create) cannot point the same `upload_id` at a different one. Line format and limits are on the [Evaluations](/guides/evaluations) guide.

Path parameters

collection_namestringRequired

Request

This endpoint expects an object.
byte_sizeintegerRequired1-52428800
Exact number of bytes the PUT will send. Enforced on PUT.
filenamestringRequired8-512 characters

Must end in .ndjson.

content_typeenumOptionalDefaults to application/x-ndjson

Response

Upload minted. PUT the file to upload_url before expires_at.

byte_sizeinteger
collection_namestring
expires_atstring
filenamestring
headersobject
upload_idstring
upload_urlstring

Signed, PUT-only, single-use URL on *.captainusercontent.com. Opaque.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error
© 2026 Captain