# API Reference

166 routes of the gateway `https://api.tino.vn/v1` and the TinoPay, Tino Uptime and TinoPage Builder service APIs, by product. Each route has a page: parameters, cURL, JavaScript, PHP and SDK examples, response sample. Authentication, sending parameters and common errors: [Calling the Tino API](/en/docs/api). Machine-readable: [/en/openapi.json](/en/openapi.json).

## Identity & SSO

### Account

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/clientarea` | [Account overview](/en/docs/api/get-clientarea) | `profile:read` |
| `GET` | `/v1/clientarea/nav/service` | [Service categories](/en/docs/api/get-clientarea-nav-service) | `profile:read` |
| `POST` | `/v1/clientarea/search/@query` | [Search services and products](/en/docs/api/post-clientarea-search-query) | `profile:read` |
| `GET` | `/v1/clientarea/statuses` | [List statuses](/en/docs/api/get-clientarea-statuses) | `profile:read` |
| `GET` | `/v1/contact` | [List contacts](/en/docs/api/get-contact) | `profile:read` |
| `GET` | `/v1/contact/@id` | [Contact details](/en/docs/api/get-contact-id) | `profile:read` |
| `GET` | `/v1/contact/privileges` | [Permissions available for contacts](/en/docs/api/get-contact-privileges) | `profile:read` |
| `GET` | `/v1/contacts` | [List contacts (contacts)](/en/docs/api/get-contacts) | `profile:read` |
| `GET` | `/v1/details` | [Account details](/en/docs/api/get-details) | `profile:read` |
| `GET` | `/v1/notifications` | [List notifications](/en/docs/api/get-notifications) | `profile:read` |
| `PUT` | `/v1/notifications/@id/ack` | [Mark notification as read](/en/docs/api/put-notifications-id-ack) | `profile:write` |
| `GET` | `/v1/notifications/new` | [Unread notifications](/en/docs/api/get-notifications-new) | `profile:read` |

## Domains & DNS

### Domains

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/domain` | [List domains](/en/docs/api/get-domain) | `domains:read` |
| `GET` | `/v1/domain/@id` | [Domain details](/en/docs/api/get-domain-id) | `domains:read` |
| `GET` | `/v1/domain/@id/autorenew` | [Get domain auto-renewal](/en/docs/api/get-domain-id-autorenew) | `domains:read` |
| `PUT` | `/v1/domain/@id/autorenew` | [Turn domain auto-renewal on or off](/en/docs/api/put-domain-id-autorenew) | `domains:write` |
| `GET` | `/v1/domain/@id/contact` | [Get domain contacts](/en/docs/api/get-domain-id-contact) | `domains:read` |
| `PUT` | `/v1/domain/@id/contact` | [Change domain contacts (registrant)](/en/docs/api/put-domain-id-contact) | `domains:owner` |
| `GET` | `/v1/domain/@id/dnssec` | [List DNSSEC keys](/en/docs/api/get-domain-id-dnssec) | `domains:read` |
| `PUT` | `/v1/domain/@id/dnssec` | [Add DNSSEC key](/en/docs/api/put-domain-id-dnssec) | `domains:write` |
| `DELETE` | `/v1/domain/@id/dnssec/@key` | [Delete DNSSEC key](/en/docs/api/delete-domain-id-dnssec-key) | `domains:write` |
| `GET` | `/v1/domain/@id/dnssec/flags` | [Supported DNSSEC parameters](/en/docs/api/get-domain-id-dnssec-flags) | `domains:read` |
| `GET` | `/v1/domain/@id/emforwarding` | [Get email forwarding](/en/docs/api/get-domain-id-emforwarding) | `domains:read` |
| `PUT` | `/v1/domain/@id/emforwarding` | [Update email forwarding](/en/docs/api/put-domain-id-emforwarding) | `domains:write` |
| `GET` | `/v1/domain/@id/epp` | [Get domain transfer code (EPP)](/en/docs/api/get-domain-id-epp) | `domains:owner` |
| `PUT` | `/v1/domain/@id/forwarding` | [Update domain forwarding](/en/docs/api/put-domain-id-forwarding) | `domains:write` |
| `PUT` | `/v1/domain/@id/idprotection` | [Turn registrant privacy on or off](/en/docs/api/put-domain-id-idprotection) | `domains:write` |
| `GET` | `/v1/domain/@id/invoices` | [Domain invoices](/en/docs/api/get-domain-id-invoices) | `domains:read` |
| `GET` | `/v1/domain/@id/ns` | [Get nameservers](/en/docs/api/get-domain-id-ns) | `domains:read` |
| `PUT` | `/v1/domain/@id/ns` | [Change nameservers](/en/docs/api/put-domain-id-ns) | `domains:write` |
| `GET` | `/v1/domain/@id/reg` | [Registered private nameservers](/en/docs/api/get-domain-id-reg) | `domains:read` |
| `POST` | `/v1/domain/@id/reg` | [Manage private nameservers](/en/docs/api/post-domain-id-reg) | `domains:write` |
| `GET` | `/v1/domain/@id/reglock` | [Get domain lock](/en/docs/api/get-domain-id-reglock) | `domains:read` |
| `PUT` | `/v1/domain/@id/reglock` | [Turn domain lock on or off](/en/docs/api/put-domain-id-reglock) | `domains:write` |
| `POST` | `/v1/domain/@id/renew` | [Renew domain](/en/docs/api/post-domain-id-renew) | `domains:write` |
| `GET` | `/v1/domain/@id/sync` | [Sync domain](/en/docs/api/get-domain-id-sync) | `domains:write` |
| `POST` | `/v1/domain/lookup` | [Check domain availability](/en/docs/api/post-domain-lookup) | `domains:read` |
| `GET` | `/v1/domain/name/@name` | [Domain details by name](/en/docs/api/get-domain-name-name) | `domains:read` |
| `GET` | `/v1/domain/order` | [Available domain extensions](/en/docs/api/get-domain-order) | `domains:read` |
| `POST` | `/v1/domain/order` | [Order domain](/en/docs/api/post-domain-order) | `domains:write` |
| `GET` | `/v1/domain/order/@id/form` | [Extra fields per domain extension](/en/docs/api/get-domain-order-id-form) | `domains:read` |
| `GET` | `/v1/domains` | [List domains (paginated)](/en/docs/api/get-domains) | `domains:read` |
| `GET` | `/v1/domains/@id/registrant` | [Read a waiting domain's registrant](/en/docs/api/get-domains-id-registrant) | `domains:registrant` |
| `PUT` | `/v1/domains/@id/registrant` | [Save a waiting domain's registrant](/en/docs/api/put-domains-id-registrant) | `domains:registrant` |
| `GET` | `/v1/domains/pending` | [Domains awaiting their dossier](/en/docs/api/get-domains-pending) | `domains:registrant` |
| `GET` | `/v1/registrants` | [Registrants used before](/en/docs/api/get-registrants) | `domains:registrant` |
| `GET` | `/v1/whois/@domain` | [Domain whois lookup (with a token)](/en/docs/api/get-v1-whois-domain) | `domains:read` |
| `GET` | `/whois/@domain` | [Domain whois lookup](/en/docs/api/get-whois-domain) | — |

### DNS

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/dns` | [List DNS zones](/en/docs/api/get-dns) | `dns:read` |
| `GET` | `/v1/dns/templates` | [DNS record templates](/en/docs/api/get-dns-templates) | `dns:read` |
| `GET` | `/v1/domain/@id/dns` | [Domain DNS records](/en/docs/api/get-domain-id-dns) | `dns:read` |
| `POST` | `/v1/domain/@id/dns` | [Add DNS record to domain](/en/docs/api/post-domain-id-dns) | `dns:write` |
| `PUT` | `/v1/domain/@id/dns/@index` | [Edit domain DNS record](/en/docs/api/put-domain-id-dns-index) | `dns:write` |
| `DELETE` | `/v1/domain/@id/dns/@index` | [Delete domain DNS record](/en/docs/api/delete-domain-id-dns-index) | `dns:write` |
| `GET` | `/v1/domain/@id/dns/types` | [Supported DNS record types](/en/docs/api/get-domain-id-dns-types) | `dns:read` |
| `GET` | `/v1/service/@service_id/dns` | [DNS zones of a service](/en/docs/api/get-service-service-id-dns) | `dns:read` |
| `POST` | `/v1/service/@service_id/dns` | [Add DNS zone](/en/docs/api/post-service-service-id-dns) | `dns:write` |
| `GET` | `/v1/service/@service_id/dns/@zone_id` | [DNS zone details](/en/docs/api/get-service-service-id-dns-zone-id) | `dns:read` |
| `PUT` | `/v1/service/@service_id/dns/@zone_id` | [Edit DNS zone](/en/docs/api/put-service-service-id-dns-zone-id) | `dns:write` |
| `DELETE` | `/v1/service/@service_id/dns/@zone_id` | [Delete DNS zone](/en/docs/api/delete-service-service-id-dns-zone-id) | `dns:write` |
| `GET` | `/v1/service/@service_id/dns/@zone_id/dnssec` | [Get DNS zone DNSSEC](/en/docs/api/get-service-service-id-dns-zone-id-dnssec) | `dns:read` |
| `PUT` | `/v1/service/@service_id/dns/@zone_id/dnssec` | [Turn DNS zone DNSSEC on or off](/en/docs/api/put-service-service-id-dns-zone-id-dnssec) | `dns:write` |
| `POST` | `/v1/service/@service_id/dns/@zone_id/records` | [Add DNS record](/en/docs/api/post-service-service-id-dns-zone-id-records) | `dns:write` |
| `PUT` | `/v1/service/@service_id/dns/@zone_id/records/@record_id` | [Edit DNS record](/en/docs/api/put-service-service-id-dns-zone-id-records-record-id) | `dns:write` |
| `DELETE` | `/v1/service/@service_id/dns/@zone_id/records/@record_id` | [Delete DNS record](/en/docs/api/delete-service-service-id-dns-zone-id-records-record-id) | `dns:write` |

## Cloud & Hosting

### Services

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/service` | [List services](/en/docs/api/get-service) | `services:read` |
| `GET` | `/v1/service/@id` | [Service details](/en/docs/api/get-service-id) | `services:read` |
| `POST` | `/v1/service/@id/cancel` | [Request service cancellation](/en/docs/api/post-service-id-cancel) | `services:write` |
| `GET` | `/v1/service/@id/cycle` | [Billing cycles](/en/docs/api/get-service-id-cycle) | `services:read` |
| `POST` | `/v1/service/@id/cycle` | [Change billing cycle](/en/docs/api/post-service-id-cycle) | `services:write` |
| `GET` | `/v1/service/@id/emails` | [Hosting email accounts](/en/docs/api/get-service-id-emails) | `services:read` |
| `GET` | `/v1/service/@id/invoices` | [Service invoices](/en/docs/api/get-service-id-invoices) | `services:read` |
| `GET` | `/v1/service/@id/label` | [Get service label](/en/docs/api/get-service-id-label) | `services:read` |
| `POST` | `/v1/service/@id/label` | [Set service label](/en/docs/api/post-service-id-label) | `services:write` |
| `POST` | `/v1/service/@id/manualrenew` | [Create service renewal invoice](/en/docs/api/post-service-id-manualrenew) | `services:write` |
| `GET` | `/v1/service/@id/methods` | [Supported service actions](/en/docs/api/get-service-id-methods) | `services:read` |
| `POST` | `/v1/service/@id/renew` | [Renew service](/en/docs/api/post-service-id-renew) | `services:write` |
| `GET` | `/v1/service/@id/upgrade` | [Upgrade options](/en/docs/api/get-service-id-upgrade) | `services:read` |
| `POST` | `/v1/service/@id/upgrade` | [Upgrade quote or request](/en/docs/api/post-service-id-upgrade) | `services:write` |
| `GET` | `/v1/service/@id/widgets` | [Service widgets](/en/docs/api/get-service-id-widgets) | `services:read` |
| `GET` | `/v1/service/cpanel2/@id/statistics` | [cPanel statistics](/en/docs/api/get-service-cpanel2-id-statistics) | `services:read` |
| `POST` | `/v1/service/cpanel2/@id/unblock` | [Unblock IP on cPanel](/en/docs/api/post-service-cpanel2-id-unblock) | `services:write` |
| `GET` | `/v1/services/@cid` | [Services by category](/en/docs/api/get-services-cid) | `services:read` |
| `GET` | `/v1/services/active` | [Active services](/en/docs/api/get-services-active) | `services:read` |

### VPS servers

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/service/@id/networks` | [Networks and IP ranges](/en/docs/api/get-service-id-networks) | `services:read` |
| `GET` | `/v1/service/@id/resources` | [VPS resources](/en/docs/api/get-service-id-resources) | `services:read` |
| `GET` | `/v1/service/@id/templates` | [OS templates](/en/docs/api/get-service-id-templates) | `services:read` |
| `GET` | `/v1/service/@id/vms` | [List virtual machines](/en/docs/api/get-service-id-vms) | `services:read` |
| `GET` | `/v1/service/@id/vms/@vmid` | [Virtual machine details](/en/docs/api/get-service-id-vms-vmid) | `services:read` |
| `POST` | `/v1/service/@id/vms/@vmid/hostname` | [Change VM hostname](/en/docs/api/post-service-id-vms-vmid-hostname) | `services:write` |
| `GET` | `/v1/service/@id/vms/@vmid/interfaces` | [VM network interfaces](/en/docs/api/get-service-id-vms-vmid-interfaces) | `services:read` |
| `GET` | `/v1/service/@id/vms/@vmid/interfaces/@iface` | [Network interface details](/en/docs/api/get-service-id-vms-vmid-interfaces-iface) | `services:read` |
| `GET` | `/v1/service/@id/vms/@vmid/ippool` | [VM IP pools](/en/docs/api/get-service-id-vms-vmid-ippool) | `services:read` |
| `GET` | `/v1/service/@id/vms/@vmid/ips` | [VM IP addresses](/en/docs/api/get-service-id-vms-vmid-ips) | `services:read` |
| `POST` | `/v1/service/@id/vms/@vmid/reboot` | [Restart VM](/en/docs/api/post-service-id-vms-vmid-reboot) | `services:write` |
| `POST` | `/v1/service/@id/vms/@vmid/reset` | [Reset VM](/en/docs/api/post-service-id-vms-vmid-reset) | `services:write` |
| `POST` | `/v1/service/@id/vms/@vmid/shutdown` | [Shut down VM](/en/docs/api/post-service-id-vms-vmid-shutdown) | `services:write` |
| `POST` | `/v1/service/@id/vms/@vmid/start` | [Start VM](/en/docs/api/post-service-id-vms-vmid-start) | `services:write` |
| `POST` | `/v1/service/@id/vms/@vmid/stop` | [Stop VM](/en/docs/api/post-service-id-vms-vmid-stop) | `services:write` |
| `GET` | `/v1/service/@id/vms/@vmid/traffic` | [VM network traffic](/en/docs/api/get-service-id-vms-vmid-traffic) | `services:read` |

### SSL certificates

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/certificate` | [List SSL certificates](/en/docs/api/get-certificate) | `services:read` |
| `GET` | `/v1/certificate/@id` | [SSL certificate details](/en/docs/api/get-certificate-id) | `services:read` |
| `GET` | `/v1/certificate/@id/crt` | [Download certificate](/en/docs/api/get-certificate-id-crt) | `services:read` |
| `GET` | `/v1/certificate/order` | [Certificates available to order](/en/docs/api/get-certificate-order) | `services:read` |
| `POST` | `/v1/certificate/order` | [Order SSL certificate](/en/docs/api/post-certificate-order) | `services:write` |
| `GET` | `/v1/certificate/order/@product_id/software` | [Server software for certificates](/en/docs/api/get-certificate-order-product-id-software) | `services:read` |
| `GET` | `/v1/certificates` | [List SSL services (certificates)](/en/docs/api/get-certificates) | `services:read` |

## Billing

### Invoices & payments

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/addfunds` | [Top-up information](/en/docs/api/get-addfunds) | `billing:read` |
| `POST` | `/v1/addfunds` | [Top up](/en/docs/api/post-addfunds) | `billing:write` |
| `GET` | `/v1/balance` | [Account balance](/en/docs/api/get-balance) | `billing:read` |
| `GET` | `/v1/billing/@invoice_id/pay/@gateway_id` | [Invoice payment link](/en/docs/api/get-billing-invoice-id-pay-gateway-id) | `billing:write` |
| `POST` | `/v1/billing/addfunds` | [Top up (billing)](/en/docs/api/post-billing-addfunds) | `billing:write` |
| `GET` | `/v1/billing/creditlogs` | [Credit balance history](/en/docs/api/get-billing-creditlogs) | `billing:read` |
| `POST` | `/v1/billing/creditvoucher` | [Redeem top-up code](/en/docs/api/post-billing-creditvoucher) | `billing:write` |
| `GET` | `/v1/estimate/@id/pdf` | [Download estimate PDF](/en/docs/api/get-estimate-id-pdf) | `billing:read` |
| `GET` | `/v1/estimates` | [List estimates](/en/docs/api/get-estimates) | `billing:read` |
| `GET` | `/v1/estimates/@id` | [Estimate details](/en/docs/api/get-estimates-id) | `billing:read` |
| `GET` | `/v1/invoice` | [List invoices](/en/docs/api/get-invoice) | `billing:read` |
| `GET` | `/v1/invoice/@id` | [Invoice details](/en/docs/api/get-invoice-id) | `billing:read` |
| `DELETE` | `/v1/invoice/@id` | [Delete invoice](/en/docs/api/delete-invoice-id) | `billing:write` |
| `POST` | `/v1/invoice/@id/credit` | [Pay invoice with balance](/en/docs/api/post-invoice-id-credit) | `billing:write` |
| `GET` | `/v1/invoice/@id/pdf` | [Download invoice PDF](/en/docs/api/get-invoice-id-pdf) | `billing:read` |
| `GET` | `/v1/invoices` | [List invoices (paginated)](/en/docs/api/get-invoices) | `billing:read` |
| `GET` | `/v1/invoices/due` | [Due invoices](/en/docs/api/get-invoices-due) | `billing:read` |
| `POST` | `/v1/invoices/payall` | [Pay invoices together](/en/docs/api/post-invoices-payall) | `billing:write` |
| `GET` | `/v1/payment` | [Payment methods](/en/docs/api/get-payment) | `billing:read` |
| `GET` | `/v1/payment/fees` | [Payment method fees](/en/docs/api/get-payment-fees) | `billing:read` |

### Orders

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `POST` | `/v1/carts` | [Create a cart](/en/docs/api/post-carts) | `orders:write` |
| `GET` | `/v1/carts/@uuid` | [Get a cart](/en/docs/api/get-carts-uuid) | `orders:write` |
| `PUT` | `/v1/carts/@uuid` | [Update a cart](/en/docs/api/put-carts-uuid) | `orders:write` |
| `POST` | `/v1/carts/@uuid/confirm` | [Place the order from a cart](/en/docs/api/post-carts-uuid-confirm) | `orders:write` |
| `GET` | `/v1/carts/latest` | [Latest cart](/en/docs/api/get-carts-latest) | `orders:write` |
| `POST` | `/v1/order` | [Order several services](/en/docs/api/post-order) | `orders:write` |
| `POST` | `/v1/order/@product_id` | [Order one service](/en/docs/api/post-order-product-id) | `orders:write` |
| `POST` | `/v1/quote` | [Get an order quote](/en/docs/api/post-quote) | `orders:write` |

## TinoPay

### Merchant

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay` | [Merchant details](/en/docs/api/tinopay-get-merchant) | — |
| `PATCH` | `/service/@id/tinopay` | [Update merchant details](/en/docs/api/tinopay-patch-merchant) | — |
| `GET` | `/service/@id/tinopay/pay-codes` | [Payment code patterns](/en/docs/api/tinopay-get-pay-codes) | — |
| `PUT` | `/service/@id/tinopay/pay-codes` | [Save payment code patterns](/en/docs/api/tinopay-put-pay-codes) | — |

### Bank accounts

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay/bank-accounts` | [List bank accounts](/en/docs/api/tinopay-get-bank-accounts) | — |
| `GET` | `/service/@id/tinopay/bank-accounts/@bank` | [Bank account details](/en/docs/api/tinopay-get-bank-accounts-bank) | — |
| `POST` | `/service/@id/tinopay/bank-links/bidv-business` | [Request a BIDV business link](/en/docs/api/tinopay-post-bank-links-bidv-business) | — |

### Virtual accounts

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay/bank-accounts/@bank/virtual-accounts` | [List virtual accounts (VA)](/en/docs/api/tinopay-get-bank-accounts-bank-virtual-accounts) | — |
| `POST` | `/service/@id/tinopay/bank-accounts/@bank/virtual-accounts` | [Create a virtual account](/en/docs/api/tinopay-post-bank-accounts-bank-virtual-accounts) | — |
| `POST` | `/service/@id/tinopay/bank-accounts/@bank/virtual-accounts/@va/activate` | [Activate a virtual account](/en/docs/api/tinopay-post-bank-accounts-bank-virtual-accounts-va-activate) | — |
| `POST` | `/service/@id/tinopay/bank-accounts/@bank/virtual-accounts/@va/deactivate` | [Deactivate a virtual account](/en/docs/api/tinopay-post-bank-accounts-bank-virtual-accounts-va-deactivate) | — |
| `DELETE` | `/service/@id/tinopay/bank-accounts/@bank/virtual-accounts/@va` | [Delete a virtual account](/en/docs/api/tinopay-delete-bank-accounts-bank-virtual-accounts-va) | — |

### Webhooks

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay/webhooks` | [List webhooks](/en/docs/api/tinopay-get-webhooks) | — |
| `POST` | `/service/@id/tinopay/webhooks` | [Create a webhook](/en/docs/api/tinopay-post-webhooks) | — |
| `GET` | `/service/@id/tinopay/webhooks/@webhook` | [Webhook details](/en/docs/api/tinopay-get-webhooks-webhook) | — |
| `PATCH` | `/service/@id/tinopay/webhooks/@webhook` | [Update a webhook](/en/docs/api/tinopay-patch-webhooks-webhook) | — |
| `DELETE` | `/service/@id/tinopay/webhooks/@webhook` | [Delete a webhook](/en/docs/api/tinopay-delete-webhooks-webhook) | — |
| `GET` | `/service/@id/tinopay/webhook-logs` | [Webhook logs](/en/docs/api/tinopay-get-webhook-logs) | — |
| `POST` | `/service/@id/tinopay/webhook-logs/@log/resend` | [Resend a webhook log](/en/docs/api/tinopay-post-webhook-logs-log-resend) | — |

### Transactions

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay/transactions` | [Transaction history](/en/docs/api/tinopay-get-transactions) | — |
| `GET` | `/service/@id/tinopay/transactions/summary` | [Transaction summary](/en/docs/api/tinopay-get-transactions-summary) | — |
| `GET` | `/service/@id/tinopay/transactions/@transaction` | [Transaction details](/en/docs/api/tinopay-get-transactions-transaction) | — |
| `POST` | `/service/@id/tinopay/transactions/@transaction/resend-webhook` | [Resend webhooks for a transaction](/en/docs/api/tinopay-post-transactions-transaction-resend-webhook) | — |

### Notifications

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `POST` | `/service/@id/tinopay/notification-apps/bot-info` | [Check a bot token](/en/docs/api/tinopay-post-notification-apps-bot-info) | — |
| `POST` | `/service/@id/tinopay/notification-apps/find-chats` | [Find a bot's chats](/en/docs/api/tinopay-post-notification-apps-find-chats) | — |
| `POST` | `/service/@id/tinopay/notification-apps/test` | [Send a test message](/en/docs/api/tinopay-post-notification-apps-test) | — |
| `GET` | `/service/@id/tinopay/notification-apps` | [List notification apps](/en/docs/api/tinopay-get-notification-apps) | — |
| `POST` | `/service/@id/tinopay/notification-apps` | [Create a notification app](/en/docs/api/tinopay-post-notification-apps) | — |
| `GET` | `/service/@id/tinopay/notification-apps/@app` | [Notification app details](/en/docs/api/tinopay-get-notification-apps-app) | — |
| `PATCH` | `/service/@id/tinopay/notification-apps/@app` | [Update a notification app](/en/docs/api/tinopay-patch-notification-apps-app) | — |
| `DELETE` | `/service/@id/tinopay/notification-apps/@app` | [Delete a notification app](/en/docs/api/tinopay-delete-notification-apps-app) | — |

### Sapo integration

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `POST` | `/service/@id/tinopay/sapo-integrations/test` | [Test the Sapo connection](/en/docs/api/tinopay-post-sapo-integrations-test) | — |
| `GET` | `/service/@id/tinopay/sapo-integrations` | [List Sapo integrations](/en/docs/api/tinopay-get-sapo-integrations) | — |
| `POST` | `/service/@id/tinopay/sapo-integrations` | [Create a Sapo integration](/en/docs/api/tinopay-post-sapo-integrations) | — |
| `GET` | `/service/@id/tinopay/sapo-integrations/@integration` | [Get a Sapo integration](/en/docs/api/tinopay-get-sapo-integrations-integration) | — |
| `PATCH` | `/service/@id/tinopay/sapo-integrations/@integration` | [Update a Sapo integration](/en/docs/api/tinopay-patch-sapo-integrations-integration) | — |
| `DELETE` | `/service/@id/tinopay/sapo-integrations/@integration` | [Delete a Sapo integration](/en/docs/api/tinopay-delete-sapo-integrations-integration) | — |
| `GET` | `/service/@id/tinopay/sapo-order-logs` | [Sapo reconciliation log](/en/docs/api/tinopay-get-sapo-order-logs) | — |

### API tokens

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/tinopay/api-tokens` | [List API tokens](/en/docs/api/tinopay-get-api-tokens) | — |
| `POST` | `/service/@id/tinopay/api-tokens` | [Create an API token](/en/docs/api/tinopay-post-api-tokens) | — |
| `DELETE` | `/service/@id/tinopay/api-tokens/@token` | [Revoke an API token](/en/docs/api/tinopay-delete-api-tokens-token) | — |

## Tino Uptime

### Uptime plan

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/uptime` | [Tino Uptime plan overview](/en/docs/api/uptime-get-overview) | — |
| `GET` | `/service/@id/uptime/usage` | [Usage against plan limits](/en/docs/api/uptime-get-usage) | — |

### Monitors

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/uptime/monitors` | [List monitors](/en/docs/api/uptime-get-monitors) | — |
| `POST` | `/service/@id/uptime/monitors` | [Create a monitor](/en/docs/api/uptime-post-monitors) | — |
| `GET` | `/service/@id/uptime/monitors/@monitor` | [Monitor details](/en/docs/api/uptime-get-monitors-monitor) | — |
| `PUT` | `/service/@id/uptime/monitors/@monitor` | [Update a monitor](/en/docs/api/uptime-put-monitors-monitor) | — |
| `DELETE` | `/service/@id/uptime/monitors/@monitor` | [Delete a monitor](/en/docs/api/uptime-delete-monitors-monitor) | — |
| `POST` | `/service/@id/uptime/monitors/@monitor/pause` | [Pause a monitor](/en/docs/api/uptime-post-monitors-monitor-pause) | — |
| `POST` | `/service/@id/uptime/monitors/@monitor/resume` | [Resume a monitor](/en/docs/api/uptime-post-monitors-monitor-resume) | — |
| `GET` | `/service/@id/uptime/monitors/@monitor/uptime` | [Monitor uptime](/en/docs/api/uptime-get-monitors-monitor-uptime) | — |
| `GET` | `/service/@id/uptime/monitors/@monitor/results` | [Monitor check results](/en/docs/api/uptime-get-monitors-monitor-results) | — |
| `GET` | `/service/@id/uptime/monitors/@monitor/incidents` | [Monitor incidents](/en/docs/api/uptime-get-monitors-monitor-incidents) | — |

### Incidents

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/uptime/incidents` | [List incidents](/en/docs/api/uptime-get-incidents) | — |
| `GET` | `/service/@id/uptime/incidents/@incident` | [Incident details](/en/docs/api/uptime-get-incidents-incident) | — |
| `POST` | `/service/@id/uptime/incidents/@incident/ack` | [Acknowledge an incident](/en/docs/api/uptime-post-incidents-incident-ack) | — |

### Alert channels

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/uptime/channels` | [List alert channels](/en/docs/api/uptime-get-channels) | — |
| `POST` | `/service/@id/uptime/channels` | [Create an alert channel](/en/docs/api/uptime-post-channels) | — |
| `POST` | `/service/@id/uptime/channels/@channel/verify` | [Verify an alert channel](/en/docs/api/uptime-post-channels-channel-verify) | — |
| `POST` | `/service/@id/uptime/channels/@channel/test` | [Send a test message](/en/docs/api/uptime-post-channels-channel-test) | — |
| `DELETE` | `/service/@id/uptime/channels/@channel` | [Delete an alert channel](/en/docs/api/uptime-delete-channels-channel) | — |

## TinoPage Builder

### Builder account

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/builder/overview` | [TinoPage Builder account overview](/en/docs/api/builder-get-overview) | — |
| `POST` | `/service/@id/builder/login` | [One-time sign-in ticket](/en/docs/api/builder-post-login) | — |

### Websites

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/builder/sites` | [List websites](/en/docs/api/builder-get-sites) | — |
| `GET` | `/service/@id/builder/sites/@site` | [Website details](/en/docs/api/builder-get-sites-site) | — |
| `POST` | `/service/@id/builder/sites` | [Create a website with AI](/en/docs/api/builder-post-sites) | — |
| `GET` | `/service/@id/builder/site-creation` | [Website creation progress](/en/docs/api/builder-get-site-creation) | — |
| `POST` | `/service/@id/builder/sites/@site/publish` | [Publish a website](/en/docs/api/builder-post-sites-site-publish) | — |
| `POST` | `/service/@id/builder/sites/@site/unpublish` | [Pause a website](/en/docs/api/builder-post-sites-site-unpublish) | — |
| `DELETE` | `/service/@id/builder/sites/@site` | [Delete a website](/en/docs/api/builder-delete-sites-site) | — |

### Custom domains

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/builder/sites/@site/domains` | [Custom domains of a website](/en/docs/api/builder-get-sites-site-domains) | — |
| `POST` | `/service/@id/builder/sites/@site/domains` | [Add a custom domain](/en/docs/api/builder-post-sites-site-domains) | — |
| `POST` | `/service/@id/builder/sites/@site/domains/@hostname/verify` | [Check DNS again](/en/docs/api/builder-post-sites-site-domains-hostname-verify) | — |
| `DELETE` | `/service/@id/builder/sites/@site/domains/@hostname` | [Remove a custom domain](/en/docs/api/builder-delete-sites-site-domains-hostname) | — |

### Contacts & orders

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/service/@id/builder/sites/@site/leads` | [Contacts and orders](/en/docs/api/builder-get-sites-site-leads) | — |

## TinoWAF

### TinoWAF

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/service/@id/waf/events` | [Event summary](/en/docs/api/get-service-id-waf-events) | `waf:read` |
| `GET` | `/v1/service/@id/waf/ip-rules` | [List IP rules](/en/docs/api/get-service-id-waf-ip-rules) | `waf:read` |
| `POST` | `/v1/service/@id/waf/ip-rules` | [Block or allow an IP](/en/docs/api/post-service-id-waf-ip-rules) | `waf:write` |
| `DELETE` | `/v1/service/@id/waf/ip-rules/@rule` | [Delete an IP rule](/en/docs/api/delete-service-id-waf-ip-rules-rule) | `waf:write` |
| `POST` | `/v1/service/@id/waf/ip-rules/apply` | [Re-apply IP rules](/en/docs/api/post-service-id-waf-ip-rules-apply) | `waf:write` |
| `GET` | `/v1/service/@id/waf/overview` | [TinoWAF overview](/en/docs/api/get-service-id-waf-overview) | `waf:read` |
| `GET` | `/v1/service/@id/waf/zones` | [List websites](/en/docs/api/get-service-id-waf-zones) | `waf:read` |
| `POST` | `/v1/service/@id/waf/zones` | [Add a website](/en/docs/api/post-service-id-waf-zones) | `waf:write` |
| `GET` | `/v1/service/@id/waf/zones/@zone` | [Get a website](/en/docs/api/get-service-id-waf-zones-zone) | `waf:read` |
| `DELETE` | `/v1/service/@id/waf/zones/@zone` | [Delete a website](/en/docs/api/delete-service-id-waf-zones-zone) | `waf:write` |
| `POST` | `/v1/service/@id/waf/zones/@zone/check` | [Check DNS now](/en/docs/api/post-service-id-waf-zones-zone-check) | `waf:write` |
| `GET` | `/v1/service/@id/waf/zones/@zone/events` | [List a website's events](/en/docs/api/get-service-id-waf-zones-zone-events) | `waf:read` |
| `GET` | `/v1/service/@id/waf/zones/@zone/hostnames` | [List a website's domain names](/en/docs/api/get-service-id-waf-zones-zone-hostnames) | `waf:read` |
| `POST` | `/v1/service/@id/waf/zones/@zone/hostnames` | [Add a domain name to a website](/en/docs/api/post-service-id-waf-zones-zone-hostnames) | `waf:write` |
| `DELETE` | `/v1/service/@id/waf/zones/@zone/hostnames/@hostname` | [Remove a domain name from a website](/en/docs/api/delete-service-id-waf-zones-zone-hostnames-hostname) | `waf:write` |
| `GET` | `/v1/service/@id/waf/zones/@zone/origin` | [Get a website's origin servers](/en/docs/api/get-service-id-waf-zones-zone-origin) | `waf:read` |
| `PUT` | `/v1/service/@id/waf/zones/@zone/origin` | [Update origin servers](/en/docs/api/put-service-id-waf-zones-zone-origin) | `waf:write` |
| `PUT` | `/v1/service/@id/waf/zones/@zone/under-attack` | [Turn emergency anti-attack mode on or off](/en/docs/api/put-service-id-waf-zones-zone-under-attack) | `waf:write` |
| `PUT` | `/v1/service/@id/waf/zones/@zone/waf-mode` | [Change the protection level](/en/docs/api/put-service-id-waf-zones-zone-waf-mode) | `waf:write` |

## Tickets & support

### Tickets & support

| Method | Path | Name | Scope |
| --- | --- | --- | --- |
| `GET` | `/v1/knowledgebase` | [Knowledge base categories](/en/docs/api/get-knowledgebase) | `tickets:read` |
| `GET` | `/v1/knowledgebase/@category_id` | [Articles in a category](/en/docs/api/get-knowledgebase-category-id) | `tickets:read` |
| `GET` | `/v1/knowledgebase/article/@article_id` | [Knowledge base article](/en/docs/api/get-knowledgebase-article-article-id) | `tickets:read` |
| `GET` | `/v1/news` | [List news](/en/docs/api/get-news) | `tickets:read` |
| `GET` | `/v1/news/@news_id` | [News details](/en/docs/api/get-news-news-id) | `tickets:read` |
| `GET` | `/v1/ticket/attachment/@file` | [Download ticket attachment](/en/docs/api/get-ticket-attachment-file) | `tickets:read` |
| `GET` | `/v1/ticket/departments` | [Support departments](/en/docs/api/get-ticket-departments) | `tickets:read` |
| `GET` | `/v1/tickets` | [List tickets](/en/docs/api/get-tickets) | `tickets:read` |
| `POST` | `/v1/tickets` | [Create ticket](/en/docs/api/post-tickets) | `tickets:write` |
| `GET` | `/v1/tickets/@number` | [Ticket details](/en/docs/api/get-tickets-number) | `tickets:read` |
| `POST` | `/v1/tickets/@number` | [Reply to ticket](/en/docs/api/post-tickets-number) | `tickets:write` |
| `PUT` | `/v1/tickets/@number/close` | [Close ticket](/en/docs/api/put-tickets-number-close) | `tickets:write` |
| `PUT` | `/v1/tickets/@number/open` | [Reopen ticket](/en/docs/api/put-tickets-number-open) | `tickets:write` |
