curl. Paste.
Done.
Create a ShareNotes note from a script, a CI pipeline, or your terminal — one POST request, no API key, no account. Pipe a log file in, get a shareable link back. Free, 20 requests a day per IP.
Built for scripts, not for sign-ups.
No API keys, none to leak.
Nothing to provision, store in a secrets manager, or rotate. The endpoint is open — rate limiting is the only gate.
No CAPTCHA to solve.
The web editor uses reCAPTCHA; the API doesn't, because a CI runner can't click a checkbox. That's exactly what this endpoint is for.
20 a day, free.
Per IP address, no tiers, no upsell. Enough for a script that posts a daily log digest or a CI job that shares a failing build's output.
Two endpoints. That's the whole API.
Send your content as a raw text/plain body, or as JSON if you want a custom slug, an expiry timer, or PIN protection.
Response — 201 Created:
20 requests per day per IP address. Every response includes RateLimit-* headers showing your remaining quota for the window. Exceeding the limit returns 429.
Returns the same note shape the editor itself uses: content, updatedAt, passwordRequired, title, expiresAt. 404 if the slug doesn't exist, 410 if it expired.
Answers, briefly.
Do I need an API key?
No. The API is public and unauthenticated — there's no key to request, store, or rotate. Abuse is controlled purely by a per-IP rate limit.
What's the rate limit, and can I get more?
20 POST requests per day per IP address. There's currently no paid tier to raise that limit — it's a flat free limit for everyone.
Can I set an expiry or password through the API?
Yes, if you send a JSON body instead of plain text. Include expiresIn (one of 1h, 24h, 7d, 30d) for a self-destruct timer, or password plus passwordMode to PIN-protect the note.
Is there an official client library?
No — it's a plain REST API, so any HTTP client or curl works. There's no SDK to install.
Is the API stable? Will it change without warning?
The endpoint is versioned at /api/v1/ specifically so it can stay stable. Any breaking change would ship under a new /api/v2/ path rather than altering v1's behavior.
Why use text/plain instead of JSON?
It's the simplest way to pipe a file straight into a note from a shell script — curl --data-binary @file.txt with a text/plain Content-Type, no JSON escaping required. Use JSON only when you need options like a custom slug or expiry.