Schema describing a dataset's input file type and the kind of data the file contains.
Note: when the file type is "flat" then the order of the properties describing the must be given in the order they appear in the input file.
Show child attributes
Was this page helpful?
{"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"}},"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":""},"chroma":{"liveDeploymentHistoryId":"6adfbc2a0ebb9369b64e1802","collectionId":"53051c3e-1a35-408e-ae59-3afa2f8501b5","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adfbc2a0ebb9369b64e1802"},"feedback":{"thumbs":true,"agentFeedback":true},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adfbc2a0ebb9369b64e1802","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"API Documentation","count":234},{"language":"default","tag":"Reference","count":111},{"language":"default","tag":"Connectors","count":102},{"language":"default","tag":"All connectors","count":100},{"language":"default","tag":"Architecture Reference","count":76},{"language":"default","tag":"Agent Conversations","count":63},{"language":"default","tag":"Concepts","count":62},{"language":"default","tag":"Guides","count":58},{"language":"default","tag":"Errors","count":54},{"language":"default","tag":"NQL","count":36}]},"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":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","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":"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":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","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":"per-site-search-delta","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":"editor-private-page-search","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":"editor-nav-generations","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":"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":"byok-sep-25","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":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","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":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file","slug":"/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file","pageMetadata":{"title":"Infer the dataset schema of a file passed by multipart file.","description":null,"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","autogeneratedByOpenApi":true},"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":"Infer the dataset schema of a file passed by multipart file.","description":null,"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","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"Infer the dataset schema of a file passed by multipart file.","tags":["Schema Inference"],"security":["bda1728b-f1e6-403b-86b0-1634645e78af"],"requestBody":"c3c542c4-fc7d-4e29-9b33-00ccc0517c9c","responses":{"200":"b00a92e5-841c-4fd4-b246-d2e688bf2b91","400":"f781cb18-b939-4ae5-9181-ece93afc884f","500":"ebb2b9b9-ca11-4fe8-a84c-e9f2c1aac39a"},"method":"post","type":"path","servers":["190e6995-21fb-418b-bbfe-8c27e30d5b55","1dc6c444-4c87-47b0-b19f-59c81fc72525"],"path":"/v2/inference","baseUrlOptions":["https://api-dev.narrative.io","https://api.narrative.io"],"title":"Infer the dataset schema of a file passed by multipart file.","description":"","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","properties":{"file":{"type":"string","format":"binary","uniqueKey":"file","typeLabel":"file"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"file":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b00a92e5-841c-4fd4-b246-d2e688bf2b91":{"description":"OK","content":{"application/json":{"schema":{"type":"object","properties":{"schema":{"type":"object","description":"Schema describing a dataset's input file type and the kind of data the file contains.\nNote: when the file type is \"flat\" then the order of the properties describing the must be given in the order they appear in the input file.\n","required":["type","properties","file_config"],"properties":{"file_config":{"oneOf":[{"type":"object","description":"Defines the input file format. Files provided to Narrative for ingestion into a Dataset must match the file configuration.","required":["type","header","delimiter","quote","escape"],"properties":{"type":{"type":"string","description":"Describes input files where each row is a set of fields separated by some delimiter. Common examples include comma-separated (CSV) and tab-separated (TSV) files. Files can be compressed using gzip or bzip2 as long as they include the appropriate suffix to indicate what kind of compression has been applied. E.g. bzip2 files must end in \".bz2\" and gzipped files must end in \".gz\".","enum":["flat"],"isRequired":true,"uniqueKey":"schema.file_config.oneOf.0.type","typeLabel":"enum\u003cstring>"},"header":{"type":"boolean","description":"Whether or not files include a header.","isRequired":true,"uniqueKey":"schema.file_config.oneOf.0.header","typeLabel":"boolean"},"delimiter":{"type":"string","description":"Character separating values within a row in a file.","isRequired":true,"uniqueKey":"schema.file_config.oneOf.0.delimiter","typeLabel":"string"},"quote":{"type":"string","description":"Character used for escaping quoted values where the separator can be part of the value.","isRequired":true,"uniqueKey":"schema.file_config.oneOf.0.quote","typeLabel":"string"},"escape":{"type":"string","description":"Character used for escaping quotes inside an already quoted value.","isRequired":true,"uniqueKey":"schema.file_config.oneOf.0.escape","typeLabel":"string"}},"isRequired":true,"uniqueKey":"schema.file_config.oneOf.0","typeLabel":"object"},{"type":"object","description":"Defines the input file format. Files provided to Narrative for ingestion into a Dataset must match the file configuration.","required":["type"],"properties":{"type":{"type":"string","description":"Describes input files in the [JSON Lines](https://jsonlines.org/) file format.","enum":["json"],"isRequired":true,"uniqueKey":"schema.file_config.oneOf.1.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"schema.file_config.oneOf.1","typeLabel":"object"},{"type":"object","description":"Defines the input file format. Files provided to Narrative for ingestion into a Dataset must match the file configuration.","required":["type"],"properties":{"type":{"type":"string","description":"Describes input files in the [Parquet](https://parquet.apache.org/) file format.","enum":["parquet"],"isRequired":true,"uniqueKey":"schema.file_config.oneOf.2.type","typeLabel":"enum\u003cstring>"}},"isRequired":true,"uniqueKey":"schema.file_config.oneOf.2","typeLabel":"object"}],"isRequired":true,"uniqueKey":"schema.file_config","typeLabel":"object"},"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true,"uniqueKey":"schema.type","typeLabel":"enum\u003cstring>"},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"oneOf":[{"type":"object","required":["type","items"],"properties":{"type":{"type":"string","description":"An array with elements of any data type.","enum":["array"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.0.type","typeLabel":"enum\u003cstring>"},"items":{"oneOf":[{"$circularRef":"a6fba766-4e0f-41b7-bcf4-b64b3c977afb","isRequired":true}],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.0.\\items","typeLabel":"any"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.0.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.0.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.0.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.0.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.0.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.0.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.0","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.1.type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.1.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.1.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.1.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.1.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.1.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.1.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.2.type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.2.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.2.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.2.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.2.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double","uniqueKey":"schema.properties.additionalProperties.oneOf.2.enum.items.[INDEX]","typeLabel":"number\u003cdouble>"},"uniqueKey":"schema.properties.additionalProperties.oneOf.2.enum","typeLabel":"number\u003cdouble>[]"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.2.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.2.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.2","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.3.type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.3.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.3.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.3.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.3.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64","uniqueKey":"schema.properties.additionalProperties.oneOf.3.enum.items.[INDEX]","typeLabel":"integer\u003cint64>"},"uniqueKey":"schema.properties.additionalProperties.oneOf.3.enum","typeLabel":"integer\u003cint64>[]"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.3.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.3.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.3","typeLabel":"object"},{"type":"object","properties":{"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.4.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.4.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.4.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.4.description","typeLabel":"string"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.4","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.5.type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.5.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.5.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.5.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.5.description","typeLabel":"string"},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.5.enum.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.5.enum","typeLabel":"string[]"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.5.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.5.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.5","typeLabel":"object"},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true,"uniqueKey":"schema.properties.additionalProperties.oneOf.6.type","typeLabel":"enum\u003cstring>"},"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`.","uniqueKey":"schema.properties.additionalProperties.oneOf.6.order","typeLabel":"integer"},"display_name":{"type":"string","description":"A name that will be represent at User Interface.","uniqueKey":"schema.properties.additionalProperties.oneOf.6.display_name","typeLabel":"string"},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience.","uniqueKey":"schema.properties.additionalProperties.oneOf.6.approximate_cardinality","typeLabel":"integer"},"description":{"type":"string","description":"A description of the named field.","uniqueKey":"schema.properties.additionalProperties.oneOf.6.description","typeLabel":"string"},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string","uniqueKey":"schema.properties.additionalProperties.oneOf.6.validations.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.properties.additionalProperties.oneOf.6.validations","typeLabel":"string[]"}},"uniqueKey":"schema.properties.additionalProperties.oneOf.6","typeLabel":"object"}],"uniqueKey":"schema.properties.additionalProperties","typeLabel":"object"},"isRequired":true,"uniqueKey":"schema.properties","typeLabel":"object"},"primary":{"description":"An optional RFC-6901 JSON pointer to a Dataset field to indicate that the field is \"primary\" -- i.e. it is of particular interest to buyers. Narrative uses this information to optimize buyer experience when purchasing your Dataset.\nThe primary key, if specified, must refer to a _required_ field that has a type of `boolean`, `long`, `string`, or `timestamptz`.","type":"string","uniqueKey":"schema.primary","typeLabel":"string"},"partition_key":{"description":"An optional RFC-6901 JSON pointer to the Dataset field the stored data is partitioned by.\nThe partition key, if specified, must refer to a field that has a type of `boolean`, `long`, `string`, or `timestamptz`. The pointer may descend through nested object fields, e.g. `/event/timestamp`.","type":"string","uniqueKey":"schema.partition_key","typeLabel":"string"},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string","uniqueKey":"schema.required.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.required","typeLabel":"string[]"},"unsellable":{"description":"An optional array of properties that cannot be sold to buyers.","type":"array","items":{"type":"string","uniqueKey":"schema.unsellable.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.unsellable","typeLabel":"string[]"},"sensitive":{"description":"An optional array of properties that are sensitive. Data in sensitive fields are redacted when showed to Narrative users via the UI or API but can still be bought and sold.","type":"array","items":{"type":"string","uniqueKey":"schema.sensitive.items.[INDEX]","typeLabel":"string"},"uniqueKey":"schema.sensitive","typeLabel":"string[]"}},"uniqueKey":"schema","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"schema":{"file_config":{"type":"flat","header":true,"delimiter":"\u003cstring>","quote":"\u003cstring>","escape":"\u003cstring>"},"type":"object","properties":{},"primary":"\u003cstring>","partition_key":"\u003cstring>","required":["\u003cstring>"],"unsellable":["\u003cstring>"],"sensitive":["\u003cstring>"]}}}},"exampleType":"generated"}},"exampleType":"generated"},"f781cb18-b939-4ae5-9181-ece93afc884f":{"description":"Bad request.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error code.","type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_description":{"description":"Human-friendly error message.","type":"string","isRequired":true,"uniqueKey":"error_description","typeLabel":"string"}},"required":["error","error_description"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_description":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"ebb2b9b9-ca11-4fe8-a84c-e9f2c1aac39a":{"description":"Internal error.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"description":"Error code.","type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"error_description":{"description":"Human-friendly error message.","type":"string","isRequired":true,"uniqueKey":"error_description","typeLabel":"string"}},"required":["error","error_description"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","error_description":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"bda1728b-f1e6-403b-86b0-1634645e78af":{}},"servers":{"190e6995-21fb-418b-bbfe-8c27e30d5b55":{"url":"https://api-dev.narrative.io"},"1dc6c444-4c87-47b0-b19f-59c81fc72525":{"url":"https://api.narrative.io"}},"schemas":{"a6fba766-4e0f-41b7-bcf4-b64b3c977afb":{"oneOf":[{"type":"object","required":["type","items"],"properties":{"type":{"type":"string","description":"An array with elements of any data type.","enum":["array"],"isRequired":true},"items":{"oneOf":[{"isRequired":true}],"isRequired":true},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"True/false values. Input values must be one of `true` or `false`.","enum":["boolean"],"isRequired":true},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit IEEE 754 floating point values.","enum":["double"],"isRequired":true},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"number","format":"double"}},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"64-bit signed integer values.","enum":["long"],"isRequired":true},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"integer","format":"int64"}},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}},{"type":"object","required":["type","properties"],"properties":{"type":{"description":"A record consisting of named fields of any type.","enum":["object"],"type":"string","isRequired":true},"properties":{"type":"object","description":"A map from field names to field types.\n\nField names must consist of only alphanumeric characters or underscores and be \u003c 255 characters long.","additionalProperties":{"type":"object","properties":{"order":{"type":"integer","description":"The zero-based position of the field among its siblings. Responses always carry it. For a `flat` file\ntype it is the column's position in the input file, so a request should set it rather than rely on the\norder of the keys in `properties`."},"display_name":{"type":"string","description":"A name that will be represent at User Interface."},"approximate_cardinality":{"type":"integer","description":"An optional estimate of how many distinct values of the field will be provided to Narrative. Narrative uses this information to optimizer buyer experience."},"description":{"type":"string","description":"A description of the named field."}}},"isRequired":true},"required":{"description":"An optional array of properties whose values are never missing or null.","type":"array","items":{"type":"string"}},"unsellable":{"description":"An optional array of properties that cannot be sold to buyers.","type":"array","items":{"type":"string"}},"sensitive":{"description":"An optional array of properties that are sensitive. Data in sensitive fields are redacted when showed to Narrative users via the UI or API but can still be bought and sold.","type":"array","items":{"type":"string"}}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Abitrary-length character sequences encoded with UTF-8.","enum":["string"],"isRequired":true},"enum":{"type":"array","description":"An optional set of possible values for the field.","items":{"type":"string"}},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}},{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Timestamp with timezone, stored as microseconds. Input values are expected to be valid [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601) strings.","enum":["timestamptz"],"isRequired":true},"validations":{"type":"array","description":"A raw Spark SQL expression determining whether a value for the given column is valid or not.\n\nIf more than one validation is specified then _all_ the validation must evaluate to `true` for the column value to be considered valid.\n\nIf `validations` is not specified or empty then all rows will match the access rule.\n\nE.g. for a dataset with the following type definition:\n\n```\n{\n \"type\": \"object\",\n \"properties\": {\n \"idValue\": {\n \"type\": \"string\"\n },\n \"idType\": {\n \"type\": \"string\",\n \"enum\": [\n \"idfa\",\n \"adid\"\n ]\n },\n \"timestamp\": {\n \"type\": \"timestamptz\"\n }\n },\n \"required\": [\n \"idValue\"\n ]\n}\n```\n\nValid constraints include:\n\n- Is the ID type IDFA?\n\n```sql\nidType = 'idfa'\n```\n- Is the ID type non-null?\n\n```sql\nidType is not null\n```\n- Was the row collected within the last 90 days?\n\n```sql\ntimestamp > date_sub(current_date(), 90)\n```","items":{"type":"string"}}}}]}}},"originalFileLocation":"https://docs-cdn.narrative.io/api-reference/main/openapi.json"},"subdomain":"narrative-07c7a1f7","siteName":"Narrative I/O Knowledge Base","title":"Infer the dataset schema of a file passed by multipart file. - Narrative I/O Knowledge Base","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-26T20:47:08.321Z","originalFileLocation":"api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file.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=\"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=\"Infer the dataset schema of a file passed by multipart file. - Narrative I/O Knowledge Base\">\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/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://narrative-07c7a1f7.mintlify.app/_mintlify/api/og/v2?division=Schema+Inference\u0026amp;title=Infer+the+dataset+schema+of+a+file+passed+by+multipart+file.\u0026amp;theme=ee973f81a9436b7406ccdb45\u0026amp;signature=0989d797a67264b3741138d4986b10da3edddcf5e4d4d373c2bf04d9224d8bd2\">\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=\"Infer the dataset schema of a file passed by multipart file. - Narrative I/O Knowledge Base\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://narrative-07c7a1f7.mintlify.app/_mintlify/api/og/v2?division=Schema+Inference\u0026amp;title=Infer+the+dataset+schema+of+a+file+passed+by+multipart+file.\u0026amp;theme=ee973f81a9436b7406ccdb45\u0026amp;signature=0989d797a67264b3741138d4986b10da3edddcf5e4d4d373c2bf04d9224d8bd2\">\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/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file.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/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file#webpage\",\"url\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file\",\"name\":\"Infer the dataset schema of a file passed by multipart file.\",\"dateModified\":\"2026-10-26T20:47:08.321Z\",\"isPartOf\":{\"@id\":\"https://docs.narrative.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Narrative I/O Knowledge Base\",\"item\":\"https://docs.narrative.io\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Infer the dataset schema of a file passed by multipart file.\",\"item\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file#apireference\",\"headline\":\"Infer the dataset schema of a file passed by multipart file.\",\"name\":\"Infer the dataset schema of a file passed by multipart file.\",\"url\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file\",\"mainEntityOfPage\":{\"@id\":\"https://docs.narrative.io/api-reference/schema-inference/infer-the-dataset-schema-of-a-file-passed-by-multipart-file#webpage\"},\"dateModified\":\"2026-10-26T20:47:08.321Z\",\"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\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","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":"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 System 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-system-access-tokens"},{"title":"Create a System 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-a-system-access-token"},{"title":"Get a System Access Token by id","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-a-system-access-token-by-id"},{"title":"Update a System 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-a-system-access-token"},{"title":"Delete a System 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-a-system-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":"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":"Get detailed statistics for a snapshot","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/column-stats/{snapshot_id}","href":"/api-reference/datasets/get-detailed-statistics-for-a-snapshot"},{"title":"Combine snapshot metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/combine","href":"/api-reference/datasets/combine-snapshot-metrics"},{"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":"Metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/metrics","href":"/api-reference/datasets/metrics"},{"title":"Metrics","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/snapshots/{snapshot_id}/column-stats","href":"/api-reference/datasets/metrics-1"},{"title":"Get Metrics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json get /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/get-metrics-configuration"},{"title":"Put Metrics Configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/put-metrics-configuration"},{"title":"Disable configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json delete /datasets/{dataset_id}/stats-config","href":"/api-reference/datasets/disable-configuration"},{"title":"Derive the configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json put /datasets/{dataset_id}/derive-stats-config","href":"/api-reference/datasets/derive-the-configuration"},{"title":"Enable configuration","deprecated":null,"version":null,"openapi":"https://docs-cdn.narrative.io/api-reference/main/openapi.json post /datasets/{dataset_id}/enable-stats-config","href":"/api-reference/datasets/enable-configuration"},{"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","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","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":"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":"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","description":"Update access type to the bucket.\nPay attention, that bucket-owner-full-control ACL is strictly required for \"bucket_policy\" type of access.\nAlso, bucket should be whitelisted for mutation. All buckets created by creation endpoint are mutable by default.\nBuckets created before 2023 could be immutable in case of customized policies.\nYou can call 'Get buckets' endpoint to check `is_access_mutable` property in response.","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","description":"Sending a file to Narrative is a two step process. This endpoint allows you to request an `upload_url` which can be used in a `PUT` request to upload the file.\n\nFor example, once you have received an `upload_url` you could use it as follows:\n\n```bash\ncurl -v --upload-file my-file.csv {upload_url}\n```\n\nThe generated `upload_url` is only valid for 30 minutes after issuance.\n\nNarrative stores the file under the SHA-256 hash of `upload_path` and returns that name as `path`. When\n`upload_path` ends in one of the following extensions, the stored name keeps the extension in lowercase:\n`txt`, `csv`, `json`, `parquet` and `snappy.parquet`, plus `txt`, `csv` and `json` followed by `.gz` or `.bz2`.\nAny other extension is dropped. For example, `lists/idlist.csv` is stored as\n`d295d6fd3d9c32462d89cf8270cca4cbb95cc660ada5cfc59c5a7458bd941d9c.csv`.\n\nThe hash is taken over `upload_path` exactly as it was sent, so the same `upload_path` always names the same\nfile, and uploading to it again replaces that file. A slash sent as `%2F` hashes differently from a literal `/`.\n\nRequires write access to uploads.","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"}]}]}]},"title":"Infer the dataset schema of a file passed by multipart file. - Narrative I/O Knowledge Base","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-rfhihCWU.js","utils-BmH1XFxk.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BcNsxPKB.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-BAES3tkd.js","snippetPresets-DCMQBKLP.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D6l_bzE9.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BOktbnNh.js","shallow-BCs8SgM7.js","getApiPlaygroundDisplay-DEmW5bJB.js","CodeSnippet-CpZOpB9C.js","CodeSnippets-BOBDqibl.js","Page-D5fEM6aW.js","getPastedJson-DH2JBvmr.js","icon-BBJH-kKh.js","MethodPill-D2Sd5NLC.js","DuplicateIcon-CGgfL2qN.js","createIcon-BKudBBzi.js","DynamicMarkdown-85clUA0i.js","SectionHeading-D0JiMgDx.js","axios-vUo_bRtp.js","Markdown-Cfiy0xZO.js","clsx-rL8ZCCw4.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-aeztFa9U.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BywkCr5C.js"]}