Explore in Telegram

apiton blog

apiton API changelog: Catalog, JettonPrices, Nft.Items, Address.Collections

· 4 min read · api, developers, changelog

Open in @apitonBotcheck any username, number or domain live in Telegram

This is a summary of what was added to the public apiton API (v2) in September 2026, with a working curl example for each change. Every request is a POST with a JSON body to https://app.apiton.org/<service>/<method>; all methods below are public and work without a key at the free limits (1 request per second, 10,000 per month per IP). Get your own key with /get_api in @apitonBot; the basics of keys, paging and errors are in Using the apiton API with curl.

All examples were run against the live API when this article was written.

v2.Catalog: owner filter

v2.Catalog is the service behind apiton.org: filtered lists of Telegram usernames, +888 numbers and .ton domains (List), sitemap chunks (Sitemap), history (Events) and counts (Summary).

New: List accepts owner_address (any form: raw, EQ…, UQ…). With an owner, kind may be left empty to get every kind at once, ordered by kind. Items on sale are included — the owner is the seller.

curl -X POST https://app.apiton.org/v2.Catalog/List \
  -H 'Content-Type: application/json' \
  -d '{"owner_address":"UQCdqXGvONLwOr3zCNX5FjapflorB6ZsOdcdfLrjsDLt3AF4","limit":100}'

At the time of writing this wallet held 17 catalog items: 12 .ton domains (foundation among them), 3 usernames and 2 +888 numbers. As with every catalog call, total is an int64 and arrives as a JSON string.

v2.Catalog: TON Sites

Domains now carry the state of their TON Site. List has a site filter (record — the domain has a DNS site record; live — the site answered the last probes with real content) and two sorts, site_rank and site_live_since. Items gain site_status, site_rank and site_title, and Summary returns live_sites.

curl -X POST https://app.apiton.org/v2.Catalog/List \
  -H 'Content-Type: application/json' \
  -d '{"kind":"domain","site":"live","sort":"site_rank","limit":50}'

This is the Live TON Sites list on apiton.org. How the probe and the rank work is described in Live TON Sites: how apiton finds and ranks them.

For one domain, v2.Nft/Domain now returns a site object: kind (adnl or storage), address, status, title, latency_ms, uptime_30d, checked_at and live_since.

curl -X POST https://app.apiton.org/v2.Nft/Domain \
  -H 'Content-Type: application/json' \
  -d '{"domain":"foundation.ton"}'

v2.Catalog: known jettons and collections in the sitemap

Sitemap accepts two new kinds, jetton and collection. They list the known jetton masters and NFT collections — a curated set: the three catalog collections, Telegram gift collections and established jettons from a DEX asset list. Here name is the contract address (UQ…), and the next page starts after_name the last address.

curl -X POST https://app.apiton.org/v2.Catalog/Sitemap \
  -H 'Content-Type: application/json' \
  -d '{"kind":"jetton","limit":5000}'

At the time of writing there were 285 known jettons and 117 known collections.

v2.Address/Details: known

Details answers two new fields: known (true for an address in that curated set) and known_source (catalog, gifts, stonfi or manual).

curl -X POST https://app.apiton.org/v2.Address/Details \
  -H 'Content-Type: application/json' \
  -d '{"address":"EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs"}'

For the USD₮ master this returns "known":true,"known_source":"stonfi". known is false for every other address.

v2.Rate/JettonPrices and Jetton.price_usd

Rate/JettonPrices returns the USD price of one whole token for up to 100 jetton masters. The map is keyed by each master exactly as you sent it; a jetton without a price is absent, never 0.

curl -X POST https://app.apiton.org/v2.Rate/JettonPrices \
  -H 'Content-Type: application/json' \
  -d '{"master":["EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs"]}'

The same price is now attached to every balance from v2.Address/Jettons as price_usd. Where it comes from and why it can be missing: Jetton prices in USD.

v2.Nft/Items: items of a collection

A new method returns a page of one collection's items, with display metadata resolved on the server — name, description, image, image_medium (a resized https preview), content_url, lottie for Telegram gifts, domain for .ton items and collection_name. Page with limit (up to 100) and offset.

curl -X POST https://app.apiton.org/v2.Nft/Items \
  -H 'Content-Type: application/json' \
  -d '{"collection_address":"EQBG-g6ahkAUGWpefWbx-D_9sQ8oWbvy6puuq78U2c4NUDFS","limit":24}'

That collection is Plush Pepes, one of the Telegram gift collections; the first item came back as Plush Pepe #1330 with its image and Lottie animation URLs.

v2.Address/Nfts: resolved metadata and a collection filter

Address/Nfts now returns the same enriched items as Nft/Items, and accepts collection_address to return only one collection:

curl -X POST https://app.apiton.org/v2.Address/Nfts \
  -H 'Content-Type: application/json' \
  -d '{"address":"foundation.ton","collection_address":"EQC3dNlesgVD8YbAazcauIrXBPfiVhMMr5YYk2in0Mtsz0Bz","limit":10}'

The collection in that request is TON DNS, so the answer is the .ton domains held by the address that foundation.ton resolves to.

v2.Address/Collections: collections an address owns

The new Address/Collections lists NFT collections administered by an address — typically the collections a wallet created — with name, image, description and items_count (absent for collections that do not number items sequentially).

curl -X POST https://app.apiton.org/v2.Address/Collections \
  -H 'Content-Type: application/json' \
  -d '{"address":"UQDsP4js-X1VVS7mBZAuoeXvKcvOYlkpsdELBHwJOez07ckT","limit":100}'

At the time of writing this wallet owned two collections, TON Diamonds (10,000 items) and Meta Renaissance (889 items).

v2.Nft/Item: name, image, address, index

Nft/Item now also returns the item's address (UQ…), index and a display name and image, derived for Telegram usernames, numbers, gifts and .ton domains when the metadata has none.

curl -X POST https://app.apiton.org/v2.Nft/Item \
  -H 'Content-Type: application/json' \
  -d '{"address":"UQAcoW_B0vxbiLxdZGoz500BoFqjmNi5jA6w2nxwuqD8qJAW"}'

Takedowns

Catalog items removed by a manual takedown are now left out consistently: Address/Nfts and Nft/Items skip them (a page can therefore hold fewer than limit items — keep paging by offset), and Nft/Item, Nft/Username, Nft/Number and Nft/Domain answer status: "unavailable".

Compatibility

All changes are additive: new methods, new optional request fields and new response fields. Existing requests keep working. Remember that proto3 JSON omits zero values — code for missing fields rather than 0, "" or [].

Questions, or want a higher limit? Open @apitonBot — /plan shows your usage, /upgrade raises the limits.

Try it in @apitonBotfree: look up, watch and get alerts in Telegram

Explore the catalog

More from the blog

All articles · RSS

Open in @apitonBot