profiles
profiles

Create an extraction profile

Changed on

Create a named, versioned bundle of extraction levers in this workspace. Apply it by passing profile_id to POST /pots/{pot_id}/ingest or POST /pots/{pot_id}/extract-from-document; every fact extracted under it records provenance.profile_id and provenance.profile_version. Levers: language (request > profile > POT default), scope_aware (profile > deployment flag), and the prompt levers granularity (fine / standard / coarse), additional_instructions (≤ 1000 chars) and business_relevance (≤ 500 chars), which the extraction prompt quotes as integrator guidance under the base prompt's rules; initial_pot_score (0.10-0.79), the POT Score every fact extracted under the profile starts with instead of 0.50. Unknown fields are rejected with 422.

post/profiles

Request

Request body

namestring required

Human-readable profile name, unique only by convention (ids are the key).

descriptionstring nullable

What this profile is for (free text, integrator-facing).

languagestring nullable

ISO 639-1 extraction language applied when the ingestion request carries none. Precedence: request > profile > POT default > auto-detect.

scope_awareboolean nullable

Scope-aware extraction (own / third_party / mixed_context per fact). true or false overrides the deployment flag SCOPE_AWARE_EXTRACTION; null follows it.

granularity'fine' | 'standard' | 'coarse' nullable

How finely the LLM splits the text into facts: 'fine' extracts every data point and minor attribute, 'coarse' keeps only the substantive claims, 'standard' (or null) is the base prompt's own behaviour. Applies to the LLM extraction only: facts the deterministic table extractor produces before the LLM call (one per table cell) are not affected.

additional_instructionsstring nullable

Free-text guidance quoted into the extraction prompt's INTEGRATOR GUIDANCE section. It refines what to extract and how to phrase facts; every rule of the base prompt (output format, language, scope, atomicity) takes precedence over it. Line endings normalised to LF and stripped; at most 1000 characters after that; must not be blank, contain control characters other than line breaks and tabs, or contain the guidance delimiters (any letter case).

business_relevancestring nullable

What the destination knowledge base is for (one focus statement). The prompt prioritizes facts that bear on it and may omit claims that do not; facts the deterministic table extractor produces are not affected. Same text rules as additional_instructions, at most 500 characters.

initial_pot_scorenumber nullable

POT Score every fact extracted under this profile starts with, instead of the extraction's default (0.50, level Inferred). Between 0.10 and 0.79: a profile can vouch for a source up to Supported, never into Verified (0.80+), which stays for several sources or human validation. Edge propagation and curation move the score from there as usual; null keeps the default.

Response

Successful Response

profile_idstring uuid

UUIDv7 — chronologically sortable.

workspace_idstring uuid required

Owning workspace; multi-tenant isolation key.

namestring required
descriptionstring nullable
languagestring nullable
scope_awareboolean nullable
granularity'fine' | 'standard' | 'coarse' nullable
additional_instructionsstring nullable
business_relevancestring nullable
initial_pot_scorenumber nullable
versioninteger

Bumped by every PUT. Facts record the version they were extracted under.

created_atstring date-time
updated_atstring date-time

Changes

    • info

      added the new optional request property

    • info

      added the optional property to the response with the status

    • info

      added the new optional request property

    • info

      added the non-success response with the status

    • info

      added the optional property to the response with the status