10Web Certificate API

Operations for SSL certificate management

OpenAPI Specification

10web-certificate-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: 10Web API V1 Account Certificate 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: Certificate
  description: Operations for SSL certificate management
paths:
  /v1/hosting/websites/{website_id}/certificate:
    get:
      summary: Get certificates for a website
      tags:
      - Certificate
      parameters:
      - $ref: '#/components/parameters/WebsiteId'
      - $ref: '#/components/parameters/Authorization'
      responses:
        '200':
          description: List of certificates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CertificateListResponse'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v1/hosting/websites/{website_id}/certificate/custom:
    post:
      summary: Add custom certificate for a website
      tags:
      - Certificate
      parameters:
      - $ref: '#/components/parameters/WebsiteId'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateCustomCertificateRequest'
      responses:
        '200':
          description: Custom certificate generated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - ok
                    - error
                example:
                  status: ok
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v1/hosting/websites/{website_id}/certificate/free:
    post:
      summary: Generate free certificate for a website
      tags:
      - Certificate
      parameters:
      - $ref: '#/components/parameters/WebsiteId'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GenerateFreeCertificateRequest'
      responses:
        '200':
          description: Free certificate generated successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    enum:
                    - ok
                    - error
                  troubleshoot_result:
                    type: object
                    additionalProperties:
                      type: object
                      properties:
                        domain_pointed:
                          type: integer
                          enum:
                          - 0
                          - 1
                          description: Whether the domain is pointed correctly (1) or not (0)
                        has_ipv6:
                          type: integer
                          enum:
                          - 0
                          - 1
                          description: Whether the domain has IPv6 support (1) or not (0)
                        server:
                          type: string
                          description: Server information
                example:
                  status: ok
                  troubleshoot_result:
                    '21019':
                      domain_pointed: 1
                      has_ipv6: 0
                      server: ''
        '400':
          $ref: '#/components/responses/BadRequest'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /v1/hosting/websites/{website_id}/certificate/remove:
    delete:
      summary: Remove certificates from a website
      tags:
      - Certificate
      parameters:
      - $ref: '#/components/parameters/WebsiteId'
      - $ref: '#/components/parameters/Authorization'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RemoveCertificatesRequest'
      responses:
        '200':
          description: Certificates removed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '403':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/TooManyRequests'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  schemas:
    GenerateCustomCertificateRequest:
      type: object
      required:
      - key_file_content
      - cert_file_content
      properties:
        key_file_content:
          type: string
          description: The content of the key file
        cert_file_content:
          type: string
          description: The content of the certificate file, recommended to append the ca file content after it
        ca_file_content:
          type: string
          description: The content of the ca file
        redirect_http:
          type: integer
          enum:
          - 0
          - 1
          description: Redirect HTTP to HTTPS
    Certificate:
      type: object
      properties:
        id:
          type: integer
          description: The ID of the certificate
        common_name:
          type: string
          description: The common name of the certificate
        domain_name:
          type: string
          description: The domain name for which the certificate is issued
        issuer:
          type: string
          description: The issuer of the certificate
        status:
          type: string
          description: The status of the certificate
        type:
          type: string
          enum:
          - custom
          - free
        valid_from:
          type: string
          format: date-time
        valid_to:
          type: string
          format: date-time
    GenerateFreeCertificateRequest:
      type: object
      required:
      - domain_name_ids
      properties:
        domain_name_ids:
          type: array
          description: The IDs of the domain names for which to generate the certificate
          items:
            type: integer
        redirect_http:
          type: integer
          enum:
          - 0
          - 1
    StatusResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - ok
          - error
      example:
        status: ok
    CertificateListResponse:
      type: object
      properties:
        status:
          type: string
          enum:
          - ok
          - error
        data:
          type: array
          items:
            $ref: '#/components/schemas/Certificate'
    RemoveCertificatesRequest:
      type: object
      required:
      - domain_name_ids
      properties:
        domain_name_ids:
          type: array
          description: The IDs of the domain names for which to remove the certificates
          items:
            type: integer
  responses:
    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.
    Unauthorized:
      description: Unauthorized access
      content:
        application/json:
          schema:
            type: object
            properties:
              status:
                type: string
                enum:
                - error
              message:
                type: string
                example: Unauthorized access
    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