RUCKUS One API

JSON REST API for the RUCKUS One cloud-managed networking platform. Hosted on three regional bases (api.ruckus.cloud, api.eu.ruckus.cloud, api.asia.ruckus.cloud). Authentication is OAuth2 client credentials: a tenant generates an API key in the RUCKUS One UI and exchanges client_id/client_secret for a JSON Web Token bearer credential. Many write operations are asynchronous and return a requestId; the caller polls the activity service until SUCCESS. Supports venues, Wi-Fi networks (SSIDs), access points, ICX switches, connected clients, DPSK pools, resident portals, and MSP delegation.

OpenAPI Specification

ruckus-one-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: RUCKUS One API
  description: >-
    The RUCKUS One API is a JSON REST surface for managing CommScope's
    cloud-managed networking estate, including Wi-Fi networks, ICX
    switches, access points, venues, and managed-service-provider
    delegation. Authentication uses an OAuth2-style client credentials
    exchange: a tenant generates an API key in the RUCKUS One UI and
    exchanges the resulting client_id and client_secret for a JSON Web
    Token, which is then attached as a bearer token on subsequent
    requests. Many write operations are asynchronous and return a
    requestId; clients poll the activity service until SUCCESS. Read
    operations are always synchronous.
  version: '1.0'
  contact:
    name: RUCKUS Networks Developer Central
    url: https://www.ruckusnetworks.com/developer-central/
externalDocs:
  description: RUCKUS One API documentation
  url: https://docs.ruckus.cloud/api
servers:
  - url: https://api.ruckus.cloud
    description: North America
  - url: https://api.eu.ruckus.cloud
    description: Europe
  - url: https://api.asia.ruckus.cloud
    description: Asia
tags:
  - name: Authentication
    description: OAuth2 client-credentials token exchange.
  - name: Activities
    description: Track asynchronous request status.
  - name: Venues
    description: Physical sites that group networks and devices.
  - name: Networks
    description: Wi-Fi SSID and network configuration.
  - name: AccessPoints
    description: Wi-Fi access points (APs) registered to a tenant.
  - name: Switches
    description: ICX switches managed via RUCKUS One.
  - name: Clients
    description: Connected client devices.
  - name: MSP
    description: Managed-service-provider delegation and end-customer accounts.
security:
  - BearerAuth: []
paths:
  /oauth2/token:
    post:
      operationId: getAccessToken
      summary: Exchange client credentials for an access token
      description: >-
        Exchange a tenant's API client_id and client_secret for a JSON
        Web Token bearer credential.
      tags:
        - Authentication
      security: []
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
                - grant_type
                - client_id
                - client_secret
              properties:
                grant_type:
                  type: string
                  const: client_credentials
                client_id:
                  type: string
                client_secret:
                  type: string
      responses:
        '200':
          description: Bearer token issued.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
  /api/tenant/{tenantId}/activity/{requestId}:
    get:
      operationId: getActivity
      summary: Get the status of an asynchronous request
      description: >-
        Poll the status of an asynchronous request returned by a write
        operation.
      tags:
        - Activities
      parameters:
        - $ref: '#/components/parameters/tenantId'
        - name: requestId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Activity status.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Activity'
  /api/tenant/{tenantId}/venues:
    get:
      operationId: listVenues
      summary: List venues
      tags:
        - Venues
      parameters:
        - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: List of venues.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Venue'
    post:
      operationId: createVenue
      summary: Create a venue
      tags:
        - Venues
      parameters:
        - $ref: '#/components/parameters/tenantId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Venue'
      responses:
        '202':
          description: Asynchronous request accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
  /api/tenant/{tenantId}/networks:
    get:
      operationId: listNetworks
      summary: List Wi-Fi networks
      tags:
        - Networks
      parameters:
        - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: List of networks.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Network'
    post:
      operationId: createNetwork
      summary: Create a Wi-Fi network
      tags:
        - Networks
      parameters:
        - $ref: '#/components/parameters/tenantId'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Network'
      responses:
        '202':
          description: Asynchronous request accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AsyncResponse'
  /api/tenant/{tenantId}/aps:
    get:
      operationId: listAccessPoints
      summary: List access points
      tags:
        - AccessPoints
      parameters:
        - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: List of access points.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AccessPoint'
  /api/tenant/{tenantId}/switches:
    get:
      operationId: listSwitches
      summary: List ICX switches
      tags:
        - Switches
      parameters:
        - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: List of switches.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Switch'
  /api/tenant/{tenantId}/clients:
    get:
      operationId: listClients
      summary: List connected clients
      tags:
        - Clients
      parameters:
        - $ref: '#/components/parameters/tenantId'
      responses:
        '200':
          description: List of connected clients.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Client'
  /api/msp/{mspId}/customers:
    get:
      operationId: listMSPCustomers
      summary: List MSP customers
      tags:
        - MSP
      parameters:
        - name: mspId
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: List of delegated end-customer accounts.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/MSPCustomer'
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
  parameters:
    tenantId:
      name: tenantId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    AccessToken:
      type: object
      properties:
        access_token:
          type: string
        token_type:
          type: string
          example: Bearer
        expires_in:
          type: integer
    AsyncResponse:
      type: object
      properties:
        requestId:
          type: string
          description: Identifier used to poll the activity service for completion.
    Activity:
      type: object
      properties:
        requestId:
          type: string
        status:
          type: string
          enum: [PENDING, IN_PROGRESS, SUCCESS, FAILURE]
        startedAt:
          type: string
          format: date-time
        endedAt:
          type: string
          format: date-time
    Venue:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        address:
          type: object
          properties:
            line1: { type: string }
            city: { type: string }
            country: { type: string }
            postalCode: { type: string }
    Network:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        ssid:
          type: string
        security:
          type: string
          enum: [open, wpa2, wpa3, wpa2wpa3, dpsk]
        venueId:
          type: string
          format: uuid
    AccessPoint:
      type: object
      properties:
        serialNumber:
          type: string
        model:
          type: string
        venueId:
          type: string
          format: uuid
        status:
          type: string
          enum: [online, offline, provisioning]
    Switch:
      type: object
      properties:
        serialNumber:
          type: string
        model:
          type: string
        venueId:
          type: string
          format: uuid
        status:
          type: string
          enum: [online, offline, provisioning]
    Client:
      type: object
      properties:
        mac:
          type: string
        ip:
          type: string
        username:
          type: string
        ssid:
          type: string
        apSerialNumber:
          type: string
        connectedAt:
          type: string
          format: date-time
    MSPCustomer:
      type: object
      properties:
        id:
          type: string
          format: uuid
        name:
          type: string
        tenantId:
          type: string
          format: uuid