https://shop.example.com) as the TON Site of your .ton domain (shop.ton): apiton's customer node answers http://shop.ton/ and takes every page from your website. 1 GRAM per 30 days; one payment buys up to 12 periods, and a renewal adds to what is left. No refunds once the site is live. Offer has the numbers in force; the terms are at its terms_url.GET and HEAD are relayed (forms, logins, carts do not work), pages are not rewritten (absolute links to https://shop.example.com/… lead the visitor there), one second-level domain (shop.ton, not a.shop.ton), responses up to 16 MiB, no uptime guarantee. Sites about drugs, weapons, gambling, adult content, fraud and the rest of the restricted class are refused or taken down (blocked).Offer — the price, the period, the customer node's ADNL id (adnl_id: what the domain's site record must hold) and the receiving wallet.Check — whether a website and a domain can be ordered; writes nothing and lists every problem.Create — a new order (draft) and, once, its manage_secret.order.web_proof), then Verify — the order becomes ready_to_pay.Get — order.pay: the payment as one TON Connect transaction, sent from the wallet that owns the domain — the order becomes active.Get / Verify to follow the order, Stop with the secret to end it, List for the orders of an API key.https://<host>/.well-known/apiton-verify.txt whose first line is apiton-verify=<token>, or a TXT record _apiton-verify.<host> with that value (order.web_proof gives all three). Keep it in place: it is checked again every day, and three failures in a row suspend the site.site record points at the customer node (adnl_id) and the first payment comes from the wallet that owns the domain at that moment. Both are one TON Connect sendTransaction of two messages (order.pay.messages): the payment with the order's comment (px-…) and the domain's change_dns_record (record_attach_nano, 0.05 GRAM, stays on the domain's item; changing a record also renews the domain for a year). The two messages execute independently: if the record message fails, the order is paid_pending_record until the record is there (read every minute for an hour, then every 6 hours); the paid period starts at the payment. Without TON Connect: pay with order.pay.ton_link (a QR code of it) from the domain owner's wallet, and set the record on dns.ton.org.order.status)| Status | Meaning |
|---|---|
draft | web proof not verified yet, or verified while Cloudflare challenges the home page (see Verify); deleted after a day |
ready_to_pay | verified, waiting for the first payment; deleted after 7 days unpaid |
review | paid, waiting for an operator — only when manual_review is true |
paid_pending_record | paid; the domain's site record does not point at the customer node yet |
active | served |
grace | the paid period is over; still served for grace_hours (72) |
expired | not served; a payment within 30 days revives it, from the same owner |
suspended | a check failed — status_reason web_proof_lost · record_moved · domain_expired · domain_on_sale; served again when the check passes |
released | owner_changed: the domain changed hands; final — the new owner makes a new order |
blocked | taken down: restricted:<class> or the operator's reason |
stopped | ended by Stop (stopped_by_user) or by apiton on request (stopped_by_operator); final |
rejected | refused by an operator — only when manual_review is true; final |
Create answers a new order and, once, its manage_secret, which Stop needs. With an API key (Authorization: Bearer <tg_id>:<secret>) the order is linked to the key and List shows it. Each RPC costs one request of your plan; anonymous callers have the free limits per IP (1 rps, 10 000 a month), which is enough for the flow. While the service is off on the server, every RPC answers unavailable.price_nano, record_attach_nano, byte counts) arrive as JSON strings. Fields that are false, 0 or empty are left out: eligible: false, manual_review: false, a subdomain_price_nano of 0..ton domain of your own, a site will be able to run on a name under apiton.ton (http://shop.apiton.ton/, order kind subdomain): no NFT and no record, one payment message that any wallet may send (the first payment binds the order to that wallet and claims the name for as long as it is paid), and the website proved the same way. Such names open later: until then subdomain_price_nano is 0 (absent) and Check / Create refuse them with bad_domain.curl -X POST https://app.apiton.org/v2.SiteProxy/Offer -H 'Content-Type: application/json' -d '{}'pay_address means payments are not taken now. limits bound one site on the customer node; above them a visitor gets 503 (max_inflight requests in progress), 429 (rps, burst), 502 (a response over max_response_bytes), 504 (the website takes longer than request_timeout_seconds to answer) or 509 (quota_bytes of the last period_days used up).unavailable (503) — the service is off on the server.