API Reference
Two endpoints. That's the whole API.
/v1/publishPublish an artifact and receive a shareable URL.
Request Body (JSON)
contentstringrequiredThe artifact content. For text types, send as a UTF-8 string. For binary types (PDF, images), send as a base64-encoded string.
content_typestringMIME type. Defaults to text/plain. Supported: text/plain, text/markdown, text/html, application/pdf, image/png, image/jpeg, image/webp.
ttl_secondsintegerTime-to-live in seconds. Min: 1, Max: 604800 (7 days). Defaults to 604800.
{
"content": "# Hello\nWorld",
"content_type": "text/markdown",
"ttl_seconds": 86400
}/a/:idRetrieve a published artifact by its ID.
Path Parameters
idULIDrequiredThe 26-character artifact ID returned from the publish endpoint.
Response Headers
Content-TypeheaderMatches the content type set during publish.
X-Content-Type-OptionsheaderAlways nosniff.
Cache-Controlheaderpublic, max-age=3600
Returns the raw artifact content with the correct Content-Type header. If the artifact has expired or doesn't exist, returns 404.
Error Codes
Invalid request body, missing content, or malformed artifact ID.
Artifact not found or expired.
Payload exceeds 10 MB limit.
Content type not in the supported list.
Rate limited. 30 requests per minute per IP. Check the Retry-After header.
Rate Limits
The API enforces a sliding window rate limit of 30 requests per minute per IP address. When exceeded, the server returns 429 Too Many Requests with a Retry-After header indicating how many seconds to wait.