openapi: 3.1.0 info: title: Doctave Deployments Sites API description: The Doctave API provides programmatic access to manage documentation sites, deployments, pages, and search on the Doctave docs-as-code platform. It allows teams to automate documentation workflows, trigger deployments, manage site configurations, and integrate documentation search into their own applications and developer portals. version: 1.0.0 contact: name: Doctave url: https://www.doctave.com/ license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0 servers: - url: https://api.doctave.com/v1 description: Doctave Production API security: - bearerAuth: [] tags: - name: Sites description: Manage documentation sites and their configurations. paths: /sites: get: operationId: listSites summary: Doctave List Sites description: Returns a list of all documentation sites associated with the authenticated account. tags: - Sites responses: '200': description: A list of documentation sites. content: application/json: schema: type: array items: $ref: '#/components/schemas/Site' '401': description: Authentication credentials are missing or invalid. post: operationId: createSite summary: Doctave Create Site description: Creates a new documentation site with the provided configuration. tags: - Sites requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteInput' responses: '201': description: The newly created documentation site. content: application/json: schema: $ref: '#/components/schemas/Site' '400': description: The request body is invalid. '401': description: Authentication credentials are missing or invalid. /sites/{siteId}: get: operationId: getSite summary: Doctave Get Site description: Returns the details of a specific documentation site. tags: - Sites parameters: - $ref: '#/components/parameters/SiteId' responses: '200': description: The requested documentation site. content: application/json: schema: $ref: '#/components/schemas/Site' '401': description: Authentication credentials are missing or invalid. '404': description: The specified site was not found. put: operationId: updateSite summary: Doctave Update Site description: Updates the configuration of an existing documentation site. tags: - Sites parameters: - $ref: '#/components/parameters/SiteId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SiteInput' responses: '200': description: The updated documentation site. content: application/json: schema: $ref: '#/components/schemas/Site' '400': description: The request body is invalid. '401': description: Authentication credentials are missing or invalid. '404': description: The specified site was not found. delete: operationId: deleteSite summary: Doctave Delete Site description: Deletes a documentation site and all associated content. tags: - Sites parameters: - $ref: '#/components/parameters/SiteId' responses: '204': description: The site was successfully deleted. '401': description: Authentication credentials are missing or invalid. '404': description: The specified site was not found. components: schemas: SiteInput: type: object properties: name: type: string description: Display name of the documentation site. slug: type: string description: URL-friendly slug for the site. description: type: string description: A brief description of the documentation site. customDomain: type: string description: Custom domain configured for the site. repository: type: string description: Source repository URL for the documentation content. branch: type: string description: Git branch used for building the site. visibility: type: string enum: - public - private description: Whether the site is publicly accessible or private. required: - name Site: type: object properties: id: type: string description: Unique identifier for the documentation site. name: type: string description: Display name of the documentation site. slug: type: string description: URL-friendly slug for the site. description: type: string description: A brief description of the documentation site. customDomain: type: string description: Custom domain configured for the site. repository: type: string description: Source repository URL for the documentation content. branch: type: string description: Git branch used for building the site. visibility: type: string enum: - public - private description: Whether the site is publicly accessible or private. createdAt: type: string format: date-time description: Timestamp when the site was created. updatedAt: type: string format: date-time description: Timestamp when the site was last updated. required: - id - name - slug parameters: SiteId: name: siteId in: path required: true description: The unique identifier of the documentation site. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: Authentication token obtained from the Doctave dashboard or via API key management.