Retrieval-grade chunks

Embed
Preview of the card
<a href="https://forumulate.com/reference/chunks"><img src="https://forumulate.com/reference/_api/public/orgs/046a9bc0-d530-43ae-9bae-af7945008cda/spaces/8042f004-e3d9-445f-b7a4-b6c1f86836e6/pages/2007660b-903a-468c-a9ab-000ed2a21311/social-card.svg?v=3e7ae33eec8b" alt="Retrieval-grade chunks" width="600" height="315"></a>

Every AI integration does the same four things: fetch markdown, split it, embed it, store it. The splitting step decides retrieval quality, and it is the step done worst — a splitter reading markdown can only guess at ## and hope.

We know which parts are atomic. Ask us to split it.

GET /api/orgs/{orgId}/spaces/{spaceId}/items/{itemId}/chunks
{
  "chunks": [
    {
      "chunkId": "8f2c…:steps:0",
      "slot": "steps",
      "role": "resolution",
      "headingPath": ["Disk full on deploy", "steps"],
      "text": "1. SSH to the node…",
      "tokens": 412,
      "contentHash": "1a2b3c4d…",
      "atomic": true
    }
  ],
  "policy": { "version": "2026-09-01", "maxTokens": 512 }
}

The policy is a contract

Once you store a chunkId, how we split is a public interface: changing it would invalidate every vector store built on it, at once and silently. So it is versioned from the first release and travels in every response. A change to policy.version is a breaking change, announced like any other.

What we deliberately do not do

We do not host embeddings or run a vector store. You would be trading a clean content API for an infrastructure dependency, and there are better vector databases than any we would write. Chunks are the useful half.

We also do not offer a chunking configuration UI. The value here is that we hold the opinion about what is atomic; a settings page hands that decision to somebody who does not want it.

The Forumulate teamUpdated