Create a scope
Creates a scope (owned by you) and returns it in draft state. Defaults to org-shared use + manage access. Call POST /scopes//deploy to publish it.
Requires: scopes:write
Authorizations
A Modus personal access token (modus_<orgUuid>_<prefix>_<secret>) or an OAuth 2.1 access token, sent as Authorization: Bearer <token>.
Body
Display name for the scope. Will be slugified into a URL-safe path.
1 - 200"Customer Churn Analyzer"
Optional one-paragraph description shown in the builder and scope catalog.
"Predicts churn risk for a customer given a 90-day usage window."
Optional summary of the expected output schema, used when supervising other scopes.
"JSON: { churn_probability: number, drivers: string[] }"
Ordered list of system-prompt instruction fragments. Joined at run time.
Toolset configuration (tools this scope may invoke). Service sanitizes the shape on write.
Model identifier to use at run time (e.g. claude-sonnet-4-5). Falls back to org default when absent.
"claude-sonnet-4-5"
Model-specific runtime controls such as reasoning effort and context window.
List of integration connection refs available to this scope. Shape is integration-specific.
Selected context items (sources / docs) the scope may read.
Interface configuration (chat, API, webhook…). Shape is interface-specific.
Access configuration. Omit to use the default (full-org shared with use + manage).
Response
Numeric scope id (stable per-org; not reused after delete).
42
URL-safe slug used in human-readable links. Unique per org.
"customer-churn-analyzer-a3f"
Display name of the scope. Shown in the builder and in run logs.
"Customer Churn Analyzer"
Lifecycle status. draft = never deployed. active = deployed. deleted = soft-deleted.
draft, active, deleted "active"
Org UUID this scope belongs to. Matches the caller’s principal.
"00000000-0000-0000-0000-000000000001"
True when the draft variation differs from the active variation (deploy would publish changes).
false
Access configuration — who in the org can use / manage this scope.
Creation timestamp.
"2026-05-01T10:00:00.000Z"
Most recent update timestamp.
"2026-05-11T10:00:00.000Z"
Whether the requesting principal can manage (edit/delete/deploy) this scope. Derived server-side from the principal + accessConfig. Present on every Scope response.
true
Whether the requesting principal can use (run, view history of) this scope. Derived server-side from the principal + accessConfig.
true
Why canManage is false, for client-facing guidance: needs_group_manage (shared, but no group you belong to grants Manage) or not_owner (private, and you are not the owner). null when canManage is true.
not_owner, needs_group_manage "needs_group_manage"
Optional one-paragraph description of what this scope does.
"Predicts churn risk for a customer given a 90-day usage window."
Active (deployed) variation id. Null until the scope is first deployed.
"00000000-0000-4000-a000-000000000100"
Most recent draft variation id. Null when there is no draft pending.
"00000000-0000-4000-a000-000000000101"
Pending ownership transfer awaiting recipient acceptance. Absent when no request is in flight.
Variation-detail payload (toolset, instructions, model, etc.) for the requested view. Populated by GET /api/v1/scopes/:id; absent on list rows.
Soft-delete timestamp. Null for active scopes.
null