---
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

## Changes

- **2026-05-19** `5b7e64e6d6f9` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/casemark/apis/case-dev-api/changes/agent/skills/namespaces/post.md)

---

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