apiTON
HomeExplorerBlog
HomeExplorerBlog
Contact
  1. v2.Watch
  • api:TON Documentation
  • v2.Nft
    • Username
      POST
    • Number
      POST
    • Domain
      POST
    • Gift
      POST
    • Item
      POST
    • Items
      POST
  • v2.Rate
    • Fiat rate
      POST
    • Crypto rate
      POST
    • Exchanges rate
      POST
    • Jetton prices
      POST
  • v2.Auth
    • Do
      POST
    • List
      POST
    • Import
      POST
    • Backup
      POST
    • Delete
      POST
    • New
      POST
  • v2.Wallet
    • Send TON
      POST
    • Send Jetton
      POST
    • Send Nft
      POST
  • v2.Address
    • Transactions
    • Details
    • Jettons
    • NFTs
    • Wallets
    • Collections
  • v2.NftContract
    • Mint Nft Collection
    • Mint NFT
  • v2.JettonContract
    • Mint
    • Burn
    • Change owner
    • Close Mint
  • v2.Watch
    • Create watch
      POST
    • List watches
      POST
    • Delete watch
      POST
    • Poll events
      POST
    • Test watch
      POST
  • Schemas
    • Schemas
      • Connect Error
      • google.protobuf.Any
      • ListValue
      • NullValue
      • Struct
      • FieldsEntry
      • google.protobuf.Timestamp
      • google.protobuf.Value
      • BlockID
      • BurnRequest
      • BurnResponse
      • ChangeAdminRequest
      • ChangeAdminResponse
      • CloseMintRequest
      • CloseMintResponse
      • DetailsAddress
      • DetailsRequest
      • DetailsResponse
      • DomainRequest
      • DomainResponse
      • ItemRequest
      • ItemResponse
      • Jetton
      • JettonDetails
      • JettonsRequest
      • JettonsResponse
      • Message
      • MintCollectionRequest
      • MintCollectionResponse
      • MintNftRequest
      • MintNftResponse
      • MintRequest
      • MintResponse
      • NftItem
      • NftsRequest
      • NftsResponse
      • NumberRequest
      • NumberResponse
      • RateCryptoRequest
      • RateCryptoResponse
      • ResultEntry
      • RateExchangesRequest
      • RateExchangesResponse
      • ResultEntry
      • RateFiatRequest
      • RateFiatResponse
      • ResultEntry
      • SendJettonRequest
      • SendJettonResponse
      • SendNftRequest
      • SendNftResponse
      • SendRequest
      • SendResponse
      • TeleAuction
      • TeleAuctionConfig
      • TeleAuctionLastBid
      • TeleSale
      • Transaction
      • TransactionsRequest
      • TransactionsResponse
      • UsernameRequest
      • UsernameResponse
      • Version
      • WalletAuth
      • WalletAuth4
      • WalletDetails
      • WalletNewRequest
      • WalletNewResponse
      • WalletsRequest
      • WalletsResponse
      • AddressCollection
      • AddressCollectionsRequest
      • AddressCollectionsResponse
      • AuthBackupRequest
      • AuthDeleteRequest
      • AuthDeleteResponse
      • AuthDoRequest
      • AuthImportRequest
      • AuthJwtResponse
      • AuthListRequest
      • AuthListResponse
      • AuthNewRequest
      • BlockID
      • BurnRequest
      • BurnResponse
      • ChangeAdminRequest
      • ChangeAdminResponse
      • CloseMintRequest
      • CloseMintResponse
      • DetailsAddress
      • DetailsRequest
      • DetailsResponse
      • DomainRequest
      • DomainResponse
      • GiftAttribute
      • GiftRequest
      • GiftResponse
      • ItemRequest
      • ItemResponse
      • Jetton
      • JettonDetails
      • JettonsRequest
      • JettonsResponse
      • Message
      • MintCollectionRequest
      • MintCollectionResponse
      • MintNftRequest
      • MintNftResponse
      • MintRequest
      • MintResponse
      • NftDomainSite
      • NftItem
      • NftItemsRequest
      • NftsRequest
      • NftsResponse
      • NumberRequest
      • NumberResponse
      • RateCryptoRequest
      • RateCryptoResponse
      • RateExchangesRequest
      • RateExchangesResponse
      • RateFiatRequest
      • RateFiatResponse
      • RateJettonPricesRequest
      • RateJettonPricesResponse
      • SendJettonRequest
      • SendJettonResponse
      • SendNftRequest
      • SendNftResponse
      • SendRequest
      • SendResponse
      • TeleAuction
      • TeleAuctionConfig
      • TeleAuctionLastBid
      • TeleSale
      • Transaction
      • TransactionsRequest
      • TransactionsResponse
      • UsernameRequest
      • UsernameResponse
      • Version
      • WalletAuth
      • WalletDetails
      • WalletInfo
      • WalletsRequest
      • WalletsResponse
    • WatchCreateRequest
    • WatchCreateResponse
    • WatchDeleteRequest
    • WatchDeleteResponse
    • WatchEvent
    • WatchLimits
    • WatchListRequest
    • WatchListResponse
    • WatchPollRequest
    • WatchPollResponse
    • WatchSubscription
    • WatchTestRequest
    • WatchTestResponse
    • WatchTx
    • WatchWebhook
  1. v2.Watch

Poll events

POST
/v2.Watch/Poll
FieldTypeNotes
after_idstringevents after this id; 0 or absent = the oldest kept
limitintegerdefault 50, max 200
curl -X POST https://app.apiton.org/v2.Watch/Poll \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer 123456789:aB3dE…' \
  -d '{"after_id":"122","limit":50}'
# {"events":[{"id":"123","watch_id":"41","type":"tx",…,"delivery":"none"}],"next_after_id":"123"}
All the key's watches, oldest first. Send next_after_id as the next after_id; has_more: true
means more are waiting. Ids only grow, so a stored cursor never skips an event. Events are kept 7
days: poll at least that often. A free key has 10 000 requests a month, which is one Poll every
4½ minutes.
delivery says what became of the event: none (the watch has no webhook) · pending (queued or
being retried) · delivered (your endpoint answered 2xx) · capped (above the plan's pushes per
hour: not pushed) · dropped (not pushed: the webhook is paused or was given up on, the watch was
deleted, or the queue of 1000 was full). A webhook body has no delivery.

Events#

The same JSON in Poll and in a webhook body. id, watch_id and tx.lt are 64-bit integers
and arrive as JSON strings. A field with no value is absent.
typeMeansSet besides id, watch_id, address, kind, name, at
listedput on salestatus, owner, price, currency
delistedsale or auction ended with the same ownerstatus, owner, last price seen
soldsale or auction ended with a new ownerstatus, owner, previous_owner, last price seen
pricethe sale price changedstatus, owner, price, currency
auction_startan auction beganstatus, owner, bid, bidder, auction_end
bida higher bidbid, bidder, previous_bidder, auction_end
auction_endingunder 2 hours left; once per end time, again when a late bid moves the endbid, bidder, auction_end
txa wallet's transactiontx, truncated
testfrom Testwhat is known of the address
A change of status (listed, delisted, sold, auction_start) is reported when two reads
in a row agree
, so one bad read cannot fire delisted + listed. It therefore arrives one
interval later than a price or a bid.
{"id":"123","watch_id":"41","address":"UQCdqXGvONLwOr3zCNX5FjapflorB6ZsOdcdfLrjsDLt3AF4","kind":"wallet",
 "name":"UQCdqX…3AF4","type":"tx","at":"2026-11-02T12:00:30Z",
 "tx":{"hash":"9270…5c1d","lt":"113124692000006","time":"2026-11-02T12:00:11Z","success":true,"fee":0.0004,
       "direction":"in","amount":10,"symbol":"TON","from":"UQAWe4m1…","to":"UQCdqX…",
       "operation":"TextComment","out_messages":1}}
amount and min_amount are in whole GRAM for the coin (the API's symbol for it stays TON),
and in whole tokens for a jetton (symbol is its ticker). tx is a summary: the incoming message
when it carries value, else the last outgoing one; the transaction's messages are in
Address/Transactions.
Wallet watches. min_amount (default 1 GRAM) is the smallest amount that raises a tx: the
largest amount among the transaction's messages, a jetton counted at its USD price. NFT and DNS
transactions always raise one. 0 = every transaction. A jetton with no known price counts as
nothing; while the coin's own rate is unavailable a priced jetton passes rather than being lost.
Excess and bounce transactions raise nothing.
One read returns one page, 16 transactions. A wallet busier than that between two reads gets the
newest 16 and truncated: true: the older ones have no event, read them with
Address/Transactions. Nothing else is missing compared with that RPC, but a jetton or NFT lookup
above the read's small budget leaves that transaction without its token symbol.

Request

Body Params application/jsonRequired

Example
{
    "after_id": "string",
    "limit": 200
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location 'https://app.apiton.org/v2.Watch/Poll' \
--header 'Content-Type: application/json' \
--data '{
    "after_id": "string",
    "limit": 200
}'

Responses

🟢200OK
application/json
Bodyapplication/json

Example
{
    "events": [
        {
            "id": "string",
            "watch_id": "string",
            "address": "string",
            "kind": "string",
            "name": "string",
            "type": "string",
            "at": "2019-08-24T14:15:22.123Z",
            "status": "string",
            "owner": "string",
            "previous_owner": "string",
            "price": "string",
            "currency": "string",
            "bid": "string",
            "bidder": "string",
            "previous_bidder": "string",
            "auction_end": "2019-08-24T14:15:22.123Z",
            "tx": {
                "hash": "string",
                "lt": "string",
                "time": "2019-08-24T14:15:22.123Z",
                "success": true,
                "fee": "string",
                "direction": "string",
                "amount": "string",
                "symbol": "string",
                "from": "string",
                "to": "string",
                "operation": "string",
                "op_code": 0,
                "nft_op": "string",
                "out_messages": 0
            },
            "truncated": true,
            "delivery": "string"
        }
    ],
    "next_after_id": "string",
    "has_more": true
}
🔴500Server Error
Previous
Delete watch
Next
Test watch
Built with