REST API
Workspace Settings
On this page
Three independent toggles. Each is a GET + PATCH pair; the PATCH body
carries exactly one field.
| Setting | Read role | Write role | Default |
|---|---|---|---|
capture-text | viewer | admin | false |
broaden-sources | viewer | admin | false |
cost-provider | viewer | admin | provider default |
Capture text
GET /v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text
PATCH /v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text
Controls whether prompt and completion text is stored, as opposed to metrics and metadata only.
Privacy control — fail-closed. This defaults to
false. While it is off, the SDK does not send text bodies at all, so no text is stored. Turn it on only when your data-handling policy permits storing prompt content, and pair it with redaction rules. The SDK reads this flag atinit()viaGET /v1/workspaces/{ws}/sdk-configand fails closed if the lookup fails.
PATCH request body — _CaptureTextBody
| Field | Type | Required | Description |
|---|---|---|---|
capture_text | boolean | ✅ | Enable or disable text capture |
Examples
cur = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text")
print("capture_text:", cur["capture_text"])
evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text",
json={"capture_text": True})
const cur = await evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text");
console.log("capture_text:", cur.capture_text);
await evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/capture-text",
{ capture_text: true });
Changing this affects new spans only. Text already stored is unaffected; to remove it, use retention.
Broaden sources
GET /v1/observ/orgs/{org}/workspaces/{ws}/settings/broaden-sources
PATCH /v1/observ/orgs/{org}/workspaces/{ws}/settings/broaden-sources
Allows the sources engine to verify claims against the open web, not only your internal knowledge base.
PATCH request body — _BroadenSourcesBody
| Field | Type | Required | Description |
|---|---|---|---|
broaden_sources | boolean | ✅ | Enable open-web verification |
Examples
evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/broaden-sources",
json={"broaden_sources": True})
await evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/broaden-sources",
{ broaden_sources: true });
Open-web verification requires a search credential — see search credentials. Without one, the engine stays in closed-KB mode regardless of this flag.
Cost provider
GET /v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider
PATCH /v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider
Selects the pricing table used to convert token counts into dollars.
PATCH request body — _CostProviderBody
| Field | Type | Required | Description |
|---|---|---|---|
cost_provider | string | ✅ | Provider key for the pricing table. Free-form, not an enum — the value is lower-cased and truncated to 64 characters. Send "" to clear it and fall back to the default. |
The GET returns both what you set and what is actually in force:
{ "cost_provider": "anthropic", "effective_provider": "anthropic" }
effective_provider is the resolved value — your cost_provider when set,
otherwise the deployment default (openrouter unless
OPEXIA_DEFAULT_COST_PROVIDER overrides it). Read effective_provider, not
cost_provider, when displaying what pricing is in use; cost_provider is
"" on a workspace that has never set one.
Examples
cur = evigauge.get("/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider")
print("in force:", cur["effective_provider"])
evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider",
json={"cost_provider": "anthropic"})
# Clear the override and fall back to the deployment default.
evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider",
json={"cost_provider": ""})
const cur = await evigauge.get(
"/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider");
console.log("in force:", cur.effective_provider);
await evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider",
{ cost_provider: "anthropic" });
// Clear the override and fall back to the deployment default.
await evigauge.patch("/v1/observ/orgs/{org}/workspaces/{ws}/settings/cost-provider",
{ cost_provider: "" });
This changes how future costs are computed. Historical figures keep the pricing version in force when they were calculated, so past reports stay stable.