shortText

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/raw

The 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 the Authorization header.

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, or private (needs a password).
  • expiry: never (default), 1h, 1d, or 30d.
  • 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