CAMARA Quality On Demand API

The Quality On Demand (QoD) API allows applications to request on-demand, bounded-duration, guaranteed-quality network sessions for specific device flows (latency, throughput, priority class). Developers can set QoS profiles, receive events on session state changes, and manage sessions without dealing with operator-specific signalling.

OpenAPI Specification

camara-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: CAMARA Quality On Demand API
  version: "1.0"
  description: >-
    Minimal OpenAPI 3.1 description of the CAMARA Quality On Demand (QoD) API
    for requesting bounded-duration network quality sessions on behalf of
    devices. Endpoints derived from the public CAMARA QoD specification.
  x-generated-from: https://github.com/camaraproject/QualityOnDemand
  x-generated-by: claude-crawl-2026-05-08
servers:
  - url: https://api.example.com/quality-on-demand/v0
    description: Reference server (operator-specific in practice)
security:
  - oAuth2ClientCredentials: []
tags:
  - name: Sessions
paths:
  /sessions:
    post:
      tags: [Sessions]
      summary: Create a new QoS session
      operationId: createSession
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/QoDSession' }
      responses:
        '201':
          description: Session created
          content:
            application/json:
              schema: { $ref: '#/components/schemas/QoDSession' }
  /sessions/{sessionId}:
    parameters:
      - $ref: '#/components/parameters/SessionIdParam'
    get:
      tags: [Sessions]
      summary: Get QoS session information
      operationId: getSession
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/QoDSession' }
    delete:
      tags: [Sessions]
      summary: Delete a QoS session
      operationId: deleteSession
      responses:
        '204':
          description: Deleted
  /sessions/{sessionId}/extend:
    parameters:
      - $ref: '#/components/parameters/SessionIdParam'
    post:
      tags: [Sessions]
      summary: Extend the duration of an active session
      operationId: extendSession
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/QoDSession' }
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema: { $ref: '#/components/schemas/QoDSession' }
  /retrieve-sessions:
    post:
      tags: [Sessions]
      summary: Get QoS session information for a device
      operationId: retrieveSessionsForDevice
      requestBody:
        required: true
        content:
          application/json:
            schema: { $ref: '#/components/schemas/QoDSession' }
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/QoDSession'
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.example.com/oauth2/token
          scopes:
            qod: Quality On Demand session management
  parameters:
    SessionIdParam:
      name: sessionId
      in: path
      required: true
      schema:
        type: string
        format: uuid
  schemas:
    QoDSession:
      type: object
      additionalProperties: true