7 days free, live today on a shared address. Plans from £3.99 a month, own domains from £14 a year. →
HomeHow it worksFeaturesPricingCompareGuides Sign in

API reference

MCP server

Eighteen tools for an agent: read with any key, edit with an edit key.

#Connecting

The server is at https://peekin.bio/mcp. In Claude or ChatGPT, add that address as a custom connector: it asks you to sign in to peekin and approve read only, or read and make changes, and that is all. No key to copy. You can disconnect it from Dashboard › API.

Any other MCP client can send your API key as the bearer token instead, the same key the REST endpoints take. Make one at Dashboard › API.

Transport is Streamable HTTP: one endpoint, JSON-RPC 2.0 in, JSON out. There is no SSE, because nothing here streams. Every tool is a single question with a single answer.

{
  "mcpServers": {
    "peekin": {
      "url": "https://peekin.bio/mcp",
      "headers": { "Authorization": "Bearer pk_live_YOUR_KEY" }
    }
  }
}

#The tools

ToolWhat it answers
get_statsDaily views, taps and tap-through rate for your pages. Takes page and days (7, 28 or 90)
list_pagesEvery page on the account with its links: label, destination, active, and whether it sits behind the 18+ check
list_subscribersPeople who left an email address, newest first. Takes page
scan_linkAll nine checks against any public link page, including other platforms'. Takes url. Twenty an hour per key
get_pageOne page in full, with link and social ids. Takes page (id or slug)
get_analyticsViews, paid taps, social taps and people per day, and taps per link. Takes page, link, days
list_poplinksEvery poplink and where it goes
list_domainsYour domains, whether each is active, and the page each shows
check_slugWhether a page address is free

With an edit key, these as well:

ToolWhat it does
create_pageA new page, always a draft. Takes slug and optionally name, bio, theme
update_pageChange fields on a page: words, look, protection, capture, countdown, and its links and socials. Takes page and fields
duplicate_pageA paused copy with its links
add_link, update_link, remove_linkPaid links and socials, one at a time
update_links_bulkOne link on every page at once, by exact address or by platform, optionally only on pages with a tag. Lists what would change until it is sent with confirm: true
create_poplink, update_poplinkLinks on your own domain at /p/

#What an agent can and cannot do

An agent with an edit key can build a page, write its words, set its look and manage its links. It cannot make a page live on its own initiative: publishing, a new address, a domain, Shield and crawler mode all need "confirm": true in the same call, and a page only goes live on a plan that publishes. A read key gets every write tool back as an error.

It goes through the same checks as the dashboard, so the plan's caps apply and a destination that is not a web address is refused. Every change it makes is in the audit log on the Team screen, with the key that made it.

#When a call fails

A refused call comes back as a normal result with isError set and the API's own message in the content, not as a JSON-RPC error. A key that is out of quota is not a broken server, and telling an agent otherwise makes it give up instead of waiting.