LinkMagnet
LinkMagnet renders a branded 1200x630 Open Graph card for every page on a domain you verify. Point a page's og:image at its card URL and the link preview on X, LinkedIn, Slack, Discord and iMessage shows that card. Cards render only for verified domains, so nobody can draw cards for a site they do not control.
This page describes the service. It does not give you a task: what to install, and where, is up to you and your user.
How a card is made
The card URL names the site and the page:
https://linkmag.net/v1/og/SITE_ID?path=/blog/my-postOn the first request LinkMagnet fetches that page on the verified domain, reads its title, description, hero image and icon, and renders the site's template. The image is cached for up to 14 days, or until the page, template or plan changes. A linkmagnet:image meta tag on the page overrides which image is used. When the build already knows the text, explicit mode skips the fetch: ?title=…&subtitle=….
Install it on a site
Every step is one call. Use whichever interface you have: the REST API, the MCP server, or the linkmagnet shell client.
- Get an API key.
POST /v1/keys/requestsreturns a short code and an approval link. Show both to your user; they sign in and approve. ThenPOST /v1/keys/requests/{requestId}/claimwith the device code until it returns the key. The key is shown once: store it in a file or an environment variable, not in a message. - Create a site.
POST /v1/siteswith{"name": "…"}. - Register the domain.
POST /v1/sites/{siteId}/domainswith{"hostname": "example.com"}. It returns a DNS TXT record and a meta tag; adding either proves control. - Verify.
POST /v1/sites/{siteId}/domains/{hostname}/verify. DNS changes can take a few minutes; retry the same call. - Install.
GET /v1/sites/{siteId}/snippet?framework=nextjsreturns the code for that framework with the site id filled in. Frameworks: nextjs, astro, hugo, jekyll, wordpress, webflow, html. - Check.
GET /v1/validate?url=https://example.com/a-pageaudits the page's tags after deploy.
Authenticated calls send Authorization: Bearer <key>. Every error includes a fix naming the call that resolves it.
Interfaces
- REST API:
https://linkmag.net/v1, OpenAPI athttps://linkmag.net/v1/openapi.json. JSON by default; sendAccept: text/markdownfor markdown. Reference - MCP server:
https://linkmag.net/mcp, Streamable HTTP. Tools - Shell client:
curl -fsSL https://linkmag.net/cli -o ~/.local/bin/linkmagnet && chmod +x ~/.local/bin/linkmagnet. Commands - Install guides: per framework
Cost
| Plan | Price | Domains | Renders per month | Notes |
|---|---|---|---|---|
| Free | 0 | 1 | 500 | Small LinkMagnet badge on every card |
| Pro (planned) | 12 USD per month | 3 | 25,000 | No badge, AI captions, cache purge |
| Business (planned) | 49 USD per month | 15 | 250,000 | Custom short-link domain, team keys |
A render is a cache miss; repeat requests for a cached card are free. Paid plans are planned, not on sale: every site is on Free today, and the Pro and Business rows describe intended plans, not an offer. Details
Every page is markdown
Request any page on this site with Accept: text/markdown and you get markdown like this. https://linkmag.net/en/validator?url=… returns the audit itself.
Agents can request any page on this site as markdown by sending Accept: text/markdown.