LAMBO DEX API
API Quickstart
Use app.lambodex.com to create a product API key for api.lambodex.com. These keys are for watch-target activity, transactions, events, preview/indexer-backed activity signals, private hot-feed v2, and selected preview state routes when explicitly scoped.
Base URL
https://api.lambodex.com
Authentication
Send the key in the X-API-Key header. The cabinet shows the plaintext key only once after create or rotate.
X-API-Key: <PRODUCT_API_KEY>
Routes
Built from the API's own OpenAPI schema: 64 paths / 71 operations, read at 2026-08-25 07:34 UTC. Every route below is reachable at the base URL above; access depends on the scopes on your key.
Core /v111
Versioned product routes: watch targets, transactions, events, discovery feeds.
/v1/compat/bubble/deposit-events/v1/events/v1/products/v1/semantic-events/v1/transactions/v1/trench/candidates/v1/watch-targets/v1/watch-targets/{target_id}/v1/watch-targets/{target_id}/events/v1/watch-targets/{target_id}/semantic-events/v1/watch-targets/{target_id}/transactionsPreview9
Indexer-backed preview surfaces. Each needs its own preview:* scope on the key.
/v1/preview/classifier/watch-targets/{target_id}/events/v1/preview/nft/listings/v1/preview/semantic-feed/events/v1/preview/semantic-feed/watch-targets/{target_id}/events/v1/preview/state/accounts/{address}/summary/v1/preview/state/dns/resolve/v1/preview/state/jettons/{master}/market/v1/preview/state/jettons/{master}/meta/v1/preview/watch-targets/{target_id}/eventsInternal7
Private product wrappers. Listed for transparency; not open by default.
/v1/internal/early-pending-feed/products/{product_code}/v1/internal/fast-feed/v1/internal/hot-feed/v1/internal/local-v3/actions/v1/internal/private-hot-feed-v2/v1/internal/private-hot-feed-v2/products/{product_code}/v1/internal/private-hot-feed-v2/products/{product_code}/watchlistToncenter v2 compat13
Toncenter-compatible v2 subset for TonWeb-style callers.
/v1/compat/toncenter/api/v2/getAddressBalance/v1/compat/toncenter/api/v2/getAddressBalance/v1/compat/toncenter/api/v2/getAddressInformation/v1/compat/toncenter/api/v2/getAddressInformation/v1/compat/toncenter/api/v2/getAddressState/v1/compat/toncenter/api/v2/getAddressState/v1/compat/toncenter/api/v2/getTokenData/v1/compat/toncenter/api/v2/getWalletInformation/v1/compat/toncenter/api/v2/getWalletInformation/v1/compat/toncenter/api/v2/jsonRPC/v1/compat/toncenter/api/v2/runGetMethod/v1/compat/toncenter/api/v2/sendBoc/v1/compat/toncenter/api/v2/sendBocReturnHashToncenter v3 compat14
Toncenter-compatible v3 subset over the owned indexer.
/v1/compat/toncenter/api/v3/accountStates/v1/compat/toncenter/api/v3/actions/v1/compat/toncenter/api/v3/jetton/masters/v1/compat/toncenter/api/v3/jetton/transfers/v1/compat/toncenter/api/v3/jetton/wallets/v1/compat/toncenter/api/v3/masterchainInfo/v1/compat/toncenter/api/v3/messages/v1/compat/toncenter/api/v3/metadata/v1/compat/toncenter/api/v3/nft/items/v1/compat/toncenter/api/v3/nft/sales/v1/compat/toncenter/api/v3/nft/transfers/v1/compat/toncenter/api/v3/runGetMethod/v1/compat/toncenter/api/v3/traces/v1/compat/toncenter/api/v3/transactionsLegacy (no version prefix)13
Unversioned originals kept for existing callers. Prefer the /v1 twin.
/api/v3/actions/events/products/semantic-events/transactions/watch-targets/watch-targets/watch-targets/{target_id}/watch-targets/{target_id}/watch-targets/{target_id}/watch-targets/{target_id}/events/watch-targets/{target_id}/semantic-events/watch-targets/{target_id}/transactionsService4
Unauthenticated liveness and readiness probes.
/healthz/readyz/v1/healthz/v1/readyzPreview Example
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/preview/watch-targets/3/events?limit=10"
Private Hot-Feed v2 Example
This route requires preview:hot-feed-v2. It returns the private product wrapper stream, not raw liteserver, local TonCenter, Streaming, or Redis payloads.
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/internal/private-hot-feed-v2?limit=10"
Cursor / Replay
Read the next cursor from the response and pass it back as cursor for the next page. The only supported order is asc.
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/internal/private-hot-feed-v2?cursor=<NEXT_CURSOR>&limit=10"
Item Type Filter
Use item_type when you want a narrower preview slice, for example pending skeletons or enriched updates.
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/internal/private-hot-feed-v2?item_type=hot_enriched_update&limit=10"
Owner Product Hot-Feed v2
This product-filtered route is restricted to the owner key only. It returns only indexator-matched events for product_code=tontracker-vps3 and keeps the same v2 cursor shape: items, next_cursor, has_more, and cursor_expired. Other preview:hot-feed-v2 keys must use the global private hot-feed v2 route unless explicitly granted later.
curl -H "X-API-Key: <OWNER_PRODUCT_API_KEY>" "https://api.lambodex.com/v1/internal/private-hot-feed-v2/products/tontracker-vps3?limit=10"
curl -H "X-API-Key: <OWNER_PRODUCT_API_KEY>" "https://api.lambodex.com/v1/internal/private-hot-feed-v2/products/tontracker-vps3?cursor=<NEXT_CURSOR>&limit=10"
State Preview Example
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/preview/state/accounts/UQCTwbkY-pDqx3TJu-_w5JdCtL-sFdSeKJpDNReCxZplDDh0/summary?limit_jettons=5&offset_jettons=0&include_zero_balance=false&limit_nfts=5&offset_nfts=0"
Selected-User State Preview Example
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/preview/state/accounts/<TON_ADDRESS>/summary?limit_jettons=50&limit_nfts=50&include_zero_balance=false&include_exact_totals=true&include_chain_event_time=true"
State Cache Preview For Max
For portfolio completeness testing, use source_mode=state_cache first. This reads the precomputed state summary cache and does not put the product realtime/hot path on the synchronous seed query path.
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/preview/state/accounts/EQCD39VS5jcptHL8vMjEXrzGaRcCVYto7HUn4bpAOg8xqB2N/summary?source_mode=state_cache&limit_jettons=50&offset_jettons=0&limit_nfts=50&offset_nfts=0&include_zero_balance=true&include_exact_totals=true"
Expected warmed fixture result: source.kind=self_owned_state_seed_cache, source.source_mode=state_cache, jetton exact_total=115, NFT exact_total=98.
curl -H "X-API-Key: <PRODUCT_API_KEY>" "https://api.lambodex.com/v1/preview/state/accounts/0:820d29a279a91ca63c39db1141e9d4500c5011de4114708e2f7085e2549bbb01/summary?source_mode=state_cache&limit_jettons=50&offset_jettons=0&limit_nfts=50&offset_nfts=0&include_zero_balance=true&include_exact_totals=true"
Expected warmed heavy-gift result: account status active and NFT exact_total=1.
If source_mode=state_cache returns 404 state_cache_miss for a new address, report the address for warmup or temporarily test with source_mode=state_seed. Do not use source_mode=local_v3 for completeness testing; it remains the old fast baseline and is known incomplete for the Max fixture.
Page independently with limit_jettons/offset_jettons and limit_nfts/offset_nfts. Use data.jetton_balances.pagination.has_more / next_offset and data.nft_holdings.pagination.has_more / next_offset.
Current latency smoke on the Max fixture: local_v3 p50 21.5 ms / p95 108.4 ms but incomplete 1/0; state_seed p50 29.9 ms / p95 31.4 ms and complete 115/98; state_cache p50 30.7 ms / p95 45.0 ms and complete 115/98.
State cache preview requires a key with read:ton and preview:state. Keep preview keys server-side; do not embed keys in frontend bundles, URLs, screenshots, logs, GitHub, Telegram, or issue text.
This route requires preview:state and returns partial state_preview_partial_not_tonapi_compatible data. It is useful for testing indexed state coverage, not for production portfolio parity.
The current state preview contract is a raw/indexed discovery feed for consumer-side processing. The response advertises schema_version=state-preview-raw-indexed-v1, consumer_contract=raw_indexed_discovery_feed, ready_made_portfolio_api=false, and tonapi_parity=false.
Jettons and NFTs are paged independently. Use limit_jettons/offset_jettons for jetton wallets and limit_nfts/offset_nfts for NFT items. By default each section returns page-probe pagination with returned, has_more, next_offset, source_returned, exact_total_available=false, total_status=not_queried_page_probe_only, observed_lower_bound, and counter_policy=page_probe_only.
For selected preview consumers, include_exact_totals=true enables bounded opt-in exact totals. Exact totals are counted through bounded local v3 pagination, not raw source DB exposure. If the bounded count succeeds, exact_total_available=true and total_status=counted_bounded_opt_in; if the count hits a timeout, error, or bound, the response degrades to the explicit fallback status instead of failing the whole state preview request. Jetton exact totals follow include_zero_balance semantics.
Each item can include asset_type, asset_id, display_status, display_fallback_reason, freshness_hint, raw_source, raw_labels, source_labels, and trust fields. These fields are intended to help consumers distinguish indexed source facts from ready-made portfolio truth.
Jetton rows may include display_name, symbol, decimals, image_uri, description, metadata_enrichment_status, metadata_source, jetton_content, and non-authoritative risk_hints when local jetton master content exists for the returned page. Missing values must remain null/partial; consumers must not invent symbols, decimals, images, verified labels, or spam labels.
Jetton balance_raw can be exposed only when the local indexed source returns a valid balance for a wallet/master pair whose source owner matches the requested account. Exposed values are marked balance_status=indexed_unverified, balance_trust=indexed_unverified, and balance_value_exposed=true. This is raw indexed data, not a verified portfolio valuation.
Jetton sections include counters for returned rows, source_window_observed, source_filter_applied, balance_source_observed_count, balance_exposed_count, and balance_withheld_count. Use these counters to distinguish exposed page values from withheld or filtered rows.
By default, zero-balance jetton wallets are included to preserve source-inclusive behavior. Add include_zero_balance=false to request the source exclude_zero_balance=true filter. High source totals can be mostly zero-balance rows, so consumers must show zero-balance policy when comparing counts.
NFT items expose content_uri, collection_content, metadata_status, on_sale, is_gift_like, nft_category, source_hints, risk_hints, and trust hints. Gift-like detection is based on available indexed URI/source evidence and is not a complete Telegram Gifts taxonomy. Fragment usernames must not be treated as Telegram gifts. Metadata is best-effort local index status, not marketplace verification or spam classification.
The response-level freshness block uses policy=last_transaction_lt_hint_only by default. indexed_at is currently null and indexed_at_available=false. last_transaction_lt is a logical-time source hint, not a wall-clock "updated seconds ago" SLA.
For selected preview consumers, include_chain_event_time=true adds a bounded chain_event_time block based on local v3 transaction timestamps for max observed account, jetton, and NFT logical times. chain_event_at / max_observed_chain_event_at are on-chain transaction timestamps, not indexer ingestion timestamps, and must not be treated as indexed_at.
For residual mismatches, send exact account address, request params, expected vs actual count, first failing item/master/collection/address, response path read by the client, and a short sanitized response snippet. Without an exact fixture, classify failures as representative only.
risk_hints and source_hints are advisory context only. They are not verified/official badges, not definite spam verdicts, and must not be used for automatic hiding without an explicit user-visible policy.
Current local API latency baseline after the 5.27 enrichment patch is acceptable for controlled preview: representative local p95 measurements were about 29-46 ms across jetton-heavy, NFT-heavy, and Fragment-like cases. This is not a public internet-edge load test and should be rechecked before wider selected-user usage.
State Preview Consumer Rules
Use this route for raw/indexed asset discovery, pagination, source facts, and side-by-side comparison with your own processing or fallback sources. Do not use it as a ready-made portfolio API.
For Max-style portfolio tracking, the consumer should process, merge, filter, and normalize data on its own side. Keep external fallbacks for final token amounts, prices/value, rich metadata cards, complete gift taxonomy, and verified/spam labels. Decimals, symbols, names, images, and descriptions can be consumed when present, but missing values remain unknown.
If display_status is partial or placeholder, show an unverified/partial state or a placeholder. If decimals are unknown, do not compute a final normalized token balance from this API alone.
Recommended selected-user flow: request the first page with limit_jettons=50, limit_nfts=50, include_zero_balance=false, include_exact_totals=true, and include_chain_event_time=true; verify consumer_contract=raw_indexed_discovery_feed, tonapi_parity=false, and ready_made_portfolio_api=false; then page jettons and NFTs independently with next_offset.
Use exact_total only when exact_total_available=true. Treat fallback total_status values as an explicit signal that the API stayed bounded and did not provide a trusted count for that section.
Keep preview keys server-side. Do not embed keys in frontend bundles, URLs, screenshots, logs, or public examples.
Expected Access
200 means the key is active and has the needed scope. 401 means no valid key or revoked key. 403 means the key is valid but does not have the required scope, usually preview:indexer for activity preview routes, preview:hot-feed-v2 for private hot-feed v2, or preview:state for state preview routes.
What This API Is
Good for watch-target activity, transactions/events, indexer-backed activity preview, private hot-feed v2 lifecycle events, fee/native/action flows, an activity or trades tab, and limited state preview for selected internal keys.
What This API Is Not
It is not a raw liteserver key, not direct local ton-indexer access, not raw TonCenter/Streaming/Redis access, and not a TonAPI portfolio-state replacement. The state preview is partial: rates/prices are unavailable, DNS is incomplete, jetton balances are raw indexed and unverified when exposed, exact totals are bounded opt-in counts rather than default behavior, chain event time is on-chain timestamp context rather than indexed_at, metadata is best-effort local indexed content, risk_hints are not spam verdicts, nft_category is not a complete Telegram Gifts taxonomy, and response contracts are not TonAPI-compatible.
OpenAPI
The generated API reference is available at api.lambodex.com/docs.