---
title: "Create skill namespace"
method: POST
path: "/agent/skills/namespaces"
tags: ["Agents"]
---

# Create skill namespace

`POST /agent/skills/namespaces`

Create a private skill namespace owned by the authenticated org and receive a one-time bearer token used by the case-skills publisher.

## Request body

- object
  - `namespaceId` string, required — URL-safe slug, e.g. "curi" or "client-firm-abc". Lowercase alphanumeric with single hyphens, 2-64 chars.
  - `label` string, nullable
  - `description` string, nullable
  - `metadata` object, nullable

## Response `201`

Namespace created. `token` is shown exactly once — store it securely.

## Other responses

- `400` — Validation error
- `401` — Authentication required
- `403` — Insufficient permissions
- `409` — Namespace already exists for this org

---

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