8x8

8x8 Sites API

The Sites API from 8x8 — 3 operation(s) for sites.

Operations 6

POST /sites Create a new site #
GET /sites List sites #
GET /sites/{siteId} Get site by ID #
PUT /sites/{siteId} Update site #
DELETE /sites/{siteId} Delete site #
GET /v2/pbxes/{pbxId}/sites Returns the list of sites of a pbx #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/8x8-sites-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

8x8-sites-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: 8x8 Sites API
  version: '1.0'
  description: 'Operations tagged Sites across 2 of this provider''s published API definitions: 8x8-administration-site-api-v1.yaml, 8x8-analytics-work-analytics-customer-data.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.8x8.com/admin-provisioning
  description: Production server
- url: https://api.8x8.com/analytics/work/
tags:
- name: Sites
paths:
  /sites:
    servers:
    - url: https://api.8x8.com/admin-provisioning
      description: Production server
    post:
      operationId: createSite
      summary: Create a new site
      description: Creates a new site. Returns an Operation object that can be polled to track the creation progress.
      tags:
      - Sites
      parameters:
      - name: X-Request-Id
        in: header
        description: Optional request identifier for tracking
        required: false
        schema:
          type: string
          format: uuid
      requestBody:
        description: Site object to be created
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
            example:
              name: Headquarters
              pbxName: pbx01
              locale: en-US
              timezone: America/Los_Angeles
              siteCode: '1345'
              extensionLength: 4
              address:
                id: b1c4944a-17a0-4b00-8d48-36001df07e22
      responses:
        '202':
          description: Site creation operation initiated successfully
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
              example:
                operationId: op_123456789
                status: PENDING
                customerId: 0012J00042NkZQIQA3
                resourceType: SITE
                resourceId: 0023OEZiR7qQ_EGb6xYjgg
                operationType: CREATE
                createdTime: '2025-01-01T01:02:03Z'
        '400':
          description: Bad Request - Invalid site data
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 400
                title: Bad Request
                errors:
                - code: BAD_REQUEST
                  message: Invalid site data
        '403':
          description: Forbidden - Access denied to this resource
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 403
                title: Forbidden
                errors:
                - code: FORBIDDEN
                  message: Access denied to this resource
        '408':
          description: Request Timeout - Downstream service timeout
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 408
                title: Request Timeout
                errors:
                - code: REQUEST_TIMEOUT
                  message: Request to downstream service timed out
        '503':
          description: Service Unavailable - Service unavailable due to connectivity or network issues
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 503
                title: Service unavailable
                errors:
                - code: SERVICE_UNAVAILABLE
                  message: Service unavailable
        '429':
          description: Too Many Requests - Rate limit exceeded
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 429
                title: Too Many Requests
                errors:
                - code: TOO_MANY_REQUESTS
                  message: Rate limit exceeded, please try again later
        '500':
          description: Internal Server Error - Unexpected error occurred
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 500
                title: Internal Server Error
                errors:
                - code: UNKNOWN
                  message: An unexpected error occurred
      security:
      - ApiKeyAuth: []
    get:
      operationId: listSites
      summary: List sites
      description: 'List sites with optional filtering, sorting, and pagination.

        Filter by site name using RSQL expressions with wildcards.

        '
      tags:
      - Sites
      parameters:
      - name: X-Request-Id
        in: header
        description: Optional request identifier for tracking
        required: false
        schema:
          type: string
          format: uuid
      - name: pageSize
        in: query
        description: 'Number of items per page (default: 100)'
        required: false
        schema:
          type: integer
          example: 100
      - name: pageNumber
        in: query
        description: 'Page number (0-indexed, default: 0)'
        required: false
        schema:
          type: integer
          example: 0
      - name: filter
        in: query
        description: 'Filter expression using RSQL syntax. Only filtering by ''name'' field is supported.

          Supports exact match and wildcard patterns.


          Examples:

          - Exact match: name==Headquarters

          - Wildcard at end: name==Office*

          - Wildcard at start: name==*Office

          - Wildcard at both ends: name==*Branch*


          Only the ''=='' operator is supported. Logical operations (AND/OR) are not supported.

          '
        required: false
        schema:
          type: string
          example: name==Office*
      - name: sort
        in: query
        description: Sort expression. Use '+' prefix or no prefix for ascending order, '-' prefix for descending order (e.g., 'name', '+name', or '-name')
        required: false
        schema:
          type: string
          example: name
      responses:
        '200':
          description: Successful response with paginated sites
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SitePage'
              example:
                data:
                - id: 0023OEZiR7qQ_EGb6xYjgg
                  name: Headquarters
                  pbxName: pbx01
                  locale: en-US
                  timezone: America/Los_Angeles
                  siteCode: '1345'
                  extensionLength: 4
                  address:
                    id: b1c4944a-17a0-4b00-8d48-36001df07e22
                pagination:
                  pageSize: 100
                  pageNumber: 0
                  hasMore: false
        '400':
          description: Bad Request - Invalid filter or query parameters
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                invalidFilterFormat:
                  summary: Invalid filter format
                  value:
                    status: 400
                    title: Invalid filter format
                    errors:
                    - code: VALIDATION_ERROR
                      message: Invalid filter syntax
                invalidOperator:
                  summary: Invalid operator
                  value:
                    status: 400
                    title: Invalid filter format
                    errors:
                    - code: VALIDATION_ERROR
                      message: 'Invalid operator: !=. Only ''=='' operator is supported'
                unsupportedField:
                  summary: Unsupported field
                  value:
                    status: 400
                    title: Invalid filter format
                    errors:
                    - code: VALIDATION_ERROR
                      message: 'Invalid filter field: id. Only filtering by name is supported'
                logicalOperations:
                  summary: Logical operations not supported
                  value:
                    status: 400
                    title: Invalid filter format
                    errors:
                    - code: VALIDATION_ERROR
                      message: Logical operations (AND/OR) are not supported
                wildcardPosition:
                  summary: Invalid wildcard position
                  value:
                    status: 400
                    title: Invalid filter format
                    errors:
                    - code: VALIDATION_ERROR
                      message: Wildcard (*) can only appear at the beginning or end
        '403':
          description: Forbidden - Access denied to this resource
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 403
                title: Forbidden
                errors:
                - code: FORBIDDEN
                  message: Access denied to this resource
        '408':
          description: Request Timeout - Downstream service timeout
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 408
                title: Request Timeout
                errors:
                - code: REQUEST_TIMEOUT
                  message: Request to downstream service timed out
        '503':
          description: Service Unavailable - Service unavailable due to connectivity or network issues
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 503
                title: Service unavailable
                errors:
                - code: SERVICE_UNAVAILABLE
                  message: Service unavailable
        '429':
          description: Too Many Requests - Rate limit exceeded
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 429
                title: Too Many Requests
                errors:
                - code: TOO_MANY_REQUESTS
                  message: Rate limit exceeded, please try again later
        '500':
          description: Internal Server Error - Unexpected error occurred
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 500
                title: Error searching sites in Voice-Config
                errors:
                - code: UNKNOWN
                  message: Error searching sites in Voice-Config
      security:
      - ApiKeyAuth: []
  /sites/{siteId}:
    servers:
    - url: https://api.8x8.com/admin-provisioning
      description: Production server
    get:
      operationId: getSite
      summary: Get site by ID
      description: Retrieve a specific site by its ID
      tags:
      - Sites
      parameters:
      - name: X-Request-Id
        in: header
        description: Optional request identifier for tracking
        required: false
        schema:
          type: string
          format: uuid
      - name: siteId
        in: path
        description: Site identifier
        required: true
        schema:
          type: string
          example: 0023OEZiR7qQ_EGb6xYjgg
      responses:
        '200':
          description: Site retrieved successfully
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              example:
                id: 0023OEZiR7qQ_EGb6xYjgg
                name: Headquarters
                pbxName: pbx01
                locale: en-US
                timezone: America/Los_Angeles
                siteCode: '1345'
                extensionLength: 4
                address:
                  id: b1c4944a-17a0-4b00-8d48-36001df07e22
                callerIdSettings:
                  mainNumber: '+12266280120'
                  setMainNumberAsCallerId: true
                  shareMainNumberAsCallerId: false
                  displayName: John Doe
        '400':
          description: Bad Request - Invalid request
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 400
                title: Bad Request
                errors:
                - code: BAD_REQUEST
                  message: Invalid site ID format
        '403':
          description: Forbidden - Access denied to this resource
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 403
                title: Forbidden
                errors:
                - code: FORBIDDEN
                  message: Access denied to this resource
        '404':
          description: Not Found - Site does not exist
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 404
                title: Not Found
                errors:
                - code: NOT_FOUND
                  message: Site not found
        '408':
          description: Request Timeout - Downstream service timeout
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 408
                title: Request Timeout
                errors:
                - code: REQUEST_TIMEOUT
                  message: Request to downstream service timed out
        '503':
          description: Service Unavailable - Service unavailable due to connectivity or network issues
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 503
                title: Service unavailable
                errors:
                - code: SERVICE_UNAVAILABLE
                  message: Service unavailable
        '429':
          description: Too Many Requests - Rate limit exceeded
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 429
                title: Too Many Requests
                errors:
                - code: TOO_MANY_REQUESTS
                  message: Rate limit exceeded, please try again later
        '500':
          description: Internal Server Error - Unexpected error occurred
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 500
                title: Error retrieving site from Voice-Config
                errors:
                - code: UNKNOWN
                  message: Error retrieving site from Voice-Config
      security:
      - ApiKeyAuth: []
    put:
      operationId: updateSite
      summary: Update site
      description: Updates an existing site. Returns an Operation object that can be polled to track the update progress.
      tags:
      - Sites
      parameters:
      - name: X-Request-Id
        in: header
        description: Optional request identifier for tracking
        required: false
        schema:
          type: string
          format: uuid
      - name: siteId
        in: path
        description: Site identifier
        required: true
        schema:
          type: string
          example: 0023OEZiR7qQ_EGb6xYjgg
      requestBody:
        description: Site object with updated fields
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Site'
            example:
              name: Headquarters Updated
              pbxName: pbx01
              locale: en-US
              timezone: America/Los_Angeles
              siteCode: '1345'
              extensionLength: 4
              address:
                id: b1c4944a-17a0-4b00-8d48-36001df07e22
      responses:
        '202':
          description: Site update operation initiated successfully
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
              example:
                operationId: op_123456789
                status: PENDING
                customerId: 0012J00042NkZQIQA3
                resourceType: SITE
                resourceId: 0023OEZiR7qQ_EGb6xYjgg
                operationType: UPDATE
                createdTime: '2025-01-01T01:02:03Z'
        '400':
          description: Bad Request - Invalid site data
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 400
                title: Bad Request
                errors:
                - code: BAD_REQUEST
                  message: Invalid site data
        '403':
          description: Forbidden - Access denied to this resource
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 403
                title: Forbidden
                errors:
                - code: FORBIDDEN
                  message: Access denied to this resource
        '404':
          description: Not Found - Site does not exist
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 404
                title: Not Found
                errors:
                - code: NOT_FOUND
                  message: Site not found
        '408':
          description: Request Timeout - Downstream service timeout
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 408
                title: Request Timeout
                errors:
                - code: REQUEST_TIMEOUT
                  message: Request to downstream service timed out
        '503':
          description: Service Unavailable - Service unavailable due to connectivity or network issues
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 503
                title: Service unavailable
                errors:
                - code: SERVICE_UNAVAILABLE
                  message: Service unavailable
        '429':
          description: Too Many Requests - Rate limit exceeded
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 429
                title: Too Many Requests
                errors:
                - code: TOO_MANY_REQUESTS
                  message: Rate limit exceeded, please try again later
        '500':
          description: Internal Server Error - Unexpected error occurred
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 500
                title: Internal Server Error
                errors:
                - code: UNKNOWN
                  message: An unexpected error occurred
      security:
      - ApiKeyAuth: []
    delete:
      operationId: deleteSite
      summary: Delete site
      description: Deletes an existing site. Returns an Operation object that can be polled to track the deletion progress.
      tags:
      - Sites
      parameters:
      - name: X-Request-Id
        in: header
        description: Optional request identifier for tracking
        required: false
        schema:
          type: string
          format: uuid
      - name: siteId
        in: path
        description: Site identifier
        required: true
        schema:
          type: string
          example: 0023OEZiR7qQ_EGb6xYjgg
      responses:
        '202':
          description: Site deletion operation initiated successfully
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Operation'
              example:
                operationId: op_123456789
                status: PENDING
                customerId: 0012J00042NkZQIQA3
                resourceType: SITE
                resourceId: 0023OEZiR7qQ_EGb6xYjgg
                operationType: DELETE
                createdTime: '2025-01-01T01:02:03Z'
        '400':
          description: Bad Request - Site cannot be removed
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 400
                title: Bad Request
                errors:
                - code: BAD_REQUEST
                  message: Branch with id 0023OEZiR7qQ_EGb6xYjgg can not be removed. It is used by at least one extension
        '403':
          description: Forbidden - Access denied to this resource
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 403
                title: Forbidden
                errors:
                - code: FORBIDDEN
                  message: Access denied to this resource
        '404':
          description: Not Found - Site does not exist
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 404
                title: Not Found
                errors:
                - code: NOT_FOUND
                  message: Site not found
        '408':
          description: Request Timeout - Downstream service timeout
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 408
                title: Request Timeout
                errors:
                - code: REQUEST_TIMEOUT
                  message: Request to downstream service timed out
        '503':
          description: Service Unavailable - Service unavailable due to connectivity or network issues
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 503
                title: Service unavailable
                errors:
                - code: SERVICE_UNAVAILABLE
                  message: Service unavailable
        '429':
          description: Too Many Requests - Rate limit exceeded
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 429
                title: Too Many Requests
                errors:
                - code: TOO_MANY_REQUESTS
                  message: Rate limit exceeded, please try again later
        '500':
          description: Internal Server Error - Unexpected error occurred
          headers:
            X-Response-Id:
              description: Unique response identifier generated by the service
              schema:
                type: string
                format: uuid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              example:
                status: 500
                title: Internal Server Error
                errors:
                - code: UNKNOWN
                  message: An unexpected error occurred
      security:
      - ApiKeyAuth: []
  /v2/pbxes/{pbxId}/sites:
    servers:
    - url: https://api.8x8.com/analytics/work/
    get:
      description: Returns a list of sites of a pbx.
      tags:
      - Sites
      summary: Returns the list of sites of a pbx
      operationId: get-pbx-sites
      parameters:
      - name: pbxId
        in: path
        description: The id of 

# --- truncated at 32 KB (46 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/8x8/refs/heads/main/openapi/8x8-sites-api-openapi.yml