automatic_search
Changed onAnswer one query with fact search or the automatic search agent. Cost class: job.
With mode auto (the default), the service reads the query and optional context before retrieval and chooses a one-pass fact search for focused lookups, or an agent that locates the pages and tables it needs with a navigator over the workspace's files (on a workspace in a bring-your-own bucket or customer storage, by searching it), then reads documents, queries tables, and selects documents from the metadata catalog. When it chooses fact search and fact search cannot settle the question (it finds no answer while a table it was given was not read whole, such as a Parquet table or one too large to read, or it cites nothing, grades its answer low or speculative, or fails), the agent answers instead: routing.selected stays fact and routing.final reads agent. When fact search finds no answer in material it read whole, that is the answer, with no hand-over. In any mode, a query that asks for nothing (a keyboard mash, say) and none of whose words a document contains is answered so without a search or a charge. mode fact or agent runs that route directly, with no routing step to bill and no hand-over. This single-shot route does not ask clarification questions. Every route enforces the caller's access and its scope: path_prefix and paths resolve to one file set, the same one fact search and the agent (its catalog commands included) filter by. Each paths entry must name a visible uploaded source file.
The result contains the chosen route's output and its owning output_job_id, plus routing details. When the agent answers from the catalog, its output also carries the catalog table, whose next_cursor continues through filtered-search with a page request, without another routing decision.
Request
- Base URLhttps://ndi-api.nace.ai
- AuthAPI key in header X-API-Key
- TypeScriptA function with typed inputs. Its response is checked against the schema.
Path parameters
Workspace identifier.
Query parameters
Bounded inline wait. 0 (the default) returns 202 immediately. Above 0 the route returns 200 with a terminal job if the work finished in time, and 202 with the still-running job if it did not. Either way, read status. Waiting does not change how an admitted job is counted and takes no max_concurrent_sync slot (that limits synchronous calls such as the legacy synchronous API and /v1/systemone). For retained jobs, the deployment may shorten the wait and return 202 with the running job; poll GET /v1/jobs/{job_id}. For parse, split, classify, categorize, extract and ground, a zero_retention tenant must pass wait_seconds above 0.
Headers
Use the same key to recover an earlier request. A replay returned as a Job carries Idempotent-Replayed: true and replayed: true without a new charge; Job credits keeps the original cost. Re-serving a settled inline tool answer reports zero credits for that call and also carries Idempotent-Replayed: true; a fresh re-execution after a transient failure carries no header. The key is kept with the job for replay and never cleared, so it must not contain personal data.
Request body
Response
Terminal job or idempotent replay of the original job; read status and replayed.
Changes
- info
added the optional property
to the response with the status - info
added the success response with the status
- info