---
title: "Get Or Create Default Namespace"
method: POST
path: "/v1/templates/scaffolds/default"
tags: ["Scaffold Templates"]
---

# Get Or Create Default Namespace

`POST /v1/templates/scaffolds/default`

Get or create the default universal namespace.

Returns the existing default namespace if one exists, or creates a new one
using the universal template. This is the primary onboarding entry point —
Studio calls this on first upload to ensure a namespace exists without
requiring the user to choose a template.

The default namespace supports all file types (video, image, audio, PDF, text)
with pre-configured extractors and a universal retriever.

If the request carries an `X-Namespace` header that resolves to an existing
writable org namespace (e.g. one just created via the wizard), the scaffold
is provisioned into THAT namespace instead of creating a "default" one.

## Response `200`

Successful Response

- InstantiatedScaffoldResponse — Response after successful scaffold instantiation. Contains IDs and names of all four created resources. Use these IDs for subsequent operations: - Upload data: POST /v1/buckets/{bucket_id}/objects - Process: POST /v1/collections/{collection_id}/batches - Search: POST /v1/retrievers/{retriever_id}/retrieve
  - `namespace_id` string, required — Created namespace ID (ns_xxx)
  - `namespace_name` string, required — Created namespace name
  - `bucket_id` string, required — Created bucket ID (bkt_xxx)
  - `bucket_name` string, required — Created bucket name
  - `collection_id` string, required — Created collection ID (col_xxx)
  - `collection_name` string, required — Created collection name
  - `retriever_id` string, required — Created retriever ID (ret_xxx)
  - `retriever_name` string, required — Created retriever name
  - `template_id` string, required — Scaffold template ID used
  - `status` string — Status: 'created' for a synchronous (empty) instantiation, 'cloning' when sample data is cloning in the background
  - `task_id` string, nullable — Background clone task id when status='cloning' — poll the task, or GET the namespace and read clone_status, to track sample-data progress. Null for synchronous (empty) instantiation.
  - `created_at` string, date-time — UTC timestamp of creation

## Other responses

- `400` — Bad Request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not Found
- `422` — Validation Error
- `500` — Internal Server Error

---

[API](https://skmtc.net/mixpeek/apis/mixpeek-api.md) · [All operations](https://skmtc.net/mixpeek/apis/mixpeek-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/mixpeek/mixpeek-api/versions/220a3b263fda/schema)
