Skip to content

Register one file's ManifestID from its terms

POST
/v1/datasets/upload/register-content-manifest
curl --request POST \
--url https://example.com/v1/datasets/upload/register-content-manifest \
--header 'Content-Type: application/json' \
--data '{ "repo_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "name": "example", "file_format": "generic", "terms": [ { "blob_id": "example", "offset_in_blob": 1, "length": 1 } ], "expected_raw_blake3": "example", "expected_raw_sha256": "" }'

Mint a durable ManifestID for ONE already-staged file, with no publication and no visible ref move.

The git clean filter needs a manifest identity to write into an LFS pointer at git add time, when no commit — and possibly no tree — exists yet. Unary and polling-free: QDS expands the terms against its own sealed blob directories, reruns the canonical chunker, and returns the same receipt shape whole-tree staging mints. Replaying identical terms is idempotent.

x-api-key
string | null
Media type application/json
RegisterContentManifestBody

One file’s terms, registered as a durable ManifestID (git-filter clean).

Deliberately NOT a publication: git add needs a manifest identity to write into its LFS pointer long before a commit exists, and paying for a whole-tree operation per staged file is what the v4 filter did wrong.

object
repo_id
required
string format: uuid
name
required
string
file_format
string
default: generic
terms
required
Array<object>
>= 1 items
ManifestTermBody

One contiguous run of chunks inside one blob, named as a byte range.

The blob seal proves offset_in_blob is a dense prefix sum of length over the directory ordinal, so a range of ordinals is exactly one range of bytes and the two spellings carry the same fact.

object
blob_id
required
string
/^[0-9a-f]{64}$/
offset_in_blob
required
integer
length
required
integer
>= 1
expected_raw_blake3
required
string
/^[0-9a-f]{64}$/
expected_raw_sha256
string
"" /^(?:|[0-9a-f]{64})$/

Successful Response

Media type application/json
Example generated
example

Validation Error

Media type application/json
HTTPValidationError
object
detail
Array<object>
ValidationError
object
loc
required
Location
Array<string | integer>
msg
required
Message
string
type
required
Error Type
string
input
ctx
Context
object
Example generated
{
"detail": [
{
"loc": [
"example"
],
"msg": "example",
"type": "example",
"input": "example",
"ctx": {}
}
]
}