
Save a page from anything that can make an HTTP request, search everything you have ever saved, and get a signed webhook the moment a bookmark comes back with its screenshot, summary and tags.
https://api.webbites.io/v1/apiOne to save something, one to read it back. Authenticate with a key in a header, get JSON, done — there is no SDK to install and no OAuth dance to implement.
# Save a page
curl -X POST https://api.webbites.io/v1/api/bookmarks \
-H "Authorization: Bearer $WEBBITES_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://nuxt.com","tags":["reading"]}'
# Read it back
curl -G https://api.webbites.io/v1/api/bookmarks \
-H "Authorization: Bearer $WEBBITES_KEY" \
--data-urlencode "q=nuxt"Four things, and everything below is built out of them.
POST a URL and it lands in your library, enriched exactly like a save from the app: screenshot, summary, automatic tags.
POST /bookmarksFull-text search, filter by tag or type, and page through the whole library with a cursor.
GET /bookmarks?q=…Register an endpoint and we POST the finished bookmark to it, signed with HMAC-SHA256 so you can prove it came from us.
POST /webhooksYour plan, its limits and what you have spent this month, broken down by key.
GET /usage Connect Claude, ChatGPT, Cursor or VS Code to your library through the MCP server at https://api.webbites.io/mcp and search, save and organise by asking. No code, same allowance.
You post a URL. We fetch the page, screenshot it, summarise it and tag it, then hand the whole thing back — through a webhook if you registered one, or the next time you read the bookmark.
{
"id": "dlv_…",
"event": "bookmark.saved",
"createdAt": "2026-01-02T10:00:00.000Z",
"data": {
"id": "abc123", "url": "https://example.com", "title": "Example", "description": "…",
"type": "website", "tags": ["docs"], "note": "", "summary": "…",
"image": "https://…", "screenshot": "https://…", "favicon": "https://…",
"createdAt": "2026-01-02T10:00:00.000Z"
}
}All of these are an afternoon's work against two endpoints. The recipes have every one of them written out in full, in JavaScript and Python.
Drop a link in a channel and have it filed, tagged and summarised before anyone replies.
POST /bookmarksEverything you saved this week, grouped by tag, mailed to yourself on Friday.
GET /bookmarksBuild a page on your own site from a tag. New save, new entry, no CMS.
GET /bookmarks?tag=Star a repository, get a bookmark tagged with its language and description.
POST /bookmarksWrite every new save into Obsidian or Notion as markdown, summary and all, from a webhook.
bookmark.savedWalk the cursor once a night and keep your whole library as JSON on a disk you own.
GET /bookmarksA burst limit per minute and a total per month, both following your plan. Every response carries the headers that track them.
| Plan | Per minute | Per month |
|---|---|---|
| free | 60 | 1,000 |
| plus | 1,000 | 100,000 |
Over the limit you get a 429 with a Retry-After. Your own usage is on the usage page.
Guides, a playground, your keys and the full endpoint reference.
A key, a curl and a saved bookmark in about two minutes.
Six complete programs in JavaScript and Python: a Slack command, a digest, a reading list, a star mirror, a notes sync, a backup.
Every route, its parameters and a sample response.
Send a real request from the browser and read what comes back.
Keys are free on every plan, and the first request takes about a minute from here.