Looking for a Bookmark Manager with a Real API? Here's What to Check

Cowpin

Cowpin

7/18/2026

#api #developers #bookmarks #pinboard #self-hosted
Looking for a Bookmark Manager with a Real API? Here's What to Check

If you've searched "bookmark manager with an API," you're probably not a casual user. You want to save from a script, pipe links in from another tool, build a personal dashboard, or just have the peace of mind that your data isn't locked behind a UI-only product. Fair asks — and surprisingly few bookmark apps take the API seriously.

What a real bookmarking API needs

Before picking a tool, check for these. A lot of "API available" claims turn out to be a thin read-only export endpoint.

  • Full CRUD, not just export. You should be able to add, edit, tag, and delete bookmarks programmatically — not just pull a JSON dump once a day.
  • Tags as first-class. Bulk tag operations (rename, merge, filter-by-tag) matter once you have thousands of links; a lot of APIs only expose a flat list.
  • Stable auth you control. A per-user API token you can rotate yourself, not a shared key or OAuth dance for a personal script.
  • Documented and versioned. If the only docs are "read the source," that's a tell the API is second-class internally too.
  • An import path, not just export. The API should be the same door you use to bring a whole existing library in, so migrating is a script, not a weekend project.

Pinboard set the bar here years ago — a clean, well-documented REST API that a whole ecosystem of third-party clients and scripts still depends on. If you're already comfortable with it, that's a real point in Pinboard's favor.

Raindrop.io has a modern REST API with OAuth, reasonably documented, aimed more at app developers than personal scripting.

Instapaper has a legacy API but it's read/archive-oriented — not built for managing a tagged reference library.

Linkding, being self-hosted and open-source, gives you full API access by definition (it's your server) — the cost is you're also the one running it.

Cowpin's approach

Cowpin ships a Pinboard-compatible API — the same endpoint shapes (posts/add, posts/get, posts/all, tags/get, and friends) that existing Pinboard scripts, browser extensions, and bookmarklets already speak. If you've written a script against Pinboard's API before, it should work against Cowpin by swapping the base URL and token — not a rewrite. See the full API reference for the endpoint list.

On top of that:

  • Per-user API tokens you generate and rotate from Settings — no shared secrets.
  • Full CRUD — add, edit, tag, delete, and bulk-fetch, all scriptable.
  • The same API powers import — the one-click Pinboard import runs through it, so it's proven against real libraries (tested with 13k+ real bookmarks), not a bolt-on demo.
  • Rate-limited but not throttled into uselessness — built for scripts and cron jobs, not just a UI backend.

A minimal example

# Add a bookmark
curl "https://www.cowpin.com/api/v1/posts/add?auth_token=$COWPIN_TOKEN&url=https://example.com&description=Example&tags=reading,later"

# List all bookmarks for a tag
curl "https://www.cowpin.com/api/v1/posts/all?auth_token=$COWPIN_TOKEN&tag=reading"

If you already have Pinboard scripts lying around, that's most of what you need to point them at Cowpin instead.

The honest caveat

An API is only as good as its docs and its staying power — ours is new, so it hasn't had a decade of third-party tools built on top of it the way Pinboard's has. What we can promise is that it's not an afterthought: it's the same path imports and the product itself use, so it gets exercised and fixed like any other core feature, not left to rot.

If a scriptable, tag-first bookmark manager with an API you actually control is what you're after, take a look — or read the API reference first and judge for yourself.