Skip to main content
POST
Apply Manifest

Authorizations

Authorization
string
header
required

Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing header returns 403; an invalid or revoked key returns 401.

Query Parameters

dry_run
boolean
default:false

Validate only, don't create resources

mode
enum<string>
default:create_only

create_only (default): fail if any resource already exists. create_missing: create what is missing and leave what exists alone, which is what lets a manifest be applied to an EXISTING namespace. create_missing does not UPDATE anything — a resource that exists but differs from the manifest is reported as exists and left untouched. upsert: create what is missing AND patch what exists but differs, so re-applying a manifest brings the running resources back to what it declares. Each resource is patched only through its own update surface, so a field that surface does not accept, or refuses the value of, is reported in refused with the resource and the field named, and the rest of the manifest still applies. Explicit on purpose: this is the only mode that CHANGES resources that already exist.

Available options:
create_only,
create_missing,
upsert

Body

multipart/form-data
manifest_file
file
required

YAML manifest file

Response

Successful Response

Result of applying a manifest.

success
boolean
required

Whether all resources were created successfully

resources
ResourceResult · object[]

Results for each resource

created_count
integer
default:0

Number of resources created

failed_count
integer
default:0

Number of resources that failed

skipped_count
integer
default:0

Number of resources skipped

updated_count
integer
default:0

Resources that existed, differed, and were PATCHED to match. Only ever non-zero under upsert. Counted separately because without it an upsert that changed five running resources reports created 0, failed 0, skipped 0, a summary that reads as nothing having happened.

errors
string[]

Error messages

warnings
string[]

Non-fatal issues found while PARSING the manifest, chiefly keys the parser had to drop. the parser already detects these and /validate and /lint already surface them, but /apply computed them and threw them away — so anyone applying without validating first got a 201 and no hint that part of their manifest was ignored. A collection-level field_passthrough: is the case that cost a customer POC: detected, described, discarded.

rollback_performed
boolean
default:false

Whether a rollback was ATTEMPTED after a failure. this used to read as 'the namespace was returned to its prior state', which it does not mean — rollback deletes only namespaces and buckets today, so any other resource created before the failure SURVIVES. Read rollback_orphans to find out what is still there.

rollback_orphans
string[]

Resources created before the failure that rollback did NOT delete, as '/'. Non-empty means the namespace is in a PARTIAL state and a straight retry will hit AlreadyExists on these. previously these were silently skipped while rollback_performed=true claimed otherwise, which is the state that had to be unpicked by hand on the Radio-Canada POC.

dry_run
boolean
default:false

Whether this was a dry run (no changes made)