Free Fragment API for buying Telegram Stars and Premium with GRAM or USDT on TON.

Free · No API key · Python SDK + REST API · GRAM + USDT on TON

Check availability · Quick start · Examples · AI skill · Prices · OpenAPI


Fragment API gives shops, Telegram bots, and backend services a simple way to buy Telegram Stars or Telegram Premium for any supported Telegram username. Use the Python SDK or call the REST API directly.

Product Supported values Payment
Telegram Stars 50 to 1,000,000 Stars GRAM or USDT on TON
Telegram Premium 3, 6, or 12 months GRAM or USDT on TON

API access is free. You pay only the Fragment purchase amount and TON network fees.

Check before charging

Check whether the recipient can receive the purchase before accepting customer payment. The check needs no seed, wallet address, or API key.

from fragment_api import FragmentAPI

api = FragmentAPI()
check = api.check_stars_availability("@telegram_user", 100, "gram")

if not check.available:
    print(check.message, check.action)
    # Do not accept payment.

Run the check shortly before payment. It is a point-in-time validation, not a reservation or delivery guarantee. On 429, wait for retry_after; on 503, retry later and do not accept payment yet.

Code Meaning
AVAILABLE Continue to customer payment
RECIPIENT_NOT_FOUND Check the Telegram username
RECIPIENT_INELIGIBLE Do not accept payment for this recipient
PREMIUM_ALREADY_ACTIVE Use another recipient or retry after the subscription ends
PAYMENT_METHOD_UNAVAILABLE Use the payment method shown in action

Quick start

pip install fragment-api-dev==1.3.0
import os
from fragment_api import FragmentAPI

api = FragmentAPI()

purchase = api.buy_stars(
    username="@telegram_user",
    amount=50,
    payment_method="gram",
    seed=os.environ["TON_WALLET_SEED"],
)

result = api.wait(purchase.purchase_id)
print(result.status, result.transaction_hash or result.error)

This minimal example uses a 24-word TON mnemonic or a Base64 32-byte private key. Credentials are sent only by your backend; never place a seed in frontend code.

Choose your wallet setup

Wallet data What to send
24-word TON mnemonic or Base64 32-byte private key seed
12-word seed and wallet address seed + wallet_address
12-word seed and known account index seed + account_index

A 12-word seed alone is not enough. If you know the address but not its index, use the wallet resolver example.

Ready-to-run examples

The examples/ directory contains explained examples for:

  • Stars with GRAM
  • Stars with USDT on TON
  • Premium with GRAM
  • Premium with USDT on TON
  • 24-word wallets without a selector
  • 12-word wallets with an address or account index
  • Python SDK, Node.js, and curl
  • Recipient availability checks before customer payment

USDT purchases require a small GRAM balance for TON network fees.

AI-assisted integration

Install the same portable skill for Codex or Claude:

# Codex
cp -R skills/fragment-api-integration "${CODEX_HOME:-$HOME/.codex}/skills/"

# Claude
cp -R skills/fragment-api-integration "$HOME/.claude/skills/"

Then ask your coding agent:

Use $fragment-api-integration to add Telegram Stars purchases to this project.

The skill covers pre-payment availability checks, Python SDK and REST integrations, Stars and Premium, GRAM and USDT, wallet selection, idempotency, polling, and safe error handling.

Prices

Get an informational quote without creating a purchase:

quote = api.get_stars_price(100)
print(quote.prices.gram, quote.prices.usdt)
curl 'https://api-stars.duckdns.org/api/v1/prices/quote?product=stars&amount=100'

Price values are exact decimal strings. Fragment creates a fresh quote when the purchase starts.

Important

  • Use one idempotency_key for each logical order.
  • Retry the same order with the same key.
  • Wait for the final status; creating a purchase does not mean it is complete.
  • Never automatically replace an order in reconciliation_required.

Resources

Resource Link
All examples examples/README.md
AI integration skill skills/fragment-api-integration
Python SDK fragment-api-dev
REST API specification openapi.yaml
Production endpoint https://api-stars.duckdns.org