Wazo Initial Setup API (wazo-setupd)

Initial system setup API. Performs the one-time bootstrap of a freshly installed Wazo stack — engine configuration, tenant creation and the first administrative credentials.

OpenAPI Specification

wazo-setupd-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: wazo-setupd
  description: Initialize Wazo Engine from a REST API
  version: 1.0.0
  contact:
    name: Wazo Dev Team
    url: https://wazo-platform.org/
    email: dev@wazo.community
  x-logo:
    url: https://wazo-platform.org/images/logo-black.svg
    backgroundColor: '#FAFAFA'
    altText: Wazo Logo
schemes:
- https
basePath: /1.0
produces:
- application/json
x-xivo-port: 9302
x-xivo-name: setupd
securityDefinitions:
  wazo_auth_token:
    type: apiKey
    name: X-Auth-Token
    in: header
security:
- wazo_auth_token: []
responses:
  AnotherServiceUnavailable:
    description: Another service is unavailable (e.g. wazo-auth, wazo-confd, Asterisk, ...)
    schema:
      $ref: '#/definitions/Error'
  NotFoundError:
    description: The resource requested was not found on the server
    schema:
      $ref: '#/definitions/Error'
  InvalidRequest:
    description: Invalid request
    schema:
      $ref: '#/definitions/Error'
  SetupError:
    description: A error occurred during the setup
    schema:
      $ref: '#/definitions/Error'
definitions:
  Error:
    title: Error
    description: Error message for the client
    properties:
      message:
        description: Human readable explanation of the error
        type: string
      error_id:
        description: Identifier of the type of error. It is more precise than the HTTP status code.
        type: string
      details:
        description: Additional information about the error. The keys are specific to each error.
        type: object
      timestamp:
        description: Time when the error occured
        type: number
        format: timestamp
  SetupRequest:
    type: object
    properties:
      engine_language:
        description: The interface language for the Wazo Engine (either `en_US` or `fr_FR`)
        type: string
      engine_password:
        description: Password of the first administrator ``root`` on the engine
        type: string
      engine_internal_address:
        description: IP address of the engine
        type: string
      engine_license:
        description: Whether the GNU GPLv3 license is accepted
        type: boolean
      engine_instance_uuid:
        description: 'The UUID identifying this instance on Nestbox.


          The engine_instance_uuid should only be specified if the instance has already been registered on the specified Nestbox.
          Omitting this field for an instance that is already registered will create a duplicate entry on the Nestbox.

          '
        type: string
      engine_rtp_icesupport:
        description: 'Enable ICE support. This is required for WebRTC.


          A STUN server must be defined in the `engine_rtp_stunaddr` field when using `engine_rtp_icesupport=true`.

          '
        type: boolean
        default: false
      engine_rtp_stunaddr:
        description: The address of the STUN server to use for WebRTC
        type: string
        default: 'null'
      nestbox_host:
        description: Host of the Nestbox where the engine will register. Specifying this key will make nestbox and `engine_internal_address`
          keys mandatory. Wazo will be connected to the specified Nestbox instance.
        type: string
      nestbox_port:
        description: Port of the Nestbox where the engine will register
        type: integer
        default: 443
      nestbox_verify_certificate:
        description: Should the certificate used for HTTPS be verified? The setup will abort if the certificate fails the
          verification.
        type: boolean
        default: true
      nestbox_service_id:
        description: Nestbox username used to register the engine
        type: string
      nestbox_service_key:
        description: Nestbox password used to register the engine
        type: string
      nestbox_instance_name:
        description: Name of the engine in Nestbox
        type: string
      nestbox_instance_preferred_connection:
        description: Preferred connection method to contact the engine
        type: string
        enum:
        - private
        - public
        default: public
      nestbox_engine_host:
        description: Host used by Nestbox to contact the engine
        type: string
      nestbox_engine_port:
        description: Port used by Nestbox to contact the engine
        type: integer
        default: 443
    required:
    - engine_language
    - engine_password
    - engine_license
  StatusSummary:
    type: object
    properties:
      rest_api:
        $ref: '#/definitions/ComponentWithStatus'
      master_tenant:
        $ref: '#/definitions/ComponentWithStatus'
  ComponentWithStatus:
    type: object
    properties:
      status:
        $ref: '#/definitions/StatusValue'
  StatusValue:
    type: string
    enum:
    - fail
    - ok
parameters:
  TokenID:
    name: token
    in: query
    description: The token's ID
    type: string
  SetupBody:
    name: body
    in: body
    required: true
    description: Setup options
    schema:
      $ref: '#/definitions/SetupRequest'
paths:
  /config:
    get:
      produces:
      - application/json
      summary: Show the current configuration
      description: '**Required ACL:** `setupd.config.read`'
      operationId: getConfig
      tags:
      - config
      responses:
        '200':
          description: The configuration of the service
  /setup:
    post:
      summary: Setup the Wazo Engine
      operationId: create
      parameters:
      - $ref: '#/parameters/SetupBody'
      tags:
      - setup
      responses:
        '201':
          description: The setup has been completed
        '400':
          $ref: '#/responses/InvalidRequest'
        '500':
          $ref: '#/responses/SetupError'
        '503':
          $ref: '#/responses/AnotherServiceUnavailable'
  /status:
    get:
      summary: Print infos about internal status of wazo-setupd
      description: '**Required ACL:** `setupd.status.read`'
      tags:
      - status
      responses:
        '200':
          description: The internal infos of wazo-setupd
          schema:
            $ref: '#/definitions/StatusSummary'
x-apievangelist-source:
  harvested_from: https://github.com/wazo-platform/wazo-setupd
  assembly: base plugin api.yml deep-merged with all plugin api.yml fragments, reproducing what the running service serves
    at /api/setupd/1.0/api/api.yml (see wazo_setupd/plugins/api/http.py — xivo.chain_map.ChainMap)
  spec_version: Swagger 2.0 (as published by Wazo)
  harvested: '2026-08-17'