10Web Builder API

Operations for website builder and page management

OpenAPI Specification

10web-builder-api-openapi.yml Raw ↑
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