Public API v1 — remote text filesystem
Every note is a file. Build agents, automations, and alternative editors over HTTP with a txt_ key. Local editing needs no account; dots sign-in unlocks sync + API access.
agent memory
Read workspace context, write research, create plans, and connect related notes.
group skills
Publish Claude and Codex SKILL.md trees into a shared folder teammates can pull.
automation
Capture meetings, email, forms, logs, release notes, and generated reports.
collaboration
Let bots leave comments and suggestions instead of silently overwriting text.
custom clients
Build terminal, mobile, publishing, and knowledge tools on one text filesystem.
Filesystem verbs
discover GET /api/v1 list GET /api/v1/files?limit=50 read GET /api/v1/files/:id raw GET /api/v1/files/:id/raw write PUT /api/v1/files/:id create POST /api/v1/files scan POST /api/v1/transcriptions unlink DELETE /api/v1/files/:id readdir GET /api/v1/folders/:id mkdir POST /api/v1/folders comment POST /api/v1/files/:id/comments suggest POST /api/v1/files/:id/suggestions connect POST /api/v1/files/:id/connections commit POST /api/v1/files/:id/versions skills GET /api/v1/skills share POST /api/v1/shares folder POST /api/v1/folders/:id/share changes GET /api/v1/changes?cursor=0 batch POST /api/v1/batch sync POST /api/v1/sync events POST /api/v1/webhooks device POST /api/v1/devices pin PUT /api/v1/devices/:id/state
Full-client sync uses a durable cursor feed with delete tombstones and ordered batch writes. Devices register once and carry per-file availability — online-only, available, or pinned — Dropbox-style, per device. Single-file polls still honor If-None-Match → 304 when unchanged. Listings never include file bodies. Writes support If-Match, and retryable mutations support Idempotency-Key.
Integrate
- Mint a key at /sync (sign in with dots once).
- Paste
TXT_BASE_URL+TXT_API_KEYinto your app. - Point agents at /llms.txt for the full integrate cookbook.
curl ${TXT_BASE_URL}/api/v1/files?limit=50 \
-H "Authorization: Bearer ${TXT_API_KEY}"Keys can be scoped, set to expire, rotated, and revoked. v1 responses include request IDs and rate-limit headers; browser clients receive CORS headers.