For AI agents · Free · No API key

Discord link shortener your agent can call

One request turns a cover image and up to five buttons into a short link. Paste it in Discord and it unfurls as a card with real buttons. No cover? You get a clean buttons-only card.

Create a Discord embed link

curl -X POST https://www.tinycord.com/api/v1/links \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/launch",
    "title": "Launch day",
    "description": "v2 is live. Grab it before Friday.",
    "image": "https://example.com/cover.png",
    "buttons": [
      { "label": "Buy", "url": "https://example.com/buy", "emoji": "🛒" },
      { "label": "Docs", "url": "https://example.com/docs", "emoji": "📘" }
    ]
  }'

The response is the link to post and a token to edit it later:

{
  "url": "https://www.tinycord.com/p/k7m2xqa",
  "slug": "k7m2xqa",
  "embed_json": "https://www.tinycord.com/p/k7m2xqa/embed.json",
  "preview": "https://www.tinycord.com/p/k7m2xqa?stay=1",
  "edit_token": "tc_…",
  "attribution": "Free cards end with a small \"Made with Tinycord\" link. …",
  "next": "Paste https://www.tinycord.com/p/k7m2xqa in a Discord message. …"
}
tinycord.com/p/k7m2xqa

Launch day

v2 is live. Grab it before Friday.



Made with Tinycord

Approximate Discord preview

No cover image? Just buttons

Leave out image and the card is text and buttons. Leave out title as well and it is only buttons — a link-in-bio row for any message.

curl -X POST https://www.tinycord.com/api/v1/links \
  -H "Content-Type: application/json" \
  -d '{ "buttons": [
    { "label": "Website", "url": "https://example.com" },
    { "label": "Book a call", "url": "https://cal.com/you" }
  ] }'
tinycord.com/p/w4hn8rz
Approximate Discord preview

Connect over MCP

Remote MCP server at https://www.tinycord.com/mcp. Streamable HTTP, no auth. Tools: create_discord_link and update_discord_link.

{
  "mcpServers": {
    "tinycord": { "type": "http", "url": "https://www.tinycord.com/mcp" }
  }
}
claude mcp add --transport http tinycord https://www.tinycord.com/mcp

Fields

url https URL
Destination. Browser clicks on the short link go here; Discord still shows the card. Becomes an Open button when you send no buttons.
title string ≤180
Bold heading. Leave out for a buttons-only card.
description string ≤2000
Body text. Discord markdown works.
image https URL
Cover image. Leave out and the card is text and buttons only.
buttons array ≤5
Each { label, url, emoji? }. https only.
color hex
Accent bar, e.g. #5865F2.
slug string ≤48
Custom path. Random 7 characters when left out.

Send a url, at least one button, or both.

Update the same link

PATCH with the edit token replaces the card. The URL in old messages stays the same; Discord shows the new card after its recrawl, usually about 30 minutes.

curl -X PATCH https://www.tinycord.com/api/v1/links/k7m2xqa \
  -H "Authorization: Bearer tc_…" \
  -H "Content-Type: application/json" \
  -d '{ "title": "Launch day — sold out", "buttons": [{ "label": "Waitlist", "url": "https://example.com/wait" }] }'

Free, with a link back

Every free card ends with a small “Made with Tinycord” line. That is the whole price: no key, no quota page, no card on file. Want it gone? Pro removes it from cards made in the editor.

Machine-readable: agents.md (skill file) · openapi.json · llms.txt

Questions

Yes. Tinycord gives any app or AI agent a free short link at tinycord.com/p/{slug} that Discord unfurls as a card with a cover image and up to five real link buttons. No account or API key. Free cards end with a small "Made with Tinycord" link.

Rather click than curl?

Build the same card in the editor with a live Discord preview.

Create a card