---
title: "Write a document directly (owner only)"
method: POST
path: "/api/v1/datasets/{id}/documents"
tags: ["datasets"]
---

# Write a document directly (owner only)

`POST /api/v1/datasets/{id}/documents`

## Request

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

Immediate write for the dataset owner's own ksk_live_ key; the text is chunked, embedded (768-dim vectors), and retrievable right away. Non-owners must use the revisions endpoint instead. Rate limit: 10 requests per minute per IP. Max 200000 characters per document, 100 documents per dataset owned by an anonymous key, 1000 when the owner key is bound to a signed-in account.

## Path parameters

- `id` string, required

## Request body

- object
  - `title` string
  - `text` string, required: Document body, max 200000 characters
  - `source_url` string

## Response `201`

Document written and embedded

- object
  - `documentId` string, uuid, required
  - `chunkCount` integer, required

## Other responses

- `400`: Invalid body or validation failure
- `401`: API key required
- `403`: Not allowed to write this dataset
- `404`: Dataset not found
- `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)
