Workspaces & organizations
How tenancy works — who owns what, and what X-Workspace-Id does.
Workspaces
A workspace is the container everything else lives in: signals, segments, models, pipelines, trainings, deployments, and goals all belong to exactly one workspace. Data never crosses workspace boundaries.
Nearly every API request carries an X-Workspace-Id header that says which
workspace the request operates on:
curl "$API_BASE/v1/signal" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Workspace-Id: $WORKSPACE_ID"from predictai import PredictAI
client = PredictAI(token="pa_live_…", workspace_id="ws_…")
data = client.signals.get_signal()
import { PredictAI } from "@predictai/sdk";
const client = new PredictAI({ token: "pa_live_…", workspaceId: "ws_…" });
const data = await client.signals.getSignal();
Omit it and you'll get a 400; send a workspace you can't access and you'll
get a 403. Find your workspace IDs with
GET /v1/workspace.
Workspaces also pin your data to a region: each workspace lives in one region, and your API base URL follows it. See Base URL & versioning.
Organizations
An organization groups people and workspaces under one roof — shared billing, shared membership, role-based permissions. You don't need one to use predictAI (individual accounts own workspaces directly), but teams usually want one.
Members have one of four roles:
| Role | Can do |
|---|---|
admin | Everything: manage members, billing, and all resources. |
billing | View and manage billing; read access elsewhere. |
member | Create and manage resources (models, pipelines, deployments). |
viewer | Read-only. |
When you belong to an organization, resources you create in its workspaces
belong to the organization, and permission checks use your role — for
example, deploying a model requires the models.deploy permission that
member and above carry.
Manage all of this through the Workspaces section of the API: workspaces, members, organizations, roles, and invitations.

