shortText for developers & agents
A small HTTP API and an MCP server. Reading is open to anyone; creating needs an API key. Bodies are plain Markdown — no markup, no tracking.
Read a shortText — no key
Every shortText lives at shorttext.com/{slug}. Read it as JSON or plain text:
# JSON: body + metadata
curl https://shorttext.com/api/paste/abc12345
# Raw Markdown as text/plain (great for pipes)
curl https://shorttext.com/abc12345/rawThe JSON response is { slug, url, body, visibility, viewCount, createdAt, expiresAt, … }. Private shortTexts need the password via a ?password=… query param or an X-Password header. A read counts as a view and consumes a burn-after-read shortText — exactly like opening the URL in a browser.
MCP server
Add https://shorttext.com/mcpto any MCP-capable client (Claude and others). It’s a stateless Streamable-HTTP server (JSON-RPC 2.0) with two tools:
read_shorttext{ slug, password? } — open to all.create_shorttext{ body, visibility?, password?, expiry?, burnAfterRead? } — needs an API key in theAuthorizationheader.
Create a shortText — API key
Send your key as a bearer token. Keys bypass the bot check and are rate-limited per key.
curl -X POST https://shorttext.com/api/paste \
-H "Authorization: Bearer st_live_…" \
-H "Content-Type: application/json" \
-d '{"body":"hello from my agent","visibility":"unlisted"}'
# → { "slug", "url", "editUrl", "editCode" }Store the returned editCode— it’s the only way to edit later (PUT /api/paste/{slug} with { body, editCode }).
Request a key: email us with a one-line description of your client. Reads need no key, so you can start integrating today and request a key when you’re ready to write.
Options & limits
visibility:public(default),unlisted, orprivate(needs a password).expiry:never(default),1h,1d, or30d.burnAfterRead: delete after the first view.- Bodies up to 30,000 characters. Markdown is rendered.
- Reads are CORS-open; writes are rate-limited per key.
Specs
- OpenAPI: /openapi.json
- LLM overview: /llms.txt