---
name: tapmy-link
description: Create and maintain a link-in-bio page for a person on Tapmy.link (free, own subdomain) — register, build, publish and hand over in one HTTP call, no browser and no account needed up front. Use when someone asks for a "link in bio", a "links page", a "Linktree alternative", or a one-page site with their links and socials.
metadata:
  version: "1.0"
  homepage: https://tapmy.link
  documentation: https://tapmy.link/documentation/agents.md
  openapi: https://tapmy.link/openapi.json
  mcp: https://tapmy.link/mcp
---

# Tapmy.link

Tapmy.link hosts one-page link sites at `name.tapmy.link`. You can create one for a person with a single request and give them a link that makes the account theirs. Read `https://tapmy.link/documentation/agents.md` once; it links to everything.

## When to use

- The person wants a page with their links and socials (a "link in bio").
- They want to move off Linktree, Taplink, Beacons or similar (`importFromUrl` copies the links).
- They want you to keep such a page updated over time (keep the API key).

## Can you make requests?

- **Yes (HTTP tool, code execution with network, MCP):** do the whole procedure below yourself. Creating a page needs no account, key or approval. Never ask the person to run commands.
- **GET only, or no network:** ask the questions, compose the JSON body from the shape below, and give the person a one-click link — `https://tapmy.linknew?p=<base64url of the JSON>` — plus the JSON itself. They open it, see a preview, set a password and tap Create. Details: `https://tapmy.linkdocumentation/agents/no-network.md`.

## Procedure

1. **Collect what only they know.** The address they want (3–30 chars, a–z 0–9 hyphens), display name, a one-sentence bio, the links (label + URL), social profile URLs, a photo URL if any, and whether anything is 18+. Ask; do not invent.
2. **Check the name.** `GET https://tapmy.linkapi/username/check?u=<name>`. If taken, show the `suggestions` and ask — do not pick one for them.
3. **Validate.** `POST https://tapmy.linkapi/agent/pages/validate` with the full body. Fix every item in `errors`.
4. **Create.** `POST https://tapmy.linkapi/agent/pages` with the same body and an `Idempotency-Key` header. Omit `email` unless the person gave you one and asked for an account with it. Save `apiKey`, `claimUrl`, `url` and `profile.id` from the response.
5. **Verify.** `GET https://<name>.tapmy.link/page.md`. Confirm every block is there and every URL is right. Fix with `PATCH https://tapmy.linkapi/profiles/{id}` (Bearer key).
6. **Hand over.** Send the person `handoverMessage` from the response, or your own text with the page URL and the claim link. Tell them the claim link works for 30 days and that the page is already live.

## Requests

```http
POST https://tapmy.linkapi/agent/pages
Content-Type: application/json
Idempotency-Key: <any unique string>

{ "username": "anna-bakes", "locale": "en",
  "page": { "displayName": "Anna Bakes", "bio": "…", "templateId": "editorial",
            "blocks": [ { "type": "link", "label": "Order", "url": "https://…", "featured": true },
                        { "type": "socialRow", "items": [ { "platform": "instagram", "url": "https://instagram.com/…" } ] } ] },
  "avatarUrl": "https://…/photo.jpg" }
```

Block types: `link` (url may be https://…, tel:+… or mailto:…), `socialRow`, `social`, `messenger`, `embed`, `text`. Full reference: `https://tapmy.linkdocumentation/agents/blocks.md`. Platform ids: `https://tapmy.linkdocumentation/agents/platforms.md`. Templates: `https://tapmy.linkdocumentation/agents/templates.md`.

## Guardrails

- One page unless asked for more. A program may make ten per account; the owner adds more by hand.
- Set `"adult": true` on any link to adult content. Always.
- Never publish content the person did not ask for; use their words.
- The claim link is the account. Give it only to the person; never put it anywhere public.
- Errors are `{ code, hint }`. Read `hint`; it says what to do. `429` means wait `retryAfter` seconds.
- Send a User-Agent that names your product.

## Reference

- Documentation (Markdown): https://tapmy.linkdocumentation/agents.md
- OpenAPI: https://tapmy.linkopenapi.json
- MCP server: https://tapmy.linkmcp — tools `create_page`, `update_page`, `get_page`, `publish`, `get_stats`, `get_claim_link` and more. Every account-bound tool accepts an `api_key` argument.
