RunSessionListResult run.session-list-result@1

Generated at from openvibe-contracts v0.419.0 and openvibe-sdk v0.161.0.

Version
1.0.0
Owner
run
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/run/session-list-result.v1.json

run.session-list-result@1 (the Desks plan's D6): GET /api/v1/sessions on OpenVibe.Run (capability run.session.read): the caller's own sessions, newest first, running ones by default (?state=ended or ?state=all for others), at most limit (default 20, at most 100) per page; next_cursor continues the list and is null on the last page.

Fields

FieldTypeRequiredDescriptionConstraints
sessionsrun.sessionyes
  • maxItems 100
next_cursorstring | nullyes
  • maxLength 200

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: one
{
  "sessions": [
    {
      "id": "ses_01JD2C3D4E5F6G7H8J9K0MNPQR",
      "owner": {
        "type": "user",
        "id": "usr_01JAB2C3D4E5F6G7H8J9K0MNPQ"
      },
      "via": "service:actor",
      "kind": "browser",
      "state": "running",
      "size": {
        "width": 1280,
        "height": 800
      },
      "ttl_s": 3600,
      "idle_s": 900,
      "placement": {
        "machine": "dev_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
        "desk": "desk-s0mnpqr",
        "trust": "community",
        "offer_id": "desk:dev_01J8Z4M2Q0R7T9YV3K6N8P1W2X",
        "region": "eu",
        "reasons": [
          "a shared desk host with room"
        ]
      },
      "timings": {
        "created_at": "2026-10-28T10:00:00Z",
        "started_at": "2026-10-28T10:00:04Z",
        "last_used_at": "2026-10-28T10:05:00Z",
        "ended_at": null
      },
      "end": null,
      "usage": {
        "desk_seconds": 296
      },
      "idempotency_key": null
    }
  ],
  "next_cursor": null
}
Rejected: no-cursor
{
  "sessions": []
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('run.session-list-result@1', value);   // { valid, errors: [{ path, message }] }