# Sidebar

Sidebar modules showcase additional information from the store. Modules are enabled in the store's configuration/The following modules are supported:

| Type               | Notes                                   |
| ------------------ | --------------------------------------- |
| `top_customer`     | Shows the top customer of the store.    |
| `textbox`          | Renders custom HTML on the sidebar      |
| `recent_payments`  | Shows information of most recent payor  |
| `featured_package` | Showcases a particular package          |
| `giftcard_balance` | Shows the user's giftcard balance       |
| `server_status`    | Online status of a store's server       |
| `payment_goal`     | Progress to completing a payment goal   |
| `community_goal`   | Progress to completing a community goal |

Use the following endpoint to get all enabled sidebar module data:

## Retrieves the available sidebar modules.

> Retrieves the available sidebar modules configured for the store.

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"tags":[{"name":"Headless","description":"Endpoints which interact with a basket requiring the basket ID"}],"servers":[{"url":"https://headless.tebex.io/api"}],"paths":{"/accounts/{token}/sidebar":{"get":{"tags":["Headless"],"operationId":"getSidebar","summary":"Retrieves the available sidebar modules.","parameters":[{"in":"path","name":"token","required":true,"schema":{"type":"string"},"description":"The webstore identifier."}],"description":"Retrieves the available sidebar modules configured for the store.","responses":{"200":{"description":"Successful response.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ModulesResponse"}}}}}}}},"components":{"schemas":{"ModulesResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Module"}}}},"Module":{"oneOf":[{"$ref":"#/components/schemas/TopCustomerModule"},{"$ref":"#/components/schemas/TextboxModule"},{"$ref":"#/components/schemas/RecentPaymentsModule"},{"$ref":"#/components/schemas/FeaturedPackageModule"},{"$ref":"#/components/schemas/GiftcardBalanceModule"},{"$ref":"#/components/schemas/ServerStatusModule"},{"$ref":"#/components/schemas/PaymentGoalModule"},{"$ref":"#/components/schemas/CommunityGoalModule"}],"discriminator":{"propertyName":"type","mapping":{"top_customer":"#/components/schemas/TopCustomerModule","textbox":"#/components/schemas/TextboxModule","recent_payments":"#/components/schemas/RecentPaymentsModule","featured_package":"#/components/schemas/FeaturedPackageModule","giftcard_balance":"#/components/schemas/GiftcardBalanceModule","server_status":"#/components/schemas/ServerStatusModule","payment_goal":"#/components/schemas/PaymentGoalModule","community_goal":"#/components/schemas/CommunityGoalModule"}}},"TopCustomerModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"top_customer"},"data":{"$ref":"#/components/schemas/TopCustomerData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"TopCustomerData":{"type":"object","required":["header","username","username_id"],"properties":{"header":{"type":"string"},"username":{"type":"string"},"username_id":{"type":"string","description":"User identifier."},"total":{"type":"number","description":"Optional, present depending on module configuration."}}},"TextboxModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"textbox"},"data":{"$ref":"#/components/schemas/TextboxData"}},"required":["data"]}]},"TextboxData":{"type":"object","required":["header","text"],"properties":{"header":{"type":"string"},"text":{"type":"string","description":"HTML supported."}}},"RecentPaymentsModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"recent_payments"},"data":{"$ref":"#/components/schemas/RecentPaymentsData"}},"required":["data"]}]},"RecentPaymentsData":{"type":"object","required":["header","payments"],"properties":{"header":{"type":"string"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/RecentPayment"}}}},"RecentPayment":{"type":"object","required":["username","username_id","package"],"properties":{"username":{"type":"string"},"username_id":{"type":"string"},"package":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"created_at":{"type":["null","string"],"format":"date-time","description":"Optional, present depending on module configuration."},"price":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"currency":{"type":["null","string"],"description":"Optional, present depending on module configuration."}}},"FeaturedPackageModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"featured_package"},"data":{"$ref":"#/components/schemas/FeaturedPackageData"}},"required":["data"]}]},"FeaturedPackageData":{"type":"object","required":["header","package"],"properties":{"header":{"type":"string"},"package":{"$ref":"#/components/schemas/Package"}}},"Package":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"image":{"type":"string","nullable":true},"type":{"type":"string"},"category":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"base_price":{"type":"number","format":"float"},"sales_tax":{"type":"number","format":"float"},"total_price":{"type":"number","format":"float"},"currency":{"type":"string"},"prorate_price":{"type":"number","format":"float","description":"If this package is part of a tiered category, this is the difference on upgrade pricing from the current active tier.","nullable":true},"discount":{"type":"number","format":"float"},"disable_quantity":{"type":"boolean"},"disable_gifting":{"type":"boolean"},"expiration_date":{"type":"string","nullable":true,"format":"date-time"},"media":{"type":"array","items":{"$ref":"#/components/schemas/PackageMedia"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"PackageMedia":{"properties":{"type":{"type":"string","enum":["video","image"]},"name":{"type":"string","description":"A file name for the media, if applicable.","nullable":true},"url":{"type":"string","description":"The URL of the package media."},"featured":{"type":"boolean","description":"True if this media should be featured more prominently than others."}}},"GiftcardBalanceModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"giftcard_balance"},"data":{"$ref":"#/components/schemas/GiftcardBalanceData"}},"required":["data"]}]},"GiftcardBalanceData":{"type":"object","required":["header"],"properties":{"header":{"type":"string"}}},"ServerStatusModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"server_status"},"data":{"$ref":"#/components/schemas/ServerStatusData"}},"required":["data"]}]},"ServerStatusData":{"type":"object","required":["header","hostname","port","online","players"],"properties":{"header":{"type":"string"},"hostname":{"type":"string"},"port":{"type":"integer"},"online":{"type":"boolean"},"players":{"description":"Nullable object; null when server is offline.","oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Players"}]}}},"Players":{"type":"object","required":["online","max"],"properties":{"online":{"type":"integer"},"max":{"type":"integer"}}},"PaymentGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"payment_goal"},"data":{"$ref":"#/components/schemas/PaymentGoalData"}},"required":["data"]}]},"PaymentGoalData":{"type":"object","required":["header","percentage","bar_style","bar_animated"],"properties":{"header":{"type":"string"},"percentage":{"type":"number","minimum":0,"maximum":100},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"total":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."}}},"CommunityGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"community_goal"},"data":{"$ref":"#/components/schemas/CommunityGoalData"}},"required":["data"]}]},"CommunityGoalData":{"type":"object","required":["header","bar_style","bar_animated","percentage"],"properties":{"header":{"type":"string"},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"percentage":{"type":"number","minimum":0,"maximum":100},"total_payments":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"times_achieved":{"type":["null","integer"],"description":"Optional, present depending on module configuration."}}}}}}
```

## Module Schemas

## The ModuleBase object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}}}}}
```

## The ModulesResponse object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"ModulesResponse":{"type":"object","required":["data"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Module"}}}},"Module":{"oneOf":[{"$ref":"#/components/schemas/TopCustomerModule"},{"$ref":"#/components/schemas/TextboxModule"},{"$ref":"#/components/schemas/RecentPaymentsModule"},{"$ref":"#/components/schemas/FeaturedPackageModule"},{"$ref":"#/components/schemas/GiftcardBalanceModule"},{"$ref":"#/components/schemas/ServerStatusModule"},{"$ref":"#/components/schemas/PaymentGoalModule"},{"$ref":"#/components/schemas/CommunityGoalModule"}],"discriminator":{"propertyName":"type","mapping":{"top_customer":"#/components/schemas/TopCustomerModule","textbox":"#/components/schemas/TextboxModule","recent_payments":"#/components/schemas/RecentPaymentsModule","featured_package":"#/components/schemas/FeaturedPackageModule","giftcard_balance":"#/components/schemas/GiftcardBalanceModule","server_status":"#/components/schemas/ServerStatusModule","payment_goal":"#/components/schemas/PaymentGoalModule","community_goal":"#/components/schemas/CommunityGoalModule"}}},"TopCustomerModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"top_customer"},"data":{"$ref":"#/components/schemas/TopCustomerData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"TopCustomerData":{"type":"object","required":["header","username","username_id"],"properties":{"header":{"type":"string"},"username":{"type":"string"},"username_id":{"type":"string","description":"User identifier."},"total":{"type":"number","description":"Optional, present depending on module configuration."}}},"TextboxModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"textbox"},"data":{"$ref":"#/components/schemas/TextboxData"}},"required":["data"]}]},"TextboxData":{"type":"object","required":["header","text"],"properties":{"header":{"type":"string"},"text":{"type":"string","description":"HTML supported."}}},"RecentPaymentsModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"recent_payments"},"data":{"$ref":"#/components/schemas/RecentPaymentsData"}},"required":["data"]}]},"RecentPaymentsData":{"type":"object","required":["header","payments"],"properties":{"header":{"type":"string"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/RecentPayment"}}}},"RecentPayment":{"type":"object","required":["username","username_id","package"],"properties":{"username":{"type":"string"},"username_id":{"type":"string"},"package":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"created_at":{"type":["null","string"],"format":"date-time","description":"Optional, present depending on module configuration."},"price":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"currency":{"type":["null","string"],"description":"Optional, present depending on module configuration."}}},"FeaturedPackageModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"featured_package"},"data":{"$ref":"#/components/schemas/FeaturedPackageData"}},"required":["data"]}]},"FeaturedPackageData":{"type":"object","required":["header","package"],"properties":{"header":{"type":"string"},"package":{"$ref":"#/components/schemas/Package"}}},"Package":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"image":{"type":"string","nullable":true},"type":{"type":"string"},"category":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"base_price":{"type":"number","format":"float"},"sales_tax":{"type":"number","format":"float"},"total_price":{"type":"number","format":"float"},"currency":{"type":"string"},"prorate_price":{"type":"number","format":"float","description":"If this package is part of a tiered category, this is the difference on upgrade pricing from the current active tier.","nullable":true},"discount":{"type":"number","format":"float"},"disable_quantity":{"type":"boolean"},"disable_gifting":{"type":"boolean"},"expiration_date":{"type":"string","nullable":true,"format":"date-time"},"media":{"type":"array","items":{"$ref":"#/components/schemas/PackageMedia"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"PackageMedia":{"properties":{"type":{"type":"string","enum":["video","image"]},"name":{"type":"string","description":"A file name for the media, if applicable.","nullable":true},"url":{"type":"string","description":"The URL of the package media."},"featured":{"type":"boolean","description":"True if this media should be featured more prominently than others."}}},"GiftcardBalanceModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"giftcard_balance"},"data":{"$ref":"#/components/schemas/GiftcardBalanceData"}},"required":["data"]}]},"GiftcardBalanceData":{"type":"object","required":["header"],"properties":{"header":{"type":"string"}}},"ServerStatusModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"server_status"},"data":{"$ref":"#/components/schemas/ServerStatusData"}},"required":["data"]}]},"ServerStatusData":{"type":"object","required":["header","hostname","port","online","players"],"properties":{"header":{"type":"string"},"hostname":{"type":"string"},"port":{"type":"integer"},"online":{"type":"boolean"},"players":{"description":"Nullable object; null when server is offline.","oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Players"}]}}},"Players":{"type":"object","required":["online","max"],"properties":{"online":{"type":"integer"},"max":{"type":"integer"}}},"PaymentGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"payment_goal"},"data":{"$ref":"#/components/schemas/PaymentGoalData"}},"required":["data"]}]},"PaymentGoalData":{"type":"object","required":["header","percentage","bar_style","bar_animated"],"properties":{"header":{"type":"string"},"percentage":{"type":"number","minimum":0,"maximum":100},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"total":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."}}},"CommunityGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"community_goal"},"data":{"$ref":"#/components/schemas/CommunityGoalData"}},"required":["data"]}]},"CommunityGoalData":{"type":"object","required":["header","bar_style","bar_animated","percentage"],"properties":{"header":{"type":"string"},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"percentage":{"type":"number","minimum":0,"maximum":100},"total_payments":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"times_achieved":{"type":["null","integer"],"description":"Optional, present depending on module configuration."}}}}}}
```

## The Module object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"Module":{"oneOf":[{"$ref":"#/components/schemas/TopCustomerModule"},{"$ref":"#/components/schemas/TextboxModule"},{"$ref":"#/components/schemas/RecentPaymentsModule"},{"$ref":"#/components/schemas/FeaturedPackageModule"},{"$ref":"#/components/schemas/GiftcardBalanceModule"},{"$ref":"#/components/schemas/ServerStatusModule"},{"$ref":"#/components/schemas/PaymentGoalModule"},{"$ref":"#/components/schemas/CommunityGoalModule"}],"discriminator":{"propertyName":"type","mapping":{"top_customer":"#/components/schemas/TopCustomerModule","textbox":"#/components/schemas/TextboxModule","recent_payments":"#/components/schemas/RecentPaymentsModule","featured_package":"#/components/schemas/FeaturedPackageModule","giftcard_balance":"#/components/schemas/GiftcardBalanceModule","server_status":"#/components/schemas/ServerStatusModule","payment_goal":"#/components/schemas/PaymentGoalModule","community_goal":"#/components/schemas/CommunityGoalModule"}}},"TopCustomerModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"top_customer"},"data":{"$ref":"#/components/schemas/TopCustomerData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"TopCustomerData":{"type":"object","required":["header","username","username_id"],"properties":{"header":{"type":"string"},"username":{"type":"string"},"username_id":{"type":"string","description":"User identifier."},"total":{"type":"number","description":"Optional, present depending on module configuration."}}},"TextboxModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"textbox"},"data":{"$ref":"#/components/schemas/TextboxData"}},"required":["data"]}]},"TextboxData":{"type":"object","required":["header","text"],"properties":{"header":{"type":"string"},"text":{"type":"string","description":"HTML supported."}}},"RecentPaymentsModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"recent_payments"},"data":{"$ref":"#/components/schemas/RecentPaymentsData"}},"required":["data"]}]},"RecentPaymentsData":{"type":"object","required":["header","payments"],"properties":{"header":{"type":"string"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/RecentPayment"}}}},"RecentPayment":{"type":"object","required":["username","username_id","package"],"properties":{"username":{"type":"string"},"username_id":{"type":"string"},"package":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"created_at":{"type":["null","string"],"format":"date-time","description":"Optional, present depending on module configuration."},"price":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"currency":{"type":["null","string"],"description":"Optional, present depending on module configuration."}}},"FeaturedPackageModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"featured_package"},"data":{"$ref":"#/components/schemas/FeaturedPackageData"}},"required":["data"]}]},"FeaturedPackageData":{"type":"object","required":["header","package"],"properties":{"header":{"type":"string"},"package":{"$ref":"#/components/schemas/Package"}}},"Package":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"image":{"type":"string","nullable":true},"type":{"type":"string"},"category":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"base_price":{"type":"number","format":"float"},"sales_tax":{"type":"number","format":"float"},"total_price":{"type":"number","format":"float"},"currency":{"type":"string"},"prorate_price":{"type":"number","format":"float","description":"If this package is part of a tiered category, this is the difference on upgrade pricing from the current active tier.","nullable":true},"discount":{"type":"number","format":"float"},"disable_quantity":{"type":"boolean"},"disable_gifting":{"type":"boolean"},"expiration_date":{"type":"string","nullable":true,"format":"date-time"},"media":{"type":"array","items":{"$ref":"#/components/schemas/PackageMedia"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"PackageMedia":{"properties":{"type":{"type":"string","enum":["video","image"]},"name":{"type":"string","description":"A file name for the media, if applicable.","nullable":true},"url":{"type":"string","description":"The URL of the package media."},"featured":{"type":"boolean","description":"True if this media should be featured more prominently than others."}}},"GiftcardBalanceModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"giftcard_balance"},"data":{"$ref":"#/components/schemas/GiftcardBalanceData"}},"required":["data"]}]},"GiftcardBalanceData":{"type":"object","required":["header"],"properties":{"header":{"type":"string"}}},"ServerStatusModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"server_status"},"data":{"$ref":"#/components/schemas/ServerStatusData"}},"required":["data"]}]},"ServerStatusData":{"type":"object","required":["header","hostname","port","online","players"],"properties":{"header":{"type":"string"},"hostname":{"type":"string"},"port":{"type":"integer"},"online":{"type":"boolean"},"players":{"description":"Nullable object; null when server is offline.","oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Players"}]}}},"Players":{"type":"object","required":["online","max"],"properties":{"online":{"type":"integer"},"max":{"type":"integer"}}},"PaymentGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"payment_goal"},"data":{"$ref":"#/components/schemas/PaymentGoalData"}},"required":["data"]}]},"PaymentGoalData":{"type":"object","required":["header","percentage","bar_style","bar_animated"],"properties":{"header":{"type":"string"},"percentage":{"type":"number","minimum":0,"maximum":100},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"total":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."}}},"CommunityGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"community_goal"},"data":{"$ref":"#/components/schemas/CommunityGoalData"}},"required":["data"]}]},"CommunityGoalData":{"type":"object","required":["header","bar_style","bar_animated","percentage"],"properties":{"header":{"type":"string"},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"percentage":{"type":"number","minimum":0,"maximum":100},"total_payments":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"times_achieved":{"type":["null","integer"],"description":"Optional, present depending on module configuration."}}}}}}
```

## The TextboxModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"TextboxModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"textbox"},"data":{"$ref":"#/components/schemas/TextboxData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"TextboxData":{"type":"object","required":["header","text"],"properties":{"header":{"type":"string"},"text":{"type":"string","description":"HTML supported."}}}}}}
```

## The TopCustomerModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"TopCustomerModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"top_customer"},"data":{"$ref":"#/components/schemas/TopCustomerData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"TopCustomerData":{"type":"object","required":["header","username","username_id"],"properties":{"header":{"type":"string"},"username":{"type":"string"},"username_id":{"type":"string","description":"User identifier."},"total":{"type":"number","description":"Optional, present depending on module configuration."}}}}}}
```

## The PaymentGoalModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"PaymentGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"payment_goal"},"data":{"$ref":"#/components/schemas/PaymentGoalData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"PaymentGoalData":{"type":"object","required":["header","percentage","bar_style","bar_animated"],"properties":{"header":{"type":"string"},"percentage":{"type":"number","minimum":0,"maximum":100},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"total":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."}}}}}}
```

## The ServerStatusModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"ServerStatusModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"server_status"},"data":{"$ref":"#/components/schemas/ServerStatusData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"ServerStatusData":{"type":"object","required":["header","hostname","port","online","players"],"properties":{"header":{"type":"string"},"hostname":{"type":"string"},"port":{"type":"integer"},"online":{"type":"boolean"},"players":{"description":"Nullable object; null when server is offline.","oneOf":[{"type":"null"},{"$ref":"#/components/schemas/Players"}]}}},"Players":{"type":"object","required":["online","max"],"properties":{"online":{"type":"integer"},"max":{"type":"integer"}}}}}}
```

## The CommunityGoalModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"CommunityGoalModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"community_goal"},"data":{"$ref":"#/components/schemas/CommunityGoalData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"CommunityGoalData":{"type":"object","required":["header","bar_style","bar_animated","percentage"],"properties":{"header":{"type":"string"},"bar_style":{"type":"string","enum":["normal","striped"]},"bar_animated":{"type":"boolean"},"percentage":{"type":"number","minimum":0,"maximum":100},"total_payments":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"target":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"times_achieved":{"type":["null","integer"],"description":"Optional, present depending on module configuration."}}}}}}
```

## The RecentPaymentsModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"RecentPaymentsModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"recent_payments"},"data":{"$ref":"#/components/schemas/RecentPaymentsData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"RecentPaymentsData":{"type":"object","required":["header","payments"],"properties":{"header":{"type":"string"},"payments":{"type":"array","items":{"$ref":"#/components/schemas/RecentPayment"}}}},"RecentPayment":{"type":"object","required":["username","username_id","package"],"properties":{"username":{"type":"string"},"username_id":{"type":"string"},"package":{"type":"object","required":["name"],"properties":{"name":{"type":"string"}}},"created_at":{"type":["null","string"],"format":"date-time","description":"Optional, present depending on module configuration."},"price":{"type":["null","number"],"description":"Optional, present depending on module configuration."},"currency":{"type":["null","string"],"description":"Optional, present depending on module configuration."}}}}}}
```

## The FeaturedPackageModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"FeaturedPackageModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"featured_package"},"data":{"$ref":"#/components/schemas/FeaturedPackageData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"FeaturedPackageData":{"type":"object","required":["header","package"],"properties":{"header":{"type":"string"},"package":{"$ref":"#/components/schemas/Package"}}},"Package":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"description":{"type":"string"},"image":{"type":"string","nullable":true},"type":{"type":"string"},"category":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}},"base_price":{"type":"number","format":"float"},"sales_tax":{"type":"number","format":"float"},"total_price":{"type":"number","format":"float"},"currency":{"type":"string"},"prorate_price":{"type":"number","format":"float","description":"If this package is part of a tiered category, this is the difference on upgrade pricing from the current active tier.","nullable":true},"discount":{"type":"number","format":"float"},"disable_quantity":{"type":"boolean"},"disable_gifting":{"type":"boolean"},"expiration_date":{"type":"string","nullable":true,"format":"date-time"},"media":{"type":"array","items":{"$ref":"#/components/schemas/PackageMedia"}},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"PackageMedia":{"properties":{"type":{"type":"string","enum":["video","image"]},"name":{"type":"string","description":"A file name for the media, if applicable.","nullable":true},"url":{"type":"string","description":"The URL of the package media."},"featured":{"type":"boolean","description":"True if this media should be featured more prominently than others."}}}}}}
```

## The GiftcardBalanceModule object

```json
{"openapi":"3.1.0","info":{"title":"Tebex Headless API","version":"1.2.0"},"components":{"schemas":{"GiftcardBalanceModule":{"allOf":[{"$ref":"#/components/schemas/ModuleBase"},{"type":"object","properties":{"type":{"const":"giftcard_balance"},"data":{"$ref":"#/components/schemas/GiftcardBalanceData"}},"required":["data"]}]},"ModuleBase":{"type":"object","required":["id","type","start_time","data"],"properties":{"id":{"type":"integer","format":"int64"},"type":{"type":"string","description":"Discriminator for module kind."},"start_time":{"type":"string","format":"date-time"},"end_time":{"type":["null","string"],"format":"date-time","description":"Nullable; when null the module is ongoing."},"data":{"type":"object","description":"Type-specific payload."}}},"GiftcardBalanceData":{"type":"object","required":["header"],"properties":{"header":{"type":"string"}}}}}}
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tebex.io/developers/headless-api/sidebar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
