---
title: "Create a dataset"
method: POST
path: "/api/v1/datasets"
tags: ["datasets"]
---

# Create a dataset

`POST /api/v1/datasets`

## Request

- Base URL: `https://koskamo.com`
- URL: `https://koskamo.com/api/v1/datasets`
- Auth: HTTP bearer

Requires a ksk_live_ bearer key. Rate limit: 10 requests per minute per IP. Each key may own at most 20 datasets.

## Request body

- object
  - `name` string, required
  - `slug` string: Defaults to a slugified form of name
  - `description` string
  - `visibility` 'public' | 'private'

## Response `201`

Dataset created

- object
  - `dataset` object, required
    - `id` string, uuid, required
    - `slug` string, required
    - `name` string, required
    - `description` string, required
    - `visibility` 'public' | 'private', required
    - `version` integer, required: Increments every time a document write goes live
    - `documentCount` integer, required
    - `createdAt` string, date-time, required
    - `publisher` string: Publisher attribution, when supplied
    - `license` string: Reuse information, when supplied; consult the original source
    - `reviewedAt` string, date-time: Editorial review date, when supplied
    - `readOnly` boolean: Application-maintained reference datasets do not accept API revisions
    - `managedBy` 'mcp-directory' | 'use-cases': Documents mirror another Koskamo system of record and change only there; API revisions are refused

## Other responses

- `400`: Invalid body or validation failure
- `401`: API key required
- `403`: Access denied (trusted ingress required)
- `409`: A dataset with that slug already exists
- `429`: Rate limited (10 requests per minute per IP)

---

[API](https://skmtc.dev/koskamo/apis/koskamo-agent-api.md) · [All operations](https://skmtc.dev/koskamo/apis/koskamo-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/koskamo/apis/koskamo-agent-api/revisions/c7761a377e7b?raw)
