Skip to main content
PATCH
update_workspace

Authorizations

X-API-Key
string
header
required

Path Parameters

workspace_id
string<uuid>
required

Workspace identifier.

Body

application/json

Change a workspace's mutable configuration.

Presence-aware: a field omitted from the body is left exactly as it is, so a caller changing one block cannot clear another by not mentioning it. A field that is supplied replaces its block whole — the rule set_key_grants follows for label grants, which is what keeps turning a policy off the same operation as turning it on, with no add/remove asymmetry to get wrong.

Only the knowledge-graph policy and the currency policy are mutable today. The domain and the label list are not: both are part of the versioned config record that every derived artifact is stamped with, so editing them in place would silently re-describe material that was derived under the old one.

currency
CurrencyPolicy · object | null

The workspace's complete new currency-reading policy, or omitted to leave it unchanged. Whole-block like knowledge_graph: an empty object resets to the USD default, and {"default": null} is how the policy is cleared to assume nothing. Applies from the next ingestion onwards: amounts already extracted as ambiguous stay that way until their file is re-ingested, since the catalog records what a past extraction could read.

knowledge_graph
KnowledgeGraphConfig · object | null

The workspace's complete new knowledge-graph policy, or omitted to leave it unchanged. Supplying it replaces every field it holds, so send the block read back from the workspace with your edits applied rather than only the key you are changing.

Response

Successful Response

A provisioned workspace, as the API returns it.

Storage is provisioned for the caller and is not part of the wire contract: the root URI is an internal detail until customer-owned roots are exposed.

access
AccessConfig · object
required

A workspace's access-control setting, chosen once at creation.

labels = [] is the default and means no filtering at all — no classification pass at ingestion, no filter clause at retrieval, and Coverage reports nothing. A workspace that does not need document-level access control should not pay for a classification that always returns the same answer.

Coverage reporting is always strict: whenever the gate withholds candidates, the response says so in counts and label names. A silently narrowed answer is the failure mode this platform exists to prevent, so there is no opt-out.

config_version
integer
required
created_at
string<date-time>
required
currency
CurrencyPolicy · object
required

How this workspace's documents should be read where they leave a currency open.

Extraction never converts an amount and never invents a currency: one whose currency the source does not state is recorded as ambiguous with no value, so it matches no amount filter. New workspaces default to DEFAULT_WORKSPACE_CURRENCY (USD), so a corpus that writes every total as a bare $900.00 and names a currency nowhere is filterable out of the box. Set default to another ISO code to change the reading, or to null to assume nothing — an amount whose currency the source never states then stays ambiguous rather than being read as USD.

domain_id
string<uuid>
required
domain_slug
string
required
domain_version
integer
required
knowledge_graph
KnowledgeGraphConfig · object
required

A workspace's knowledge-graph build policy.

The defaults keep the whole corpus in scope but build nothing until asked: a graph is billable and runs for as long as the corpus takes, so it is not something ingestion should commit a caller to as a side effect. Set auto_build=true for a workspace that does want one after every ingestion. exclude_path_prefixes and exclude_categories are the workspace-wide skip rules a file's graph_inclusion can override — a file matching either is left out of the graph corpus unless it is explicitly include\ d.

name
string
required
retention_policy
RetentionPolicy · object
required

A workspace's retention setting, chosen once at creation.

derived_ttl_days anchors on ingested_at and source_ttl_days on created_at — one anchor each, not configurable.

status
enum<string>
required

Lifecycle states visible on the API surface.

deleted is a final internal state; a deleted workspace never appears in any list or get response — it is as if it never existed.

Available options:
active,
deleting
updated_at
string<date-time>
required
workspace_id
string<uuid>
required
purpose
enum<string> | null

Set when the platform provisioned this workspace on a person's behalf rather than at a caller's request. Such a workspace cannot be deleted. Null for every workspace created through this API.

Available options:
perception_playground