Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mixpeek.com/docs/llms.txt

Use this file to discover all available pages before exploring further.

Operations: authentication with API keys and namespaces, document ACL for row-level security, webhooks for event subscriptions, manifests for config-as-code

Authentication

Every request requires a Bearer token and namespace header:
Authorization: Bearer sk_live_...
X-Namespace: ns_production
API keys are scoped to an organization. Namespaces provide the authorization boundary — use separate namespaces for dev, staging, and production.

Document Access Control

Apply row-level security to documents with ACL rules. Filter results by user roles or attributes at query time without changing retriever logic. Document ACL API →

Webhooks

Subscribe to events like batch.completed, document.created, or alert.triggered:
curl -X POST "https://api.mixpeek.com/v1/webhooks" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "webhook_name": "batch-notify",
    "url": "https://example.com/webhook",
    "events": ["batch.completed", "batch.failed"]
  }'
Webhook API →

Manifests

Declare your entire namespace configuration as code — buckets, collections, retrievers, taxonomies — and apply it in one request:
# Export current state
curl "https://api.mixpeek.com/v1/manifest/export" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID"

# Apply a manifest
curl -X POST "https://api.mixpeek.com/v1/manifest/apply" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID" \
  -H "Content-Type: application/json" \
  -d @manifest.json
Use POST /v1/manifest/diff to preview changes before applying. Manifest API →

Lineage & Audit Traces

Every document links back to its source, and every retriever execution produces an auditable trace.

Document Lineage

Track how a document was created — which object it came from, which collection processed it, and what features were extracted:
curl "https://api.mixpeek.com/v1/documents/$DOCUMENT_ID/lineage" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID"
Returns the full decomposition tree: source object → batch → extracted documents. Use this to trace any search result back to the original file.
# Get all documents derived from a source object
curl "https://api.mixpeek.com/v1/objects/$OBJECT_ID/derived" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID"
Lineage API →

Retriever Execution Traces

Every retriever execution captures a full trace — which stages ran, what scores were produced, which documents were dropped and why:
curl "https://api.mixpeek.com/v1/retrievers/$RETRIEVER_ID/executions/$EXECUTION_ID" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "X-Namespace: $NAMESPACE_ID"
A trace includes:
  • Which retriever version and config were used
  • Each stage’s input parameters, output set, scores, and latency
  • Which feature URIs and collections were consulted
  • Which filters matched and which documents were eliminated
  • The final result set with per-document provenance
Traces are replayable — if a model version or taxonomy changes, you can compare results against historical executions. Execution API → · Explain API →

Storage Tiering

Documents automatically tier across storage levels based on access patterns:
TierBackendUse case
HotQdrant (in-memory)Frequently queried data
WarmS3 VectorsOccasional queries, lower cost
ColdS3 rawArchival, rare access
ArchiveMetadata-only lineageCompliance retention
The same feature URI resolves across all tiers — no application code changes needed.

Environment Branching

Clone namespaces to create isolated environments for testing:
curl -X POST "https://api.mixpeek.com/v1/namespaces/$NS_ID/clone" \
  -H "Authorization: Bearer $MIXPEEK_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "namespace_name": "staging-branch" }'
Branched namespaces share no state with the source — safe for experimentation. Clone API →