ThailandHosting API
Business Apps and Wi-Fi Hotspot for your own systems: a POS, a food ordering app, a hotel system or an HR system. Turn each API on under Integrations in the Console, create an API key, and call:
https://api.thailandhosting.com/v1
Authentication
Send a Project API key with every request. A key reaches one Project and only what its scopes allow: apps:read, apps:write, wifi:read, wifi:write (write includes read). Reads are GET; anything else is a write. Never put a key in a web page or an app your customers download.
curl https://api.thailandhosting.com/v1/key \
-H "Authorization: Bearer thk_YOUR_KEY"
Errors
Errors are application/problem+json (RFC 9457) with a stable code for your program and a detail for people. Messages from the shop itself are in Thai.
| Status | code | Meaning |
| 401 | unauthenticated, invalid_key | No key, or a wrong, deleted or expired one |
| 402 | payment_required | The month's free calls are used and the Project's wallet is empty |
| 403 | insufficient_scope, api_disabled, account_suspended | The key may not do this, or the API is off for the Project |
| 404 | not_found | No such endpoint or object |
| 409 | conflict | The change does not fit the current state (e.g. a slot already taken) |
| 429 | rate_limited | Too many calls: wait for Retry-After |
| 503 | starting, unavailable | The shop's database is starting, or a passing fault: retry after Retry-After |
{"title": "Forbidden", "status": 403, "code": "insufficient_scope", "detail": "This API key does not have the apps:write scope."}
Billing and limits
Calls are billed to the Project's wallet per 10,000, reads and writes priced apart, past the Project's free calls each month (the Integrations page shows the current prices and what is left). Refused calls (401, 402, 403, 429), our own errors and GET /key are free. The Business Apps API also bills its shop database by the hour at the size you pick. Each key may make about 600 calls a minute and 16 at once.
Money in the Business Apps API is in hundredths of the shop's currency: satang, or the smallest unit of kip.
Webhooks
Events are sent as a JSON POST to the HTTPS endpoints you add under Integrations. Business Apps, from the API shop and from website shops alike: order.created, order.updated, order.payment_claimed, bill.closed, booking.created, booking.cancelled, shift.closed and every other logged change (carrying shopId). Wi-Fi Hotspot: voucher.used (a code's first use; the code itself is never sent), guest.signed_in (an email or phone left on the sign-in page, with returning), box.offline and box.online (carrying locationId). Answer 2xx within 10 seconds; failures are retried for about a day. Events may arrive out of order (sort by createdAt) and more than once (skip a known id).
POST /your/endpoint
X-TH-Event: order.created
X-TH-Delivery: whd_…
X-TH-Signature: t=1760342400,v1=5f2b…
{"id": "evt_…", "type": "order.created", "createdAt": "2026-10-13T09:30:00Z", "shopId": "…", "data": {…}}
Check X-TH-Signature: v1 is the hex HMAC-SHA256 of <t>.<raw body> with your signing secret.
const crypto = require("crypto");
function verify(rawBody, header, secret) {
const parts = Object.fromEntries(header.split(",").map(p => p.split("=")));
const mac = crypto.createHmac("sha256", secret).update(parts.t + "." + rawBody).digest("hex");
return crypto.timingSafeEqual(Buffer.from(mac), Buffer.from(parts.v1));
}
Keys
GET/key
Describe the calling key
The key's Project, scopes, limits and expiry. Not billed, so an integration can check its setup for free.
Response · 200 · object
Fields
| Field | Type |
|---|
expiresAt | string (date-time) |
id | string |
locationIds | array of string |
name | string |
projectId | string |
scopes | array of string |
siteIds | array of string |
curl https://api.thailandhosting.com/v1/key \
-H "Authorization: Bearer thk_YOUR_KEY"
Business Apps
The Project's Business Apps API shop. Turn the Business Apps API on under Integrations.
GET/apps/shopapps:read
Get the shop
Settings (shop) and what the shop runs (apps). Needs the apps:read scope.
Fields
| Field | Type |
|---|
apps | ShopApps |
items | integer (int64) |
openBills | integer (int64) |
rentalRates | boolean |
rentalRooms | integer (int64) |
resources | integer (int64) |
rooms | integer (int64) |
services | integer (int64) |
shop | ShopSettings |
curl https://api.thailandhosting.com/v1/apps/shop \
-H "Authorization: Bearer thk_YOUR_KEY"
PUT/apps/shopapps:write
Change the shop's settings
Send back the shop object from GET apps/shop with your changes; it is replaced whole. Needs the apps:write scope.
Fields
| Field | Type |
|---|
bills | boolean |
bookingAutoConfirm | boolean |
bookingClosed | array of string |
bookingDaysAhead | integer |
bookingHours | array of BookingDay |
bookingLeadMinutes | integer |
bookingOpen | boolean |
bookingSlotMinutes | integer |
cancelHours | integer |
closedDates | array of string |
currency | string |
delivery | boolean |
deliveryFee | integer (int64) |
deliveryNote | string |
depositPercent | integer |
dineIn | boolean |
earnPer100 | integer |
emailLanguage | string |
freeDeliveryOver | integer (int64) |
hours | array of BookingDay |
laoQr | string |
limits | ShopLimits |
lineId | string |
loyalty | boolean |
name | string |
notice | string |
notifyBookings | boolean |
notifyCustomer | boolean |
notifyEmail | string |
notifyOrders | boolean |
open | boolean |
payCash | boolean |
phone | string |
pickup | boolean |
preorderDays | integer |
promptPayId | string |
promptPayName | string |
receiptFooter | string |
receiptPrefix | string |
receiptWidth | integer |
redeemPoints | integer |
redeemValue | integer (int64) |
reminderHours | integer |
replyTo | string |
servicePercent | integer |
smtpCheckedAt | string (date-time) |
smtpError | string |
smtpFrom | string |
smtpHost | string |
smtpPassword | string |
smtpPort | integer |
smtpSecurity | string |
smtpSet | boolean |
smtpUsername | string |
taxAddress | string |
taxId | string |
taxName | string |
updatedAt | string (date-time) |
useHours | boolean |
vatRate | integer |
vatRegistered | boolean |
Fields
| Field | Type |
|---|
apps | ShopApps |
items | integer (int64) |
openBills | integer (int64) |
rentalRates | boolean |
rentalRooms | integer (int64) |
resources | integer (int64) |
rooms | integer (int64) |
services | integer (int64) |
shop | ShopSettings |
curl -X PUT https://api.thailandhosting.com/v1/apps/shop \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"bills":false,"bookingAutoConfirm":false,"bookingClosed":[""],"bookingDaysAhead":0,"bookingHours":[],"bookingLeadMinutes":0,"bookingOpen":false,"bookingSlotMinutes":0,"cancelHours":0,"closedDates":[""],"currency":"","delivery":false,"deliveryFee":0,"deliveryNote":"","depositPercent":0,"dineIn":false,"earnPer100":0,"emailLanguage":"","freeDeliveryOver":0,"hours":[],"laoQr":"","limits":{},"lineId":"","loyalty":false,"name":"","notice":"","notifyBookings":false,"notifyCustomer":false,"notifyEmail":"","notifyOrders":false,"open":false,"payCash":false,"phone":"","pickup":false,"preorderDays":0,"promptPayId":"","promptPayName":"","receiptFooter":"","receiptPrefix":"","receiptWidth":0,"redeemPoints":0,"redeemValue":0,"reminderHours":0,"replyTo":"","servicePercent":0,"smtpCheckedAt":"2026-10-13T09:30:00Z","smtpError":"","smtpFrom":"","smtpHost":"","smtpPassword":"","smtpPort":0,"smtpSecurity":"","smtpSet":false,"smtpUsername":"","taxAddress":"","taxId":"","taxName":"","updatedAt":"2026-10-13T09:30:00Z","useHours":false,"vatRate":0,"vatRegistered":false}'
GET/apps/payment-qrapps:read
Payment QR for an amount
The shop's (or a branch's) PromptPay, or LaoQR for a kip shop: payload is the EMV text to draw, qr the same as SVG. Money is in hundredths of the shop's currency (satang, or att for kip). Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
amount | query | Required. The amount, in hundredths of the shop's currency. |
branch | query | Only this branch. |
Response · 200 · object
Fields
| Field | Type |
|---|
amount | integer (int64) |
currency | string |
qr | PromptPayQR |
curl https://api.thailandhosting.com/v1/apps/payment-qr \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/itemsapps:read
List items
Needs the apps:read scope.
curl https://api.thailandhosting.com/v1/apps/items \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/itemsapps:write
Create an item
Price in hundredths of the currency; stock null means not tracked. Needs the apps:write scope.
Fields
| Field | Type |
|---|
available | boolean |
category | string |
description | string |
image | string |
name | string |
options | array of ShopOption |
position | integer |
price | integer (int64) |
stock | integer |
wifi | WifiTerms |
Fields
| Field | Type |
|---|
available | boolean |
category | string |
createdAt | string (date-time) |
description | string |
id | string |
image | string |
name | string |
options | array of ShopOption |
position | integer |
price | integer (int64) |
stock | integer |
updatedAt | string (date-time) |
wifi | WifiTerms |
curl -X POST https://api.thailandhosting.com/v1/apps/items \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Latte","category":"Coffee","price":6500,"available":true,"stock":null}'
PUT/apps/items/{item}apps:write
Change an item
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
item required | path | |
Fields
| Field | Type |
|---|
available | boolean |
category | string |
description | string |
image | string |
name | string |
options | array of ShopOption |
position | integer |
price | integer (int64) |
stock | integer |
wifi | WifiTerms |
Fields
| Field | Type |
|---|
available | boolean |
category | string |
createdAt | string (date-time) |
description | string |
id | string |
image | string |
name | string |
options | array of ShopOption |
position | integer |
price | integer (int64) |
stock | integer |
updatedAt | string (date-time) |
wifi | WifiTerms |
curl -X PUT https://api.thailandhosting.com/v1/apps/items/ITEM_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"available":false,"category":"","description":"","image":"","name":"","options":[],"position":0,"price":0,"stock":0,"wifi":{}}'
DELETE/apps/items/{item}apps:write
Delete an item
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
item required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/items/ITEM_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/ordersapps:read
List orders
Open orders and the last 12 hours; view=all pages through every order, 200 at a time. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
view | query | all for every order. |
before | query | With view=all: entries older than this time (RFC 3339), for the next page. |
curl https://api.thailandhosting.com/v1/apps/orders \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/ordersapps:write
Create a counter order
Items by id with qty and the chosen option indexes; payment cash, promptpay, transfer or card. Money is in hundredths of the shop's currency (satang, or att for kip). receiptPath/reportPath are the Console's own links; with the API use the receipt and report routes. Needs the apps:write scope.
Fields
| Field | Type |
|---|
address | string |
bill | string |
branch | string |
coupon | string |
email | string |
expectTotal | integer (int64) |
fulfilment | string |
items | array of object |
key | string |
member | string |
name | string |
note | string |
payment | string |
phone | string |
points | integer |
pow | ShopPow |
table | string |
wantedAt | string |
Response · 201 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/apps/orders \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"id":"ITEM_ID","qty":2}],"fulfilment":"pickup","payment":"cash","name":"Walk-in"}'
PATCH/apps/orders/{order}apps:write
Change an order
Status (new, preparing, ready, shipped, completed, cancelled), paid, refund (with a reason), carrier and tracking. A change that needs a manager's approval answers 403 with the reason. Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
order required | path | |
Fields
| Field | Type |
|---|
carrier | string |
paid | boolean |
reason | string |
refund | boolean |
status | string |
tracking | string |
Fields
| Field | Type |
|---|
address | string |
billId | string |
branchId | string |
carrier | string |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deliveryFee | integer (int64) |
discount | integer (int64) |
fulfilment | string |
id | string |
lines | array of ShopLine |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
preorder | boolean |
receiptNo | string |
shiftId | string |
status | string |
tableLabel | string |
total | integer (int64) |
tracking | string |
updatedAt | string (date-time) |
updatedBy | string |
vatAmount | integer (int64) |
wantedAt | string (date-time) |
curl -X PATCH https://api.thailandhosting.com/v1/apps/orders/ORDER_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"paid":true,"status":"completed"}'
GET/apps/orders/{order}/receiptapps:read
Order receipt
A printable HTML page; the receipt is numbered the first time it is printed. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
order required | path | |
Response · 200 · text/html (a printable page)
curl https://api.thailandhosting.com/v1/apps/orders/ORDER_ID/receipt \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/billsapps:read
List table bills
Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
branch | query | Only this branch. |
view | query | closed for closed bills. |
Fields
curl https://api.thailandhosting.com/v1/apps/bills \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/billsapps:write
Open a bill for a table
Needs the apps:write scope.
Fields
| Field | Type |
|---|
branch | string |
guests | integer |
note | string |
table | string |
Fields
| Field | Type |
|---|
branchId | string |
closedAt | string (date-time) |
closedBy | string |
createdAt | string (date-time) |
discount | integer (int64) |
due | integer (int64) |
guests | integer |
id | string |
items | integer (int64) |
lines | array of ShopLine |
note | string |
number | integer |
openedBy | string |
orderCount | integer |
paid | boolean |
payment | string |
qrPath | string |
receiptNo | string |
service | integer (int64) |
serviceFee | integer (int64) |
status | string |
tableLabel | string |
total | integer (int64) |
updatedAt | string (date-time) |
curl -X POST https://api.thailandhosting.com/v1/apps/bills \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"table":"A3","guests":2}'
PATCH/apps/bills/{bill}apps:write
Change an open bill
Table, guests, note, discount. Money is in hundredths of the shop's currency (satang, or att for kip). Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
bill required | path | |
Fields
| Field | Type |
|---|
discount | integer (int64) |
guests | integer |
note | string |
reason | string |
table | string |
Fields
| Field | Type |
|---|
branchId | string |
closedAt | string (date-time) |
closedBy | string |
createdAt | string (date-time) |
discount | integer (int64) |
due | integer (int64) |
guests | integer |
id | string |
items | integer (int64) |
lines | array of ShopLine |
note | string |
number | integer |
openedBy | string |
orderCount | integer |
paid | boolean |
payment | string |
qrPath | string |
receiptNo | string |
service | integer (int64) |
serviceFee | integer (int64) |
status | string |
tableLabel | string |
total | integer (int64) |
updatedAt | string (date-time) |
curl -X PATCH https://api.thailandhosting.com/v1/apps/bills/BILL_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"discount":0,"guests":0,"note":"","reason":"","table":""}'
POST/apps/bills/{bill}/ordersapps:write
Add an order to a bill
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
bill required | path | |
Fields
| Field | Type |
|---|
address | string |
bill | string |
branch | string |
coupon | string |
email | string |
expectTotal | integer (int64) |
fulfilment | string |
items | array of object |
key | string |
member | string |
name | string |
note | string |
payment | string |
phone | string |
points | integer |
pow | ShopPow |
table | string |
wantedAt | string |
Response · 201 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/apps/bills/BILL_ID/orders \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"id":"ITEM_ID","qty":1}],"payment":"cash"}'
POST/apps/bills/{bill}/closeapps:write
Pay and close a bill
Every order on it is completed and paid. receiptPath/reportPath are the Console's own links; with the API use the receipt and report routes. Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
bill required | path | |
Fields
| Field | Type |
|---|
paid | boolean |
payment | string |
phone | string |
room | string |
Response · 200 · object
Fields
| Field | Type |
|---|
bill | BillRow |
receiptPath | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bills/BILL_ID/close \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"payment":"promptpay","paid":true}'
GET/apps/bills/{bill}/receiptapps:read
Bill receipt
A printable HTML page; the receipt is numbered the first time it is printed. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
bill required | path | |
Response · 200 · text/html (a printable page)
curl https://api.thailandhosting.com/v1/apps/bills/BILL_ID/receipt \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/shiftsapps:read
List till shifts
Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
branch | query | Only this branch. |
curl https://api.thailandhosting.com/v1/apps/shifts \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/shiftsapps:write
Open a till shift
With the float in the drawer. Money is in hundredths of the shop's currency (satang, or att for kip). Needs the apps:write scope.
Fields
| Field | Type |
|---|
branch | string |
name | string |
openingFloat | integer (int64) |
Fields
| Field | Type |
|---|
branchId | string |
branchName | string |
closedAt | string (date-time) |
closedBy | string |
countedCash | integer (int64) |
id | string |
name | string |
note | string |
openedAt | string (date-time) |
openedBy | string |
openingFloat | integer (int64) |
totals | ShiftTotals |
curl -X POST https://api.thailandhosting.com/v1/apps/shifts \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"Morning","openingFloat":200000}'
POST/apps/shifts/{shift}/closeapps:write
Count and close a shift
Open bills are in the way unless force is set. receiptPath/reportPath are the Console's own links; with the API use the receipt and report routes. Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
shift required | path | |
Fields
| Field | Type |
|---|
countedCash | integer (int64) |
force | boolean |
note | string |
Response · 200 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/apps/shifts/SHIFT_ID/close \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"countedCash":458000,"note":""}'
GET/apps/shifts/{shift}/reportapps:read
Shift report
The printable close-of-shift slip. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
shift required | path | |
Response · 200 · text/html (a printable page)
curl https://api.thailandhosting.com/v1/apps/shifts/SHIFT_ID/report \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/branchesapps:read
List branches
Needs the apps:read scope.
Fields
| Field | Type |
|---|
allowed | integer |
branches | array of BranchView |
charge | integer (int64) |
included | integer |
max | integer |
paid | integer |
price | integer (int64) |
curl https://api.thailandhosting.com/v1/apps/branches \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/branchesapps:write
Create a branch
Needs the apps:write scope.
Fields
| Field | Type |
|---|
active | boolean |
address | string |
closedDates | array of string |
delivery | boolean |
deliveryFee | integer (int64) |
dineIn | boolean |
hours | array of BookingDay |
laoQr | string |
mapUrl | string |
name | string |
open | boolean |
phone | string |
pickup | boolean |
position | integer |
promptPayId | string |
promptPayName | string |
useHours | boolean |
Response · 201 · object
Fields
| Field | Type |
|---|
branch | BranchView |
message | string |
walletCharge | integer (int64) |
curl -X POST https://api.thailandhosting.com/v1/apps/branches \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"active":false,"address":"","closedDates":[""],"delivery":false,"deliveryFee":0,"dineIn":false,"hours":[],"laoQr":"","mapUrl":"","name":"","open":false,"phone":"","pickup":false,"position":0,"promptPayId":"","promptPayName":"","useHours":false}'
PUT/apps/branches/{branch}apps:write
Change a branch
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
branch required | path | |
Fields
| Field | Type |
|---|
active | boolean |
address | string |
closedDates | array of string |
delivery | boolean |
deliveryFee | integer (int64) |
dineIn | boolean |
hours | array of BookingDay |
laoQr | string |
mapUrl | string |
name | string |
open | boolean |
phone | string |
pickup | boolean |
position | integer |
promptPayId | string |
promptPayName | string |
useHours | boolean |
Fields
| Field | Type |
|---|
active | boolean |
address | string |
closedDates | array of string |
createdAt | string (date-time) |
delivery | boolean |
deliveryFee | integer (int64) |
dineIn | boolean |
hours | array of BookingDay |
id | string |
laoQr | string |
mapUrl | string |
name | string |
open | boolean |
phone | string |
pickup | boolean |
position | integer |
promptPayId | string |
promptPayName | string |
updatedAt | string (date-time) |
useHours | boolean |
curl -X PUT https://api.thailandhosting.com/v1/apps/branches/BRANCH_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"active":false,"address":"","closedDates":[""],"delivery":false,"deliveryFee":0,"dineIn":false,"hours":[],"laoQr":"","mapUrl":"","name":"","open":false,"phone":"","pickup":false,"position":0,"promptPayId":"","promptPayName":"","useHours":false}'
DELETE/apps/branches/{branch}apps:write
Delete a branch
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
branch required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/branches/BRANCH_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/couponsapps:read
List coupons
Needs the apps:read scope.
curl https://api.thailandhosting.com/v1/apps/coupons \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/couponsapps:write
Create a coupon
Needs the apps:write scope.
Fields
| Field | Type |
|---|
active | boolean |
applies | string |
code | string |
endsAt | string |
kind | string |
maxUses | integer |
minTotal | integer (int64) |
perPhone | integer |
startsAt | string |
value | integer (int64) |
Fields
| Field | Type |
|---|
active | boolean |
applies | string |
code | string |
createdAt | string (date-time) |
endsAt | string (date-time) |
id | string |
kind | string |
maxUses | integer |
minTotal | integer (int64) |
perPhone | integer |
startsAt | string (date-time) |
updatedAt | string (date-time) |
used | integer |
value | integer (int64) |
curl -X POST https://api.thailandhosting.com/v1/apps/coupons \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"code":"WELCOME10","kind":"percent","value":10,"applies":"orders","active":true}'
PUT/apps/coupons/{coupon}apps:write
Change a coupon
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
coupon required | path | |
Fields
| Field | Type |
|---|
active | boolean |
applies | string |
code | string |
endsAt | string |
kind | string |
maxUses | integer |
minTotal | integer (int64) |
perPhone | integer |
startsAt | string |
value | integer (int64) |
Fields
| Field | Type |
|---|
active | boolean |
applies | string |
code | string |
createdAt | string (date-time) |
endsAt | string (date-time) |
id | string |
kind | string |
maxUses | integer |
minTotal | integer (int64) |
perPhone | integer |
startsAt | string (date-time) |
updatedAt | string (date-time) |
used | integer |
value | integer (int64) |
curl -X PUT https://api.thailandhosting.com/v1/apps/coupons/COUPON_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"active":false,"applies":"","code":"","endsAt":"","kind":"","maxUses":0,"minTotal":0,"perPhone":0,"startsAt":"","value":0}'
DELETE/apps/coupons/{coupon}apps:write
Delete a coupon
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
coupon required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/coupons/COUPON_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/customersapps:read
List members
Loyalty members, by phone number. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
q | query | Search by name or phone. |
curl https://api.thailandhosting.com/v1/apps/customers \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/customers/{member}apps:read
Get a member
With their points history. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
member required | path | |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
email | string |
id | string |
lastSeenAt | string (date-time) |
name | string |
note | string |
phone | string |
points | integer |
recent | array of ShopPointEntry |
totalSpent | integer (int64) |
visits | integer |
curl https://api.thailandhosting.com/v1/apps/customers/MEMBER_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
PATCH/apps/customers/{member}apps:write
Change a member
Add or take points (with a reason), name and note. Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
member required | path | |
Fields
| Field | Type |
|---|
name | string |
note | string |
points | integer |
reason | string |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
email | string |
id | string |
lastSeenAt | string (date-time) |
name | string |
note | string |
phone | string |
points | integer |
totalSpent | integer (int64) |
visits | integer |
curl -X PATCH https://api.thailandhosting.com/v1/apps/customers/MEMBER_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"points":50,"reason":"Birthday bonus"}'
GET/apps/reportapps:read
Sales report
Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
branch | query | Only this branch. |
month | query | YYYY-MM. |
range | query | today, yesterday, week or month. |
from | query | First day, YYYY-MM-DD. |
to | query | Last day, YYYY-MM-DD. |
Fields
curl https://api.thailandhosting.com/v1/apps/report \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/resourcesapps:read
List bookable services and room types
Needs the apps:read scope.
curl https://api.thailandhosting.com/v1/apps/resources \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/resourcesapps:write
Create a service or room type
Needs the apps:write scope.
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
capacity | integer |
deposit | integer (int64) |
description | string |
durationMinutes | integer |
icalLinks | array of IcalLink |
icalUrls | array of string |
image | string |
kind | string |
maxGuests | integer |
name | string |
position | integer |
price | integer (int64) |
staff | array of string |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
capacity | integer |
createdAt | string (date-time) |
deposit | integer (int64) |
description | string |
durationMinutes | integer |
icalError | string |
icalExport | string |
icalLinks | array of IcalLinkView |
icalSyncedAt | string (date-time) |
id | string |
image | string |
kind | string |
maxGuests | integer |
name | string |
position | integer |
price | integer (int64) |
updatedAt | string (date-time) |
curl -X POST https://api.thailandhosting.com/v1/apps/resources \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"available":false,"branchId":"","capacity":0,"deposit":0,"description":"","durationMinutes":0,"icalLinks":[],"icalUrls":[""],"image":"","kind":"","maxGuests":0,"name":"","position":0,"price":0,"staff":[""]}'
PUT/apps/resources/{res}apps:write
Change a service or room type
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
res required | path | |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
capacity | integer |
deposit | integer (int64) |
description | string |
durationMinutes | integer |
icalLinks | array of IcalLink |
icalUrls | array of string |
image | string |
kind | string |
maxGuests | integer |
name | string |
position | integer |
price | integer (int64) |
staff | array of string |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
capacity | integer |
createdAt | string (date-time) |
deposit | integer (int64) |
description | string |
durationMinutes | integer |
icalError | string |
icalExport | string |
icalLinks | array of IcalLinkView |
icalSyncedAt | string (date-time) |
id | string |
image | string |
kind | string |
maxGuests | integer |
name | string |
position | integer |
price | integer (int64) |
updatedAt | string (date-time) |
curl -X PUT https://api.thailandhosting.com/v1/apps/resources/RES_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"available":false,"branchId":"","capacity":0,"deposit":0,"description":"","durationMinutes":0,"icalLinks":[],"icalUrls":[""],"image":"","kind":"","maxGuests":0,"name":"","position":0,"price":0,"staff":[""]}'
DELETE/apps/resources/{res}apps:write
Delete a service or room type
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
res required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/resources/RES_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/staffapps:read
List people customers book
Needs the apps:read scope.
curl https://api.thailandhosting.com/v1/apps/staff \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/staffapps:write
Add a person customers book
Needs the apps:write scope.
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
hours | array of BookingDay |
image | string |
name | string |
position | integer |
title | string |
useHours | boolean |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
createdAt | string (date-time) |
hours | array of BookingDay |
id | string |
image | string |
name | string |
position | integer |
title | string |
updatedAt | string (date-time) |
useHours | boolean |
curl -X POST https://api.thailandhosting.com/v1/apps/staff \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"available":false,"branchId":"","hours":[],"image":"","name":"","position":0,"title":"","useHours":false}'
PUT/apps/staff/{staff}apps:write
Change a person
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
staff required | path | |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
hours | array of BookingDay |
image | string |
name | string |
position | integer |
title | string |
useHours | boolean |
Fields
| Field | Type |
|---|
available | boolean |
branchId | string |
createdAt | string (date-time) |
hours | array of BookingDay |
id | string |
image | string |
name | string |
position | integer |
title | string |
updatedAt | string (date-time) |
useHours | boolean |
curl -X PUT https://api.thailandhosting.com/v1/apps/staff/STAFF_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"available":false,"branchId":"","hours":[],"image":"","name":"","position":0,"title":"","useHours":false}'
DELETE/apps/staff/{staff}apps:write
Remove a person
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
staff required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/staff/STAFF_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/bookingsapps:read
List bookings
Upcoming, in progress and pending bookings, soonest first; view=all pages through every booking, newest first. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
view | query | all for every booking. |
before | query | With view=all: entries older than this time (RFC 3339), for the next page. |
curl https://api.thailandhosting.com/v1/apps/bookings \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/bookingsapps:write
Create a booking
Confirmed at once, for a phone or walk-in booking. Money is in hundredths of the shop's currency (satang, or att for kip). Needs the apps:write scope.
Fields
| Field | Type |
|---|
block | string |
branch | string |
channel | string |
checkIn | string |
checkOut | string |
coupon | string |
date | string |
email | string |
guests | integer |
key | string |
member | string |
name | string |
note | string |
payment | string |
phone | string |
points | integer |
pow | ShopPow |
resource | string |
staff | string |
time | string |
Fields
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bookings \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"resource":"RESOURCE_ID","date":"2027-01-15","time":"14:30","guests":1,"name":"Somchai","phone":"0812345678"}'
PATCH/apps/bookings/{booking}apps:write
Change a booking
Status (pending, confirmed, completed, cancelled, no_show), paid, reason. Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Fields
| Field | Type |
|---|
paid | boolean |
reason | string |
status | string |
Fields
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
curl -X PATCH https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"status":"completed","paid":true}'
GET/apps/unitsapps:read
List rooms
Needs the apps:read scope.
curl https://api.thailandhosting.com/v1/apps/units \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/unitsapps:write
Add rooms of a room type
Needs the apps:write scope.
Fields
| Field | Type |
|---|
names | array of string |
resource | string |
curl -X POST https://api.thailandhosting.com/v1/apps/units \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"names":[""],"resource":""}'
PUT/apps/units/{unit}apps:write
Change a room
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
unit required | path | |
Fields
| Field | Type |
|---|
name | string |
note | string |
position | integer |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
id | string |
name | string |
note | string |
position | integer |
resourceId | string |
status | string |
updatedAt | string (date-time) |
curl -X PUT https://api.thailandhosting.com/v1/apps/units/UNIT_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"name":"","note":"","position":0}'
POST/apps/units/{unit}/statusapps:write
Set a room's housekeeping status
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
unit required | path | |
Fields
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
id | string |
name | string |
note | string |
position | integer |
resourceId | string |
status | string |
updatedAt | string (date-time) |
curl -X POST https://api.thailandhosting.com/v1/apps/units/UNIT_ID/status \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"status":""}'
DELETE/apps/units/{unit}apps:write
Delete a room
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
unit required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/units/UNIT_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/frontdeskapps:read
Front desk
Today's arrivals, stays and departures, and every room's state. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
branch | query | Only this branch. |
date | query | The day, YYYY-MM-DD. |
Fields
curl https://api.thailandhosting.com/v1/apps/frontdesk \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/bookings/{booking}/checkinapps:write
Check a stay in
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Fields
| Field | Type |
|---|
dirty | boolean |
unit | string |
Fields
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/checkin \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"dirty":false,"unit":""}'
POST/apps/bookings/{booking}/moveapps:write
Move a stay to another room
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Fields
Fields
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/move \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"unit":""}'
POST/apps/bookings/{booking}/checkoutapps:write
Check a stay out
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Fields
| Field | Type |
|---|
paid | boolean |
payment | string |
Fields
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/checkout \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"paid":false,"payment":""}'
GET/apps/bookings/{booking}/chargesapps:read
List a stay's charges
Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Response · 200 · object
Fields
curl https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/charges \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/apps/bookings/{booking}/chargesapps:write
Charge something to a room
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Fields
| Field | Type |
|---|
amount | integer (int64) |
description | string |
Fields
| Field | Type |
|---|
amount | integer (int64) |
billId | string |
bookingId | string |
createdAt | string (date-time) |
createdBy | string |
description | string |
id | string |
curl -X POST https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/charges \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"amount":0,"description":""}'
DELETE/apps/bookings/{booking}/charges/{charge}apps:write
Remove a charge
Needs the apps:write scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
charge required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/charges/CHARGE_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/apps/bookings/{booking}/folioapps:read
Stay folio
The printable bill of a stay. Needs the apps:read scope.
Parameters
| Name | In | Description |
|---|
booking required | path | |
Response · 200 · text/html (a printable page)
curl https://api.thailandhosting.com/v1/apps/bookings/BOOKING_ID/folio \
-H "Authorization: Bearer thk_YOUR_KEY"
Wi-Fi Hotspot
The Project's Wi-Fi locations. Turn the Wi-Fi Hotspot API on under Integrations.
GET/wifi/locationswifi:read
List locations
The locations the key reaches. Needs the wifi:read scope.
curl https://api.thailandhosting.com/v1/wifi/locations \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/wifi/locations/{id}wifi:read
Get a location
With its devices online in the last day. Needs the wifi:read scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
Fields
| Field | Type |
|---|
acctMissingSince | string (date-time) |
billingPeriod | string |
box | WifiBoxView |
boxList | array of WifiBoxView |
boxSetup | WifiBoxSetup |
boxState | string |
boxes | integer |
branchId | string |
bypass | array of Bypass |
canManageBilling | boolean |
connection | string |
contract | boolean |
createdAt | string (date-time) |
devices | integer |
directory | string |
directoryId | string |
eap | WifiEAPView |
id | string |
lastSeenAt | string (date-time) |
lastSourceIp | string |
linkedSite | string |
logGbHours | number |
logPeriod | string |
logs | WifiLogView |
look | Look |
manualCodes | integer (int64) |
maxDevices | integer |
mode | string |
monthly | integer (int64) |
name | string |
nasIdentifier | string |
nextBillAt | string (date-time) |
online | integer (int64) |
overCycles | integer |
overflow | string |
package | string |
packageInfo | WifiPackage |
packageName | string |
paidUntil | string (date-time) |
passes | WifiPasses |
pausedFor | string |
paygCost | integer (int64) |
paygDeviceMinutes | integer (int64) |
paygHeld | boolean |
paygHourMicro | integer (int64) |
paygHours | number |
paygPeriod | string |
paygThreshold | integer |
peakDevices | integer |
peakPeriod | string |
pending | WifiPendingView |
pendingDevices | integer |
pendingFrom | string (date-time) |
pendingOff | boolean |
pendingPackage | string |
portal | WifiPortalView |
portalDomain | string |
portalDomainVerified | boolean |
portalShop | PortalShopView |
portalSlug | string |
product | string |
projectId | string |
radius | string |
radiusSecret | string |
retentionDays | integer |
sessions | array of WifiSession |
setup | WifiSetup |
siteId | string |
status | string |
teamOn | boolean |
updatedAt | string (date-time) |
upgrade | WifiUpgradeView |
vendor | string |
welcome | string |
curl https://api.thailandhosting.com/v1/wifi/locations/ID_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/wifi/locations/{id}/statswifi:read
Usage statistics
Needs the wifi:read scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
range | query | 24h, 7d, 30d, 90d or 1y. |
Fields
curl https://api.thailandhosting.com/v1/wifi/locations/ID_ID/stats \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/wifi/locations/{id}/voucherswifi:read
List access codes
Needs the wifi:read scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
batch | query | Only this batch. |
Response · 200 · object
Fields
curl https://api.thailandhosting.com/v1/wifi/locations/ID_ID/vouchers \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/wifi/locations/{id}/voucherswifi:write
Issue access codes
count codes, each good for minutes after first use, on up to devices devices at once. Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
Fields
| Field | Type |
|---|
count | integer |
devices | integer |
downMbps | number |
minutes | integer |
note | string |
upMbps | number |
validDays | integer |
Response · 201 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/wifi/locations/ID_ID/vouchers \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"count":1,"minutes":1440,"devices":2,"note":"Room 1204"}'
POST/wifi/locations/{id}/vouchers/{voucher}/voidwifi:write
Void an access code
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
voucher required | path | |
Response · 200 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/wifi/locations/ID_ID/vouchers/VOUCHER_ID/void \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/wifi/locations/{id}/vouchers/printwifi:read
Print access codes
A printable HTML page of cards. Needs the wifi:read scope.
Parameters
| Name | In | Description |
|---|
id required | path | |
batch | query | Only this batch. |
Response · 200 · text/html (a printable page)
curl https://api.thailandhosting.com/v1/wifi/locations/ID_ID/vouchers/print \
-H "Authorization: Bearer thk_YOUR_KEY"
Identity
The Project's company users, for Wi-Fi Hotspot and VPN sign-in. Free: calls are not billed. Uses the Wi-Fi Hotspot API's switch and scopes.
GET/wifi/directorieswifi:read
List staff directories
Empty for a key limited to some locations. Needs the wifi:read scope.
curl https://api.thailandhosting.com/v1/wifi/directories \
-H "Authorization: Bearer thk_YOUR_KEY"
GET/wifi/directories/{dir}wifi:read
Get a directory with its users and groups
Needs the wifi:read scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
Response · 200 · object
Fields
curl https://api.thailandhosting.com/v1/wifi/directories/DIR_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/wifi/directories/{dir}/groupswifi:write
Create a group
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
Fields
| Field | Type |
|---|
devices | integer |
downMbps | number |
external | string |
name | string |
position | integer |
upMbps | number |
vlan | integer |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
devices | integer |
directoryId | string |
downKbps | integer |
external | string |
id | string |
name | string |
position | integer |
upKbps | integer |
updatedAt | string (date-time) |
vlan | integer |
curl -X POST https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/groups \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"devices":0,"downMbps":0,"external":"","name":"","position":0,"upMbps":0,"vlan":0}'
PUT/wifi/directories/{dir}/groups/{group}wifi:write
Change a group
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
group required | path | |
Fields
| Field | Type |
|---|
devices | integer |
downMbps | number |
external | string |
name | string |
position | integer |
upMbps | number |
vlan | integer |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
devices | integer |
directoryId | string |
downKbps | integer |
external | string |
id | string |
name | string |
position | integer |
upKbps | integer |
updatedAt | string (date-time) |
vlan | integer |
curl -X PUT https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/groups/GROUP_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"devices":0,"downMbps":0,"external":"","name":"","position":0,"upMbps":0,"vlan":0}'
DELETE/wifi/directories/{dir}/groups/{group}wifi:write
Delete a group
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
group required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/groups/GROUP_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
POST/wifi/directories/{dir}/userswifi:write
Create a staff account
Leave password empty to have one generated; it is answered once. Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
Fields
| Field | Type |
|---|
displayName | string |
email | string |
groupId | string |
password | string |
status | string |
username | string |
validUntil | string |
Response · 201 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/users \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"username":"somchai","displayName":"Somchai J.","email":"[email protected]"}'
POST/wifi/directories/{dir}/users/importwifi:write
Import staff accounts
A CSV body: username, display name, email, group, password (empty: generated). Up to 5,000 rows; existing usernames are updated. Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
Request body · text/csv · string
Response · 200 · object
Fields
| Field | Type |
|---|
created | integer |
passwords | array of object |
updated | integer |
curl -X POST https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/users/import \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: text/csv" --data-binary @file
PUT/wifi/directories/{dir}/users/{user}wifi:write
Change a staff account
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
user required | path | |
Fields
| Field | Type |
|---|
displayName | string |
email | string |
groupId | string |
password | string |
status | string |
username | string |
validUntil | string |
Fields
| Field | Type |
|---|
createdAt | string (date-time) |
directoryId | string |
displayName | string |
email | string |
groupId | string |
id | string |
lastLoginAt | string (date-time) |
source | string |
status | string |
updatedAt | string (date-time) |
username | string |
validUntil | string (date-time) |
curl -X PUT https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/users/USER_ID \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"displayName":"","email":"","groupId":"","password":"","status":"","username":"","validUntil":""}'
POST/wifi/directories/{dir}/users/{user}/passwordwifi:write
Set or generate a password
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
user required | path | |
Fields
Response · 200 · object
Fields
curl -X POST https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/users/USER_ID/password \
-H "Authorization: Bearer thk_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"password":""}'
DELETE/wifi/directories/{dir}/users/{user}wifi:write
Delete a staff account
Needs the wifi:write scope.
Parameters
| Name | In | Description |
|---|
dir required | path | |
user required | path | |
Response · 200 · object
Fields
curl -X DELETE https://api.thailandhosting.com/v1/wifi/directories/DIR_ID/users/USER_ID \
-H "Authorization: Bearer thk_YOUR_KEY"
Schemas
AppsPolicy
| Field | Type |
|---|
baseCredits | integer (int64) |
bookingsMonthly | integer |
branchPriceCredits | integer (int64) |
capCredits | integer (int64) |
coupons | integer |
csvExport | boolean |
customSmtp | boolean |
includedBranches | integer |
includedModules | integer |
includedSites | integer |
items | integer |
kitchenDisplay | boolean |
loyalty | boolean |
maxBranches | integer |
modulePrices | map of integer (int64) |
ordersMonthly | integer |
plan | string |
priceCredits | integer (int64) |
resources | integer |
teamUsers | integer |
BillRow
| Field | Type |
|---|
branchId | string |
closedAt | string (date-time) |
closedBy | string |
createdAt | string (date-time) |
discount | integer (int64) |
due | integer (int64) |
guests | integer |
id | string |
items | integer (int64) |
lines | array of ShopLine |
note | string |
number | integer |
openedBy | string |
orderCount | integer |
paid | boolean |
payment | string |
qrPath | string |
receiptNo | string |
service | integer (int64) |
serviceFee | integer (int64) |
status | string |
tableLabel | string |
total | integer (int64) |
updatedAt | string (date-time) |
Booking
| Field | Type |
|---|
branchId | string |
cancelledBy | string |
channel | string |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
updatedAt | string (date-time) |
updatedBy | string |
BookingCharge
| Field | Type |
|---|
amount | integer (int64) |
billId | string |
bookingId | string |
createdAt | string (date-time) |
createdBy | string |
description | string |
id | string |
BookingDay
| Field | Type |
|---|
close | string |
open | string |
BookingStaffRow
| Field | Type |
|---|
available | boolean |
branchId | string |
createdAt | string (date-time) |
hours | array of BookingDay |
id | string |
image | string |
name | string |
position | integer |
title | string |
updatedAt | string (date-time) |
useHours | boolean |
BookingUnit
| Field | Type |
|---|
createdAt | string (date-time) |
id | string |
name | string |
note | string |
position | integer |
resourceId | string |
status | string |
updatedAt | string (date-time) |
BranchView
| Field | Type |
|---|
active | boolean |
address | string |
closedDates | array of string |
createdAt | string (date-time) |
delivery | boolean |
deliveryFee | integer (int64) |
dineIn | boolean |
hours | array of BookingDay |
id | string |
laoQr | string |
mapUrl | string |
name | string |
open | boolean |
phone | string |
pickup | boolean |
position | integer |
promptPayId | string |
promptPayName | string |
updatedAt | string (date-time) |
useHours | boolean |
BranchesView
| Field | Type |
|---|
allowed | integer |
branches | array of BranchView |
charge | integer (int64) |
included | integer |
max | integer |
paid | integer |
price | integer (int64) |
Bypass
| Field | Type |
|---|
ip | string |
mac | string |
name | string |
nas | string |
until | string (date-time) |
DeskBlock
| Field | Type |
|---|
channel | string |
endsAt | string (date-time) |
id | string |
ref | string |
resourceId | string |
resourceName | string |
startsAt | string (date-time) |
summary | string |
DeskBooking
| Field | Type |
|---|
balance | integer (int64) |
branchId | string |
cancelledBy | string |
channel | string |
charges | integer (int64) |
checkedInAt | string (date-time) |
checkedOutAt | string (date-time) |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deposit | integer (int64) |
discount | integer (int64) |
endsAt | string (date-time) |
guests | integer |
id | string |
kind | string |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
remindedAt | string (date-time) |
resourceId | string |
resourceName | string |
settled | boolean |
settledPayment | string |
source | string |
staffId | string |
staffName | string |
startsAt | string (date-time) |
status | string |
total | integer (int64) |
unitId | string |
unitName | string |
updatedAt | string (date-time) |
updatedBy | string |
wifi | WifiPassView |
DeskType
| Field | Type |
|---|
capacity | integer |
id | string |
name | string |
units | integer |
DeskUnit
| Field | Type |
|---|
createdAt | string (date-time) |
guest | DeskBooking |
id | string |
name | string |
note | string |
position | integer |
resourceId | string |
resourceName | string |
status | string |
updatedAt | string (date-time) |
IcalLink
| Field | Type |
|---|
channel | string |
url | string |
IcalLinkView
| Field | Type |
|---|
channel | string |
error | string |
events | integer |
url | string |
Look
| Field | Type |
|---|
accent | string |
ask | string |
askRequired | boolean |
backdrop | string |
background | string |
consent | string |
contact | string |
headline | string |
image | string |
layout | string |
logo | string |
promos | array of Promo |
sell | boolean |
terms | string |
theme | string |
PortalPass
| Field | Type |
|---|
devices | integer |
downKbps | integer |
id | string |
minutes | integer |
name | string |
price | string |
PromptPayQR
| Field | Type |
|---|
account | string |
kind | string |
name | string |
payload | string |
qr | string |
ReportDay
| Field | Type |
|---|
bookings | integer |
date | string |
orders | integer |
revenue | integer (int64) |
ReportHour
| Field | Type |
|---|
hour | integer |
orders | integer |
revenue | integer (int64) |
ReportRow
| Field | Type |
|---|
count | integer |
name | string |
revenue | integer (int64) |
ResourceView
| Field | Type |
|---|
available | boolean |
branchId | string |
capacity | integer |
createdAt | string (date-time) |
deposit | integer (int64) |
description | string |
durationMinutes | integer |
icalError | string |
icalExport | string |
icalLinks | array of IcalLinkView |
icalSyncedAt | string (date-time) |
id | string |
image | string |
kind | string |
maxGuests | integer |
name | string |
position | integer |
price | integer (int64) |
updatedAt | string (date-time) |
ShiftTotals
| Field | Type |
|---|
cancelled | integer |
cash | integer (int64) |
creditNotes | integer |
discounts | integer (int64) |
expected | integer (int64) |
items | array of ReportRow |
nonCash | integer (int64) |
orders | integer |
over | integer (int64) |
payments | array of ReportRow |
refunds | integer (int64) |
revenue | integer (int64) |
vat | integer (int64) |
ShiftView
| Field | Type |
|---|
branchId | string |
branchName | string |
closedAt | string (date-time) |
closedBy | string |
countedCash | integer (int64) |
id | string |
name | string |
note | string |
openedAt | string (date-time) |
openedBy | string |
openingFloat | integer (int64) |
totals | ShiftTotals |
ShopApps
| Field | Type |
|---|
active | boolean |
available | boolean |
bookingClosedReason | string |
bookingQuota | integer |
bookingsThisMonth | integer (int64) |
branchLimit | integer |
branches | integer |
canManageBilling | boolean |
closedReason | string |
included | boolean |
itemLimit | integer |
kind | string |
legacy | boolean |
modules | array of string |
monthlyFee | integer (int64) |
openShift | string |
orderQuota | integer |
ordersThisMonth | integer (int64) |
paidBranches | integer |
paidFee | integer (int64) |
pendingOff | boolean |
remainingDays | integer |
store | string |
terms | AppsPolicy |
totalDays | integer |
ShopChoice
| Field | Type |
|---|
name | string |
price | integer (int64) |
ShopCoupon
| Field | Type |
|---|
active | boolean |
applies | string |
code | string |
createdAt | string (date-time) |
endsAt | string (date-time) |
id | string |
kind | string |
maxUses | integer |
minTotal | integer (int64) |
perPhone | integer |
startsAt | string (date-time) |
updatedAt | string (date-time) |
used | integer |
value | integer (int64) |
ShopCustomer
| Field | Type |
|---|
createdAt | string (date-time) |
email | string |
id | string |
lastSeenAt | string (date-time) |
name | string |
note | string |
phone | string |
points | integer |
totalSpent | integer (int64) |
visits | integer |
ShopInfo
| Field | Type |
|---|
apps | ShopApps |
items | integer (int64) |
openBills | integer (int64) |
rentalRates | boolean |
rentalRooms | integer (int64) |
resources | integer (int64) |
rooms | integer (int64) |
services | integer (int64) |
shop | ShopSettings |
ShopItemView
| Field | Type |
|---|
available | boolean |
category | string |
createdAt | string (date-time) |
description | string |
id | string |
image | string |
name | string |
options | array of ShopOption |
position | integer |
price | integer (int64) |
stock | integer |
updatedAt | string (date-time) |
wifi | WifiTerms |
ShopLimits
| Field | Type |
|---|
approvePointsOver | integer |
bookingHoldMinutes | integer |
earnDailyLimit | integer |
orderHourCap | integer |
ShopLine
| Field | Type |
|---|
itemId | string |
name | string |
options | array of string |
qty | integer |
total | integer (int64) |
unit | integer (int64) |
wifi | WifiTerms |
ShopMemberView
| Field | Type |
|---|
createdAt | string (date-time) |
email | string |
id | string |
lastSeenAt | string (date-time) |
name | string |
note | string |
phone | string |
points | integer |
recent | array of ShopPointEntry |
totalSpent | integer (int64) |
visits | integer |
ShopOrderView
| Field | Type |
|---|
address | string |
billId | string |
branchId | string |
carrier | string |
couponCode | string |
createdAt | string (date-time) |
currency | string |
customerEmail | string |
customerName | string |
customerPhone | string |
deliveryFee | integer (int64) |
discount | integer (int64) |
fulfilment | string |
id | string |
lines | array of ShopLine |
note | string |
number | integer |
paid | boolean |
payment | string |
paymentClaimed | boolean |
pointsEarned | integer |
pointsUsed | integer |
preorder | boolean |
receiptNo | string |
shiftId | string |
status | string |
tableLabel | string |
total | integer (int64) |
tracking | string |
updatedAt | string (date-time) |
updatedBy | string |
vatAmount | integer (int64) |
wantedAt | string (date-time) |
ShopPointEntry
| Field | Type |
|---|
createdAt | string (date-time) |
id | string |
orderId | string |
phone | string |
points | integer |
reason | string |
ShopPow
| Field | Type |
|---|
nonce | string |
ts | integer (int64) |
ShopSettings
| Field | Type |
|---|
bills | boolean |
bookingAutoConfirm | boolean |
bookingClosed | array of string |
bookingDaysAhead | integer |
bookingHours | array of BookingDay |
bookingLeadMinutes | integer |
bookingOpen | boolean |
bookingSlotMinutes | integer |
cancelHours | integer |
closedDates | array of string |
currency | string |
delivery | boolean |
deliveryFee | integer (int64) |
deliveryNote | string |
depositPercent | integer |
dineIn | boolean |
earnPer100 | integer |
emailLanguage | string |
freeDeliveryOver | integer (int64) |
hours | array of BookingDay |
laoQr | string |
limits | ShopLimits |
lineId | string |
loyalty | boolean |
name | string |
notice | string |
notifyBookings | boolean |
notifyCustomer | boolean |
notifyEmail | string |
notifyOrders | boolean |
open | boolean |
payCash | boolean |
phone | string |
pickup | boolean |
preorderDays | integer |
promptPayId | string |
promptPayName | string |
receiptFooter | string |
receiptPrefix | string |
receiptWidth | integer |
redeemPoints | integer |
redeemValue | integer (int64) |
reminderHours | integer |
replyTo | string |
servicePercent | integer |
smtpCheckedAt | string (date-time) |
smtpError | string |
smtpFrom | string |
smtpHost | string |
smtpPassword | string |
smtpPort | integer |
smtpSecurity | string |
smtpSet | boolean |
smtpUsername | string |
taxAddress | string |
taxId | string |
taxName | string |
updatedAt | string (date-time) |
useHours | boolean |
vatRate | integer |
vatRegistered | boolean |
WifiBoxSetup
| Field | Type |
|---|
cloud | string |
code | string |
codeExpiresAt | string (date-time) |
command | string |
downloads | map of string |
scriptUrl | string |
WifiBoxUpdate
| Field | Type |
|---|
error | string |
latest | string |
running | string |
state | string |
WifiBoxView
| Field | Type |
|---|
ackSeq | integer (int64) |
arch | string |
createdAt | string (date-time) |
enrollExpiresAt | string (date-time) |
hostname | string |
id | string |
kind | string |
label | string |
lan | string |
lastSeenAt | string (date-time) |
leases | integer |
locationId | string |
natSuspects | integer |
netApply | string |
netMode | string |
networks | string |
offlineSince | string (date-time) |
online | integer |
pairedAt | string (date-time) |
problems | string |
sourceIp | string |
spooled | integer (int64) |
state | string |
update | WifiBoxUpdate |
updatedAt | string (date-time) |
version | string |
WifiCertView
| Field | Type |
|---|
expires | string (date-time) |
state | string |
trusted | boolean |
WifiDetail
| Field | Type |
|---|
acctMissingSince | string (date-time) |
billingPeriod | string |
box | WifiBoxView |
boxList | array of WifiBoxView |
boxSetup | WifiBoxSetup |
boxState | string |
boxes | integer |
branchId | string |
bypass | array of Bypass |
canManageBilling | boolean |
connection | string |
contract | boolean |
createdAt | string (date-time) |
devices | integer |
directory | string |
directoryId | string |
eap | WifiEAPView |
id | string |
lastSeenAt | string (date-time) |
lastSourceIp | string |
linkedSite | string |
logGbHours | number |
logPeriod | string |
logs | WifiLogView |
look | Look |
manualCodes | integer (int64) |
maxDevices | integer |
mode | string |
monthly | integer (int64) |
name | string |
nasIdentifier | string |
nextBillAt | string (date-time) |
online | integer (int64) |
overCycles | integer |
overflow | string |
package | string |
packageInfo | WifiPackage |
packageName | string |
paidUntil | string (date-time) |
passes | WifiPasses |
pausedFor | string |
paygCost | integer (int64) |
paygDeviceMinutes | integer (int64) |
paygHeld | boolean |
paygHourMicro | integer (int64) |
paygHours | number |
paygPeriod | string |
paygThreshold | integer |
peakDevices | integer |
peakPeriod | string |
pending | WifiPendingView |
pendingDevices | integer |
pendingFrom | string (date-time) |
pendingOff | boolean |
pendingPackage | string |
portal | WifiPortalView |
portalDomain | string |
portalDomainVerified | boolean |
portalShop | PortalShopView |
portalSlug | string |
product | string |
projectId | string |
radius | string |
radiusSecret | string |
retentionDays | integer |
sessions | array of WifiSession |
setup | WifiSetup |
siteId | string |
status | string |
teamOn | boolean |
updatedAt | string (date-time) |
upgrade | WifiUpgradeView |
vendor | string |
welcome | string |
WifiDirectoryView
| Field | Type |
|---|
connector | string |
createdAt | string (date-time) |
eapName | string |
id | string |
locations | array of string |
name | string |
projectId | string |
ssid | string |
updatedAt | string (date-time) |
users | integer (int64) |
WifiEAPView
| Field | Type |
|---|
caCert | string |
enabled | boolean |
host | string |
hostIps | array of string |
port | integer |
secret | string |
serverName | string |
trusted | boolean |
WifiGroup
| Field | Type |
|---|
createdAt | string (date-time) |
devices | integer |
directoryId | string |
downKbps | integer |
external | string |
id | string |
name | string |
position | integer |
upKbps | integer |
updatedAt | string (date-time) |
vlan | integer |
WifiLocationView
| Field | Type |
|---|
acctMissingSince | string (date-time) |
billingPeriod | string |
boxState | string |
boxes | integer |
branchId | string |
connection | string |
createdAt | string (date-time) |
devices | integer |
directory | string |
directoryId | string |
eap | boolean |
id | string |
lastSeenAt | string (date-time) |
lastSourceIp | string |
linkedSite | string |
logGbHours | number |
logPeriod | string |
logs | WifiLogView |
manualCodes | integer (int64) |
maxDevices | integer |
mode | string |
monthly | integer (int64) |
name | string |
nasIdentifier | string |
nextBillAt | string (date-time) |
online | integer (int64) |
overCycles | integer |
overflow | string |
package | string |
packageName | string |
paidUntil | string (date-time) |
pausedFor | string |
paygCost | integer (int64) |
paygDeviceMinutes | integer (int64) |
paygHeld | boolean |
paygHourMicro | integer (int64) |
paygHours | number |
paygPeriod | string |
paygThreshold | integer |
peakDevices | integer |
peakPeriod | string |
pending | WifiPendingView |
pendingDevices | integer |
pendingFrom | string (date-time) |
pendingOff | boolean |
pendingPackage | string |
portalDomain | string |
portalDomainVerified | boolean |
portalSlug | string |
product | string |
projectId | string |
radius | string |
retentionDays | integer |
siteId | string |
status | string |
teamOn | boolean |
updatedAt | string (date-time) |
upgrade | WifiUpgradeView |
vendor | string |
welcome | string |
WifiLogView
| Field | Type |
|---|
billableGb | number |
billableOldOnly | boolean |
cost | integer (int64) |
estimate | integer (int64) |
freeDays | integer |
freeGb | integer |
gbMonthMicro | integer (int64) |
gbMonths | number |
oldGb | number |
recentGb | number |
storedGb | number |
WifiPackage
| Field | Type |
|---|
createdAt | string (date-time) |
custom | boolean |
graceBasisPoints | integer |
id | string |
logFreeGb | integer |
maxDevices | integer |
minDevices | integer |
name | string |
nameEn | string |
nameLo | string |
overageCredits | integer (int64) |
paygBasisPoints | integer |
priceCredits | integer (int64) |
product | string |
rank | integer |
status | string |
updatedAt | string (date-time) |
updatedBy | string |
yearLogsCredits | integer (int64) |
WifiPassRule
| Field | Type |
|---|
devices | integer |
downKbps | integer |
minutes | integer |
on | boolean |
upKbps | integer |
WifiPassView
| Field | Type |
|---|
code | string |
devices | integer |
expiresAt | string (date-time) |
minutes | integer |
network | string |
WifiPendingView
| Field | Type |
|---|
devices | integer |
from | string (date-time) |
maxDevices | integer |
monthly | integer (int64) |
name | string |
package | string |
WifiPortalCustomView
| Field | Type |
|---|
cert | WifiCertView |
cname | string |
domain | string |
own | boolean |
txtName | string |
txtValue | string |
verified | boolean |
WifiSession
| Field | Type |
|---|
bytesIn | integer (int64) |
bytesOut | integer (int64) |
id | string |
ip | string |
locationId | string |
mac | string |
startedAt | string (date-time) |
stoppedAt | string (date-time) |
updatedAt | string (date-time) |
username | string |
via | string |
voucherId | string |
WifiSetup
| Field | Type |
|---|
acctPort | integer |
authPort | integer |
hostIps | array of string |
radiusHost | string |
script | string |
syslogPort | integer |
WifiStatsPoint
| Field | Type |
|---|
at | string (date-time) |
avg | number |
bytesIn | integer (int64) |
bytesOut | integer (int64) |
devices | integer |
max | integer |
signIns | integer (int64) |
WifiStatsTotals
| Field | Type |
|---|
avgOnline | number |
bytesIn | integer (int64) |
bytesOut | integer (int64) |
devicesMaxDay | integer |
devicesPerDay | number |
peak | integer |
signIns | integer (int64) |
WifiTerms
| Field | Type |
|---|
devices | integer |
downKbps | integer |
minutes | integer |
upKbps | integer |
WifiTopUser
| Field | Type |
|---|
bytes | integer (int64) |
mac | string |
minutes | integer (int64) |
username | string |
WifiUpgradeView
| Field | Type |
|---|
devices | integer |
difference | integer (int64) |
maxDevices | integer |
name | string |
package | string |
WifiUser
| Field | Type |
|---|
createdAt | string (date-time) |
directoryId | string |
displayName | string |
email | string |
groupId | string |
id | string |
lastLoginAt | string (date-time) |
source | string |
status | string |
updatedAt | string (date-time) |
username | string |
validUntil | string (date-time) |
WifiUserView
| Field | Type |
|---|
console | string |
createdAt | string (date-time) |
directoryId | string |
displayName | string |
email | string |
groupId | string |
id | string |
lastLoginAt | string (date-time) |
online | integer (int64) |
source | string |
status | string |
updatedAt | string (date-time) |
username | string |
validUntil | string (date-time) |
WifiVoucher
| Field | Type |
|---|
batch | string |
code | string |
createdAt | string (date-time) |
createdBy | string |
devices | integer |
downKbps | integer |
expiresAt | string (date-time) |
firstUsedAt | string (date-time) |
id | string |
locationId | string |
minutes | integer |
note | string |
source | string |
status | string |
upKbps | integer |
validUntil | string (date-time) |