curl --request GET \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id} \
--header 'X-API-Key: <api-key>'{
"access": {
"default_label": "<string>",
"labels": [
{
"description": "<string>",
"name": "<string>"
}
]
},
"config_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"currency": {
"default": "USD"
},
"domain_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"domain_slug": "<string>",
"domain_version": 123,
"knowledge_graph": {
"auto_build": false,
"exclude_categories": [
"<string>"
],
"exclude_path_prefixes": [
"<string>"
]
},
"name": "<string>",
"retention_policy": {
"derived_ttl_days": 2,
"job_ttl_days": 30,
"source_ttl_days": 2
},
"status": "active",
"updated_at": "2023-11-07T05:31:56Z",
"workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"purpose": "perception_playground"
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}get_workspace
Read one workspace. Cost class: fast.
curl --request GET \
--url https://ndi-api.nace.ai/v1/workspaces/{workspace_id} \
--header 'X-API-Key: <api-key>'{
"access": {
"default_label": "<string>",
"labels": [
{
"description": "<string>",
"name": "<string>"
}
]
},
"config_version": 123,
"created_at": "2023-11-07T05:31:56Z",
"currency": {
"default": "USD"
},
"domain_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"domain_slug": "<string>",
"domain_version": 123,
"knowledge_graph": {
"auto_build": false,
"exclude_categories": [
"<string>"
],
"exclude_path_prefixes": [
"<string>"
]
},
"name": "<string>",
"retention_policy": {
"derived_ttl_days": 2,
"job_ttl_days": 30,
"source_ttl_days": 2
},
"status": "active",
"updated_at": "2023-11-07T05:31:56Z",
"workspace_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"purpose": "perception_playground"
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}{
"error": {
"code": "invalid_request",
"detail": null,
"message": "Request body has extra fields that this operation does not accept.",
"request_id": "req-01j9k2n3p4q5r6s7t8v9",
"retryable": false
}
}Authorizations
Path Parameters
Workspace identifier.
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.
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.
Show child attributes
Show child attributes
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.
Show child attributes
Show child attributes
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.
Show child attributes
Show child attributes
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.
Show child attributes
Show child attributes
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.
active, deleting 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.
perception_playground