Check a recipient
Resolve a @username and check whether they can receive the requested item, before you create an order. Read-only and fail-open — a transient oracle hiccup resolves to eligible: true rather than blocking you.
Why type is required. The check runs against the very product you intend to order, so it must know which one. Pass type: stars to resolve a Stars recipient, or type: premium to resolve a Premium-gift recipient (the Premium path also takes months — 3, 6 or 12). Always check with the same type you'll use in POST /v1/orders: a Stars check does not prove a Premium gift will be accepted, and vice-versa.
⚠️ A recipient who already has an active Premium subscription cannot be gifted Premium. Telegram blocks gifting a Premium subscription to anyone whose subscription is still active (for example, an annual plan that has not expired yet) — this is Telegram's restriction, not ours. The check surfaces it as eligible: false with reason: "already_subscribed" and Telegram's verbatim wording in telegram_message. The same recipient also makes POST /v1/orders fail with 422 recipient_ineligible: no order is created and you are not charged. Pre-flighting Premium recipients here is the cheapest way to tell your user before they pay.
Rate limit: this endpoint carries a tighter per-tenant cap of 60 requests/min (in addition to the standard per-tenant budget), because each call performs a live upstream lookup. If you exceed this, you receive a 429 and should back off for the remainder of the minute.
Request body
Example request
{
"recipient": {
"username": "durov"
}
}Response
Resolution + eligibility result.