Cradlepoint Routers API

Router (edge device) management

OpenAPI Specification

cradlepoint-routers-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Cradlepoint NetCloud Manager API v2 Accounts Routers API
  description: "RESTful API to the Cradlepoint NetCloud Manager (NCM) platform. Lets\nclient applications perform programmatically many of the same operations\navailable in the NCM user interface: enumerate accounts, manage routers\nand groups, configure them, listen to alerts, ingest device telemetry,\ntrack location history, and administer users and subscriptions.\n\nAuthentication uses two header pairs sent on every request:\n  * X-CP-API-ID / X-CP-API-KEY — Cradlepoint API keys (account-level,\n    used for API-usage tracking, available from the Getting Started page\n    of developer.cradlepoint.com).\n  * X-ECM-API-ID / X-ECM-API-KEY — NetCloud (ECM) API keys generated by\n    an NCM administrator from the Tools tab in NCM. These keys carry the\n    NCM role assignment (Administrator, Full Access User, Read Only User,\n    Diagnostic User) and authorize what the request can do.\n"
  version: '2.0'
  contact:
    name: Ericsson Enterprise Wireless / Cradlepoint Support
    url: https://customer.cradlepoint.com/
  termsOfService: https://cradlepoint.com/about-us/legal/
servers:
- url: https://www.cradlepointecm.com/api/v2
  description: NetCloud Manager Production
security:
- CradlepointApiKey: []
  NetCloudApiKey: []
tags:
- name: Routers
  description: Router (edge device) management
paths:
  /routers/:
    get:
      summary: List Routers
      description: List routers visible to the authenticated NCM keys.
      operationId: listRouters
      tags:
      - Routers
      parameters:
      - name: state
        in: query
        schema:
          type: string
          enum:
          - online
          - offline
          - unknown
      - name: group
        in: query
        schema:
          type: string
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: Paginated list of routers.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RouterList'
  /routers/{id}/:
    get:
      summary: Get A Router
      description: Retrieve a single router by ID.
      operationId: getRouter
      tags:
      - Routers
      parameters:
      - $ref: '#/components/parameters/IdPath'
      responses:
        '200':
          description: Router
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Router'
    patch:
      summary: Update A Router
      description: Update editable router fields such as `name`, `description`, `group`.
      operationId: updateRouter
      tags:
      - Routers
      parameters:
      - $ref: '#/components/parameters/IdPath'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Router'
      responses:
        '200':
          description: Updated router
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Router'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of records to return per page.
      schema:
        type: integer
        default: 20
        maximum: 500
    Offset:
      name: offset
      in: query
      description: Number of records to skip for pagination.
      schema:
        type: integer
        default: 0
    IdPath:
      name: id
      in: path
      required: true
      schema:
        type: string
  schemas:
    Router:
      type: object
      properties:
        id:
          type: string
        account:
          type: string
        group:
          type: string
          nullable: true
        name:
          type: string
        description:
          type: string
        mac:
          type: string
        serial_number:
          type: string
        product:
          type: string
        actual_firmware:
          type: string
        state:
          type: string
          enum:
          - online
          - offline
          - unknown
        last_seen_at:
          type: string
          format: date-time
        created_at:
          type: string
          format: date-time
    Meta:
      type: object
      properties:
        limit:
          type: integer
        offset:
          type: integer
        total_count:
          type: integer
        next:
          type: string
          nullable: true
        previous:
          type: string
          nullable: true
    RouterList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Router'
        meta:
          $ref: '#/components/schemas/Meta'
  securitySchemes:
    CradlepointApiKey:
      type: apiKey
      in: header
      name: X-CP-API-ID
      description: Cradlepoint account API ID (paired with X-CP-API-KEY).
    NetCloudApiKey:
      type: apiKey
      in: header
      name: X-ECM-API-ID
      description: NCM tenant API ID (paired with X-ECM-API-KEY), carries the NCM role.