openapi: 3.0.0 info: title: Hostinger API description: >- # Overview The Hostinger API provides a comprehensive set of endpoints that allow developers to interact with Hostinger's services programmatically. This API enables you to manage various aspects of your Hostinger account. The Hostinger API is a (mostly) RESTful API that uses standard HTTP methods and status codes. # Authentication The Hostinger API uses tokens for authentication. To authenticate your requests, you need to include a valid bearer token in the Authorization header of your HTTP requests: ```yaml Authorization: Bearer YOUR_API_TOKEN ``` API tokens for individual users can be created and managed from the [Account page](https://hpanel.hostinger.com/profile/api) of the Hostinger Panel. Tokens will have same permissions as the owning user. Optionally, tokens can be set to expire after a certain period of time. # Rate Limiting To ensure fair usage and prevent abuse, the API enforces rate limits on the number of requests that can be made within a certain time period. If you exceed the rate limit, you will receive a 429 Too Many Requests response. Rate limit headers are included in the response to help you manage your requests. Your IP address might get temporarily blocked if you exceed the rate limit multiple times. # Parameters All requests sent to API must have the content type `application/json`. `POST`, `PUT`, `PATCH` methods may include a JSON object in the request body. Documentation provides required structure and examples of the object. Some endpoints require path parameters. These parameters are included in the URL path and are marked with curly braces. # Pagination Some endpoints return a large number of items. To make these responses more manageable, the API uses pagination. By default, the API returns50 items per page. The page number can be specified using the `page` query parameter, for example: `/api/vps/v1/public-keys?page=2` # Errors The Hostinger API uses standard HTTP status codes to indicate the success or failure of a request. In case of an error, the API will return a JSON response with an `error` field, containing a human-readable error message. Error responses also contain a `correlation_id` field which can be used to identify the request in case you need to contact support. # SDKs & Tools To help you get started with the Hostinger API,we provide SDKs and tools in various programming languages. The usage & documentation for each SDK can be found in the respective repositories: - Ansible - https://github.com/hostinger/ansible-collection-hostinger - CLI - https://github.com/hostinger/api-cli - n8n node - https://github.com/hostinger/api-n8n-node - MCP server - https://github.com/hostinger/api-mcp-server - PHP - https://github.com/hostinger/api-php-sdk - Python - https://github.com/hostinger/api-python-sdk - Terraform - https://github.com/hostinger/terraform-provider-hostinger - Node / TypeScript - https://github.com/hostinger/api-typescript-sdk - Postman collection - https://www.postman.com/hostinger-api - WHMCS module - https://github.com/hostinger/api-whmcs-plugin # Change log For information on the latest changes to the API, please refer to the [change log](https://github.com/hostinger/api/blob/main/CHANGELOG.md). # Support If you have any questions, feedback or feature requests, please create an [issue](https://github.com/hostinger/api/issues) or [discussion](https://github.com/hostinger/api/discussions) on the repository. For any support take a look at our [Github Repository](https://github.com/hostinger/api/), dedicated to the Hostinger API. contact: name: Hostinger url: https://developers.hostinger.com email: devs@hostinger.com version: 0.11.7 x-scalar-sdk-installation: - lang: Shell description: Install official CLI tool. Examples and usage instructions can be found in our [Github repository](https://github.com/hostinger/api-cli). source: hapi vps vm list - lang: PHP description: Install official PHP SDK. Examples and usage instructions can be found in our [Github repository](https://github.com/hostinger/api-php-sdk). source: composer require hostinger/api-php-sdk - lang: Python description: Install official Python SDK. Examples and usage instructions can be found in our [Github repository](https://github.com/hostinger/api-python-sdk). source: pip install hostinger_api - lang: Node description: Install official Node / Typescript SDK. Examples and usage instructions can be found in our [Github repository](https://github.com/hostinger/api-typescript-sdk). source: npm install hostinger-api-sdk servers: - url: https://developers.hostinger.com description: Production API Server paths: /api/billing/v1/catalog: get: tags: - "Billing: Catalog" summary: Get catalog item list description: >- Retrieve catalog items available for order. Prices in catalog items is displayed as cents (without floating point), e.g: float `17.99` is displayed as integer `1799`. Use this endpoint to view available services and pricing before placing orders. operationId: billing_getCatalogItemListV1 parameters: - $ref: "#/components/parameters/category" - $ref: "#/components/parameters/name" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Catalog.CatalogItemCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/billing/v1/payment-methods/{paymentMethodId}: post: tags: - "Billing: Payment methods" summary: Set default payment method description: >- Set the default payment method for your account. Use this endpoint to configure the primary payment method for future orders. operationId: billing_setDefaultPaymentMethodV1 parameters: - $ref: "#/components/parameters/paymentMethodId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "Billing: Payment methods" summary: Delete payment method description: |- Delete a payment method from your account. Use this endpoint to remove unused payment methods from user accounts. operationId: billing_deletePaymentMethodV1 parameters: - $ref: "#/components/parameters/paymentMethodId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/billing/v1/payment-methods: get: tags: - "Billing: Payment methods" summary: Get payment method list description: >- Retrieve available payment methods that can be used for placing new orders. If you want to add new payment method, please use [hPanel](https://hpanel.hostinger.com/billing/payment-methods). Use this endpoint to view available payment options before creating orders. operationId: billing_getPaymentMethodListV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.PaymentMethod.PaymentMethodCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/billing/v1/subscriptions: get: tags: - "Billing: Subscriptions" summary: Get subscription list description: |- Retrieve a list of all subscriptions associated with your account. Use this endpoint to monitor active services and billing status. operationId: billing_getSubscriptionListV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Subscription.SubscriptionCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/disable: delete: tags: - "Billing: Subscriptions" summary: Disable auto-renewal description: |- Disable auto-renewal for a subscription. Use this endpoint when disable auto-renewal for a subscription. operationId: billing_disableAutoRenewalV1 parameters: - $ref: "#/components/parameters/subscriptionId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Subscription.SubscriptionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/billing/v1/subscriptions/{subscriptionId}/auto-renewal/enable: patch: tags: - "Billing: Subscriptions" summary: Enable auto-renewal description: |- Enable auto-renewal for a subscription. Use this endpoint when enable auto-renewal for a subscription. operationId: billing_enableAutoRenewalV1 parameters: - $ref: "#/components/parameters/subscriptionId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Subscription.SubscriptionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/snapshots/{domain}/{snapshotId}: get: tags: - "DNS: Snapshot" summary: Get DNS snapshot description: |- Retrieve particular DNS snapshot with contents of DNS zone records. Use this endpoint to view historical DNS configurations for domains. operationId: DNS_getDNSSnapshotV1 parameters: - $ref: "#/components/parameters/domain" - $ref: "#/components/parameters/snapshotId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Snapshot.SnapshotWithContentResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/snapshots/{domain}: get: tags: - "DNS: Snapshot" summary: Get DNS snapshot list description: |- Retrieve DNS snapshots for a domain. Use this endpoint to view available DNS backup points for restoration. operationId: DNS_getDNSSnapshotListV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Snapshot.SnapshotCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/snapshots/{domain}/{snapshotId}/restore: post: tags: - "DNS: Snapshot" summary: Restore DNS snapshot description: |- Restore DNS zone to the selected snapshot. Use this endpoint to revert domain DNS to a previous configuration. operationId: DNS_restoreDNSSnapshotV1 parameters: - $ref: "#/components/parameters/domain" - $ref: "#/components/parameters/snapshotId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/zones/{domain}: get: tags: - "DNS: Zone" summary: Get DNS records description: >- Retrieve DNS zone records for a specific domain. Use this endpoint to view current DNS configuration for domain management. operationId: DNS_getDNSRecordsV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Zone.RecordCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" put: tags: - "DNS: Zone" summary: Update DNS records description: >- Update DNS records for the selected domain. Using `overwrite = true` will replace existing records with the provided ones. Otherwise existing records will be updated and new records will be added. Use this endpoint to modify domain DNS configuration. operationId: DNS_updateDNSRecordsV1 parameters: - $ref: "#/components/parameters/domain" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Zone.UpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "DNS: Zone" summary: Delete DNS records description: >- Delete DNS records for the selected domain. To filter which records to delete, add the `name` of the record and `type` to the filter. Multiple filters can be provided with single request. If you have multiple records with the same name and type, and you want to delete only part of them, refer to the `Update zone records` endpoint. Use this endpoint to remove specific DNS records from domains. operationId: DNS_deleteDNSRecordsV1 parameters: - $ref: "#/components/parameters/domain" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Zone.DestroyRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/zones/{domain}/reset: post: tags: - "DNS: Zone" summary: Reset DNS records description: |- Reset DNS zone to the default records. Use this endpoint to restore domain DNS to original configuration. operationId: DNS_resetDNSRecordsV1 parameters: - $ref: "#/components/parameters/domain" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Zone.ResetRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/dns/v1/zones/{domain}/validate: post: tags: - "DNS: Zone" summary: Validate DNS records description: >- Validate DNS records prior to update for the selected domain. If the validation is successful, the response will contain `200 Success` code. If there is validation error, the response will fail with `422 Validation error` code. Use this endpoint to verify DNS record validity before applying changes. operationId: DNS_validateDNSRecordsV1 parameters: - $ref: "#/components/parameters/domain" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DNS.V1.Zone.UpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/v2/direct/verifications/active: get: tags: - "Domain Access Verifier: Verifications" summary: Get domain verifications description: Retrieve a list of pending and completed domain verifications. operationId: v2_getDomainVerificationsDIRECT requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/DomainAccessVerifier.V2.Verifications.ListRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/DomainAccessVerifier.V2.Verifications.ActiveVerific\ ationsCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/availability: post: tags: - "Domains: Availability" summary: Check domain availability description: >- Check availability of domain names across multiple TLDs. Multiple TLDs can be checked at once. If you want alternative domains with response, provide only one TLD and set `with_alternatives` to `true`. TLDs should be provided without leading dot (e.g. `com`, `net`, `org`). Endpoint has rate limit of 10 requests per minute. Use this endpoint to verify domain availability before purchase. operationId: domains_checkDomainAvailabilityV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Availability.AvailabilityRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Availability.AvailabilityCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/forwarding/{domain}: get: tags: - "Domains: Forwarding" summary: Get domain forwarding description: |- Retrieve domain forwarding data. Use this endpoint to view current redirect configuration for domains. operationId: domains_getDomainForwardingV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Forwarding.ForwardingResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "Domains: Forwarding" summary: Delete domain forwarding description: |- Delete domain forwarding data. Use this endpoint to remove redirect configuration from domains. operationId: domains_deleteDomainForwardingV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/forwarding: post: tags: - "Domains: Forwarding" summary: Create domain forwarding description: |- Create domain forwarding configuration. Use this endpoint to set up domain redirects to other URLs. operationId: domains_createDomainForwardingV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Forwarding.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Forwarding.ForwardingResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/portfolio/{domain}/domain-lock: put: tags: - "Domains: Portfolio" summary: Enable domain lock description: >- Enable domain lock for the domain. When domain lock is enabled, the domain cannot be transferred to another registrar without first disabling the lock. Use this endpoint to secure domains against unauthorized transfers. operationId: domains_enableDomainLockV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "Domains: Portfolio" summary: Disable domain lock description: >- Disable domain lock for the domain. Domain lock needs to be disabled before transferring the domain to another registrar. Use this endpoint to prepare domains for transfer to other registrars. operationId: domains_disableDomainLockV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/portfolio/{domain}: get: tags: - "Domains: Portfolio" summary: Get domain details description: |- Retrieve detailed information for specified domain. Use this endpoint to view comprehensive domain configuration and status. operationId: domains_getDomainDetailsV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Domain.DomainExtendedResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/portfolio: get: tags: - "Domains: Portfolio" summary: Get domain list description: |- Retrieve all domains associated with your account. Use this endpoint to view user's domain portfolio. operationId: domains_getDomainListV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Domain.DomainCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "Domains: Portfolio" summary: Purchase new domain description: >- Purchase and register a new domain name. If registration fails, login to [hPanel](https://hpanel.hostinger.com/) and check domain registration status. If no payment method is provided, your default payment method will be used automatically. If no WHOIS information is provided, default contact information for that TLD will be used. Before making request, ensure WHOIS information for desired TLD exists in your account. Some TLDs require `additional_details` to be provided and these will be validated before completing purchase. Use this endpoint to register new domains for users. operationId: domains_purchaseNewDomainV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Portfolio.PurchaseRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Order.OrderResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/portfolio/{domain}/privacy-protection: put: tags: - "Domains: Portfolio" summary: Enable privacy protection description: >- Enable privacy protection for the domain. When privacy protection is enabled, domain owner's personal information is hidden from public WHOIS database. Use this endpoint to protect domain owner's personal information from public view. operationId: domains_enablePrivacyProtectionV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "Domains: Portfolio" summary: Disable privacy protection description: >- Disable privacy protection for the domain. When privacy protection is disabled, domain owner's personal information is visible in public WHOIS database. Use this endpoint to make domain owner's information publicly visible. operationId: domains_disablePrivacyProtectionV1 parameters: - $ref: "#/components/parameters/domain" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/portfolio/{domain}/nameservers: put: tags: - "Domains: Portfolio" summary: Update domain nameservers description: >- Set nameservers for a specified domain. Be aware, that improper nameserver configuration can lead to the domain being unresolvable or unavailable. Use this endpoint to configure custom DNS hosting for domains. operationId: domains_updateDomainNameserversV1 parameters: - $ref: "#/components/parameters/domain" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Domains.V1.Portfolio.UpdateNameserversRequest" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/whois/{whoisId}: get: tags: - "Domains: WHOIS" summary: Get WHOIS profile description: |- Retrieve a WHOIS contact profile. Use this endpoint to view domain registration contact information. operationId: domains_getWHOISProfileV1 parameters: - $ref: "#/components/parameters/whoisId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.WHOIS.ProfileResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "Domains: WHOIS" summary: Delete WHOIS profile description: |- Delete WHOIS contact profile. Use this endpoint to remove unused contact profiles from account. operationId: domains_deleteWHOISProfileV1 parameters: - $ref: "#/components/parameters/whoisId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/whois: get: tags: - "Domains: WHOIS" summary: Get WHOIS profile list description: >- Retrieve WHOIS contact profiles. Use this endpoint to view available contact profiles for domain registration. operationId: domains_getWHOISProfileListV1 parameters: - $ref: "#/components/parameters/tld" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.WHOIS.ProfileCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "Domains: WHOIS" summary: Create WHOIS profile description: >- Create WHOIS contact profile. Use this endpoint to add new contact information for domain registration. operationId: domains_createWHOISProfileV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Domains.V1.WHOIS.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.WHOIS.ProfileResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/domains/v1/whois/{whoisId}/usage: get: tags: - "Domains: WHOIS" summary: Get WHOIS profile usage description: |- Retrieve domain list where provided WHOIS contact profile is used. Use this endpoint to view which domains use specific contact profiles. operationId: domains_getWHOISProfileUsageV1 parameters: - $ref: "#/components/parameters/whoisId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Domains.V1.WHOIS.ProfileUsageResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/hosting/v1/datacenters: get: tags: - "Hosting: Datacenters" summary: List available datacenters description: |- Retrieve a list of datacenters available for setting up hosting plans based on available datacenter capacity and hosting plan of your order. The first item in the list is the best match for your specific order requirements. operationId: hosting_listAvailableDatacentersV1 parameters: - $ref: "#/components/parameters/order_id_required" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Hosting.V1.Datacenter.DatacenterCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/hosting/v1/domains/free-subdomains: post: tags: - "Hosting: Domains" summary: Generate a free subdomain description: >- Generate a unique free subdomain that can be used for hosting services without purchasing custom domains. Free subdomains allow you to start using hosting services immediately and you can always connect a custom domain to your site later. operationId: hosting_generateAFreeSubdomainV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Hosting.V1.Domains.FreeSubdomainResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/hosting/v1/domains/verify-ownership: post: tags: - "Hosting: Domains" summary: Verify domain ownership description: >- Verify ownership of a single domain and return the verification status. Use this endpoint to check if a domain is accessible for you before using it for new websites. If the domain is accessible, the response will have `is_accessible: true`. If not, add the given TXT record to your domain's DNS records and try verifying again. Keep in mind that it may take up to 10 minutes for new TXT DNS records to propagate. Skip this verification when using Hostinger's free subdomains (*.hostingersite.com). operationId: hosting_verifyDomainOwnershipV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Hosting.V1.Domains.VerifyOwnershipRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Hosting.V1.Domains.DomainAccessResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/hosting/v1/orders: get: tags: - "Hosting: Orders" summary: List orders description: >- Retrieve a paginated list of orders accessible to the authenticated client. This endpoint returns orders of your hosting accounts as well as orders of other client hosting accounts that have shared access with you. Use the available query parameters to filter results by order statuses or specific order IDs for more targeted results. operationId: hosting_listOrdersV1 parameters: - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - $ref: "#/components/parameters/statuses" - $ref: "#/components/parameters/order_ids" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/Hosting.V1.Orders.OrderCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/hosting/v1/websites: get: tags: - "Hosting: Websites" summary: List websites description: >- Retrieve a paginated list of websites (main and addon types) accessible to the authenticated client. This endpoint returns websites from your hosting accounts as well as websites from other client hosting accounts that have shared access with you. Use the available query parameters to filter results by username, order ID, enabled status, or domain name for more targeted results. operationId: hosting_listWebsitesV1 parameters: - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" - $ref: "#/components/parameters/username" - $ref: "#/components/parameters/order_id" - $ref: "#/components/parameters/is_enabled" - $ref: "#/components/parameters/domain_filter" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/Hosting.V1.Websites.WebsiteCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "Hosting: Websites" summary: Create website description: >- Create a new website for the authenticated client. Provide the domain name and associated order ID to create a new website. The datacenter_code parameter is required when creating the first website on a new hosting plan - this will set up and configure new hosting account in the selected datacenter. Subsequent websites will be hosted on the same datacenter automatically. Website creation takes up to a few minutes to complete. Check the websites list endpoint to see when your new website becomes available. operationId: hosting_createWebsiteV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Hosting.V1.Websites.CreateWebsiteRequest" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/contacts/{uuid}: delete: tags: - "Reach: Contacts" summary: Delete a contact description: >- Delete a contact with the specified UUID. This endpoint permanently removes a contact from the email marketing system. operationId: reach_deleteAContactV1 parameters: - $ref: "#/components/parameters/uuid" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/contacts/groups: get: tags: - "Reach: Contacts" summary: List contact groups description: >- Get a list of all contact groups. This endpoint returns a list of contact groups that can be used to organize contacts. operationId: reach_listContactGroupsV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.Groups.ContactGroupCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" deprecated: true x-scalar-ignore: true /api/reach/v1/contacts: get: tags: - "Reach: Contacts" summary: List contacts description: >- Get a list of contacts, optionally filtered by group and subscription status. This endpoint returns a paginated list of contacts with their basic information. You can filter contacts by group UUID and subscription status. operationId: reach_listContactsV1 parameters: - $ref: "#/components/parameters/group_uuid" - $ref: "#/components/parameters/subscription_status" - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/Reach.V1.Contacts.ContactCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "Reach: Contacts" summary: Create a new contact description: >- Create a new contact in the email marketing system. This endpoint allows you to create a new contact with basic information like name, email, and surname. If double opt-in is enabled, the contact will be created with a pending status and a confirmation email will be sent. operationId: reach_createANewContactV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.StoreRequest" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" deprecated: true x-scalar-ignore: true /api/reach/v1/segmentation/segments: get: tags: - "Reach: Segments" summary: List segments description: >- Get a list of all contact segments. This endpoint returns a list of contact segments that can be used to organize contacts. operationId: reach_listSegmentsV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.ContactSegmentCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "Reach: Segments" summary: Create a new contact segment description: >- Create a new contact segment. This endpoint allows creating a new contact segment that can be used to organize contacts. The segment can be configured with specific criteria like email, name, subscription status, etc. operationId: reach_createANewContactSegmentV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.SegmentResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/segmentation/segments/{segmentUuid}/contacts: get: tags: - "Reach: Segments" summary: List segment contacts description: >- Retrieve contacts associated with a specific segment. This endpoint allows you to fetch and filter contacts that belong to a particular segment, identified by its UUID. operationId: reach_listSegmentContactsV1 parameters: - $ref: "#/components/parameters/segmentUuid" - $ref: "#/components/parameters/page" - $ref: "#/components/parameters/per_page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.SegmentationContactColle\ ction" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/segmentation/segments/{segmentUuid}: get: tags: - "Reach: Segments" summary: Get segment details description: >- Get details of a specific segment. This endpoint retrieves information about a single segment identified by UUID. Segments are used to organize and group contacts based on specific criteria. operationId: reach_getSegmentDetailsV1 parameters: - $ref: "#/components/parameters/segmentUuid" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.SegmentResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/profiles/{profileUuid}/contacts: post: tags: - "Reach: Contacts" summary: Create new contacts description: >- Create a new contact in the email marketing system. This endpoint allows you to create a new contact with basic information like name, email, and surname. If double opt-in is enabled, the contact will be created with a pending status and a confirmation email will be sent. operationId: reach_createNewContactsV1 parameters: - $ref: "#/components/parameters/profileUuid" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Contacts.StoreRequest" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/reach/v1/profiles: get: tags: - "Reach: Profiles" summary: List Profiles description: This endpoint returns all profiles available to the client, including their basic information. operationId: reach_listProfilesV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Reach.V1.Profiles.ProfileCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/data-centers: get: tags: - "VPS: Data centers" summary: Get data center list description: >- Retrieve all available data centers. Use this endpoint to view location options before deploying VPS instances. operationId: VPS_getDataCenterListV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.DataCenter.DataCenterCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/containers: get: tags: - "VPS: Docker Manager" summary: Get project containers description: >- Retrieves a list of all containers belonging to a specific Docker Compose project on the virtual machine. This endpoint returns detailed information about each container including their current status, port mappings, and runtime configuration. Use this to monitor the health and state of all services within your Docker Compose project. operationId: VPS_getProjectContainersV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}: get: tags: - "VPS: Docker Manager" summary: Get project contents description: >- Retrieves the complete project information including the docker-compose.yml file contents, project metadata, and current deployment status. This endpoint provides the full configuration and state details of a specific Docker Compose project. Use this to inspect project settings, review the compose file, or check the overall project health. operationId: VPS_getProjectContentsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.DockerManager.ContentResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/down: delete: tags: - "VPS: Docker Manager" summary: Delete project description: >- Completely removes a Docker Compose project from the virtual machine, stopping all containers and cleaning up associated resources including networks, volumes, and images. This operation is irreversible and will delete all project data. Use this when you want to permanently remove a project and free up system resources. operationId: VPS_deleteProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker: get: tags: - "VPS: Docker Manager" summary: Get project list description: >- Retrieves a list of all Docker Compose projects currently deployed on the virtual machine. This endpoint returns basic information about each project including name, status, file path and list of containers with details about their names, image, status, health and ports. Container stats are omitted in this endpoint. If you need to get detailed information about container with stats included, use the `Get project containers` endpoint. Use this to get an overview of all Docker projects on your VPS instance. operationId: VPS_getProjectListV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.DockerManager.ProjectCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental post: tags: - "VPS: Docker Manager" summary: Create new project description: >- Deploy new project from docker-compose.yaml contents or download contents from URL. URL can be Github repository url in format https://github.com/[user]/[repo] and it will be automatically resolved to docker-compose.yaml file in master branch. Any other URL provided must return docker-compose.yaml file contents. If project with the same name already exists, existing project will be replaced. operationId: VPS_createNewProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.DockerManager.UpRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/logs: get: tags: - "VPS: Docker Manager" summary: Get project logs description: >- Retrieves aggregated log entries from all services within a Docker Compose project. This endpoint returns recent log output from each container, organized by service name with timestamps. The response contains the last 300 log entries across all services. Use this for debugging, monitoring application behavior, and troubleshooting issues across your entire project stack. operationId: VPS_getProjectLogsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.DockerManager.LogsCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/restart: post: tags: - "VPS: Docker Manager" summary: Restart project description: >- Restarts all services in a Docker Compose project by stopping and starting containers in the correct dependency order. This operation preserves data volumes and network configurations while refreshing the running containers. Use this to apply configuration changes or recover from service failures. operationId: VPS_restartProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/start: post: tags: - "VPS: Docker Manager" summary: Start project description: >- Starts all services in a Docker Compose project that are currently stopped. This operation brings up containers in the correct dependency order as defined in the compose file. Use this to resume a project that was previously stopped or to start services after a system reboot. operationId: VPS_startProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/stop: post: tags: - "VPS: Docker Manager" summary: Stop project description: >- Stops all running services in a Docker Compose project while preserving container configurations and data volumes. This operation gracefully shuts down containers in reverse dependency order. Use this to temporarily halt a project without removing data or configurations. operationId: VPS_stopProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/virtual-machines/{virtualMachineId}/docker/{projectName}/update: post: tags: - "VPS: Docker Manager" summary: Update project description: >- Updates a Docker Compose project by pulling the latest image versions and recreating containers with new configurations. This operation preserves data volumes while applying changes from the compose file. Use this to deploy application updates, apply configuration changes, or refresh container images to their latest versions. operationId: VPS_updateProjectV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/projectName" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-scalar-stability: experimental /api/vps/v1/firewall/{firewallId}/activate/{virtualMachineId}: post: tags: - "VPS: Firewall" summary: Activate firewall description: |- Activate a firewall for a specified virtual machine. Only one firewall can be active for a virtual machine at a time. Use this endpoint to apply firewall rules to VPS instances. operationId: VPS_activateFirewallV1 parameters: - $ref: "#/components/parameters/firewallId" - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall/{firewallId}/deactivate/{virtualMachineId}: post: tags: - "VPS: Firewall" summary: Deactivate firewall description: |- Deactivate a firewall for a specified virtual machine. Use this endpoint to remove firewall protection from VPS instances. operationId: VPS_deactivateFirewallV1 parameters: - $ref: "#/components/parameters/firewallId" - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall/{firewallId}: get: tags: - "VPS: Firewall" summary: Get firewall details description: |- Retrieve firewall by its ID and rules associated with it. Use this endpoint to view specific firewall configuration and rules. operationId: VPS_getFirewallDetailsV1 parameters: - $ref: "#/components/parameters/firewallId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Firewall" summary: Delete firewall description: >- Delete a specified firewall. Any virtual machine that has this firewall activated will automatically have it deactivated. Use this endpoint to remove unused firewall configurations. operationId: VPS_deleteFirewallV1 parameters: - $ref: "#/components/parameters/firewallId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall: get: tags: - "VPS: Firewall" summary: Get firewall list description: |- Retrieve all available firewalls. Use this endpoint to view existing firewall configurations. operationId: VPS_getFirewallListV1 parameters: - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Firewall" summary: Create new firewall description: >- Create a new firewall. Use this endpoint to set up new firewall configurations for VPS security. operationId: VPS_createNewFirewallV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall/{firewallId}/rules/{ruleId}: put: tags: - "VPS: Firewall" summary: Update firewall rule description: >- Update a specific firewall rule from a specified firewall. Any virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually. Use this endpoint to modify existing firewall rules. operationId: VPS_updateFirewallRuleV1 parameters: - $ref: "#/components/parameters/firewallId" - $ref: "#/components/parameters/ruleId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.Rules.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallRuleResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Firewall" summary: Delete firewall rule description: >- Delete a specific firewall rule from a specified firewall. Any virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually. Use this endpoint to remove specific firewall rules. operationId: VPS_deleteFirewallRuleV1 parameters: - $ref: "#/components/parameters/firewallId" - $ref: "#/components/parameters/ruleId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall/{firewallId}/rules: post: tags: - "VPS: Firewall" summary: Create firewall rule description: >- Create new firewall rule for a specified firewall. By default, the firewall drops all incoming traffic, which means you must add accept rules for all ports you want to use. Any virtual machine that has this firewall activated will lose sync with the firewall and will have to be synced again manually. Use this endpoint to add new security rules to firewalls. operationId: VPS_createFirewallRuleV1 parameters: - $ref: "#/components/parameters/firewallId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.Rules.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallRuleResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/firewall/{firewallId}/sync/{virtualMachineId}: post: tags: - "VPS: Firewall" summary: Sync firewall description: >- Sync a firewall for a specified virtual machine. Firewall can lose sync with virtual machine if the firewall has new rules added, removed or updated. Use this endpoint to apply updated firewall rules to VPS instances. operationId: VPS_syncFirewallV1 parameters: - $ref: "#/components/parameters/firewallId" - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/post-install-scripts/{postInstallScriptId}: get: tags: - "VPS: Post-install scripts" summary: Get post-install script description: |- Retrieve post-install script by its ID. Use this endpoint to view specific automation script details. operationId: VPS_getPostInstallScriptV1 parameters: - $ref: "#/components/parameters/postInstallScriptId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PostInstallScript.PostInstallScriptResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" put: tags: - "VPS: Post-install scripts" summary: Update post-install script description: |- Update a specific post-install script. Use this endpoint to modify existing automation scripts. operationId: VPS_updatePostInstallScriptV1 parameters: - $ref: "#/components/parameters/postInstallScriptId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PostInstallScript.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PostInstallScript.PostInstallScriptResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Post-install scripts" summary: Delete post-install script description: |- Delete a post-install script from your account. Use this endpoint to remove unused automation scripts. operationId: VPS_deletePostInstallScriptV1 parameters: - $ref: "#/components/parameters/postInstallScriptId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/post-install-scripts: get: tags: - "VPS: Post-install scripts" summary: Get post-install scripts description: >- Retrieve post-install scripts associated with your account. Use this endpoint to view available automation scripts for VPS deployment. operationId: VPS_getPostInstallScriptsV1 parameters: - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.PostInstallScript.PostInstallScriptCollectio\ n" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Post-install scripts" summary: Create post-install script description: >- Add a new post-install script to your account, which can then be used after virtual machine installation. The script contents will be saved to the file `/post_install` with executable attribute set and will be executed once virtual machine is installed. The output of the script will be redirected to `/post_install.log`. Maximum script size is 48KB. Use this endpoint to create automation scripts for VPS setup tasks. operationId: VPS_createPostInstallScriptV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PostInstallScript.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PostInstallScript.PostInstallScriptResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/public-keys/attach/{virtualMachineId}: post: tags: - "VPS: Public Keys" summary: Attach public key description: >- Attach existing public keys from your account to a specified virtual machine. Multiple keys can be attached to a single virtual machine. Use this endpoint to enable SSH key authentication for VPS instances. operationId: VPS_attachPublicKeyV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PublicKey.AttachRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/public-keys/{publicKeyId}: delete: tags: - "VPS: Public Keys" summary: Delete public key description: >- Delete a public key from your account. **Deleting public key from account does not remove it from virtual machine** Use this endpoint to remove unused SSH keys from account. operationId: VPS_deletePublicKeyV1 parameters: - $ref: "#/components/parameters/publicKeyId" responses: "200": description: Success empty response content: application/json: schema: $ref: "#/components/schemas/Common.SuccessEmptyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/public-keys: get: tags: - "VPS: Public Keys" summary: Get public keys description: |- Retrieve public keys associated with your account. Use this endpoint to view available SSH keys for VPS authentication. operationId: VPS_getPublicKeysV1 parameters: - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.PublicKey.PublicKeyCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Public Keys" summary: Create public key description: |- Add a new public key to your account. Use this endpoint to register SSH keys for VPS authentication. operationId: VPS_createPublicKeyV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PublicKey.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.PublicKey.PublicKeyResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/templates/{templateId}: get: tags: - "VPS: OS Templates" summary: Get template details description: >- Retrieve detailed information about a specific OS template for virtual machines. Use this endpoint to view specific template specifications before deployment. operationId: VPS_getTemplateDetailsV1 parameters: - $ref: "#/components/parameters/templateId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Template.TemplateResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/templates: get: tags: - "VPS: OS Templates" summary: Get templates description: >- Retrieve available OS templates for virtual machines. Use this endpoint to view operating system options before creating or recreating VPS instances. operationId: VPS_getTemplatesV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Template.TemplateCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/actions/{actionId}: get: tags: - "VPS: Actions" summary: Get action details description: >- Retrieve detailed information about a specific action performed on a specified virtual machine. Use this endpoint to monitor specific VPS operation status and details. operationId: VPS_getActionDetailsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/actionId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/actions: get: tags: - "VPS: Actions" summary: Get actions description: >- Retrieve actions performed on a specified virtual machine. Actions are operations or events that have been executed on the virtual machine, such as starting, stopping, or modifying the machine. This endpoint allows you to view the history of these actions, providing details about each action, such as the action name, timestamp, and status. Use this endpoint to view VPS operation history and troubleshoot issues. operationId: VPS_getActionsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.Action.ActionCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/public-keys: get: tags: - "VPS: Virtual machine" summary: Get attached public keys description: >- Retrieve public keys attached to a specified virtual machine. Use this endpoint to view SSH keys configured for specific VPS instances. operationId: VPS_getAttachedPublicKeysV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.PublicKey.PublicKeyCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/backups: get: tags: - "VPS: Backups" summary: Get backups description: |- Retrieve backups for a specified virtual machine. Use this endpoint to view available backup points for VPS data recovery. operationId: VPS_getBackupsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/page" responses: "200": description: Success response content: application/json: schema: properties: data: $ref: "#/components/schemas/VPS.V1.Backup.BackupCollection" meta: $ref: "#/components/schemas/Common.Schema.PaginationMetaSchema" type: object "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/backups/{backupId}/restore: post: tags: - "VPS: Backups" summary: Restore backup description: >- Restore a backup for a specified virtual machine. The system will then initiate the restore process, which may take some time depending on the size of the backup. **All data on the virtual machine will be overwritten with the data from the backup.** Use this endpoint to recover VPS data from backup points. operationId: VPS_restoreBackupV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/backupId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/hostname: put: tags: - "VPS: Virtual machine" summary: Set hostname description: >- Set hostname for a specified virtual machine. Changing hostname does not update PTR record automatically. If you want your virtual machine to be reachable by a hostname, you need to point your domain A/AAAA records to virtual machine IP as well. Use this endpoint to configure custom hostnames for VPS instances. operationId: VPS_setHostnameV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.HostnameUpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Virtual machine" summary: Reset hostname description: >- Reset hostname and PTR record of a specified virtual machine to default value. Use this endpoint to restore default hostname configuration for VPS instances. operationId: VPS_resetHostnameV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}: get: tags: - "VPS: Virtual machine" summary: Get virtual machine details description: |- Retrieve detailed information about a specified virtual machine. Use this endpoint to view comprehensive VPS configuration and status. operationId: VPS_getVirtualMachineDetailsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.VirtualMachineResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines: get: tags: - "VPS: Virtual machine" summary: Get virtual machines description: |- Retrieve all available virtual machines. Use this endpoint to view available VPS instances. operationId: VPS_getVirtualMachinesV1 responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.VirtualMachineCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Virtual machine" summary: Purchase new virtual machine description: >- Purchase and setup a new virtual machine. If virtual machine setup fails for any reason, login to [hPanel](https://hpanel.hostinger.com/) and complete the setup manually. If no payment method is provided, your default payment method will be used automatically. Use this endpoint to create new VPS instances. operationId: VPS_purchaseNewVirtualMachineV1 requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.PurchaseRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/Billing.V1.Order.VirtualMachineOrderResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/monarx: get: tags: - "VPS: Malware scanner" summary: Get scan metrics description: >- Retrieve scan metrics for the [Monarx](https://www.monarx.com/) malware scanner installed on a specified virtual machine. The scan metrics provide detailed information about malware scans performed by Monarx, including number of scans, detected threats, and other relevant statistics. This information is useful for monitoring security status of the virtual machine and assessing effectiveness of the malware scanner. Use this endpoint to monitor VPS security scan results and threat detection. operationId: VPS_getScanMetricsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Malware.MetricsResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Malware scanner" summary: Install Monarx description: >- Install the Monarx malware scanner on a specified virtual machine. [Monarx](https://www.monarx.com/) is a security tool designed to detect and prevent malware infections on virtual machines. By installing Monarx, users can enhance the security of their virtual machines, ensuring that they are protected against malicious software. Use this endpoint to enable malware protection on VPS instances. operationId: VPS_installMonarxV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Malware scanner" summary: Uninstall Monarx description: >- Uninstall the Monarx malware scanner on a specified virtual machine. If Monarx is not installed, the request will still be processed without any effect. Use this endpoint to remove malware scanner from VPS instances. operationId: VPS_uninstallMonarxV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/metrics: get: tags: - "VPS: Virtual machine" summary: Get metrics description: >- Retrieve historical metrics for a specified virtual machine. It includes the following metrics: - CPU usage - Memory usage - Disk usage - Network usage - Uptime Use this endpoint to monitor VPS performance and resource utilization over time. operationId: VPS_getMetricsV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - name: date_from in: query required: true schema: type: string format: date-time default: null example: 2025-05-01T00:00:00Z - name: date_to in: query required: true schema: type: string format: date-time default: null example: 2025-06-01T00:00:00Z responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Metrics.MetricsCollection" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" x-optic-ignore-example: true /api/vps/v1/virtual-machines/{virtualMachineId}/nameservers: put: tags: - "VPS: Virtual machine" summary: Set nameservers description: |- Set nameservers for a specified virtual machine. Be aware, that improper nameserver configuration can lead to the virtual machine being unable to resolve domain names. Use this endpoint to configure custom DNS resolvers for VPS instances. operationId: VPS_setNameserversV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.NameserversUpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/ptr/{ipAddressId}: post: tags: - "VPS: PTR records" summary: Create PTR record description: |- Create or update a PTR (Pointer) record for a specified virtual machine. Use this endpoint to configure reverse DNS lookup for VPS IP addresses. operationId: VPS_createPTRRecordV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/ipAddressId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.PTR.StoreRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: PTR records" summary: Delete PTR record description: >- Delete a PTR (Pointer) record for a specified virtual machine. Once deleted, reverse DNS lookups to the virtual machine's IP address will no longer return the previously configured hostname. Use this endpoint to remove reverse DNS configuration from VPS instances. operationId: VPS_deletePTRRecordV1 parameters: - $ref: "#/components/parameters/virtualMachineId" - $ref: "#/components/parameters/ipAddressId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/panel-password: put: tags: - "VPS: Virtual machine" summary: Set panel password description: |- Set panel password for a specified virtual machine. If virtual machine does not use panel OS, the request will still be processed without any effect. Requirements for password are same as in the [recreate virtual machine endpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate). Use this endpoint to configure control panel access credentials for VPS instances. operationId: VPS_setPanelPasswordV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.PanelPasswordUpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/recovery: post: tags: - "VPS: Recovery" summary: Start recovery mode description: >- Initiate recovery mode for a specified virtual machine. Recovery mode is a special state that allows users to perform system rescue operations, such as repairing file systems, recovering data, or troubleshooting issues that prevent the virtual machine from booting normally. Virtual machine will boot recovery disk image and original disk image will be mounted in `/mnt` directory. Use this endpoint to enable system rescue operations on VPS instances. operationId: VPS_startRecoveryModeV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.Recovery.StartRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Recovery" summary: Stop recovery mode description: >- Stop recovery mode for a specified virtual machine. If virtual machine is not in recovery mode, this operation will fail. Use this endpoint to exit system rescue mode and return VPS to normal operation. operationId: VPS_stopRecoveryModeV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/recreate: post: tags: - "VPS: Virtual machine" summary: Recreate virtual machine description: >- Recreate a virtual machine from scratch. The recreation process involves reinstalling the operating system and resetting the virtual machine to its initial state. Snapshots, if there are any, will be deleted. ## Password Requirements Password will be checked against leaked password databases. Requirements for the password are: - At least 12 characters long - At least one uppercase letter - At least one lowercase letter - At least one number - Is not leaked publicly **This operation is irreversible and will result in the loss of all data stored on the virtual machine!** Use this endpoint to completely rebuild VPS instances with fresh OS installation. operationId: VPS_recreateVirtualMachineV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.RecreateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/restart: post: tags: - "VPS: Virtual machine" summary: Restart virtual machine description: |- Restart a specified virtual machine by fully stopping and starting it. If the virtual machine was stopped, it will be started. Use this endpoint to reboot VPS instances. operationId: VPS_restartVirtualMachineV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/root-password: put: tags: - "VPS: Virtual machine" summary: Set root password description: |- Set root password for a specified virtual machine. Requirements for password are same as in the [recreate virtual machine endpoint](/#tag/vps-virtual-machine/POST/api/vps/v1/virtual-machines/{virtualMachineId}/recreate). Use this endpoint to update administrator credentials for VPS instances. operationId: VPS_setRootPasswordV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.RootPasswordUpdateRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/setup: post: tags: - "VPS: Virtual machine" summary: Setup purchased virtual machine description: |- Setup newly purchased virtual machine with `initial` state. Use this endpoint to configure and initialize purchased VPS instances. operationId: VPS_setupPurchasedVirtualMachineV1 parameters: - $ref: "#/components/parameters/virtualMachineId" requestBody: required: true content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.SetupRequest" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.VirtualMachine.VirtualMachineResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "422": $ref: "#/components/responses/Common.Response.UnprocessableContentResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot: get: tags: - "VPS: Snapshots" summary: Get snapshot description: |- Retrieve snapshot for a specified virtual machine. Use this endpoint to view current VPS snapshot information. operationId: VPS_getSnapshotV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Snapshot.SnapshotResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" post: tags: - "VPS: Snapshots" summary: Create snapshot description: >- Create a snapshot of a specified virtual machine. A snapshot captures the state and data of the virtual machine at a specific point in time, allowing users to restore the virtual machine to that state if needed. This operation is useful for backup purposes, system recovery, and testing changes without affecting the current state of the virtual machine. **Creating new snapshot will overwrite the existing snapshot!** Use this endpoint to capture VPS state for backup and recovery purposes. operationId: VPS_createSnapshotV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" delete: tags: - "VPS: Snapshots" summary: Delete snapshot description: |- Delete a snapshot of a specified virtual machine. Use this endpoint to remove VPS snapshots. operationId: VPS_deleteSnapshotV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/snapshot/restore: post: tags: - "VPS: Snapshots" summary: Restore snapshot description: >- Restore a specified virtual machine to a previous state using a snapshot. Restoring from a snapshot allows users to revert the virtual machine to that state, which is useful for system recovery, undoing changes, or testing. Use this endpoint to revert VPS instances to previous saved states. operationId: VPS_restoreSnapshotV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/start: post: tags: - "VPS: Virtual machine" summary: Start virtual machine description: >- Start a specified virtual machine. If the virtual machine is already running, the request will still be processed without any effect. Use this endpoint to power on stopped VPS instances. operationId: VPS_startVirtualMachineV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" /api/vps/v1/virtual-machines/{virtualMachineId}/stop: post: tags: - "VPS: Virtual machine" summary: Stop virtual machine description: >- Stop a specified virtual machine. If the virtual machine is already stopped, the request will still be processed without any effect. Use this endpoint to power off running VPS instances. operationId: VPS_stopVirtualMachineV1 parameters: - $ref: "#/components/parameters/virtualMachineId" responses: "200": description: Success response content: application/json: schema: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" "401": $ref: "#/components/responses/Common.Response.UnauthorizedResponse" "500": $ref: "#/components/responses/Common.Response.ErrorResponse" components: schemas: Common.Schema.PaginationMetaSchema: properties: current_page: type: integer example: 1 per_page: type: integer example: 15 total: type: integer example: 100 type: object x-scalar-ignore: true Billing.V1.Subscription.CancelRequest: properties: reason_code: description: Cancellation reason code type: string enum: - other example: other nullable: true cancel_option: description: Cancellation option type: string enum: - immediately example: immediately nullable: true type: object DNS.V1.Zone.DestroyRequest: required: - filters properties: filters: description: Filter records for deletion type: array items: required: - name - type properties: name: description: Name of the record type: string example: "@" type: description: Type of the record type: string enum: - A - AAAA - CNAME - ALIAS - MX - TXT - NS - SOA - SRV - CAA example: A type: object type: object DNS.V1.Zone.ResetRequest: properties: sync: description: Determines if operation should be run synchronously type: boolean default: true example: true reset_email_records: description: Determines if email records should be reset type: boolean default: true example: true whitelisted_record_types: description: Specifies which record types to not reset type: array items: type: string example: - MX - TXT type: object DNS.V1.Zone.UpdateRequest: required: - zone properties: overwrite: description: >- If `true`, resource records (RRs) matching name and type will be deleted and new RRs will be created, otherwise resource records' ttl's are updated and new records are appended. If no matching RRs are found, they are created. type: boolean default: true example: true zone: type: array items: required: - name - records - type properties: name: description: Name of the record (use `@` for wildcard name) type: string example: www records: description: Records assigned to the name type: array items: required: - content properties: content: description: Content of the name record type: string example: mydomain.tld. type: object ttl: description: TTL (Time-To-Live) of the record type: integer example: 14400 type: description: Type of the record type: string enum: - A - AAAA - CNAME - ALIAS - MX - TXT - NS - SOA - SRV - CAA example: A type: object type: object DomainAccessVerifier.V2.Verifications.ListRequest: required: - domains properties: domains: description: The list of domains for which to get verification details for. type: array items: type: string example: example.com type: object Domains.V1.Availability.AvailabilityRequest: required: - domain - tlds properties: domain: description: Domain name (without TLD) type: string example: mydomain tlds: description: TLDs list type: array items: description: TLD without leading dot type: string example: - com - net - org with_alternatives: description: Should response include alternatives type: boolean default: false example: true type: object Domains.V1.Forwarding.StoreRequest: required: - domain - redirect_type - redirect_url properties: domain: description: Domain name type: string example: mydomain.tld redirect_type: description: Redirect type type: string enum: - "301" - "302" example: "301" x-enum-descriptions: "301": Permanent "302": Temporary redirect_url: description: URL to forward domain to type: string example: https://forward.to.my.url type: object Domains.V1.Portfolio.PurchaseRequest: required: - domain - item_id properties: domain: description: Domain name type: string example: my-new-domain.tld item_id: description: Catalog price item ID type: string example: hostingercom-domain-com-usd-1y payment_method_id: description: Payment method ID, default will be used if not provided type: integer example: 1327362 domain_contacts: description: Domain contact information properties: owner_id: description: Owner contact WHOIS record ID type: integer example: 741288 admin_id: description: Administrative contact WHOIS record ID type: integer example: 546123 billing_id: description: Billing contact WHOIS record ID type: integer example: 741288 tech_id: description: Technical contact WHOIS record ID type: integer example: 741288 type: object additional_details: description: Additional registration data, possible values depends on TLD type: object coupons: description: Discount coupon codes type: array items: example: - Coupon 3 type: object Domains.V1.Portfolio.UpdateNameserversRequest: required: - ns1 - ns2 properties: ns1: description: First name server type: string example: ns1.some-nameserver.tld ns2: description: Second name server type: string example: ns2.some-nameserver.tld ns3: description: Third name server type: string example: ns3.some-nameserver.tld ns4: description: Fourth name server type: string example: ns4.some-nameserver.tld type: object Domains.V1.WHOIS.StoreRequest: required: - tld - entity_type - country - whois_details properties: tld: description: TLD of the domain (without leading dot) type: string example: com country: description: ISO 3166 2-letter country code type: string example: NL entity_type: description: Legal entity type type: string enum: - individual - organization example: individual tld_details: description: TLD details type: object whois_details: description: WHOIS details type: object type: object Hosting.V1.Datacenters.ListRequest: required: - order_id properties: order_id: type: integer example: 12345 type: object Hosting.V1.Domains.VerifyOwnershipRequest: required: - domain properties: domain: description: Domain to verify ownership for type: string example: example.com type: object Hosting.V1.Websites.CreateWebsiteRequest: required: - domain - order_id properties: domain: description: Domain name for the website. Cannot start with "www." type: string example: example.com order_id: description: ID of the associated order type: integer example: 12345 datacenter_code: description: Datacenter code. This parameter is required when creating the first website on a new hosting plan. type: string example: us-east-1 nullable: true type: object Reach.V1.Contacts.Segments.StoreRequest: required: - name - conditions - logic properties: name: type: string example: New segment name conditions: type: array items: properties: operator: type: string enum: - equals - not_equals - contains - not_contains - gte - lte - exists - within_last_days - not_within_last_days - older_than_days - processed - not_processed - delivered - not_delivered - dropped - not_dropped - bounced - not_bounced - opened - not_opened - clicked - not_clicked - unsubscribed - not_unsubscribed example: equals value: oneOf: - type: string example: example@example.com - type: integer example: 10 attribute: type: string enum: - note - comment - domain - integration - source - name - surname - email - subscribed_at - unsubscribed_at - subscription_status - processed - opened - clicked - delivered - bounced - unsubscribed - dropped - tag - campaigns example: note type: object maxItems: 5 minItems: 1 logic: type: string enum: - AND - OR example: AND type: object Reach.V1.Contacts.StoreRequest: required: - email properties: email: type: string example: john.doe@example.com name: type: string example: John nullable: true surname: type: string example: Doe nullable: true note: type: string maxLength: 75 example: VIP customer nullable: true type: object VPS.V1.Firewall.Rules.StoreRequest: required: - protocol - port - source - source_detail properties: protocol: type: string enum: - TCP - UDP - ICMP - GRE - any - ESP - AH - ICMPv6 - SSH - HTTP - HTTPS - MySQL - PostgreSQL example: TCP port: description: "Port or port range, ex: 1024:2048" type: string example: "443" source: type: string enum: - any - custom example: any source_detail: description: IP range, CIDR, single IP or `any` type: string example: 351.15.24.0/24 type: object VPS.V1.Firewall.StoreRequest: required: - name properties: name: type: string example: My Firewall Group type: object VPS.V1.PostInstallScript.StoreRequest: required: - name - content properties: name: description: Name of the script type: string example: My Script content: description: Content of the script type: string example: |- #!/bin/bash echo 'Hello, World!' type: object VPS.V1.PublicKey.AttachRequest: required: - ids properties: ids: description: Public Key IDs to attach type: array items: type: integer example: - 18232 - 10230230 type: object VPS.V1.PublicKey.StoreRequest: required: - name - key properties: name: type: string example: My Public Key key: type: string example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... type: object VPS.V1.VirtualMachine.DockerManager.UpRequest: required: - project_name - content properties: project_name: description: Docker Compose project name using alphanumeric characters, dashes, and underscores only type: string maxLength: 64 minLength: 3 example: my-project-1 content: description: URL pointing to docker-compose.yaml file, Github repository or raw YAML content of the compose file type: string maxLength: 8192 environment: description: Project environment variables type: string maxLength: 8192 nullable: true type: object VPS.V1.VirtualMachine.HostnameUpdateRequest: required: - hostname properties: hostname: type: string example: my.server.tld type: object VPS.V1.VirtualMachine.MetricGetRequest: required: - date_from - date_to properties: date_from: type: string format: date-time example: 2025-05-01T00:00:00Z date_to: type: string format: date-time example: 2025-06-01T00:00:00Z type: object VPS.V1.VirtualMachine.NameserversUpdateRequest: required: - ns1 properties: ns1: type: string example: 4.3.2.1 ns2: type: string example: 1.2.3.4 nullable: true ns3: type: string example: 5.2.3.4 nullable: true type: object VPS.V1.VirtualMachine.PTR.StoreRequest: required: - domain properties: domain: description: Pointer record domain type: string example: example.tld type: object VPS.V1.VirtualMachine.PanelPasswordUpdateRequest: required: - password properties: password: description: Panel password for the virtual machine type: string format: password minLength: 8 example: oMeNRustosIO type: object VPS.V1.VirtualMachine.PurchaseRequest: required: - item_id - setup properties: item_id: description: Catalog price item ID type: string example: hostingercom-vps-kvm2-usd-1m payment_method_id: description: Payment method ID, default will be used if not provided type: integer example: 1327362 setup: $ref: "#/components/schemas/VPS.V1.VirtualMachine.SetupRequest" coupons: description: Discount coupon codes type: array items: example: - Coupon 3 type: object VPS.V1.VirtualMachine.Recovery.StartRequest: required: - root_password properties: root_password: description: Temporary root password for recovery mode type: string example: oMeNRustosIO type: object VPS.V1.VirtualMachine.RecreateRequest: required: - template_id properties: template_id: description: Template ID type: integer example: 1130 password: description: >- Root password for the virtual machine. If not provided, random password will be generated. Password will not be shown in the response. type: string format: password minLength: 12 example: oMeNRustosIO panel_password: description: >- Panel password for the panel-based OS template. If not provided, random password will be generated. If OS does not support panel_password this field will be ignored. Password will not be shown in the response. type: string format: password minLength: 12 example: Mna58c17a4d post_install_script_id: description: Post-install script to execute after virtual machine was recreated type: integer example: 6324 type: object VPS.V1.VirtualMachine.RootPasswordUpdateRequest: required: - password properties: password: description: Root password for the virtual machine type: string format: password minLength: 12 example: oMeNRustosIO type: object VPS.V1.VirtualMachine.SetupRequest: required: - data_center_id - template_id properties: template_id: description: Template ID type: integer example: 1130 data_center_id: description: Data center ID type: integer example: 19 post_install_script_id: description: Post-install script ID type: integer example: 6324 password: description: >- Password for the virtual machine. If not provided, random password will be generated. Password will not be shown in the response. type: string format: password minLength: 12 example: oMeNRustosIO hostname: description: Override default hostname of the virtual machine type: string example: my.server.tld install_monarx: description: Install Monarx malware scanner (if supported) type: boolean default: false example: false enable_backups: description: Enable weekly backup schedule type: boolean default: true example: true ns1: description: Name server 1 type: string example: 4.3.2.1 ns2: description: Name server 2 type: string example: 1.2.3.4 public_key: description: Use SSH key properties: name: description: Name of the SSH key type: string example: my-key key: description: Contents of the SSH key type: string example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQC2X... type: object type: object Billing.V1.Catalog.CatalogItemCollection: description: Array of [`Billing.V1.Catalog.CatalogItemResource`](#model/billingv1catalogcatalogitemresource) type: array items: $ref: "#/components/schemas/Billing.V1.Catalog.CatalogItemResource" Billing.V1.Catalog.CatalogItemPriceCollection: description: Array of [`Billing.V1.Catalog.CatalogItemPriceResource`](#model/billingv1catalogcatalogitempriceresource) type: array items: $ref: "#/components/schemas/Billing.V1.Catalog.CatalogItemPriceResource" Billing.V1.Catalog.CatalogItemPriceResource: properties: id: description: Price item ID type: string example: hostingercom-vps-kvm2-usd-1m name: description: Price item name type: string example: KVM 2 (billed every month) currency: description: Currency code type: string example: USD price: description: Price in cents type: integer example: 1799 first_period_price: description: First period price in cents type: integer example: 899 period: description: Period type: integer example: 1 period_unit: description: Period unit type: string enum: - day - week - month - year - none example: day type: object Billing.V1.Catalog.CatalogItemResource: properties: id: description: Catalog item ID type: string example: hostingercom-vps-kvm2 name: type: string example: KVM 2 category: type: string example: VPS metadata: description: " \ Flexible key-value storage containing category-specific metadata for the catalog item. \ The structure and available fields vary depending on the item category. \ " type: object example: field: value nullable: true prices: $ref: "#/components/schemas/Billing.V1.Catalog.CatalogItemPriceCollection" type: object Billing.V1.Order.OrderBillingAddressResource: properties: first_name: type: string example: John last_name: type: string example: Doe company: type: string example: null nullable: true address_1: type: string example: null nullable: true address_2: type: string example: null nullable: true city: type: string example: null nullable: true state: type: string example: null nullable: true zip: type: string example: null nullable: true country: type: string example: NL nullable: true phone: type: string example: null nullable: true email: type: string example: john@doe.tld type: object Billing.V1.Order.OrderResource: properties: id: description: Order ID type: integer example: 2957086 subscription_id: description: Subscription ID type: string example: Azz353Uhl1xC54pR0 status: type: string enum: - completed - pending - processing - failed - refunded - cancelled - awaiting_payment - payment_initiated - fraud_refund example: completed currency: description: Currency code type: string example: USD subtotal: description: Subtotal price (exc. VAT) in cents type: integer example: 899 total: description: Total price (inc. VAT) in cents type: integer example: 1088 billing_address: $ref: "#/components/schemas/Billing.V1.Order.OrderBillingAddressResource" created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-03-27T11:54:22Z type: object Billing.V1.Order.VirtualMachineOrderResource: properties: order: $ref: "#/components/schemas/Billing.V1.Order.OrderResource" virtual_machine: $ref: "#/components/schemas/VPS.V1.VirtualMachine.VirtualMachineResource" type: object Billing.V1.PaymentMethod.PaymentMethodCollection: description: Array of [`Billing.V1.PaymentMethod.PaymentMethodResource`](#model/billingv1paymentmethodpaymentmethodresource) type: array items: $ref: "#/components/schemas/Billing.V1.PaymentMethod.PaymentMethodResource" Billing.V1.PaymentMethod.PaymentMethodResource: properties: id: description: Payment method ID type: integer example: 6523 name: type: string example: Credit Card identifier: type: string example: 1234*****6464 payment_method: type: string example: card is_default: type: boolean example: true is_expired: type: boolean example: false is_suspended: type: boolean example: false created_at: type: string format: date-time example: 2025-02-27T11:54:22Z expires_at: type: string format: date-time example: 2025-03-27T11:54:22Z type: object Billing.V1.Subscription.SubscriptionCollection: description: Array of [`Billing.V1.Subscription.SubscriptionResource`](#model/billingv1subscriptionsubscriptionresource) type: array items: $ref: "#/components/schemas/Billing.V1.Subscription.SubscriptionResource" Billing.V1.Subscription.SubscriptionResource: properties: id: description: Subscription ID type: string example: Azz36nUfKX1S1MSF name: type: string example: KVM 1 status: type: string enum: - active - paused - cancelled - not_renewing - transferred - in_trial - future example: active billing_period: type: integer example: 1 billing_period_unit: type: string example: day currency_code: type: string example: USD total_price: description: Total price in cents type: integer example: 1799 renewal_price: description: Renewal price in cents type: integer example: 1799 is_auto_renewed: type: boolean example: true created_at: type: string format: date-time example: 2025-02-27T11:54:22Z expires_at: type: string format: date-time example: 2025-03-27T11:54:22Z nullable: true next_billing_at: type: string format: date-time example: 2025-02-28T11:54:22Z nullable: true type: object Common.SuccessEmptyResource: properties: message: type: string example: Request accepted type: object x-scalar-ignore: true DNS.V1.Snapshot.SnapshotCollection: description: Array of [`DNS.V1.Snapshot.SnapshotResource`](#model/dnsv1snapshotsnapshotresource) type: array items: $ref: "#/components/schemas/DNS.V1.Snapshot.SnapshotResource" DNS.V1.Snapshot.SnapshotResource: properties: id: description: Snapshot ID type: integer example: 5341 reason: description: Reason of the update type: string example: Zone records update request created_at: type: string format: date-time example: 2025-02-27T11:54:22Z type: object DNS.V1.Snapshot.SnapshotWithContentResource: properties: id: description: Snapshot ID type: integer example: 5341 reason: description: Reason of the update type: string example: Zone records update request snapshot: $ref: "#/components/schemas/DNS.V1.Zone.RecordCollection" created_at: type: string format: date-time example: 2025-02-27T11:54:22Z type: object DNS.V1.Zone.NameRecordCollection: description: Array of [`DNS.V1.Zone.NameRecordResource`](#model/dnsv1zonenamerecordresource) type: array items: $ref: "#/components/schemas/DNS.V1.Zone.NameRecordResource" DNS.V1.Zone.NameRecordResource: properties: content: description: Content of the name record type: string example: mydomain.tld. is_disabled: description: Flag to mark name record as disabled type: boolean example: false type: object DNS.V1.Zone.RecordCollection: description: Array of [`DNS.V1.Zone.RecordResource`](#model/dnsv1zonerecordresource) type: array items: $ref: "#/components/schemas/DNS.V1.Zone.RecordResource" DNS.V1.Zone.RecordResource: properties: name: description: Name of the record (use `@` for wildcard name) type: string example: www records: $ref: "#/components/schemas/DNS.V1.Zone.NameRecordCollection" ttl: description: TTL (Time-To-Live) of the record type: integer example: 14400 type: description: Type of the record type: string enum: - A - AAAA - CNAME - ALIAS - MX - TXT - NS - SOA - SRV - CAA example: A type: object DomainAccessVerifier.V2.Verifications.ActiveVerificationsCollection: description: Returns active verifications (PENDING and VERIFIED) grouped by status and domain. Includes last and next verification attempt dates and expiration for PENDING verifications. properties: data: description: List of active verifications by status. If no verifications are found, this will return an empty array. properties: PENDING: description: Pending verifications grouped by domain. Keys are domain names (e.g., "pixel.tld"). This property will not be returned if no pending verifications are found. properties: DOMAIN.TLD: description: Domain name (example). Contains verification types as properties. properties: VERIFICATION_TYPE: description: Verification type ("NAMESERVERS" or "TXT"). Only verification types that exist for this domain will be present. properties: records: description: Verification records type: array items: type: string last_verification_attempt: description: Datetime when last verification attempt occurred type: string example: 2025-08-05 13:15:00 next_verification_attempt: description: Datetime when next verification attempt will occur type: string example: 2025-08-05 14:30:00 verification_expiration: description: Datetime when verification expires type: string example: 2025-08-12 13:15:00 type: object type: object type: object VERIFIED: description: Verified verifications grouped by domain. Keys are domain names (e.g., "byte.tld"). This property will not be returned if no verified verifications are found. properties: DOMAIN.TLD: description: Domain name (example). Contains verification types as properties. properties: VERIFICATION_TYPE: description: Verification type (e.g., "NAMESERVERS", "TXT"). Only verification types that exist for this domain will be present. properties: records: description: Verification records type: array items: type: string type: object type: object type: object type: object type: object example: data: PENDING: pixel.tld: NAMESERVERS: records: - ns1.nameserver.com - ns2.nameserver.com last_verification_attempt: 2025-08-05 13:15:00 next_verification_attempt: 2025-08-05 14:30:00 verification_expiration: 2025-08-12 13:15:00 TXT: records: - txt-verification-hash last_verification_attempt: 2025-08-05 14:45:00 next_verification_attempt: 2025-08-05 15:00:00 verification_expiration: 2025-08-12 14:45:00 VERIFIED: byte.tld: TXT: records: - other-txt-verification-hash Domains.V1.Availability.AvailabilityCollection: description: Array of [`Domains.V1.Availability.AvailabilityResource`](#model/domainsv1availabilityavailabilityresource) type: array items: $ref: "#/components/schemas/Domains.V1.Availability.AvailabilityResource" Domains.V1.Availability.AvailabilityResource: properties: domain: description: Domain name, `null` when not claimed free domain type: string example: mydomain.tld nullable: true is_available: description: "`true` if domain is available for registration" type: boolean example: true is_alternative: description: "`true` if domain is provided as an alternative" type: boolean example: false restriction: description: Special rules and/or restrictions applied for registering TLD type: string nullable: true type: object Domains.V1.Domain.DomainCollection: description: Array of [`Domains.V1.Domain.DomainResource`](#model/domainsv1domaindomainresource) type: array items: $ref: "#/components/schemas/Domains.V1.Domain.DomainResource" Domains.V1.Domain.DomainExtendedResource: properties: domain: description: Domain name type: string example: mydomain.tld status: description: Status of the domain type: string enum: - active - pending_setup - expired - requested - pending_verification - deleted - suspended - failed example: active message: type: string nullable: true is_privacy_protection_allowed: description: Is privacy protection allowed for the domain type: boolean example: true is_privacy_protected: description: Is privacy protection enabled for the domain type: boolean example: false is_lockable: description: Is domain allowed to be locked type: boolean example: true is_locked: description: Is domain locked type: boolean example: true name_servers: description: Name servers properties: ns1: description: Name server 1 type: string example: ns1.example.tld ns2: description: Name server 2 type: string example: ns2.example.tld type: object example: ns1: ns1.example.tld ns2: ns2.example.tld child_name_servers: description: Child name servers type: array items: type: array items: type: string example: ns1.example.tld: - 258.231.55.321 - 258.231.55.322 domain_contacts: description: WHOIS profiles properties: admin_id: description: Admin WHOIS profile ID type: integer example: 114698 owner_id: description: Owner WHOIS profile ID type: integer example: 614698 billing_id: description: Billing WHOIS profile ID type: integer example: 154698 tech_id: description: Technician WHOIS profile ID type: integer example: 524248 type: object created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-02-27T11:54:22Z 60_days_lock_expires_at: type: string format: date-time example: 2025-04-27T11:54:22Z nullable: true registered_at: type: string format: date-time example: 2025-02-27T12:54:22Z nullable: true expires_at: type: string format: date-time example: 2025-03-27T11:54:22Z nullable: true type: object Domains.V1.Domain.DomainResource: properties: id: description: Domain ID type: integer example: 13632 domain: description: Domain name, `null` when not claimed free domain type: string example: mydomain.tld nullable: true type: type: string enum: - domain - free_domain - domain_transfer - free_domain_transfer example: domain status: type: string enum: - active - pending_setup - expired - requested - pending_verification - deleted - suspended - failed example: active created_at: type: string format: date-time example: 2025-02-27T11:54:22Z expires_at: type: string format: date-time example: 2025-03-27T11:54:22Z nullable: true type: object Domains.V1.Forwarding.ForwardingResource: properties: domain: description: Domain name type: string example: mydomain.tld nullable: true redirect_type: description: Redirect type type: string enum: - "301" - "302" example: "301" x-enum-descriptions: "301": Permanent "302": Temporary redirect_url: description: URL domain is forwarded to type: string example: https://forward.to.my.url created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-03-27T11:54:22Z nullable: true type: object Domains.V1.WHOIS.ProfileCollection: description: Array of [`Domains.V1.WHOIS.ProfileResource`](#model/domainsv1whoisprofileresource) type: array items: $ref: "#/components/schemas/Domains.V1.WHOIS.ProfileResource" Domains.V1.WHOIS.ProfileResource: properties: id: description: WHOIS Profile ID type: integer example: 746263 tld: description: TLD to which contact profile can be applied to type: string example: com country: description: ISO 3166 2-letter country code type: string example: NL entity_type: description: WHOIS profile entity type type: string enum: - individual - organization example: individual whois_details: description: WHOIS profile details type: object example: first_name: John last_name: Doe email: john@doe.tld tld_details: description: TLD details type: object created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-03-19T11:54:22Z type: object Domains.V1.WHOIS.ProfileUsageResource: description: Array of domains type: array items: type: string example: - mydomain1.tld - mydomain2.tld Hosting.V1.Datacenter.CoordinatesResource: properties: latitude: description: Latitude coordinate type: number format: float example: 51.5074 longitude: description: Longitude coordinate type: number format: float example: 0.1278 type: object Hosting.V1.Datacenter.DatacenterCollection: description: Array of [`Hosting.V1.Datacenter.DatacenterResource`](#model/hostingv1datacenterdatacenterresource) type: array items: $ref: "#/components/schemas/Hosting.V1.Datacenter.DatacenterResource" Hosting.V1.Datacenter.DatacenterResource: properties: title: description: Data center title type: string example: Europe (UK) code: description: Data center code type: string example: uk-fast coordinates: $ref: "#/components/schemas/Hosting.V1.Datacenter.CoordinatesResource" type: object Hosting.V1.Domains.DomainAccessResource: properties: domain: description: Domain name type: string example: example.com is_accessible: description: Whether domain is accessible type: boolean example: false txt_to_verify: description: TXT record for verification type: string example: example.com=example-verification-code type: object Hosting.V1.Domains.FreeSubdomainResource: properties: domain: description: Generated free subdomain type: string example: palegreen-fox-548498.hostingersite.com type: object Hosting.V1.NodeJs.BuildOptionsResource: required: - node_version - app_type - root_directory - output_directory - build_script - entry_file - package_manager - source_type - source_options properties: node_version: description: Node.js version type: integer example: 24 app_type: description: Node.js application type type: string enum: - create-react-app - vite - angular - react - vue - parcel example: vite nullable: true root_directory: description: Application root directory type: string example: src nullable: true output_directory: description: Build output directory type: string example: dist nullable: true build_script: description: The npm script to run to build the application type: string example: build nullable: true entry_file: description: The main entry point file for the application type: string example: server.js nullable: true package_manager: description: Package manager type: string enum: - npm - yarn - pnpm example: npm nullable: true source_type: description: Source type for the build type: string enum: - archive example: archive nullable: true source_options: oneOf: - $ref: "#/components/schemas/Hosting.V1.NodeJs.SourceOptionsResource" nullable: true description: Source options, varies based on sourceType type: object Hosting.V1.NodeJs.SourceOptionsResource: properties: archive_path: description: Present if sourceType is "archive" type: string example: archive.zip nullable: true type: object Hosting.V1.Orders.OrderCollection: description: Array of [`Hosting.V1.Orders.OrderResource`](#model/hostingv1ordersorderresource) type: array items: $ref: "#/components/schemas/Hosting.V1.Orders.OrderResource" Hosting.V1.Orders.OrderResource: properties: id: description: Order ID type: integer example: 12345 client_id: description: Client ID type: integer example: 67890 subscription_id: description: Subscription ID type: string example: sub_abc123 nullable: true created_at: description: Creation date type: string format: date-time example: 2023-10-08T12:00:00+00:00 plan: $ref: "#/components/schemas/Hosting.V1.Orders.PlanResource" status: description: Order status type: string example: active type: object Hosting.V1.Orders.PlanResource: properties: name: description: Plan name type: string example: hostinger_business type: object Hosting.V1.Websites.WebsiteCollection: description: Array of [`Hosting.V1.Websites.WebsiteResource`](#model/hostingv1websiteswebsiteresource) type: array items: $ref: "#/components/schemas/Hosting.V1.Websites.WebsiteResource" Hosting.V1.Websites.WebsiteResource: properties: domain: description: Website domain type: string example: example.com vhost_type: description: Virtual host type type: string enum: - main - addon - parked - subdomain example: main is_enabled: description: Whether website is enabled type: boolean example: true username: description: Username type: string example: cl_user123 client_id: description: Client ID type: integer example: 67890 order_id: description: Order ID type: integer example: 12345 created_at: description: Creation date type: string format: date-time example: 2024-01-15T10:30:00+00:00 root_directory: description: Root directory path type: string example: /home/u123456798/domains/example.com/public_html parent_domain: description: Parent domain type: string example: parent.com nullable: true type: object Reach.V1.Contacts.ContactCollection: description: Array of [`Reach.V1.Contacts.ContactResource`](#model/reachv1contactscontactresource) type: array items: $ref: "#/components/schemas/Reach.V1.Contacts.ContactResource" Reach.V1.Contacts.ContactResource: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: John nullable: true surname: type: string example: Doe nullable: true email: type: string example: john.doe@example.com subscription_status: type: string enum: - subscribed - unsubscribed example: subscribed subscribed_at: type: string format: date-time example: 2023-01-01T00:00:00Z source: type: string enum: - sync - import - manual example: sync nullable: true note: type: string maxLength: 75 example: VIP customer nullable: true type: object Reach.V1.Contacts.Groups.ContactGroupCollection: description: Array of [`Reach.V1.Contacts.Groups.ContactGroupResource`](#model/reachv1contactsgroupscontactgroupresource) type: array items: $ref: "#/components/schemas/Reach.V1.Contacts.Groups.ContactGroupResource" Reach.V1.Contacts.Groups.ContactGroupResource: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 title: type: string example: Newsletter Subscribers type: object Reach.V1.Contacts.Segments.ContactSegmentCollection: description: Array of [`Reach.V1.Contacts.Segments.ContactSegmentResource`](#model/reachv1contactssegmentscontactsegmentresource) type: array items: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.ContactSegmentResource" Reach.V1.Contacts.Segments.ContactSegmentResource: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: Newsletter Subscribers created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-02-27T11:54:22Z type: object Reach.V1.Contacts.Segments.SegmentResource: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: Segment name query: type: array items: {} example: conditions: - attribute: email operator: contains value: example.com logic: and created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-02-27T11:54:22Z type: object Reach.V1.Contacts.Segments.SegmentationContactCollection: description: Array of [`Reach.V1.Contacts.Segments.SegmentationContactResource`](#model/reachv1contactssegmentssegmentationcontactresource) type: array items: $ref: "#/components/schemas/Reach.V1.Contacts.Segments.SegmentationContactResou\ rce" Reach.V1.Contacts.Segments.SegmentationContactResource: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 name: type: string example: John nullable: true surname: type: string example: Doe nullable: true email: type: string example: john.doe@example.com subscription_status: type: string enum: - subscribed - unsubscribed example: subscribed subscribed_at: type: string format: date-time example: 2023-01-01T00:00:00Z source: type: string enum: - sync - import - manual example: sync nullable: true note: type: string maxLength: 75 example: VIP customer nullable: true type: object Reach.V1.Profiles.ProfileCollection: description: Array of [`Reach.V1.Profiles.ProfileResource`](#model/reachv1profilesprofileresource) type: array items: $ref: "#/components/schemas/Reach.V1.Profiles.ProfileResource" Reach.V1.Profiles.ProfileResource: properties: limits: properties: ai_messages_limit: type: integer example: 10 subscribers_limit: type: integer example: 500 emails_monthly_limit: type: integer example: 3500 ai_messages_additional: type: integer example: 1096 type: object is_trial: type: boolean example: false expires_at: type: string format: date-time example: 2027-10-21T05:38:23.000000Z resource_id: type: integer example: 44340307 status: type: string example: active profiles: type: array items: properties: uuid: type: string example: 550e8400-e29b-41d4-a716-446655440000 domain: type: string example: example.com created_at: type: string format: date-time example: 2026-01-21T07:35:04.000000Z updated_at: type: string format: date-time example: 2026-01-21T07:35:04.000000Z type: object type: object VPS.V1.Action.ActionCollection: description: Array of [`VPS.V1.Action.ActionResource`](#model/vpsv1actionactionresource) type: array items: $ref: "#/components/schemas/VPS.V1.Action.ActionResource" VPS.V1.Action.ActionResource: properties: id: description: Action ID type: integer example: 8123712 name: description: Action name type: string example: action_name state: description: Action state type: string enum: - success - error - delayed - sent - created example: success x-enum-descriptions: success: Action was successful error: Action failed delayed: Action is delayed sent: Action was sent created: Action was created created_at: type: string format: date-time example: 2025-02-27T11:54:00Z updated_at: type: string format: date-time example: 2025-02-27T11:58:00Z type: object VPS.V1.Backup.BackupCollection: description: Array of [`VPS.V1.Backup.BackupResource`](#model/vpsv1backupbackupresource) type: array items: $ref: "#/components/schemas/VPS.V1.Backup.BackupResource" VPS.V1.Backup.BackupResource: properties: id: description: Backup ID type: integer example: 325 size: description: Backup size in kilobytes type: integer example: 15240192 restore_time: description: Estimated backup restore time in seconds type: integer example: 3600 location: description: Location of the backup type: string example: nl-srv-nodebackups created_at: type: string format: date-time example: 2025-02-27T11:54:22Z type: object VPS.V1.DataCenter.DataCenterCollection: description: Array of [`VPS.V1.DataCenter.DataCenterResource`](#model/vpsv1datacenterdatacenterresource) type: array items: $ref: "#/components/schemas/VPS.V1.DataCenter.DataCenterResource" VPS.V1.DataCenter.DataCenterResource: properties: id: description: Data center ID type: integer example: 29 name: description: Data center name type: string example: phx nullable: true location: description: Data center location country (two letter code) type: string example: us nullable: true city: description: Data center location city type: string example: Phoenix nullable: true continent: description: Data center location continent type: string example: North America nullable: true type: object VPS.V1.DockerManager.ContainerCollection: description: Array of [`VPS.V1.DockerManager.ContainerResource`](#model/vpsv1dockermanagercontainerresource) type: array items: $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerResource" VPS.V1.DockerManager.ContainerPortCollection: description: Array of [`VPS.V1.DockerManager.ContainerPortResource`](#model/vpsv1dockermanagercontainerportresource) type: array items: $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerPortResource" VPS.V1.DockerManager.ContainerPortResource: properties: type: description: Port mapping type - published (accessible from host), exposed (only internal), or range variants type: string enum: - published - published_range - exposed - exposed_range example: published x-enum-descriptions: published: " \ A single port mapped from the host to the container (e.g., host:8080 -> container:80) \ " published_range: " \ A range of ports mapped from the host to the container \ (e.g., host:8000-8010 -> container:3000-3010) \ " exposed: " \ A single port made available for inter-container communication within Docker networks \ " exposed_range: " \ A range of ports made available for inter-container communication within Docker networks \ " protocol: description: Network protocol used for communication type: string enum: - tcp - udp example: tcp host_ip: description: IP address on host where port is bound (null for exposed-only ports) type: string example: 0.0.0.0 nullable: true host_port: description: Port number on host machine (null for exposed-only or range ports) type: integer example: 8080 nullable: true container_port: description: Port number inside container (null for range ports) type: integer example: 80 nullable: true host_port_start: description: Starting port number in host port range (null for single ports) type: integer nullable: true host_port_end: description: Ending port number in host port range (null for single ports) type: integer nullable: true container_port_start: description: Starting port number in container port range (null for single ports) type: integer nullable: true container_port_end: description: Ending port number in container port range (null for single ports) type: integer nullable: true type: object VPS.V1.DockerManager.ContainerResource: properties: id: description: Unique container identifier (short form of Docker container ID) type: string example: bbd4c89e850d name: description: Container name as defined in docker-compose or assigned by Docker type: string example: nginx image: description: Docker image name and tag used to create this container type: string example: nginx:latest command: description: Command being executed inside the container (may be truncated with ...) type: string example: /docker-entrypoint.sh nginx -g daemon off; status: description: Human-readable container status including uptime, exit codes, or error information type: string example: Up 4 hours state: description: Programmatic container lifecycle state for automated processing type: string enum: - created - running - restarting - exited - paused - dead - stopping example: running x-enum-descriptions: created: Container has been created but never started running: Container is actively running and performing its tasks restarting: Container is in the process of being restarted exited: Container ran and completed/stopped paused: " \ Container's processes have been paused, but container is still allocated \ " dead: " \ Container that the daemon tried and failed to stop \ (usually due to the busy device or resource used by the container) \ " stopping: Container is in the process of being stopped health: description: Container health status type: string enum: - starting - healthy - unhealthy - "" example: healthy x-enum-descriptions: "": " \ No health check is configured for the container \ (this is the default when no HEALTHCHECK is defined) \ " healthy: " \ The container has passed its health checks and is operating normally \ " unhealthy: " \ The container has failed its health checks (exceeded the failure threshold) \ " starting: " \ The container is still within its startup period (health checks are running but \ haven't passed the required number of consecutive checks yet) \ " ports: $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerPortCollection" stats: oneOf: - $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerStatsResource" nullable: true description: Real-time resource usage statistics (only available for running containers) type: object VPS.V1.DockerManager.ContainerStatsResource: properties: cpu_percentage: description: CPU usage in percentage type: number format: float example: 15.4 memory_percentage: description: Memory usage in percentage type: number format: float example: 0.4 memory_used: description: Used memory in bytes type: number format: float example: 66532147.2 memory_total: description: Total available memory in bytes type: number format: float example: 16771847290.88 net_in: description: Inbound network traffic in bytes type: integer example: 2110000 net_out: description: Outbound network traffic in bytes type: integer example: 30100 type: object VPS.V1.DockerManager.ContentResource: properties: content: description: Contents of docker-compose file type: string example: |- services: my-app: image: nginx ports: - "80:80" my-db: image: mysql environment: description: Project environment variables type: string example: |- VARIABLE1=value1 VARIABLE2=value2 nullable: true type: object VPS.V1.DockerManager.LogEntryCollection: description: Array of [`VPS.V1.DockerManager.LogEntryResource`](#model/vpsv1dockermanagerlogentryresource) type: array items: $ref: "#/components/schemas/VPS.V1.DockerManager.LogEntryResource" VPS.V1.DockerManager.LogEntryResource: properties: timestamp: description: ISO 8601 formatted timestamp when the log entry was generated by the container type: string example: 2024-01-15T10:30:45.123456Z line: description: Raw log message content as output by the application inside the container type: string example: 127.0.0.1 - - [15/Jan/2024:10:30:45 +0000] "GET / HTTP/1.1" 200 612 type: object VPS.V1.DockerManager.LogsCollection: description: Array of [`VPS.V1.DockerManager.LogsResource`](#model/vpsv1dockermanagerlogsresource) type: array items: $ref: "#/components/schemas/VPS.V1.DockerManager.LogsResource" VPS.V1.DockerManager.LogsResource: properties: service: description: Name of the Docker Compose service that generated these log entries type: string example: web entries: $ref: "#/components/schemas/VPS.V1.DockerManager.LogEntryCollection" type: object VPS.V1.DockerManager.ProjectCollection: description: Array of [`VPS.V1.DockerManager.ProjectResource`](#model/vpsv1dockermanagerprojectresource) type: array items: $ref: "#/components/schemas/VPS.V1.DockerManager.ProjectResource" VPS.V1.DockerManager.ProjectResource: properties: name: description: Docker Compose project name (derived from directory name or compose file) type: string example: my-project status: description: Raw output from docker compose ps command showing service count and states type: string example: running(2) state: description: Derived project state parsed from the raw docker compose status type: string enum: - running - stopped - created - mixed - unknown example: running x-enum-descriptions: running: Project is running and all services are healthy stopped: Project is not running and all services are stopped created: Project is created and not built yet, services are not running mixed: Project is running with some services not healthy or not running unknown: Could not determine the state of the project path: description: Full filesystem path to the docker-compose.yml file type: string example: /docker/my-project/docker-compose.yaml containers: $ref: "#/components/schemas/VPS.V1.DockerManager.ContainerCollection" type: object VPS.V1.Firewall.FirewallCollection: description: Array of [`VPS.V1.Firewall.FirewallResource`](#model/vpsv1firewallfirewallresource) type: array items: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallResource" VPS.V1.Firewall.FirewallResource: properties: id: description: Firewall ID type: integer example: 65224 name: description: Firewall name type: string example: HTTP and SSH only is_synced: description: Is current firewall synced with VPS type: boolean example: false rules: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallRuleCollection" created_at: type: string format: date-time example: 2021-09-01T12:00:00Z updated_at: type: string format: date-time example: 2021-09-01T12:00:00Z type: object VPS.V1.Firewall.FirewallRuleCollection: description: Array of [`VPS.V1.Firewall.FirewallRuleResource`](#model/vpsv1firewallfirewallruleresource) type: array items: $ref: "#/components/schemas/VPS.V1.Firewall.FirewallRuleResource" VPS.V1.Firewall.FirewallRuleResource: properties: id: description: Firewall rule ID type: integer example: 24541 action: description: Firewall rule action type: string enum: - accept - drop example: accept protocol: description: Firewall rule protocol type: string enum: - TCP - UDP - ICMP - GRE - any - ESP - AH - ICMPv6 - SSH - HTTP - HTTPS - MySQL - PostgreSQL example: TCP port: description: "Firewall rule destination port: single or port range" type: string example: 1024:2048 source: description: Firewall rule source. Can be `any` or `custom` type: string example: any source_detail: description: Firewall rule source detail. Can be `any` or IP address, CIDR or range type: string example: any type: object VPS.V1.IPAddress.IPAddressCollection: description: Array of [`VPS.V1.IPAddress.IPAddressResource`](#model/vpsv1ipaddressipaddressresource) type: array items: $ref: "#/components/schemas/VPS.V1.IPAddress.IPAddressResource" VPS.V1.IPAddress.IPAddressResource: properties: id: description: IP address ID type: integer example: 52347 address: description: "IP address: IPv4 or IPv6" type: string example: 213.331.273.15 ptr: description: IP address PTR record type: string example: something.domain.tld nullable: true type: object VPS.V1.Malware.MetricsResource: properties: records: description: Records found during last scan type: integer example: 1 malicious: description: Malicious files found during last scan type: integer example: 2 compromised: description: Compromised files found during last scan type: integer example: 3 scanned_files: description: Total number of files scanned during last scan type: integer example: 193218 scan_started_at: type: string format: date-time example: 2025-02-27T11:54:22Z scan_ended_at: type: string format: date-time example: 2025-03-27T11:54:22Z nullable: true type: object VPS.V1.Metrics.MetricsCollection: properties: cpu_usage: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: CPU usage in percentage, 0 - 100% type: object example: unit: "%" usage: "1742269632": 1.45 ram_usage: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: RAM usage in bytes type: object example: unit: bytes usage: "1742269632": 554176512 disk_space: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: Disk space usage in bytes type: object example: unit: bytes usage: "1742269632": 2620018688 outgoing_traffic: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: Outgoing traffic in bytes type: object example: unit: bytes usage: "1742269632": 784800 incoming_traffic: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: Incoming traffic in bytes type: object example: unit: bytes usage: "1742269632": 8978400 uptime: oneOf: - $ref: "#/components/schemas/VPS.V1.Metrics.MetricsResource" nullable: true description: Uptime in milliseconds type: object example: unit: milliseconds usage: "1742269632": 455248 type: object VPS.V1.Metrics.MetricsResource: properties: unit: description: Measurement unit type: string example: measurement-unit usage: description: Object, containing UNIX timestamps as a key and measurement as a value. type: object example: timestamp: 123 type: object VPS.V1.PostInstallScript.PostInstallScriptCollection: description: Array of [`VPS.V1.PostInstallScript.PostInstallScriptResource`](#model/vpsv1postinstallscriptpostinstallscriptresource) type: array items: $ref: "#/components/schemas/VPS.V1.PostInstallScript.PostInstallScriptResource" VPS.V1.PostInstallScript.PostInstallScriptResource: properties: id: description: Post-install script ID type: integer example: 325 name: description: Name of the script type: string example: My Setup Script content: description: Content of the script type: string example: "#!/bin/bash\\napt-get update\\napt-get install -y nginx" created_at: type: string format: date-time example: 2025-02-27T11:54:22Z updated_at: type: string format: date-time example: 2025-03-19T11:54:22Z type: object VPS.V1.PublicKey.PublicKeyCollection: description: Array of [`VPS.V1.PublicKey.PublicKeyResource`](#model/vpsv1publickeypublickeyresource) type: array items: $ref: "#/components/schemas/VPS.V1.PublicKey.PublicKeyResource" VPS.V1.PublicKey.PublicKeyResource: properties: id: description: Public key ID type: integer example: 325 name: description: Public key name type: string example: My public key key: description: Public key content type: string example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQD... type: object VPS.V1.Snapshot.SnapshotResource: properties: id: description: Snapshot ID type: integer example: 325 restore_time: description: Estimated snapshot restore time in seconds type: integer example: 1800 created_at: type: string format: date-time example: 2025-02-27T11:54:22Z expires_at: type: string format: date-time example: 2025-03-19T11:54:22Z type: object VPS.V1.Template.TemplateCollection: description: Array of [`VPS.V1.Template.TemplateResource`](#model/vpsv1templatetemplateresource) type: array items: $ref: "#/components/schemas/VPS.V1.Template.TemplateResource" VPS.V1.Template.TemplateResource: properties: id: description: Template ID type: integer example: 6523 name: description: Template name type: string example: Ubuntu 20.04 LTS description: description: Template description type: string example: Ubuntu 20.04 LTS documentation: description: Link to official OS documentation type: string example: https://docs.ubuntu.com nullable: true type: object VPS.V1.VirtualMachine.VirtualMachineCollection: description: Array of [`VPS.V1.VirtualMachine.VirtualMachineResource`](#model/vpsv1virtualmachinevirtualmachineresource) type: array items: $ref: "#/components/schemas/VPS.V1.VirtualMachine.VirtualMachineResource" VPS.V1.VirtualMachine.VirtualMachineResource: properties: id: description: Virtual machine ID type: integer example: 17923 firewall_group_id: description: Active firewall ID, `null` if disabled type: integer example: null nullable: true subscription_id: description: Subscription ID type: string example: Azz353Uhl1xC54pR0 nullable: true data_center_id: description: Data center ID type: integer example: 521 nullable: true plan: description: VPS plan name type: string example: KVM 4 nullable: true hostname: type: string example: srv17923.hstgr.cloud state: type: string enum: - running - starting - stopping - stopped - creating - initial - error - suspending - unsuspending - suspended - destroying - destroyed - recreating - restoring - recovery - stopping_recovery example: running actions_lock: type: string enum: - unlocked - locked example: unlocked cpus: description: CPUs count assigned to virtual machine type: integer example: 4 memory: description: Memory available to virtual machine (in megabytes) type: integer example: 8192 disk: description: Virtual machine disk size (in megabytes) type: integer example: 51200 bandwidth: description: Monthly internet traffic available to virtual machine (in megabytes) type: integer example: 1073741824 ns1: description: Primary DNS resolver type: string example: 1.1.1.1 nullable: true ns2: description: Secondary DNS resolver type: string example: 8.8.8.8 nullable: true ipv4: oneOf: - $ref: "#/components/schemas/VPS.V1.IPAddress.IPAddressCollection" nullable: true description: IPv4 address of virtual machine ipv6: oneOf: - $ref: "#/components/schemas/VPS.V1.IPAddress.IPAddressCollection" nullable: true description: IPv6 address of virtual machine, `null` if not assigned template: oneOf: - $ref: "#/components/schemas/VPS.V1.Template.TemplateResource" nullable: true description: OS template installed in virtual machine created_at: type: string format: date-time example: 2024-09-05T07:25:36.00000Z type: object responses: Common.Response.ErrorResponse: description: Error response content: application/json: schema: properties: message: description: Message of the error type: string example: Error message correlation_id: description: Request correlation ID type: string example: 26a91bd9-f8c8-4a83-9df9-83e23d696fe3 type: object x-scalar-ignore: true Common.Response.UnauthorizedResponse: description: Unauthenticated response content: application/json: schema: properties: message: description: Message of the error type: string example: Unauthenticated correlation_id: description: Request correlation ID type: string example: 26a91bd9-f8c8-4a83-9df9-83e23d696fe3 type: object x-scalar-ignore: true Common.Response.UnprocessableContentResponse: description: Validation error response content: application/json: schema: properties: message: description: Validation error message type: string example: The name field is required. (and 1 more error) errors: description: Object of detailed errors for each field properties: field_1: type: array items: {} example: - The field_1 field is required. - The field_1 must be a number. field_2: type: array items: {} example: - The field_2 field is required. - The field_2 must be a string. type: object correlation_id: description: Request correlation ID type: string example: 26a91bd9-f8c8-4a83-9df9-83e23d696fe3 type: object x-scalar-ignore: true parameters: category: name: category in: query description: Filter catalog items by category schema: type: string enum: - DOMAIN - VPS example: VPS name: name: name in: query description: Filter catalog items by name. Use `*` for wildcard search, e.g. `.COM*` to find .com domain schema: type: string example: .COM* paymentMethodId: name: paymentMethodId in: path description: Payment method ID required: true schema: type: integer example: 9693613 subscriptionId: name: subscriptionId in: path description: Subscription ID required: true schema: type: string example: Cxy353Uhl1xC54pG6 domain: name: domain in: path description: Domain name required: true schema: type: string example: mydomain.tld page: name: page in: query description: Page number required: false schema: type: integer example: 1 per_page: name: per_page in: query description: Number of items per page required: false schema: type: integer default: 25 maximum: 100 example: 25 snapshotId: name: snapshotId in: path description: Snapshot ID required: true schema: type: integer example: 53513053 tld: name: tld in: query description: Filter by TLD (without leading dot) schema: type: string example: com whoisId: name: whoisId in: path description: WHOIS ID required: true schema: type: integer example: 564651 build_uuid_path: name: uuid in: path description: Build UUID required: true schema: type: string format: uuid example: 123e4567-e89b-12d3-a456-426614174000 directory: name: directory in: query description: Directory path to check required: false schema: type: string default: "" example: blog domain_filter: name: domain in: query description: Filter by domain name (exact match) required: false schema: type: string example: example.com nullable: true is_enabled: name: is_enabled in: query description: Filter by enabled status required: false schema: type: boolean example: true nullable: true order_id: name: order_id in: query description: Order ID required: false schema: type: integer example: 123 nullable: true order_ids: name: order_ids in: query description: Filter by specific order IDs required: false schema: type: array items: type: integer example: - 12345 - 67890 nullable: true statuses: name: statuses in: query description: Filter by order statuses required: false schema: type: array items: type: string enum: - active - deleting - deleted - suspended example: - active - suspended nullable: true order_id_required: name: order_id in: query description: Order ID required: true schema: type: integer example: 123 nullable: false username: name: username in: query description: Filter by specific username required: false schema: type: string example: cl_user123 nullable: true username_path: name: username in: path required: true schema: type: string example: u123456789 uuid: name: uuid in: path description: UUID of the contact to delete required: true schema: type: string format: uuid group_uuid: name: group_uuid in: query description: Filter contacts by group UUID required: false schema: type: string example: 550e8400-e29b-41d4-a716-446655440000 profileUuid: name: profileUuid in: path description: Profile uuid parameter required: true schema: type: string example: 550e8400-e09b-41d4-a716-400055000000 segmentUuid: name: segmentUuid in: path description: Segment uuid parameter required: true schema: type: string example: 550e8400-e09b-41d4-a716-400055000000 subscription_status: name: subscription_status in: query description: Filter contacts by subscription status required: false schema: type: string enum: - subscribed - unsubscribed example: subscribed tokenId: name: tokenId in: path description: Token ID required: true schema: type: integer example: 6409747 actionId: name: actionId in: path description: Action ID required: true schema: type: integer example: 8123712 backupId: name: backupId in: path description: Backup ID required: true schema: type: integer example: 8676502 projectName: name: projectName in: path description: Docker Compose project name using alphanumeric characters, dashes, and underscores only required: true schema: type: string maxLength: 64 minLength: 3 example: my-docker-project firewallId: name: firewallId in: path description: Firewall ID required: true schema: type: integer example: 9449049 ruleId: name: ruleId in: path description: Firewall Rule ID required: true schema: type: integer example: 8941182 ipAddressId: name: ipAddressId in: path description: IP Address ID required: true schema: type: integer example: 246547 postInstallScriptId: name: postInstallScriptId in: path description: Post-install script ID required: true schema: type: integer example: 9568314 publicKeyId: name: publicKeyId in: path description: Public Key ID required: true schema: type: integer example: 6672861 templateId: name: templateId in: path description: Template ID required: true schema: type: integer example: 2868928 virtualMachineId: name: virtualMachineId in: path description: Virtual Machine ID required: true schema: type: integer example: 1268054 securitySchemes: apiToken: type: http description: API Token authentication scheme: bearer security: - apiToken: [] tags: - name: "Billing: Catalog" description: |- Access a comprehensive catalog of service plans and subscription options, complete with detailed pricing and features. x-displayName: Catalog - name: "Billing: Payment methods" description: |- Review and manage the payment methods linked to your Hostinger account. Enjoy a secure and convenient overview for handling billing and transactions. x-displayName: Payment methods - name: "Billing: Subscriptions" description: |- Manage your account's subscriptions by retrieving lists of active and expired plans along with details such as activation and expiration dates. x-displayName: Subscriptions - name: "DNS: Snapshot" description: |- Manage DNS snapshots for your domains. This category includes endpoints for viewing and restoring snapshots of your domain DNS zone. Snapshot is a point-in-time copy of your DNS zone, allowing you to restore your domain's DNS settings to a previous state. x-displayName: Snapshot - name: "DNS: Zone" description: |- Manage DNS zones and records for your domains. This category includes endpoints for retrieving, updating, deleting DNS zone and it's associated records. The DNS zone will be created once you purchase new domain at Hostinger. x-displayName: Zone - name: "Domain Access Verifier: Verifications" description: |- Manage domain verifications. This category includes endpoints for retrieving active domain verifications, including verification status, records, and attempt dates. Domain verification allows you to prove ownership of domains through nameserver or TXT record verification methods. x-displayName: Verifications - name: "Domains: Availability" description: |- Check the availability of domain names across multiple TLDs. This category allows you to verify if a specific domain name is available for registration. x-displayName: Availability - name: "Domains: Forwarding" description: |- Domain forwarding or redirect is an easy way to direct your website visitors to another site or page, making it simple to maintain your brand and keep your visitors engaged. x-displayName: Forwarding - name: "Domains: Portfolio" description: |- Retrieve and manage your domain portfolio. This category lets you list all domains linked to your account, including their creation and expiration details. x-displayName: Portfolio - name: "Domains: WHOIS" description: |- Manage WHOIS contact profiles for your domains. This category includes endpoints for creating, updating, deleting, and retrieving WHOIS profiles. WHOIS profile stores registration data for domain names and is required for domain registration. x-displayName: WHOIS - name: "Hosting: Datacenters" description: |- Access information about available datacenters for hosting services. This category provides details about data center locations and capabilities to help you choose the optimal region for your hosting needs. x-displayName: Datacenters - name: "Hosting: Domains" description: |- Manage domain-related hosting services and configurations. This category includes endpoints for domain management, verification, and domain-specific hosting features. x-displayName: Domains - name: "Hosting: Files" description: "Hosting: Files" x-displayName: Files - name: "Hosting: NodeJS" description: "Hosting: NodeJS" x-displayName: NodeJS - name: "Hosting: Orders" description: |- Manage hosting service orders and subscriptions. This category provides access to order information, status tracking, and order management capabilities for hosting services. x-displayName: Orders - name: "Hosting: Websites" description: |- Manage hosted websites and web applications. This category includes endpoints for website deployment, configuration, monitoring, and management of hosting resources. x-displayName: Websites - name: "Hosting: Wordpress" description: "Hosting: Wordpress" x-displayName: Wordpress - name: "Reach: Contacts" description: |- Manage your email contacts and contact groups. This category includes endpoints for creating, deleting, and listing contacts, as well as managing contact groups. x-displayName: Contacts - name: "Reach: Segments" description: |- Filter and segment your email contacts using various criteria. This category includes endpoints for filtering contacts by attributes, tags, and email addresses, as well as listing all available segments and retrieving contacts that match specific attribute conditions. x-displayName: Segments - name: "Reach: Profiles" description: "Reach: Profiles" x-displayName: Profiles - name: "VPS: Data centers" description: |- Access information on available data centers, including location details, so you can choose the optimal region for deploying your virtual machines. x-displayName: Data centers - name: "VPS: Docker Manager" description: |- Manage Docker Compose projects directly on your VPS instances. This feature is only available for VPS instances using Docker OS templates and is currently experimental - breaking changes may occur in future updates. It enables you to programmatically deploy projects from docker-compose.yml files by providing either a URL (including GitHub repositories) or the compose file contents directly. Control project lifecycle (start/stop/restart/update/delete) and retrieve runtime information including container lists, project details, and aggregated logs. All operations are scoped to a specific virtual machine for multi-tenant management. x-displayName: Docker Manager - name: "VPS: Firewall" description: |- Enhance network security with endpoints for creating, activating, deactivating, syncing, updating, and deleting firewalls and firewall rules for your virtual machines. This firewall applies rules at the network level, so it will take precedence over the virtual machine's internal firewall. **Access to firewall requires having at least one virtual machine.** x-displayName: Firewall - name: "VPS: Post-install scripts" description: |- This category allows you to create, update, delete, and retrieve scripts that can be used for automated tasks after the operating system installation. Use case includes setting up software, configuring settings, or running custom commands. x-displayName: Post-install scripts - name: "VPS: Public Keys" description: |- Manage SSH keys for secure access. This category covers adding new public keys, attaching them to virtual machines, retrieving key lists, and deleting keys. x-displayName: Public Keys - name: "VPS: OS Templates" description: |- Retrieve details of operating system templates or list all available templates to choose the right configuration when deploying or recreating virtual machines. x-displayName: OS Templates - name: "VPS: Actions" description: |- Track and review operations performed on your virtual machines. These endpoints provide details about specific actions—such as start, stop, or restart—including timestamps and statuses. x-displayName: Actions - name: "VPS: Virtual machine" description: |- Core virtual machine management functionality. Endpoints in this category let you retrieve machine details, configure settings (hostname, nameservers, passwords), and perform operations like start, stop, restart, or recreate. x-displayName: Virtual machine - name: "VPS: Backups" description: |- Safeguard your data by managing backups. You can list available backups or restore a virtual machine from a backup. x-displayName: Backups - name: "VPS: Malware scanner" description: |- Monitor your virtual machines' security using the Monarx malware scanner. Retrieve scan metrics or install/uninstall the scanner to help protect against malware threats. x-displayName: Malware scanner - name: "VPS: PTR records" description: |- Manage reverse DNS settings by creating or deleting PTR records for your virtual machines, ensuring that IP addresses correctly resolve to hostnames. x-displayName: PTR records - name: "VPS: Recovery" description: |- Initiate or stop recovery mode to perform system rescue operations. This category enables you to boot a virtual machine into a state suitable for repairing file systems or recovering data. x-displayName: Recovery - name: "VPS: Snapshots" description: |- Create, restore, or delete snapshots that capture the state of your virtual machines at a given point, allowing you to quickly recover or test changes without affecting current operations. x-displayName: Snapshots x-tagGroups: - name: Billing tags: - "Billing: Catalog" - "Billing: Payment methods" - "Billing: Subscriptions" - name: Domains tags: - "Domains: Availability" - "Domains: Forwarding" - "Domains: Portfolio" - "Domains: WHOIS" - name: DNS tags: - "DNS: Snapshot" - "DNS: Zone" - name: Domain Access Verifier tags: - "Domain Access Verifier: Verifications" - name: Hosting tags: - "Hosting: Datacenters" - "Hosting: Domains" - "Hosting: Files" - "Hosting: NodeJS" - "Hosting: Orders" - "Hosting: Websites" - "Hosting: Wordpress" - name: Reach tags: - "Reach: Contacts" - "Reach: Segments" - "Reach: Profiles" - name: VPS tags: - "VPS: Actions" - "VPS: Backups" - "VPS: Data centers" - "VPS: Docker Manager" - "VPS: PTR records" - "VPS: Firewall" - "VPS: Malware scanner" - "VPS: OS Templates" - "VPS: Post-install scripts" - "VPS: Public Keys" - "VPS: Recovery" - "VPS: Snapshots" - "VPS: Virtual machine" - name: Miscellaneous tags: - Models