MotaWord · Schema

InterpretSession

State record for a scheduled video interpretation session. One per project.

TranslationLocalizationAISaaSEnterprise

Properties

Name Type Description
id integer
project_id integer
room_name string Deterministic LiveKit room name (e.g. `interpret-project-74`).
status string
mode string Who serves the session — `human` (a human interpreter joins) or `ai` (the AI interpreter worker joins instead). Defaults to `human`.
scheduled_start_at stringnull
scheduled_duration_minutes integernull
started_at stringnull
ended_at stringnull
recording_enabled boolean
recording_url stringnull
guest_token stringnull Opaque token used by the public guest-join link. Customers share it via a URL; it rotates via the rotate-guest-token endpoint.
context_note stringnull Customer-supplied 1-2 sentence brief shown to the interpreter before the room.
domain stringnull Domain tag like "medical" / "legal" / "business" / "general". Advisory only.
usage object Derived operational-time figures for this session, computed from the presence timeline (`interpret_session_event`). Refreshes on every session poll. Source of truth for the in-call "Remaining HH:MM" d
View JSON Schema on GitHub

JSON Schema

motaword-interpret-session-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/motaword/json-schema/motaword-interpret-session-schema.json",
  "title": "InterpretSession",
  "description": "State record for a scheduled video interpretation session. One per project.",
  "x-generated": "2026-10-28",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_original/motaword-api-openapi.yml#/components/schemas/InterpretSession",
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "format": "int64"
    },
    "project_id": {
      "type": "integer",
      "format": "int64"
    },
    "room_name": {
      "type": "string",
      "description": "Deterministic LiveKit room name (e.g. `interpret-project-74`)."
    },
    "status": {
      "type": "string",
      "enum": [
        "scheduled",
        "ringing",
        "live",
        "ended",
        "canceled"
      ]
    },
    "mode": {
      "type": "string",
      "description": "Who serves the session — `human` (a human interpreter joins) or `ai`\n(the AI interpreter worker joins instead). Defaults to `human`.\n",
      "enum": [
        "human",
        "ai"
      ]
    },
    "scheduled_start_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "scheduled_duration_minutes": {
      "type": [
        "integer",
        "null"
      ]
    },
    "started_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "ended_at": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time"
    },
    "recording_enabled": {
      "type": "boolean"
    },
    "recording_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "guest_token": {
      "type": [
        "string",
        "null"
      ],
      "description": "Opaque token used by the public guest-join link. Customers share it via a URL; it rotates via the rotate-guest-token endpoint."
    },
    "context_note": {
      "type": [
        "string",
        "null"
      ],
      "description": "Customer-supplied 1-2 sentence brief shown to the interpreter before the room."
    },
    "domain": {
      "type": [
        "string",
        "null"
      ],
      "description": "Domain tag like \"medical\" / \"legal\" / \"business\" / \"general\". Advisory only."
    },
    "usage": {
      "type": "object",
      "description": "Derived operational-time figures for this session, computed from the\npresence timeline (`interpret_session_event`). Refreshes on every\nsession poll. Source of truth for the in-call \"Remaining HH:MM\"\ndisplay and for billing reconciliation. The frontend ticks\n`billable_seconds_used` locally between polls only when both\n`interpreter_present` and `customer_present` are true.\n",
      "properties": {
        "interpreter_present": {
          "type": "boolean",
          "description": "True iff at least one participant with role=vendor is currently in the LiveKit room."
        },
        "customer_present": {
          "type": "boolean",
          "description": "True iff at least one participant with role=customer is currently in the LiveKit room."
        },
        "billable_seconds_used": {
          "type": "integer",
          "description": "Total accumulated seconds during which both an interpreter and a\ncustomer were simultaneously present. Guests do not gate billing.\nAuthoritative — clients should display this verbatim and only\ntick locally between polls when both `*_present` flags are true.\n"
        },
        "billable_started_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "UTC ISO8601 timestamp marking the start of the currently open\nbillable interval (i.e. when the room most recently transitioned\nto \"interpreter + customer both present\"). Null when no billable\ninterval is currently open.\n"
        },
        "last_event_at": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time",
          "description": "ISO8601 timestamp of the most recent presence event seen for this session. Useful as a cache-staleness hint."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema 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 schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • 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 JSON Schema
curl "https://apis.io/api/v1/json-schemas/motaword-interpret-session"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

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

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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