API & DEVELOPERS

REST reference · v1

List assigned portals

GET/v1/workspaces/{workspaceId}/portals

Current company membership and a parent portal assignment, or company-owner authority.

Company permissions

Current company membership and a parent portal assignment, or company-owner authority.

Required OAuth scopes: orchesphere.read. How scopes and company rights work.

Path and header parameters

NameLocationRequiredAllowed values / bounds
workspaceIdpathYesstring
minLength: 8 · maxLength: 80 · pattern: ^[A-Za-z0-9_-]{8,80}$

Request

This operation does not accept a request body.

http
GET /v1/workspaces/{workspaceId}/portals HTTP/1.1
Host: api.orchesphere.ai
Authorization: Bearer <access_token>
Accept: application/json

Use actual IDs returned for your assigned workspace. The example values are fictional. REST v1 accepts no query parameters.

Response · 200

FieldTypeRequiredDescription / bounds
portalsarrayYesmaxItems: 200
pageobjectYes—
Complete response schema
{
  "type": "object",
  "properties": {
    "portals": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{8,80}$",
            "minLength": 8,
            "maxLength": 80
          },
          "workspaceId": {
            "type": "string",
            "pattern": "^[A-Za-z0-9_-]{8,80}$",
            "minLength": 8,
            "maxLength": 80
          },
          "name": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "role": {
            "type": "string",
            "enum": [
              "admin",
              "operator",
              "viewer"
            ]
          },
          "canManage": {
            "type": "boolean"
          },
          "canCreateTask": {
            "type": "boolean"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "workspaceId",
          "name",
          "slug",
          "description",
          "role",
          "canManage",
          "canCreateTask",
          "createdAt"
        ],
        "additionalProperties": false
      },
      "maxItems": 200
    },
    "page": {
      "type": "object",
      "properties": {
        "limit": {
          "type": "integer",
          "enum": [
            100,
            200
          ]
        },
        "returned": {
          "type": "integer",
          "minimum": 0,
          "maximum": 200
        },
        "mayHaveMore": {
          "type": "boolean"
        }
      },
      "required": [
        "limit",
        "returned",
        "mayHaveMore"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "portals",
    "page"
  ],
  "additionalProperties": false
}
json
{
  "portals": [],
  "page": {
    "limit": 200,
    "returned": 0,
    "mayHaveMore": false
  }
}

Errors

StatusMeaning
400Invalid path/query/body/header or business validation.
401Missing, expired, revoked, invalid or wrong-resource token.
402Verified company payment is required.
403Insufficient token scope or current company/service/portal/task authority.
404Unknown endpoint or record not found/inaccessible.
405Method is not supported for this path.
409State, quota or idempotency conflict; re-read current state.
413Request exceeds 24,000 bytes.
415Use uncompressed application/json.
429Company job/rate/paid-period allowance reached.
503Temporarily unavailable; a lost mutation response does not prove nothing was saved.

Request limits and recovery · All REST operations