Buyro API
Make Buyro links from your own bot or script, and get the post ready to publish. The same links, numbers and earnings as in the bot.
1. Get a key
Create a key in Settings, API keys and send it with every request:
Authorization: Bearer byr_...Keep it secret. A key can make links and read your numbers. It cannot change where your money goes or delete the account, and posting into your channels stays with the bot, because only Telegram can vouch that a channel is yours.
All of this is also an OpenAPI file, for tools that read one (Make, Zapier, generated clients):
https://buyro.app/api/v1/openapi.json2. Make a link
Send a product address. It comes back as your short link, with the product and the post the bot would publish. Your own words (note) open the post; locale picks Hebrew (he) or English (en).
curl -X POST https://buyro.app/api/v1/links \
-H "Authorization: Bearer $BUYRO_KEY" \
-H "content-type: application/json" \
-d '{"url": "https://www.aliexpress.com/item/1005006123456789.html",
"note": "Bought one, it is great",
"locale": "en"}'The answer (shortened):
{
"link": { "shortCode": "x7Ab3kQ", "shortUrl": "https://buyro.link/x7Ab3kQ",
"monetized": true, "network": "aliexpress" },
"product": { "title": "...", "priceMinor": 4990, "currency": "ILS", "imageUrl": "https://..." },
"post": {
"telegram": "🔥 <b>...</b>\n\n💰 <b>₪49.90</b> ...\n\n🛒 ... https://buyro.link/x7Ab3kQ",
"whatsapp": "🔥 *...*\n\n💰 *₪49.90* ...\n\n🛒 ... https://buyro.link/x7Ab3kQ"
}
}post.telegram is HTML for sendMessage or sendPhoto with parse_mode HTML. post.whatsapp uses WhatsApp's own marks. Links to AliExpress earn; a store we do not support yet answers store_not_supported.
Post to your channel
Post one of your links in a channel you connected, now or at a time you choose, up to 14 days ahead. You connect the channel once in the bot, because only Telegram can confirm it is yours; its chatId comes from the channel list.
GET https://buyro.app/api/v1/me/channels
curl -X POST https://buyro.app/api/v1/me/posts \
-H "Authorization: Bearer $BUYRO_KEY" \
-H "content-type: application/json" \
-d '{"shortCode": "x7Ab3kQ", "chatId": -1001234567890,
"at": "2026-10-12T09:00:00+03:00"}'The post is queued and goes out within a minute of its time, as the same card the bot posts, with your words and photo. What is queued can be listed and cancelled:
{ "id": "4f1c...", "chatId": -1001234567890, "channelTitle": "...", "shortCode": "x7Ab3kQ",
"runAt": "2026-10-12T06:00:00.000Z" }
GET https://buyro.app/api/v1/me/scheduled-posts
DELETE https://buyro.app/api/v1/me/scheduled-posts/{id}Up to 60 posts an hour. A post that gets stuck is retried, and if it still does not go out, the bot tells you.
WhatsApp has no way to post for you. This address opens WhatsApp with the link's post ready to send, which makes a good button in your own tools:
https://buyro.app/api/v1/links/{code}/whatsapp3. Today's deals
The day's best deals, each with what you earn on one sale (creatorEarnMinor, in agorot or cents). Make a link from a deal's url to post it.
curl "https://buyro.app/api/v1/deals?limit=20" -H "Authorization: Bearer $BUYRO_KEY"4. Your numbers
Clicks, sales and earnings per link, your totals by status, and your payouts.
GET https://buyro.app/api/v1/me/stats?limit=20&offset=0&q=
GET https://buyro.app/api/v1/me/earnings
GET https://buyro.app/api/v1/me/payouts5. Manage links
Take a link out of your shop (it keeps working where you already posted it), send it straight to the store, change your words, or get its card again.
PATCH https://buyro.app/api/v1/links/{code} {"hidden": true} | {"landing": "direct"}
PUT https://buyro.app/api/v1/links/{code}/note {"note": "..."}
GET https://buyro.app/api/v1/me/links/{code}/cardLimits and errors
Up to 120 new links an hour. An error answers with a status code and a body that names it:
{ "error": "rate_limited", "retryAfter": 1800 }unauthorizedthe key is missing, wrong or revoked (401).invalid_urlthat is not a product address (400).store_not_supportedthat store does not earn on Buyro yet (422).rate_limitedtoo many links this hour; wait for Retry-After seconds (429).suspendedthe account is frozen; write to support (403).channel_not_connectedThe link or the channel is not this account's, or the channel is not connected. Channels are connected in the bot.channel_cannot_postThe bot cannot post in that channel. Add it back as an admin with the right to post.too_far_aheadPosts can be scheduled up to 14 days ahead.
Questions or something you need: support@buyro.link.