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.

The retention policy, the knowledge-graph, currency and ledger-understanding policies and the global context are mutable. 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.

global_context
string | null

The workspace's new global context, or omitted to leave it unchanged; "" clears it. Standing background for every query in this workspace — how its journals are keyed, which entity it covers, what an auditor already knows. A je-testing or search request that omits context runs with this text; a request that sends context replaces it for that run, and "" runs with none. Empty means none. Surrounding whitespace is stripped.

Maximum string length: 20000
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.

ledger_understanding
LedgerUnderstandingConfig · object | null

The workspace's complete new ledger-understanding policy, or omitted to leave it unchanged. Whole-block like knowledge_graph. Turning the trigger off stops future ingestions chaining a run; it never refuses an explicit one, and it does not withdraw a report already measured.

retention_policy
RetentionPolicy · object | null

The workspace's complete new retention policy, or omitted to leave it unchanged. Whole-block like knowledge_graph: a field you leave out reverts to its default, so send the block read back from the workspace with your edits applied. A changed derived_ttl_days is applied to files already ingested (their expiry is recomputed from ingestion time, so a shorter TTL can expire them at the next sweep), and null clears their expiry. source_ttl_days is evaluated at each sweep, so it applies to existing files immediately. job_ttl_days applies to jobs created after the change; payloads of existing jobs keep the expiry they were given.

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 and build the graph after every ingestion, so fact search and deep search have it to navigate by. Set auto_build=false for a workspace that builds only on request. 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
owner_user_id
string<uuid> | null
required

The console user who owns the workspace, or null for an organization-owned integration workspace.

retention_policy
RetentionPolicy · object
required

A workspace's retention setting, chosen at creation and editable afterwards.

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

share_count
integer
required

Number of users explicitly granted workspace access; excludes the owner.

Required range: x >= 0
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
global_context
string
default:""

Standing background for every query in this workspace — how its journals are keyed, which entity it covers, what an auditor already knows. A je-testing or search request that omits context runs with this text; a request that sends context replaces it for that run, and "" runs with none. Empty means none. Surrounding whitespace is stripped.

ledger_understanding
LedgerUnderstandingConfig · object

When this workspace understands its general ledger — table and column roles, the journal key and its balance proof, and the integrity battery. A workspace configured before this block existed reads back the default.

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