Skip to content

Connector create upload

POST
/connector/v1/assignments/{assignment_id}/uploads

Reserve exact bytes with durable upload and artifact identities.

Credential scopes: Separate connector bearer credential and assignment/session authority.

Resource authority: Authenticated connector owns the exact assignment and holds its active X-Connector-Session.

Retry: Reservation: retry original Idempotency-Key and body. Completion: retry original version_id or multipart:true intent. Current views may refresh temporary instructions; committed receipts retain their identities.

Guards: New reservations select multipart strictly above 64 MiB. Single-PUT ceiling, per-file policy, declaration and aggregate quotas are independent. Existing reservations retain transport and expiry.

Retain: Same account/assignment, source checksum and unchanged source bytes, original request/key, upload/artifact UUIDs, completion intent and confirmed parts.

Specific failures: 400 invalid_idempotency_key; 409 idempotency_conflict; 413 metadata/body or general structural byte bound; 422 invalid_upload; 429 upload_quota_exceeded; 503 upload_uncertain; 404 not_found: unrelated assignment; 409 session_required, journal_conflict or invalid_transition

Next action: Preserve the original operation; inspect to reconcile uncertainty; use completed artifact identity after verification. Worked workflow

assignment_id
required
string format: uuid

Owned assignment.

X-Connector-Session
required
string format: uuid

Active process session for this assignment journal.

Idempotency-Key
required
string

Required once; 1–128 ASCII letters, digits, underscores or hyphens. Keep the same key/request after a lost response. Successful keys never expire.

A bounded description, expected byte length and canonical full-object SHA-256. logical_name must name a declared file output; media type and size must satisfy its pinned declaration. Ownership and storage destination are inherited from the run. Publication does not finalize the run. No query parameters.

Media typeapplication/json
object
checksum
required
object
algorithm
required

Only sha256 is supported.

string
Allowed values: sha256
checksum_type
required

Only full_object is supported; multipart checksums are not accepted.

string
Allowed values: full_object
value
required

Canonical base64 of the 32-byte SHA-256 digest.

string
>= 44 characters <= 44 characters /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$/
expected_size_bytes
required
integer format: int64
<= 53687091200000
logical_name
required
string
media_type
required
string
scientific_metadata
required

Durable reservation. Equivalent retries keep the original reservation receipt; current state and temporary transfer instructions are fresh. A storage outage returns transfer.status=unavailable without losing the reservation.

Media typeapplication/json
object
completion
One of:
null
reservation
required

Immutable creation receipt. Kept independently of renewable transfer secrets and current state so the same user/key continues to identify the same upload.

object
artifact_id
required

Reserved identity. Readiness requires a separate successful completion.

string format: uuid
checksum
required
object
algorithm
required

Only sha256 is supported.

string
Allowed values: sha256
checksum_type
required

Only full_object is supported; multipart checksums are not accepted.

string
Allowed values: full_object
value
required

Canonical base64 of the 32-byte SHA-256 digest.

string
>= 44 characters <= 44 characters /^[A-Za-z0-9+/]{42}[AEIMQUYcgkosw048]=$/
created_at
required
string format: date-time
expected_size_bytes
required
integer format: int64
expires_at
required
string format: date-time
logical_name
required
string
media_type
required
string
scientific_metadata
required
storage_destination_id
required
string
upload_id
required
string format: uuid
state
required
string
Allowed values: pending expired completed
transfer
required
One of:
object
expires_at
required
string format: date-time
request
required

Send exactly this method, URL, and headers. Contains temporary authorization; serialize only for the authorized transfer recipient and never log it.

object
expires_in_seconds
required
integer format: int64
headers
required
Array<array>
method
required
string
url
required
string
status
required
string
Allowed values: available
Cache-Control
string

No-store

Location
string

/connector/v1/assignments/{assignment_id}/uploads/{upload_id}

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Malformed JSON, query parameters, or invalid/repeated/missing idempotency key.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Active connector credential required.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Unknown or unrelated assignment/upload.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Idempotency_conflict, output_upload_conflict, session_required, journal_conflict or invalid_transition. New uploads require collecting_results or uploading_results.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Request exceeds 64 KiB or the file exceeds the structural transport limit.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

JSON content type required.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Invalid_upload or invalid_outputs: invalid description, undeclared file output, unsupported media type or declaration byte limit.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

File admission or active transfer quota exhausted; keep the original operation and retry after capacity is reclaimed.

Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Upload operation unavailable, storage not configured, or upload_uncertain: retry the same key and request.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

An HTTP request failed; inspect the stable error code and request ID.

Media typeapplication/json

The common JSON body for errors returned by the HTTP application.

object
code
required

Stable machine-readable error code.

string
details
One of:
null
message
required

Safe explanation without internal errors or submitted input values.

string
request_id
required

Matches the response’s x-request-id header.

string
Cache-Control
string

No-store

x-request-id
string

Always present. A fresh server-generated UUID for this request; incoming IDs are ignored. On errors, this equals the response body’s request_id.

Documentation 205dcb3116ea · public sources 8c70356d340f · built .Download documentation identity.