openapi: 3.0.0 info: title: 10Web API V1 Account Builder API description: 'The 10Web API provides a comprehensive set of endpoints for managing websites, DNS zones, domains, SSL certificates, backups, and more. This RESTful API allows you to integrate 10Web''s powerful hosting and website management capabilities into your own applications. ' servers: - url: https://api.10web.io tags: - name: Builder description: Operations for website builder and page management paths: /v1/builder/websites/{website_id}/pages: get: summary: Get pages for a website description: Retrieve a list of all pages for a specific website in the builder interface tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' responses: '200': description: List of pages retrieved successfully content: application/json: schema: $ref: '#/components/schemas/GetPagesResponse' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v1/builder/websites/{website_id}/pages/blank/add: post: summary: Add a blank page to a website description: Create a new blank page for a website in the builder interface tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateBlankPageRequest' responses: '200': description: Blank page created successfully content: application/json: schema: $ref: '#/components/schemas/CreateBlankPageResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v1/builder/websites/{website_id}/pages/delete: post: summary: Delete pages from a website description: Delete one or more pages from a website in the builder interface tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeletePagesRequest' responses: '200': description: Pages deleted successfully content: application/json: schema: $ref: '#/components/schemas/DeletePagesResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v1/builder/websites/{website_id}/pages/publish: post: summary: Update page status for website pages description: Update the publication status of one or more pages from a website in the builder interface tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PublishPagesRequest' responses: '200': description: Page status updated successfully content: application/json: schema: $ref: '#/components/schemas/PublishPagesResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v1/builder/websites/{website_id}/pages/front/set: post: summary: Set a page as the front page description: Set a specific page as the front page (homepage) for a website in the builder interface tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetFrontPageRequest' responses: '200': description: Front page set successfully content: application/json: schema: $ref: '#/components/schemas/SetFrontPageResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' /v1/builder/websites/{website_id}/build_secondary_page: post: summary: Build a secondary page from description description: 'Creates a new secondary page for a website using AI-powered content generation. This endpoint orchestrates multiple AI service calls to generate page content based on business information and page description. ' tags: - Builder parameters: - $ref: '#/components/parameters/WebsiteId' - $ref: '#/components/parameters/Authorization' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BuildSecondaryPageRequest' responses: '200': description: Page built successfully content: application/json: schema: $ref: '#/components/schemas/BuildSecondaryPageResponse' '400': $ref: '#/components/responses/BadRequest' '403': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/TooManyRequests' '500': $ref: '#/components/responses/InternalServerError' components: schemas: DeletePagesRequest: type: object required: - page_ids properties: page_ids: type: array description: Array of page IDs to delete items: type: integer example: - 82 BuildSecondaryPageResponse: type: object properties: status: type: integer description: HTTP status code example: 200 page_id: type: string description: ID of the created page example: '204' SetFrontPageRequest: type: object required: - page_id properties: page_id: type: integer description: ID of the page to set as the front page example: 80 PublishPagesResponse: type: object properties: msg: type: string description: Status message status: type: integer description: HTTP status code data: type: object properties: message: type: string description: Success message example: msg: Success status: 200 data: message: Page is published. DeletePagesResponse: type: object properties: msg: type: string description: Status message status: type: integer description: HTTP status code data: type: object properties: message: type: string description: Success message example: msg: Success status: 200 data: message: Page is deleted. GetPagesResponse: type: object properties: msg: type: string description: Status message status: type: integer description: HTTP status code data: type: array description: List of pages for the website items: $ref: '#/components/schemas/BuilderPage' example: msg: Success status: 200 data: - ID: 82 title: example page url: https://test-proxy-1.10web.club/example-page/ post_modified: '2025-06-24 12:10:52' post_date: '2025-06-24 12:10:52' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish - ID: 81 title: test page 2 url: https://test-proxy-1.10web.club/ post_modified: '2025-06-20 07:19:46' post_date: '2025-06-20 07:19:46' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish page_on_front: true - ID: 80 title: test page url: https://test-proxy-1.10web.club/test-page/ post_modified: '2025-06-20 07:18:44' post_date: '2025-06-20 07:18:44' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish SetFrontPageResponse: type: object properties: msg: type: string description: Status message status: type: integer description: HTTP status code data: type: object properties: message: type: string description: Success message example: msg: Success status: 200 data: message: Page is set as frontpage. BuilderPage: type: object properties: ID: type: integer description: Page ID title: type: string description: Page title url: type: string description: Page URL post_modified: type: string format: date-time description: Date when the page was last modified post_date: type: string format: date-time description: Date when the page was created twbb_created_with: type: string description: The tool used to create the page post_type: type: string description: Type of post (e.g., page) template_type: type: string description: Template type for the page is_edited: type: boolean description: Whether the page has been edited post_status: type: string description: Publication status of the page enum: - publish - draft - pending - private page_on_front: type: boolean description: Whether this page is set as the front page nullable: true CreateBlankPageResponse: type: object properties: msg: type: string description: Status message status: type: integer description: HTTP status code data: type: array description: List of all pages including the newly created page items: $ref: '#/components/schemas/BuilderPage' example: msg: Success status: 200 data: - ID: 82 title: example page url: https://test-proxy-1.10web.club/example-page/ post_modified: '2025-06-24 12:10:52' post_date: '2025-06-24 12:10:52' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish - ID: 81 title: test page 2 url: https://test-proxy-1.10web.club/ post_modified: '2025-06-20 07:19:46' post_date: '2025-06-20 07:19:46' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish page_on_front: true - ID: 80 title: test page url: https://test-proxy-1.10web.club/test-page/ post_modified: '2025-06-20 07:18:44' post_date: '2025-06-20 07:18:44' twbb_created_with: twbb_blank post_type: page template_type: '' is_edited: false post_status: publish BuildSecondaryPageRequest: type: object required: - page_title - page_description properties: page_title: type: string description: Title for the new page example: About Us page_description: type: string description: Description of the page content to be generated example: A page describing our company history and values post_status: type: string description: Publication status of the page default: draft enum: - draft - publish example: draft CreateBlankPageRequest: type: object required: - page_title - post_status properties: page_title: type: string description: Title for the new page example: My New Page post_status: type: string description: Publication status for the new page enum: - publish - draft - pending - private example: publish PublishPagesRequest: type: object required: - action - page_ids properties: action: type: string description: Action to perform on the pages enum: - publish - draft - pending - private example: publish page_ids: type: array description: Array of page IDs to publish items: type: integer example: - 54 responses: Unauthorized: description: Unauthorized access content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Unauthorized access TooManyRequests: description: Too many requests content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Too many requests. Please try again later. BadRequest: description: Bad request content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Invalid request parameters InternalServerError: description: Something went wrong content: application/json: schema: type: object properties: status: type: string enum: - error message: type: string example: Something went wrong parameters: Authorization: name: x-api-key in: header required: true schema: type: string description: API key for authentication example: API_KEY WebsiteId: name: website_id in: path required: true schema: type: integer