{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}
Derivations
Update a derivation rule
Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the
company that owns a rule can change it. Only the fields present in the request change; a changed transformation
runs the same validation as a creation. Set fidelity_note to null to clear it. A rule’s source and target
attributes cannot be changed — create a new rule instead.
{
"error": "Unauthorized",
"error_description": "You are not authorized to use this endpoint."
}
Authorizations
Authorization
string
header
required
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
derivation_id
integer<int64>
required
Id of the derivation rule.
Required range: x >= 1
Body
application/json
Body of PATCH /derivations/{id}. Only the fields present in the request change. Setting fidelity_note to
null clears it; leaving the key out keeps the current value. The source and target attributes of a rule are
immutable — there is no key for them here, and one sent anyway is ignored.
name
string
Name of the derivation rule, unique within the owning company.
Maximum string length: 256
Example:
"raw_email_to_sha256"
description
string
What the rule does, for whoever is deciding whether to accept derived data.
Maximum string length: 2048
Example:
"Hashes the raw email address with SHA-256."
collaborators
object
Which companies, besides the one that owns the rule, may have the rule applied to their data. A rule grants a
single thing, so there is one use dimension. Only Narrative can share a rule broadly — with all companies or
with everyone outside an exclusion set.
Show child attributes
Example:
{ "use": { "type": "none" } }
mapping
object
The transformation that produces the target attribute's value from the source attribute's value. Expressions
reference the source attribute's shape through $source — for a rule from raw_email to sha256_hashed_email,
the value property maps to SHA2(NORMALIZE_EMAIL($source.value), 256).
The shape mirrors mapping expressions, except cached_mapping is not allowed: a cached mapping reads values out
of a stored dataset, so there would be nothing to substitute a $source reference into.
Expressions may use the current date or time (CURRENT_DATE, CURRENT_TIMESTAMP, …): the expression runs when a
query resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum
constraints and validation expressions on the target attribute do not restrict the transformation, exactly as
they do not restrict a dataset mapping.
Option 1
Option 2
Show child attributes
lossy
boolean
imprecise
boolean
fidelity_note
string | null
Maximum string length: 2048
cost
integer
default:1
Breaks ties when more than one rule reaches the same target attribute — cheapest first. Resolution over multi-step
paths sums the cost of every rule on a path and prefers the cheapest total.
Required range: x >= 1
active
boolean
Response
OK
id
integer<int64>
required
Unique identifier of the derivation rule.
Example:
42
name
string
required
Name of the derivation rule, unique within the owning company.
Maximum string length: 256
Example:
"raw_email_to_sha256"
description
string
required
What the rule does, for whoever is deciding whether to accept derived data.
Maximum string length: 2048
Example:
"Hashes the raw email address with SHA-256."
source_attribute_id
integer<int64>
required
target_attribute_id
integer<int64>
required
company_id
integer<int64>
required
collaborators
object
required
Which companies, besides the one that owns the rule, may have the rule applied to their data. A rule grants a
single thing, so there is one use dimension. Only Narrative can share a rule broadly — with all companies or
with everyone outside an exclusion set.
Show child attributes
Example:
{ "use": { "type": "none" } }
mapping
object
required
The transformation that produces the target attribute's value from the source attribute's value. Expressions
reference the source attribute's shape through $source — for a rule from raw_email to sha256_hashed_email,
the value property maps to SHA2(NORMALIZE_EMAIL($source.value), 256).
The shape mirrors mapping expressions, except cached_mapping is not allowed: a cached mapping reads values out
of a stored dataset, so there would be nothing to substitute a $source reference into.
Expressions may use the current date or time (CURRENT_DATE, CURRENT_TIMESTAMP, …): the expression runs when a
query resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum
constraints and validation expressions on the target attribute do not restrict the transformation, exactly as
they do not restrict a dataset mapping.
Option 1
Option 2
Show child attributes
lossy
boolean
required
imprecise
boolean
required
fidelity_note
string | null
required
Explains the lossy and imprecise flags to whoever is deciding whether to accept derived data. null when
the rule has no note.
Maximum string length: 2048
cost
integer
default:1
required
Breaks ties when more than one rule reaches the same target attribute — cheapest first. Resolution over multi-step
paths sums the cost of every rule on a path and prefers the cheapest total.
Required range: x >= 1
active
boolean
required
created_at
string<date-time>
required
created_by
integer<int64>
required
Id of the user who created the rule.
updated_at
string<date-time>
required
updated_by
integer<int64>
required
Id of the user who last updated the rule.
warnings
object[]
required
Populated on create and update responses; empty on reads.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Narrative I/O Knowledge Base","colors":{"primary":"#1438F5","light":"#F4F7FB","dark":"#010A28"},"logo":{"light":"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=99860b25011c79366624a87d1f648861","dark":"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner-dark.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=604f9688855cf1123b9eddfc8a5bf0e5"},"favicon":"https://mintcdn.com/narrative-07c7a1f7/DaYE2y2_p0IkASZU/favicon.svg?fit=max\u0026auto=format\u0026n=DaYE2y2_p0IkASZU\u0026q=85\u0026s=9961047bdb2aaf9298577e1c3e624c24","navbar":{"links":[{"href":"mailto:[email protected]","label":"Support"}],"primary":{"type":"button","label":"Open Narrative","href":"https://app.narrative.io"}},"footer":{"socials":{"github":"https://github.com/narrative-io","linkedin":"https://linkedin.com/company/narrative-io"}},"seo":{"indexing":"navigable"},"integrations":{"fathom":{"siteId":"WELVPSSZ"},"ga4":{"measurementId":"G-27FP7EFNFW"},"cookies":{}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Release Notes","icon":"clock-rotate-left","href":"/release-notes"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"narrative-07c7a1f7","hasAudioNarration":false,"actualSubdomain":"narrative-07c7a1f7","customDomains":["docs.narrative.io"],"gitSource":{"type":"github","owner":"narrative-io","repo":"mintlify-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af852f7f47e66462e347525","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"API Documentation","count":230},{"language":"default","tag":"Connectors","count":112},{"language":"default","tag":"Reference","count":112},{"language":"default","tag":"All connectors","count":110},{"language":"default","tag":"Architecture Reference","count":77},{"language":"default","tag":"Agent Conversations","count":64},{"language":"default","tag":"Concepts","count":62},{"language":"default","tag":"Guides","count":58},{"language":"default","tag":"Errors","count":55},{"language":"default","tag":"API reference","count":43}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true,"deflection":{"enabled":true,"email":"[email protected]","showHelpButton":true}},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/derivations/update-a-derivation-rule","slug":"/api-reference/derivations/update-a-derivation-rule","pageMetadata":{"title":"Update a derivation rule","description":"Update some fields of a derivation rule. Requires an `admin` grant on `attribute_derivations`, and only the\ncompany that owns a rule can change it. Only the fields present in the request change; a changed transformation\nruns the same validation as a creation. Set `fidelity_note` to `null` to clear it. A rule's source and target\nattributes cannot be changed — create a new rule instead.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /derivations/{derivation_id}","href":"/api-reference/derivations/update-a-derivation-rule","autogeneratedByOpenApi":true},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_components.p, {\n children: [\"Update some fields of a derivation rule. Requires an \", _jsx(_components.code, {\n children: \"admin\"\n }), \" grant on \", _jsx(_components.code, {\n children: \"attribute_derivations\"\n }), \", and only the\\ncompany that owns a rule can change it. Only the fields present in the request change; a changed transformation\\nruns the same validation as a creation. Set \", _jsx(_components.code, {\n children: \"fidelity_note\"\n }), \" to \", _jsx(_components.code, {\n children: \"null\"\n }), \" to clear it. A rule’s source and target\\nattributes cannot be changed — create a new rule instead.\"]\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Update a derivation rule","description":"Update some fields of a derivation rule. Requires an `admin` grant on `attribute_derivations`, and only the\ncompany that owns a rule can change it. Only the fields present in the request change; a changed transformation\nruns the same validation as a creation. Set `fidelity_note` to `null` to clear it. A rule's source and target\nattributes cannot be changed — create a new rule instead.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /derivations/{derivation_id}","href":"/api-reference/derivations/update-a-derivation-rule","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/narrative-07c7a1f7/d5d45b2d00effc8b/secure-privacy.js"],"openApiReferenceData":{"operation":{"summary":"Update a derivation rule","description":"Update some fields of a derivation rule. Requires an `admin` grant on `attribute_derivations`, and only the\ncompany that owns a rule can change it. Only the fields present in the request change; a changed transformation\nruns the same validation as a creation. Set `fidelity_note` to `null` to clear it. A rule's source and target\nattributes cannot be changed — create a new rule instead.","tags":["Derivations"],"security":["a1b03c07-e5a6-4de8-a01f-7060e6e754a2"],"parameters":["1e1d2d17-8d5f-4f95-a4dd-bcccc37bef7e"],"requestBody":"04ecf565-a222-4a35-9fa2-5964962e6a77","responses":{"200":"28f6bef9-058b-46f5-a3b7-983781a6daf8","400":"f9d1229d-b5a0-4b45-adf8-c9efca86973f","403":"5a782ba1-29d3-4871-baa7-61ead474e6ae","404":"a0a39929-df9a-457e-8407-177e3be72657","409":"fa056763-01b3-47e2-8c08-c9f6b18d8013"},"method":"patch","type":"path","servers":["da33ef7e-c9ea-466d-b7d1-c2d3c2623ccd","49d111d4-7e28-4629-8677-904ae5faace8"],"path":"/derivations/{derivation_id}","baseUrlOptions":["https://api-dev.narrative.io","https://api.narrative.io"],"title":"Update a derivation rule","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1e1d2d17-8d5f-4f95-a4dd-bcccc37bef7e":{"name":"derivation_id","in":"path","required":true,"description":"Id of the derivation rule.","schema":{"type":"integer","format":"int64","minimum":1,"isRequired":true,"description":"Id of the derivation rule.","uniqueKey":"","typeLabel":"integer\u003cint64>"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","description":"Body of `PATCH /derivations/{id}`. Only the fields present in the request change. Setting `fidelity_note` to\n`null` clears it; leaving the key out keeps the current value. The source and target attributes of a rule are\nimmutable — there is no key for them here, and one sent anyway is ignored.","additionalProperties":true,"properties":{"name":{"type":"string","maxLength":256,"description":"Name of the derivation rule, unique within the owning company.","example":"raw_email_to_sha256","uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","maxLength":2048,"description":"What the rule does, for whoever is deciding whether to accept derived data.","example":"Hashes the raw email address with SHA-256.","uniqueKey":"description","typeLabel":"string"},"collaborators":{"type":"object","description":"Which companies, besides the one that owns the rule, may have the rule applied to their data. A rule grants a\nsingle thing, so there is one `use` dimension. Only Narrative can share a rule broadly — with `all` companies or\nwith everyone outside an `exclusion` set.","required":["use"],"properties":{"use":{"oneOf":[{"type":"object","description":"Which companies a grant applies to.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.0","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.1","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","format":"int64","minimum":1,"description":"Company ID","uniqueKey":"collaborators.use.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2.company_ids","typeLabel":"integer\u003cint64>[]"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","format":"int64","minimum":1,"description":"Company ID","uniqueKey":"collaborators.use.oneOf.3.company_ids.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3.company_ids","typeLabel":"integer\u003cint64>[]"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"collaborators.use","typeLabel":"object"}},"example":{"use":{"type":"none"}},"uniqueKey":"collaborators","typeLabel":"object"},"mapping":{"oneOf":[{"type":"object","description":"The transformation that produces the target attribute's value from the source attribute's value. Expressions\nreference the source attribute's shape through `$source` — for a rule from `raw_email` to `sha256_hashed_email`,\nthe `value` property maps to `SHA2(NORMALIZE_EMAIL($source.value), 256)`.\n\nThe shape mirrors mapping expressions, except `cached_mapping` is not allowed: a cached mapping reads values out\nof a stored dataset, so there would be nothing to substitute a `$source` reference into.\n\nExpressions may use the current date or time (`CURRENT_DATE`, `CURRENT_TIMESTAMP`, …): the expression runs when a\nquery resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum\nconstraints and validation expressions on the target attribute do not restrict the transformation, exactly as\nthey do not restrict a dataset mapping.","required":["type","property_mappings"],"properties":{"type":{"type":"string","description":"A mapping from a dataset to an attribute with a type of `object`.","enum":["object_mapping"],"isRequired":true,"uniqueKey":"mapping.oneOf.0.type","typeLabel":"enum\u003cstring>"},"property_mappings":{"type":"array","description":"`property_mappings` define how a value for each property of the target attribute is constructed from a row of the source dataset.\n\nA mapping must be provided for each of the target attribute's _required_ properties.","items":{"type":"object","properties":{"expression":{"type":"string","description":"A raw SQL expression which produces a value from the source dataset for the target primitive attribute type.\n\nE.g. for a source dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"firstName\": {\n \"type\": \"string\"\n },\n \"lastName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastName\"\n ]\n}\n```\n\n\nValid expressions include:\n\n- Lower casing the first name:\n\n```sql\nlower(firstName)\n```\n\n- Constructing a \"full name\" from the first and last name:\n\n```sql\nconcat_ws(' ', coalesce(firstName, ''), lastName)\n```\n\n- Taking the first initial of the first name if is not null:\n\n```sql\ncase when firstName is not null and char_length(firstName) > 0 then substr(firstName, 1) else null end\n```","uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX].expression","typeLabel":"string"},"path":{"type":"string","description":"A string indicating which property of the target attribute the expression is producing a value for.\n\nE.g. for an attribute with the following type definition;\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"double\"\n },\n \"longitude\": {\n \"type\": \"double\"\n },\n \"location_accuracy\": {\n \"type\": \"object\",\n \"properties\": {\n \"horizontal\": {\n \"type\": \"double\"\n },\n \"vertical\": {\n \"type\": \"double\"\n }\n }\n }\n },\n \"required\": [\n \"latitude\",\n \"longitude\"\n ]\n}\n```\n\nThe possible paths are:\n\n- `latitude`\n- `longitude`\n- `location_accuracy.horizontal`\n- `location_accuracy.vertical`","uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX].path","typeLabel":"string"}},"uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"mapping.oneOf.0.property_mappings","typeLabel":"object[]"}},"uniqueKey":"mapping.oneOf.0","typeLabel":"object"},{"type":"object","description":"The transformation that produces the target attribute's value from the source attribute's value. Expressions\nreference the source attribute's shape through `$source` — for a rule from `raw_email` to `sha256_hashed_email`,\nthe `value` property maps to `SHA2(NORMALIZE_EMAIL($source.value), 256)`.\n\nThe shape mirrors mapping expressions, except `cached_mapping` is not allowed: a cached mapping reads values out\nof a stored dataset, so there would be nothing to substitute a `$source` reference into.\n\nExpressions may use the current date or time (`CURRENT_DATE`, `CURRENT_TIMESTAMP`, …): the expression runs when a\nquery resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum\nconstraints and validation expressions on the target attribute do not restrict the transformation, exactly as\nthey do not restrict a dataset mapping.","required":["type","expression"],"properties":{"type":{"type":"string","description":"A mapping from a dataset to an attribute with a primitive type, i.e. one of `array`, `boolean`, `double`, `long`, `string`, or `timestamptz`.","enum":["value_mapping"],"isRequired":true,"uniqueKey":"mapping.oneOf.1.type","typeLabel":"enum\u003cstring>"},"expression":{"type":"string","description":"A raw SQL expression which produces a value from the source dataset for the target primitive attribute type.\n\nE.g. for a source dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"firstName\": {\n \"type\": \"string\"\n },\n \"lastName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastName\"\n ]\n}\n```\n\n\nValid expressions include:\n\n- Lower casing the first name:\n\n```sql\nlower(firstName)\n```\n\n- Constructing a \"full name\" from the first and last name:\n\n```sql\nconcat_ws(' ', coalesce(firstName, ''), lastName)\n```\n\n- Taking the first initial of the first name if is not null:\n\n```sql\ncase when firstName is not null and char_length(firstName) > 0 then substr(firstName, 1) else null end\n```","isRequired":true,"uniqueKey":"mapping.oneOf.1.expression","typeLabel":"string"}},"uniqueKey":"mapping.oneOf.1","typeLabel":"object"}],"uniqueKey":"mapping","typeLabel":"object"},"lossy":{"type":"boolean","uniqueKey":"lossy","typeLabel":"boolean"},"imprecise":{"type":"boolean","uniqueKey":"imprecise","typeLabel":"boolean"},"fidelity_note":{"oneOf":[{"type":"string","maxLength":2048,"uniqueKey":"fidelity_note.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2048,"uniqueKey":"fidelity_note.oneOf.1","typeLabel":"null"}],"uniqueKey":"fidelity_note","typeLabel":"string | null"},"cost":{"type":"integer","minimum":1,"default":1,"description":"Breaks ties when more than one rule reaches the same target attribute — cheapest first. Resolution over multi-step\npaths sums the cost of every rule on a path and prefers the cheapest total.","uniqueKey":"cost","typeLabel":"integer"},"active":{"type":"boolean","uniqueKey":"active","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"name":"raw_email_to_sha256","description":"Hashes the raw email address with SHA-256.","collaborators":{"use":{"type":"none"}},"mapping":{"type":"object_mapping","property_mappings":[{"expression":"\u003cstring>","path":"\u003cstring>"}]},"lossy":true,"imprecise":true,"fidelity_note":"\u003cstring>","cost":1,"active":true}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"28f6bef9-058b-46f5-a3b7-983781a6daf8":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["id","name","description","source_attribute_id","target_attribute_id","company_id","collaborators","mapping","lossy","imprecise","fidelity_note","cost","active","created_at","created_by","updated_at","updated_by","warnings"],"properties":{"id":{"type":"integer","format":"int64","description":"Unique identifier of the derivation rule.","example":42,"isRequired":true,"uniqueKey":"id","typeLabel":"integer\u003cint64>"},"name":{"type":"string","maxLength":256,"description":"Name of the derivation rule, unique within the owning company.","example":"raw_email_to_sha256","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"description":{"type":"string","maxLength":2048,"description":"What the rule does, for whoever is deciding whether to accept derived data.","example":"Hashes the raw email address with SHA-256.","isRequired":true,"uniqueKey":"description","typeLabel":"string"},"source_attribute_id":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"source_attribute_id","typeLabel":"integer\u003cint64>"},"target_attribute_id":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"target_attribute_id","typeLabel":"integer\u003cint64>"},"company_id":{"type":"integer","format":"int64","isRequired":true,"uniqueKey":"company_id","typeLabel":"integer\u003cint64>"},"collaborators":{"type":"object","description":"Which companies, besides the one that owns the rule, may have the rule applied to their data. A rule grants a\nsingle thing, so there is one `use` dimension. Only Narrative can share a rule broadly — with `all` companies or\nwith everyone outside an `exclusion` set.","required":["use"],"properties":{"use":{"oneOf":[{"type":"object","description":"Which companies a grant applies to.","required":["type"],"properties":{"type":{"type":"string","enum":["none"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.0.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.0","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type"],"properties":{"type":{"type":"string","enum":["all"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.1","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["inclusion"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","format":"int64","minimum":1,"description":"Company ID","uniqueKey":"collaborators.use.oneOf.2.company_ids.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2.company_ids","typeLabel":"integer\u003cint64>[]"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.2","typeLabel":"object"},{"type":"object","description":"Which companies a grant applies to.","required":["type","company_ids"],"properties":{"type":{"type":"string","enum":["exclusion"],"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3.type","typeLabel":"enum\u003cstring>"},"company_ids":{"type":"array","minItems":1,"items":{"type":"integer","format":"int64","minimum":1,"description":"Company ID","uniqueKey":"collaborators.use.oneOf.3.company_ids.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3.company_ids","typeLabel":"integer\u003cint64>[]"}},"isRequired":true,"uniqueKey":"collaborators.use.oneOf.3","typeLabel":"object"}],"isRequired":true,"uniqueKey":"collaborators.use","typeLabel":"object"}},"example":{"use":{"type":"none"}},"isRequired":true,"uniqueKey":"collaborators","typeLabel":"object"},"mapping":{"oneOf":[{"type":"object","description":"The transformation that produces the target attribute's value from the source attribute's value. Expressions\nreference the source attribute's shape through `$source` — for a rule from `raw_email` to `sha256_hashed_email`,\nthe `value` property maps to `SHA2(NORMALIZE_EMAIL($source.value), 256)`.\n\nThe shape mirrors mapping expressions, except `cached_mapping` is not allowed: a cached mapping reads values out\nof a stored dataset, so there would be nothing to substitute a `$source` reference into.\n\nExpressions may use the current date or time (`CURRENT_DATE`, `CURRENT_TIMESTAMP`, …): the expression runs when a\nquery resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum\nconstraints and validation expressions on the target attribute do not restrict the transformation, exactly as\nthey do not restrict a dataset mapping.","required":["type","property_mappings"],"properties":{"type":{"type":"string","description":"A mapping from a dataset to an attribute with a type of `object`.","enum":["object_mapping"],"isRequired":true,"uniqueKey":"mapping.oneOf.0.type","typeLabel":"enum\u003cstring>"},"property_mappings":{"type":"array","description":"`property_mappings` define how a value for each property of the target attribute is constructed from a row of the source dataset.\n\nA mapping must be provided for each of the target attribute's _required_ properties.","items":{"type":"object","properties":{"expression":{"type":"string","description":"A raw SQL expression which produces a value from the source dataset for the target primitive attribute type.\n\nE.g. for a source dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"firstName\": {\n \"type\": \"string\"\n },\n \"lastName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastName\"\n ]\n}\n```\n\n\nValid expressions include:\n\n- Lower casing the first name:\n\n```sql\nlower(firstName)\n```\n\n- Constructing a \"full name\" from the first and last name:\n\n```sql\nconcat_ws(' ', coalesce(firstName, ''), lastName)\n```\n\n- Taking the first initial of the first name if is not null:\n\n```sql\ncase when firstName is not null and char_length(firstName) > 0 then substr(firstName, 1) else null end\n```","uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX].expression","typeLabel":"string"},"path":{"type":"string","description":"A string indicating which property of the target attribute the expression is producing a value for.\n\nE.g. for an attribute with the following type definition;\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"latitude\": {\n \"type\": \"double\"\n },\n \"longitude\": {\n \"type\": \"double\"\n },\n \"location_accuracy\": {\n \"type\": \"object\",\n \"properties\": {\n \"horizontal\": {\n \"type\": \"double\"\n },\n \"vertical\": {\n \"type\": \"double\"\n }\n }\n }\n },\n \"required\": [\n \"latitude\",\n \"longitude\"\n ]\n}\n```\n\nThe possible paths are:\n\n- `latitude`\n- `longitude`\n- `location_accuracy.horizontal`\n- `location_accuracy.vertical`","uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX].path","typeLabel":"string"}},"uniqueKey":"mapping.oneOf.0.property_mappings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"mapping.oneOf.0.property_mappings","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"mapping.oneOf.0","typeLabel":"object"},{"type":"object","description":"The transformation that produces the target attribute's value from the source attribute's value. Expressions\nreference the source attribute's shape through `$source` — for a rule from `raw_email` to `sha256_hashed_email`,\nthe `value` property maps to `SHA2(NORMALIZE_EMAIL($source.value), 256)`.\n\nThe shape mirrors mapping expressions, except `cached_mapping` is not allowed: a cached mapping reads values out\nof a stored dataset, so there would be nothing to substitute a `$source` reference into.\n\nExpressions may use the current date or time (`CURRENT_DATE`, `CURRENT_TIMESTAMP`, …): the expression runs when a\nquery resolves the rule, so a rule like birthdate → age in years is correct as of each query that uses it. Enum\nconstraints and validation expressions on the target attribute do not restrict the transformation, exactly as\nthey do not restrict a dataset mapping.","required":["type","expression"],"properties":{"type":{"type":"string","description":"A mapping from a dataset to an attribute with a primitive type, i.e. one of `array`, `boolean`, `double`, `long`, `string`, or `timestamptz`.","enum":["value_mapping"],"isRequired":true,"uniqueKey":"mapping.oneOf.1.type","typeLabel":"enum\u003cstring>"},"expression":{"type":"string","description":"A raw SQL expression which produces a value from the source dataset for the target primitive attribute type.\n\nE.g. for a source dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"firstName\": {\n \"type\": \"string\"\n },\n \"lastName\": {\n \"type\": \"string\"\n }\n },\n \"required\": [\n \"lastName\"\n ]\n}\n```\n\n\nValid expressions include:\n\n- Lower casing the first name:\n\n```sql\nlower(firstName)\n```\n\n- Constructing a \"full name\" from the first and last name:\n\n```sql\nconcat_ws(' ', coalesce(firstName, ''), lastName)\n```\n\n- Taking the first initial of the first name if is not null:\n\n```sql\ncase when firstName is not null and char_length(firstName) > 0 then substr(firstName, 1) else null end\n```","isRequired":true,"uniqueKey":"mapping.oneOf.1.expression","typeLabel":"string"}},"isRequired":true,"uniqueKey":"mapping.oneOf.1","typeLabel":"object"}],"isRequired":true,"uniqueKey":"mapping","typeLabel":"object"},"lossy":{"type":"boolean","isRequired":true,"uniqueKey":"lossy","typeLabel":"boolean"},"imprecise":{"type":"boolean","isRequired":true,"uniqueKey":"imprecise","typeLabel":"boolean"},"fidelity_note":{"oneOf":[{"type":"string","maxLength":2048,"description":"Explains the `lossy` and `imprecise` flags to whoever is deciding whether to accept derived data. `null` when\nthe rule has no note.","isRequired":true,"uniqueKey":"fidelity_note.oneOf.0","typeLabel":"string"},{"type":"null","maxLength":2048,"description":"Explains the `lossy` and `imprecise` flags to whoever is deciding whether to accept derived data. `null` when\nthe rule has no note.","isRequired":true,"uniqueKey":"fidelity_note.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"fidelity_note","typeLabel":"string | null"},"cost":{"type":"integer","minimum":1,"default":1,"description":"Breaks ties when more than one rule reaches the same target attribute — cheapest first. Resolution over multi-step\npaths sums the cost of every rule on a path and prefers the cheapest total.","isRequired":true,"uniqueKey":"cost","typeLabel":"integer"},"active":{"type":"boolean","isRequired":true,"uniqueKey":"active","typeLabel":"boolean"},"created_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"created_at","typeLabel":"string\u003cdate-time>"},"created_by":{"type":"integer","format":"int64","description":"Id of the user who created the rule.","isRequired":true,"uniqueKey":"created_by","typeLabel":"integer\u003cint64>"},"updated_at":{"type":"string","format":"date-time","isRequired":true,"uniqueKey":"updated_at","typeLabel":"string\u003cdate-time>"},"updated_by":{"type":"integer","format":"int64","description":"Id of the user who last updated the rule.","isRequired":true,"uniqueKey":"updated_by","typeLabel":"integer\u003cint64>"},"warnings":{"type":"array","description":"Populated on create and update responses; empty on reads.","items":{"type":"object","description":"A condition worth knowing about that did not stop the rule from being written. Returned on create and update\nresponses; list and get responses do not compute warnings.","required":["type","cycle"],"properties":{"type":{"type":"string","enum":["cyclic_derivation"],"isRequired":true,"uniqueKey":"warnings.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"cycle":{"type":"array","description":"The rule closes a cycle in the derivation graph. Lists the attribute ids visited in order, starting from the\nrule's source attribute; the closing step back to the first id is implied. Cycle detection is bounded: only\ncycles of up to 6 attributes are reported, and at most 10 come back.","minItems":1,"items":{"type":"integer","format":"int64","uniqueKey":"warnings.items.[INDEX].cycle.items.[INDEX]","typeLabel":"integer\u003cint64>"},"isRequired":true,"uniqueKey":"warnings.items.[INDEX].cycle","typeLabel":"integer\u003cint64>[]"}},"uniqueKey":"warnings.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"warnings","typeLabel":"object[]"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"id":42,"name":"raw_email_to_sha256","description":"Hashes the raw email address with SHA-256.","source_attribute_id":123,"target_attribute_id":123,"company_id":123,"collaborators":{"use":{"type":"none"}},"mapping":{"type":"object_mapping","property_mappings":[{"expression":"\u003cstring>","path":"\u003cstring>"}]},"lossy":true,"imprecise":true,"fidelity_note":"\u003cstring>","cost":1,"active":true,"created_at":"2023-11-07T05:31:56Z","created_by":123,"updated_at":"2023-11-07T05:31:56Z","updated_by":123,"warnings":[{"type":"cyclic_derivation","cycle":[123]}]}}},"exampleType":"generated"}},"exampleType":"generated"},"f9d1229d-b5a0-4b45-adf8-c9efca86973f":{"description":"The update is invalid — see the error message for the specific validation failure.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"5a782ba1-29d3-4871-baa7-61ead474e6ae":{"description":"The request is not allowed with the token sent, or no valid token was sent.","content":{"application/json":{"schema":{"type":"object","required":["error","error_description"],"properties":{"error":{"type":"string","example":"Unauthorized","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_description":{"type":"string","example":"You are not authorized to use this endpoint.","isRequired":true,"uniqueKey":"error_description","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized","error_description":"You are not authorized to use this endpoint."}}},"exampleType":"generated"}},"exampleType":"generated"},"a0a39929-df9a-457e-8407-177e3be72657":{"description":"No derivation rule with that id.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}},"fa056763-01b3-47e2-8c08-c9f6b18d8013":{"description":"The new name is already taken by another of the company's rules.","content":{"_mintlify/placeholder":{"schema":{"type":"object","description":""}}}}},"security":{"a1b03c07-e5a6-4de8-a01f-7060e6e754a2":{"BearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"}}},"servers":{"da33ef7e-c9ea-466d-b7d1-c2d3c2623ccd":{"url":"https://api-dev.narrative.io"},"49d111d4-7e28-4629-8677-904ae5faace8":{"url":"https://api.narrative.io"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"}]},"originalFileLocation":"https://docs-cdn.narrative.io/api-reference/main/openapi.json"},"subdomain":"narrative-07c7a1f7","siteName":"Narrative I/O Knowledge Base","title":"Update a derivation rule - Narrative I/O Knowledge Base","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-12T18:20:54.511Z","originalFileLocation":"api-reference/derivations/update-a-derivation-rule.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the company that owns a rule can change it. Only the fields present in the request change; a changed transformation runs the same validation as a creation. Set fidelity_note to null to clear it. A rule\u0026#x27;s source and target attributes cannot be changed — create a new rule instead.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Update a derivation rule - Narrative I/O Knowledge Base\">\u003cmeta data-mint-head property=\"og:description\" content=\"Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the company that owns a rule can change it. Only the fields present in the request change; a changed transformation runs the same validation as a creation. Set fidelity_note to null to clear it. A rule\u0026#x27;s source and target attributes cannot be changed — create a new rule instead.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://narrative-07c7a1f7.mintlify.site/_mintlify/api/og/v2?division=Derivations\u0026amp;title=Update+a+derivation+rule\u0026amp;description=Update+some+fields+of+a+derivation+rule.+Requires+an+%60admin%60+grant+on+%60attribute_derivations%60%2C+and+only+the%0Acompany+that+owns+a+rule+can+change+it.+Only+the+fie\u0026amp;theme=ea22b67648b2d3a364e0af75\u0026amp;signature=3281d19d854229cc2ee121f1581fc7aac31a1de35e877ca6d3d6a8032890651d\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Update a derivation rule - Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the company that owns a rule can change it. Only the fields present in the request change; a changed transformation runs the same validation as a creation. Set fidelity_note to null to clear it. A rule\u0026#x27;s source and target attributes cannot be changed — create a new rule instead.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://narrative-07c7a1f7.mintlify.site/_mintlify/api/og/v2?division=Derivations\u0026amp;title=Update+a+derivation+rule\u0026amp;description=Update+some+fields+of+a+derivation+rule.+Requires+an+%60admin%60+grant+on+%60attribute_derivations%60%2C+and+only+the%0Acompany+that+owns+a+rule+can+change+it.+Only+the+fie\u0026amp;theme=ea22b67648b2d3a364e0af75\u0026amp;signature=3281d19d854229cc2ee121f1581fc7aac31a1de35e877ca6d3d6a8032890651d\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/narrative-07c7a1f7/OOk68seBU2ePTAv6/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#1438F5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/derivations/update-a-derivation-rule.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.narrative.io/#organization\",\"name\":\"Narrative I/O Knowledge Base\",\"url\":\"https://docs.narrative.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/narrative-07c7a1f7/ia6SQX79O4nc7uYf/logo/banner.png?fit=max\u0026auto=format\u0026n=ia6SQX79O4nc7uYf\u0026q=85\u0026s=99860b25011c79366624a87d1f648861\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.narrative.io#website\",\"name\":\"Narrative I/O Knowledge Base\",\"url\":\"https://docs.narrative.io\",\"publisher\":{\"@id\":\"https://docs.narrative.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule#webpage\",\"url\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule\",\"name\":\"Update a derivation rule\",\"description\":\"Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the company that owns a rule can change it. Only the fields present in the request change; a changed transformation runs the same validation as a creation. Set fidelity_note to null to clear it. A rule's source and target attributes cannot be changed — create a new rule instead.\",\"dateModified\":\"2026-11-12T18:20:54.511Z\",\"isPartOf\":{\"@id\":\"https://docs.narrative.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Derivations\",\"item\":\"https://docs.narrative.io/api-reference/derivations/get-derivation-rules\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Update a derivation rule\",\"item\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule#apireference\",\"headline\":\"Update a derivation rule\",\"name\":\"Update a derivation rule\",\"description\":\"Update some fields of a derivation rule. Requires an admin grant on attribute_derivations, and only the company that owns a rule can change it. Only the fields present in the request change; a changed transformation runs the same validation as a creation. Set fidelity_note to null to clear it. A rule's source and target attributes cannot be changed — create a new rule instead.\",\"url\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule\",\"mainEntityOfPage\":{\"@id\":\"https://docs.narrative.io/api-reference/derivations/update-a-derivation-rule#webpage\"},\"dateModified\":\"2026-11-12T18:20:54.511Z\",\"publisher\":{\"@id\":\"https://docs.narrative.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.narrative.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Narrative I/O Knowledge Base\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Narrative I/O Knowledge Base\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/derivations/update-a-derivation-rule.md","siteName":"Narrative I/O Knowledge Base","nav":{"global":{"anchors":[{"anchor":"Release Notes","icon":"clock-rotate-left","href":"/release-notes"}]},"tabs":[{"tab":"Getting Started","pages":[{"title":"Getting Started","href":"/getting-started/create-account"}]},{"tab":"Concepts","pages":[{"title":"Concepts","href":"/concepts"}]},{"tab":"Guides","pages":[{"title":"Guides","href":"/guides"}]},{"tab":"Cookbooks","pages":[{"title":"Cookbooks","href":"/cookbooks"}]},{"tab":"Reference","pages":[{"title":"Reference","href":"/reference"}]},{"tab":"Connectors","pages":[{"title":"Connectors","href":"/reference/connectors"}]},{"tab":"NQL","pages":[{"title":"NQL","href":"/nql"}]},{"tab":"API Documentation","groups":[{"group":"Overview","pages":[{"title":"REST API","href":"/api-reference/introduction"}]},{"group":"Access Rules","pages":[{"title":"Get an Access Rule by id (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/get-an-access-rule-by-id-v2"},{"title":"Update an Access Rule by id (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/update-an-access-rule-by-id-v2"},{"title":"Delete an access rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/access-rules/{access_rule_id}","href":"/api-reference/access-rules/delete-an-access-rule"},{"title":"Get the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/get-the-query-policy-of-an-access-rule"},{"title":"Set the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/set-the-query-policy-of-an-access-rule"},{"title":"Remove the query policy of an Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/access-rules/{access_rule_id}/query-policy","href":"/api-reference/access-rules/remove-the-query-policy-of-an-access-rule"},{"title":"Get an Access Rule by name (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules/{company_slug}/{access_rule_name}","href":"/api-reference/access-rules/get-an-access-rule-by-name-v2"},{"title":"Get all accessible Access Rules (V2)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/access-rules","href":"/api-reference/access-rules/get-all-accessible-access-rules-v2"},{"title":"Create a new Access Rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/access-rules","href":"/api-reference/access-rules/create-a-new-access-rule"}]},{"group":"Access Tokens","pages":[{"title":"List Access Tokens","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /access-tokens/tokens","href":"/api-reference/access-tokens/list-access-tokens"},{"title":"Create Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /access-tokens/tokens","href":"/api-reference/access-tokens/create-access-token"},{"title":"Get Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/get-access-token"},{"title":"Update Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/update-access-token"},{"title":"Delete Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /access-tokens/tokens/{access_token_id}","href":"/api-reference/access-tokens/delete-access-token"},{"title":"Rotate Access Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /access-tokens/tokens/{access_token_id}/rotate","href":"/api-reference/access-tokens/rotate-access-token"}]},{"group":"Agent Conversations","pages":[{"title":"List the calling user's agent conversations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations","href":"/api-reference/agent-conversations/list-the-calling-users-agent-conversations"},{"title":"Create an agent conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations","href":"/api-reference/agent-conversations/create-an-agent-conversation"},{"title":"Get an agent conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations/{id}","href":"/api-reference/agent-conversations/get-an-agent-conversation"},{"title":"List conversation messages (delta read by version cursor)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/conversations/{id}/messages","href":"/api-reference/agent-conversations/list-conversation-messages-delta-read-by-version-cursor"},{"title":"Start a new run on the conversation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations/{id}/runs","href":"/api-reference/agent-conversations/start-a-new-run-on-the-conversation"},{"title":"Stop waiting on a handle","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /agents/conversations/{id}/waitables/{handle}/cancel","href":"/api-reference/agent-conversations/stop-waiting-on-a-handle"},{"title":"Get a run's current state","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /agents/runs/{id}","href":"/api-reference/agent-conversations/get-a-runs-current-state"}]},{"group":"App API","pages":[{"title":"Delivery Commands","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v1/app/commands/delivery","href":"/api-reference/app-api/delivery-commands"},{"title":"Delivery Files","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v1/app/commands/delivery/{delivery_id}/files","href":"/api-reference/app-api/delivery-files"},{"title":"Download file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/app/commands/delivery/{delivery_id}/download/{filename}","href":"/api-reference/app-api/download-file"}]},{"group":"App Invites","pages":[{"title":"List App Invites","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites","href":"/api-reference/app-invites/list-app-invites"},{"title":"Create App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /app-invites","href":"/api-reference/app-invites/create-app-invite"},{"title":"Get App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites/{id}","href":"/api-reference/app-invites/get-app-invite"},{"title":"Archive App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /app-invites/{id}","href":"/api-reference/app-invites/archive-app-invite"},{"title":"Activate App Invite","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /app-invites/{id}/activate","href":"/api-reference/app-invites/activate-app-invite"},{"title":"Get App Invite By Code","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /app-invites/codes/{code}","href":"/api-reference/app-invites/get-app-invite-by-code"}]},{"group":"Apps","pages":[{"title":"Lists apps","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps","href":"/api-reference/apps/lists-apps"},{"title":"Publish app event","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /apps/events","href":"/api-reference/apps/publish-app-event"},{"title":"List installed app interfaces","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/installed/interfaces","href":"/api-reference/apps/list-installed-app-interfaces"},{"title":"List app interfaces","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_id}/interfaces","href":"/api-reference/apps/list-app-interfaces"},{"title":"Get an app interface","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_id}/interfaces/{interface_id}","href":"/api-reference/apps/get-an-app-interface"},{"title":"Lists profiles","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_slug}/profiles","href":"/api-reference/apps/lists-profiles"},{"title":"Get an app's v1 manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /apps/{app_slug}/manifest","href":"/api-reference/apps/get-an-apps-v1-manifest"},{"title":"List Apps","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/apps","href":"/api-reference/apps/list-apps"},{"title":"Create App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/apps","href":"/api-reference/apps/create-app"},{"title":"Get App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/apps/{slug}","href":"/api-reference/apps/get-app"},{"title":"Archive App","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/apps/{slug}","href":"/api-reference/apps/archive-app"},{"title":"Replace App Manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/apps/{slug}/manifest","href":"/api-reference/apps/replace-app-manifest"},{"title":"Patch App Manifest","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /v2/apps/{slug}/manifest","href":"/api-reference/apps/patch-app-manifest"},{"title":"Replace App Collaborators","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/apps/{slug}/collaborators","href":"/api-reference/apps/replace-app-collaborators"},{"title":"Generate App Credentials","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/apps/{slug}/credentials/generate","href":"/api-reference/apps/generate-app-credentials"}]},{"group":"Attributes","pages":[{"title":"Get attributes","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes","href":"/api-reference/attributes/get-attributes"},{"title":"Create an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /attributes","href":"/api-reference/attributes/create-an-attribute"},{"title":"Get an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/get-an-attribute"},{"title":"Update an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/update-an-attribute"},{"title":"Delete an attribute","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /attributes/{attribute_name_or_id}","href":"/api-reference/attributes/delete-an-attribute"},{"title":"Get attribute references.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}/references","href":"/api-reference/attributes/get-attribute-references"},{"title":"Get the derivation graph around an attribute.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /attributes/{attribute_name_or_id}/derivation-graph","href":"/api-reference/attributes/get-the-derivation-graph-around-an-attribute"}]},{"group":"Auth","pages":[{"title":"Request or refresh an OAuth token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /oauth/token","href":"/api-reference/auth/request-or-refresh-an-oauth-token"}]},{"group":"Authentication","pages":[{"title":"Sign in with a Stytch B2B session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/login","href":"/api-reference/authentication/sign-in-with-a-stytch-b2b-session-token"},{"title":"Register with a Stytch B2B session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/register","href":"/api-reference/authentication/register-with-a-stytch-b2b-session-token"},{"title":"Check whether a Stytch B2B member is registered on Narrative","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/b2b/registration-status","href":"/api-reference/authentication/check-whether-a-stytch-b2b-member-is-registered-on-narrative"},{"title":"Exchange a user token for one scoped to another company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/exchange-token","href":"/api-reference/authentication/exchange-a-user-token-for-one-scoped-to-another-company"},{"title":"Sign in with a Stytch session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/login","href":"/api-reference/authentication/sign-in-with-a-stytch-session-token"},{"title":"Register with a Stytch session token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/register","href":"/api-reference/authentication/register-with-a-stytch-session-token"},{"title":"Check whether a Stytch Magic Links or OAuth user is registered on Narrative","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /authentication/registration-status","href":"/api-reference/authentication/check-whether-a-stytch-magic-links-or-oauth-user-is-registered-on-narrative"}]},{"group":"Billings","pages":[{"title":"Get dataset storage billing","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /admin/billings/dataset-storage-billing","href":"/api-reference/billings/get-dataset-storage-billing"},{"title":"Get dataset storage billing for company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /billings/dataset-storage-billing","href":"/api-reference/billings/get-dataset-storage-billing-for-company"}]},{"group":"Companies","pages":[{"title":"Lists Company Domains","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /companies/{company_id}/domains","href":"/api-reference/companies/lists-company-domains"},{"title":"Get a presigned URL to upload company logo","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /admin/companies/logo-upload-url","href":"/api-reference/companies/get-a-presigned-url-to-upload-company-logo"}]},{"group":"Company","pages":[{"title":"Get a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /companies/{company_id}","href":"/api-reference/company/get-a-company"},{"title":"Get a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company/{company_id}","href":"/api-reference/company/get-a-company-1"},{"title":"Update a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /company/{company_id}","href":"/api-reference/company/update-a-company"},{"title":"Delete (archive) a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /company/{company_id}","href":"/api-reference/company/delete-archive-a-company"},{"title":"Clear the company's default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /company/{company_id}/data-planes/{data_plane_id}/default-compute-pool","href":"/api-reference/company/clear-the-companys-default-compute-pool-for-a-data-plane"},{"title":"Set the company's default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /company/{company_id}/data-planes/{data_plane_id}/default-compute-pool/{compute_pool_id}","href":"/api-reference/company/set-the-companys-default-compute-pool-for-a-data-plane"},{"title":"Update a user","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /users/{user_id}","href":"/api-reference/company/update-a-user"}]},{"group":"Company Marketing Information","pages":[{"title":"Returns the company and user associated with the token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company-info/whoami","href":"/api-reference/company-marketing-information/returns-the-company-and-user-associated-with-the-token"},{"title":"Get marketing details on a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /company-info/{company_id}","href":"/api-reference/company-marketing-information/get-marketing-details-on-a-company"}]},{"group":"Compute Pools","pages":[{"title":"List compute pools","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}/compute-pools","href":"/api-reference/compute-pools/list-compute-pools"},{"title":"Create a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/compute-pools","href":"/api-reference/compute-pools/create-a-compute-pool"},{"title":"Get a compute pool by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/get-a-compute-pool-by-id"},{"title":"Update a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/update-a-compute-pool"},{"title":"Archive a compute pool","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/compute-pools/{compute_pool_id}","href":"/api-reference/compute-pools/archive-a-compute-pool"}]},{"group":"Connections","pages":[{"title":"List connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/connections","href":"/api-reference/connections/list-connections"},{"title":"Create a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/connections","href":"/api-reference/connections/create-a-connection"},{"title":"Get a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/connections/{connection_id}","href":"/api-reference/connections/get-a-connection"},{"title":"Archive a connection","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/connections/{connection_id}","href":"/api-reference/connections/archive-a-connection"}]},{"group":"Data Planes","pages":[{"title":"List data planes","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes","href":"/api-reference/data-planes/list-data-planes"},{"title":"Create a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes","href":"/api-reference/data-planes/create-a-data-plane"},{"title":"Get a data plane by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /data-planes/{data_plane_id}","href":"/api-reference/data-planes/get-a-data-plane-by-id"},{"title":"Archive a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}","href":"/api-reference/data-planes/archive-a-data-plane"},{"title":"Update a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /data-planes/{data_plane_id}","href":"/api-reference/data-planes/update-a-data-plane"},{"title":"Data plane heartbeat","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/heartbeat","href":"/api-reference/data-planes/data-plane-heartbeat"},{"title":"Trigger a health check","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /data-planes/{data_plane_id}/health-check","href":"/api-reference/data-planes/trigger-a-health-check"},{"title":"Replace the collaborators on a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/collaborators","href":"/api-reference/data-planes/replace-the-collaborators-on-a-data-plane"},{"title":"Add a collaborator to a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/collaborators/{collaborator_company_id}","href":"/api-reference/data-planes/add-a-collaborator-to-a-data-plane"},{"title":"Remove a collaborator from a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/collaborators/{collaborator_company_id}","href":"/api-reference/data-planes/remove-a-collaborator-from-a-data-plane"},{"title":"Set the default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /data-planes/{data_plane_id}/default-compute-pool/{compute_pool_id}","href":"/api-reference/data-planes/set-the-default-compute-pool-for-a-data-plane"},{"title":"Clear the default compute pool for a data plane","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /data-planes/{data_plane_id}/default-compute-pool","href":"/api-reference/data-planes/clear-the-default-compute-pool-for-a-data-plane"}]},{"group":"Dataset Configuration","pages":[{"title":"Preview snapshot expirations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/retention-policy/preview","href":"/api-reference/dataset-configuration/preview-snapshot-expirations"},{"title":"Upsert retention policies for a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/retention-policy","href":"/api-reference/dataset-configuration/upsert-retention-policies-for-a-dataset"}]},{"group":"Dataset Files","pages":[{"title":"Files added","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/snapshots/{snapshot_id}/files-added","href":"/api-reference/dataset-files/files-added"},{"title":"Find snapshots","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/find-snapshots","href":"/api-reference/dataset-files/find-snapshots"},{"title":"Find files","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/find-files","href":"/api-reference/dataset-files/find-files"},{"title":"Issue file download url","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/snapshots/{snapshot_id}/files-added/{file_id}/download","href":"/api-reference/dataset-files/issue-file-download-url"}]},{"group":"Dataset Refresh","pages":[{"title":"Update the materialized view refresh configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/update-the-materialized-view-refresh-configuration"},{"title":"Create a refresh schedule for an existing materialized view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/create-a-refresh-schedule-for-an-existing-materialized-view"},{"title":"Archive the materialized view refresh configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/refresh-schedule","href":"/api-reference/dataset-refresh/archive-the-materialized-view-refresh-configuration"},{"title":"Run a materialized view refresh now","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/refresh-materialized-view","href":"/api-reference/dataset-refresh/run-a-materialized-view-refresh-now"}]},{"group":"Dataset Samples","pages":[{"title":"Sample a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/sample-a-dataset"},{"title":"Upload a sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/upload-a-sample"},{"title":"Delete a sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/sample","href":"/api-reference/dataset-samples/delete-a-sample"},{"title":"Sample a dataset (Admin)","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/admin/sample","href":"/api-reference/dataset-samples/sample-a-dataset-admin"},{"title":"Request Dataset Sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/request-sample","href":"/api-reference/dataset-samples/request-dataset-sample"},{"title":"Sample a dataset and redact the sample","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/datasets/{dataset_id}/request-sample","href":"/api-reference/dataset-samples/sample-a-dataset-and-redact-the-sample"},{"title":"Get a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/get-a-datasets-sample-redaction"},{"title":"Upload a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/upload-a-datasets-sample-redaction"},{"title":"Delete a dataset's sample redaction","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/redaction","href":"/api-reference/dataset-samples/delete-a-datasets-sample-redaction"},{"title":"Sample a dataset with its redaction applied","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample/redacted","href":"/api-reference/dataset-samples/sample-a-dataset-with-its-redaction-applied"},{"title":"Sampled Mappings","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/sample/mappings","href":"/api-reference/dataset-samples/sampled-mappings"}]},{"group":"Dataset Statistics","pages":[{"title":"Get Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/get-statistics-configuration"},{"title":"Put Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/put-statistics-configuration"},{"title":"Disable Statistics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/statistics-configuration","href":"/api-reference/dataset-statistics/disable-statistics-configuration"}]},{"group":"Datasets","pages":[{"title":"Get datasets","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets","href":"/api-reference/datasets/get-datasets"},{"title":"Create a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets","href":"/api-reference/datasets/create-a-dataset"},{"title":"Get a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}","href":"/api-reference/datasets/get-a-dataset"},{"title":"Update a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}","href":"/api-reference/datasets/update-a-dataset"},{"title":"Delete a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}","href":"/api-reference/datasets/delete-a-dataset"},{"title":"Activate a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/activate","href":"/api-reference/datasets/activate-a-dataset"},{"title":"Activate a dataset","deprecated":true,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/activate","href":"/api-reference/datasets/activate-a-dataset-1"},{"title":"Truncate a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/truncate","href":"/api-reference/datasets/truncate-a-dataset"},{"title":"Get admin info for a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/admin","href":"/api-reference/datasets/get-admin-info-for-a-dataset"},{"title":"Update a dataset's partition spec","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/admin/partition-spec","href":"/api-reference/datasets/update-a-datasets-partition-spec"},{"title":"Get dataset statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/stats","href":"/api-reference/datasets/get-dataset-statistics"},{"title":"Get detailed statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/column-stats","href":"/api-reference/datasets/get-detailed-statistics"},{"title":"Create or Update detailed statistics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/column-stats","href":"/api-reference/datasets/create-or-update-detailed-statistics"},{"title":"Submit recalculation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/column-stats/recalculate","href":"/api-reference/datasets/submit-recalculation"},{"title":"Ingest a file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/upload","href":"/api-reference/datasets/ingest-a-file"},{"title":"Issue an ingestion token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/upload/token","href":"/api-reference/datasets/issue-an-ingestion-token"},{"title":"List connector interfaces compatible with a dataset","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/interfaces","href":"/api-reference/datasets/list-connector-interfaces-compatible-with-a-dataset"}]},{"group":"Derivations","pages":[{"title":"Get derivation rules","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /derivations","href":"/api-reference/derivations/get-derivation-rules"},{"title":"Create a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /derivations","href":"/api-reference/derivations/create-a-derivation-rule"},{"title":"Get a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /derivations/{derivation_id}","href":"/api-reference/derivations/get-a-derivation-rule"},{"title":"Delete a derivation rule","description":"Permanently remove a derivation rule. Requires an `admin` grant on `attribute_derivations`, and only the company\nthat owns a rule can delete it. Deletions cannot be undone; to take a rule out of use while keeping it, set\n`active` to `false` instead.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /derivations/{derivation_id}","href":"/api-reference/derivations/delete-a-derivation-rule"},{"title":"Update a derivation rule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json patch /derivations/{derivation_id}","href":"/api-reference/derivations/update-a-derivation-rule"}]},{"group":"Encryption Materials","pages":[{"title":"List encryption materials","description":"List the encryption materials your company owns and the ones other companies share with it. The response does\nnot contain the keys themselves.\n\nRequires read access to data_planes.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials","href":"/api-reference/encryption-materials/list-encryption-materials"},{"title":"Create an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /encryption-materials","href":"/api-reference/encryption-materials/create-an-encryption-material"},{"title":"List decrypted encryption materials","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials/decrypted","href":"/api-reference/encryption-materials/list-decrypted-encryption-materials"},{"title":"Get an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/get-an-encryption-material"},{"title":"Update an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/update-an-encryption-material"},{"title":"Archive an encryption material","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /encryption-materials/{encryption_material_id}","href":"/api-reference/encryption-materials/archive-an-encryption-material"}]},{"group":"Installations","pages":[{"title":"List Installations","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations","href":"/api-reference/installations/list-installations"},{"title":"Create Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations","href":"/api-reference/installations/create-installation"},{"title":"Whoami Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/whoami","href":"/api-reference/installations/whoami-installation"},{"title":"Get Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{id}","href":"/api-reference/installations/get-installation"},{"title":"Delete Installation","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /installations/{id}","href":"/api-reference/installations/delete-installation"},{"title":"Create Installation Token","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{id}/token","href":"/api-reference/installations/create-installation-token"}]},{"group":"Jobs","pages":[{"title":"Get jobs","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /jobs","href":"/api-reference/jobs/get-jobs"},{"title":"Get a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /jobs/{job_id}","href":"/api-reference/jobs/get-a-job"},{"title":"Run a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/run","href":"/api-reference/jobs/run-a-job"},{"title":"Schedule a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/schedule","href":"/api-reference/jobs/schedule-a-job"},{"title":"Complete a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/complete","href":"/api-reference/jobs/complete-a-job"},{"title":"Fail a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/fail","href":"/api-reference/jobs/fail-a-job"},{"title":"Request cancellation of a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/request-cancellation","href":"/api-reference/jobs/request-cancellation-of-a-job"},{"title":"Cancel a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/cancel","href":"/api-reference/jobs/cancel-a-job"},{"title":"Reschedule a job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /jobs/{job_id}/reschedule","href":"/api-reference/jobs/reschedule-a-job"}]},{"group":"Mappings","pages":[{"title":"Get mappings","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings","href":"/api-reference/mappings/get-mappings"},{"title":"Get mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/{mapping_id}","href":"/api-reference/mappings/get-mapping"},{"title":"Update a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /mappings/{mapping_id}","href":"/api-reference/mappings/update-a-mapping"},{"title":"Delete a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /mappings/{mapping_id}","href":"/api-reference/mappings/delete-a-mapping"},{"title":"Accept a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/{mapping_id}/accept","href":"/api-reference/mappings/accept-a-mapping"},{"title":"Get mappings for a company","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/companies/{company_id}","href":"/api-reference/mappings/get-mappings-for-a-company"},{"title":"Create a mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/companies/{company_id}","href":"/api-reference/mappings/create-a-mapping"},{"title":"Get mapping preview","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mappings/{mapping_id}/sample","href":"/api-reference/mappings/get-mapping-preview"},{"title":"Test Mapping","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mappings/test","href":"/api-reference/mappings/test-mapping"}]},{"group":"MCP Connections","pages":[{"title":"List the calling user's external MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections","href":"/api-reference/mcp-connections/list-the-calling-users-external-mcp-connections"},{"title":"Begin connecting an external MCP server","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mcp-connections","href":"/api-reference/mcp-connections/begin-connecting-an-external-mcp-server"},{"title":"OAuth redirect target that receives the authorization code","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections/callback","href":"/api-reference/mcp-connections/oauth-redirect-target-that-receives-the-authorization-code"},{"title":"Finish connecting an external MCP server","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /mcp-connections/complete","href":"/api-reference/mcp-connections/finish-connecting-an-external-mcp-server"},{"title":"Get one of the calling user's MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /mcp-connections/{id}","href":"/api-reference/mcp-connections/get-one-of-the-calling-users-mcp-connections"},{"title":"Delete one of the calling user's MCP connections","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /mcp-connections/{id}","href":"/api-reference/mcp-connections/delete-one-of-the-calling-users-mcp-connections"}]},{"group":"Model Inference","pages":[{"title":"Run model inference","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /model-inference/run","href":"/api-reference/model-inference/run-model-inference"}]},{"group":"Model Training","pages":[{"title":"Fine-tune a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /model-training/run","href":"/api-reference/model-training/fine-tune-a-model"},{"title":"Train a classifier","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/model-training/train-classifier","href":"/api-reference/model-training/train-a-classifier"}]},{"group":"Models","pages":[{"title":"Get models","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /models","href":"/api-reference/models/get-models"},{"title":"Get a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /models/{model_id}","href":"/api-reference/models/get-a-model"},{"title":"Update a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /models/{model_id}","href":"/api-reference/models/update-a-model"},{"title":"Archive a model","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /models/{model_id}","href":"/api-reference/models/archive-a-model"}]},{"group":"NQL","pages":[{"title":"Validate an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /nql/validate","href":"/api-reference/nql/validate-an-nql-statement"},{"title":"Simulate an NQL query against access rules","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/nql/simulate","href":"/api-reference/nql/simulate-an-nql-query-against-access-rules"},{"title":"Parse an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /nql/parse","href":"/api-reference/nql/parse-an-nql-statement"},{"title":"Check Name Availability","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /nql/name-availability","href":"/api-reference/nql/check-name-availability"},{"title":"Execute an NQL statement","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v1/nql/execute","href":"/api-reference/nql/execute-an-nql-statement"},{"title":"Get a forecast job","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /nql/{job_id}","href":"/api-reference/nql/get-a-forecast-job"}]},{"group":"Permissions","pages":[{"title":"Create a permission","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /admin/permissions","href":"/api-reference/permissions/create-a-permission"}]},{"group":"Profiles","pages":[{"title":"Returns app profiles","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{installation_id}/profiles","href":"/api-reference/profiles/returns-app-profiles"},{"title":"Creates an app profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles","href":"/api-reference/profiles/creates-an-app-profile"},{"title":"Returns profile with {profile_id}","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /installations/{installation_id}/profiles/{app_profile_id}","href":"/api-reference/profiles/returns-profile-with-"},{"title":"Updates an existing app profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /installations/{installation_id}/profiles/{app_profile_id}","href":"/api-reference/profiles/updates-an-existing-app-profile"},{"title":"Enables a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/enable","href":"/api-reference/profiles/enables-a-profile"},{"title":"Disables a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/disable","href":"/api-reference/profiles/disables-a-profile"},{"title":"Archives a profile","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /installations/{installation_id}/profiles/{app_profile_id}/archive","href":"/api-reference/profiles/archives-a-profile"}]},{"group":"Queries","pages":[{"title":"Get a query by id","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/queries/{query_id}","href":"/api-reference/queries/get-a-query-by-id"},{"title":"Deletes a query","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/queries/{query_id}","href":"/api-reference/queries/deletes-a-query"},{"title":"Get accessible queries","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/queries","href":"/api-reference/queries/get-accessible-queries"},{"title":"Create a query","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/queries","href":"/api-reference/queries/create-a-query"}]},{"group":"Resources","pages":[{"title":"Get buckets","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /resources/buckets","href":"/api-reference/resources/get-buckets"},{"title":"Create bucket","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /resources/buckets","href":"/api-reference/resources/create-bucket"},{"title":"Update access type","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /resources/update-access","href":"/api-reference/resources/update-access-type"}]},{"group":"Schema Inference","pages":[{"title":"Infer the dataset schema of a file passed by multipart file.","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/inference","href":"/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file"}]},{"group":"Uploads","pages":[{"title":"Upload a file","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /uploads/{upload_path}","href":"/api-reference/uploads/upload-a-file"}]},{"group":"Usage","pages":[{"title":"Create a usage event","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /usage","href":"/api-reference/usage/create-a-usage-event"}]},{"group":"Views","pages":[{"title":"Get a view by id","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/views/{view_id}","href":"/api-reference/views/get-a-view-by-id"},{"title":"Updates a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /v2/views/{view_id}","href":"/api-reference/views/updates-a-view"},{"title":"Archives a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /v2/views/{view_id}","href":"/api-reference/views/archives-a-view"},{"title":"Get accessible views","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /v2/views","href":"/api-reference/views/get-accessible-views"},{"title":"Create a view","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /v2/views","href":"/api-reference/views/create-a-view"}]},{"group":"Webhooks","pages":[{"title":"List webhook subscriptions","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /webhooks","href":"/api-reference/webhooks/list-webhook-subscriptions"},{"title":"Create a webhook subscription","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /webhooks","href":"/api-reference/webhooks/create-a-webhook-subscription"},{"title":"Get a webhook subscription by ID","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /webhooks/{webhook_subscription_id}","href":"/api-reference/webhooks/get-a-webhook-subscription-by-id"},{"title":"Archive a webhook subscription","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /webhooks/{webhook_subscription_id}","href":"/api-reference/webhooks/archive-a-webhook-subscription"},{"title":"Event delivery","version":null,"deprecated":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json webhook webhookDelivery","href":"/api-reference/webhooks/event-delivery"}]},{"group":"Whoami","pages":[{"title":"Get a current user","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /whoami","href":"/api-reference/whoami/get-a-current-user"}]},{"group":"Workflows","pages":[{"title":"List workflows","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows","href":"/api-reference/workflows/list-workflows"},{"title":"Create a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows","href":"/api-reference/workflows/create-a-workflow"},{"title":"Get a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows/{workflow_id}","href":"/api-reference/workflows/get-a-workflow"},{"title":"Archive a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /workflows/{workflow_id}","href":"/api-reference/workflows/archive-a-workflow"},{"title":"Trigger a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/trigger","href":"/api-reference/workflows/trigger-a-workflow"},{"title":"Schedule a workflow","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/schedule","href":"/api-reference/workflows/schedule-a-workflow"},{"title":"Remove a workflow schedule","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /workflows/{workflow_id}/schedule","href":"/api-reference/workflows/remove-a-workflow-schedule"},{"title":"Cancel a workflow execution","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/cancel","href":"/api-reference/workflows/cancel-a-workflow-execution"},{"title":"List workflow runs","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /workflows/{workflow_id}/runs","href":"/api-reference/workflows/list-workflow-runs"},{"title":"Cancel a specific workflow run","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /workflows/{workflow_id}/runs/{run_id}/cancel","href":"/api-reference/workflows/cancel-a-specific-workflow-run"}]}]}]},"basePath":"","title":"Update a derivation rule - Narrative I/O Knowledge Base","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DdEMm2kG.js","utils-BMo572L7.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C-4m9KAx.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DPLK2Oq9.js","snippetPresets-BKjfJMC9.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTsgtCEj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C8vmhyQM.js","shallow-r9w8LQGS.js","getApiPlaygroundDisplay-DjPI64HQ.js","CodeSnippet-C8Bvhl16.js","CodeSnippets-BtWUwcMy.js","Page-BIYvYBgk.js","getPastedJson-Dcm_3Pgl.js","icon-BXwrTpjc.js","MethodPill-CcjfVmmy.js","DuplicateIcon-BuKIbXAQ.js","createIcon-DaL9yXsO.js","DynamicMarkdown-Co5nikxh.js","SectionHeading-P4UNTsMZ.js","axios-vUo_bRtp.js","Markdown-CEfymfIH.js","clsx-Dq9TQuNi.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-D2J8knkn.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BgZ2ThuU.js"]}