POST: every item listed is created. Omitting the key creates nothing. Two functions are shown: check_email needs nothing beyond the built-ins, while check_date declares dayjs — remove that dependency and its code is rejected with js_disallowed_global. That entry omits the optional integrity field so this body can be sent unmodified; in your own sheet add "integrity": "sha384-<digest published by the CDN>" beside the url, and add further scripts as further comma-separated objects in the same array (5 max).
Maximum array length: 10
Show child attributes
Example:
[ { "function_name": "check_email", "scope": "column", "columns": ["col4"], "js_code": "const rows = csvbox.column['col4'] || []; const errs = []; for (let i = 0; i < rows.length; i++) { if (String(rows[i]).indexOf('@') === -1) { errs.push({ row_id: i + 1, column: 'col4', message: 'Not a valid email' }); } } return errs;", "active": true }, { "function_name": "check_date", "scope": "column", "columns": ["col5"], "js_code": "const rows = csvbox.column['col5'] || []; const errs = []; const today = dayjs(); for (let i = 0; i < rows.length; i++) { const raw = String(rows[i] || '').trim(); if (raw === '') { continue; } const d = dayjs(raw); if (!d.isValid() || d.format('YYYY-MM-DD') !== raw) { errs.push({ row_id: i + 1, column: 'col5', message: 'Use YYYY-MM-DD, e.g. 2024-01-31' }); } else if (d.isAfter(today)) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date cannot be in the future' }); } else if (d.year() < 1900) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date must be 1900 or later' }); } } return errs;", "dependencies": [ { "url": "https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js", "globals": ["dayjs"] } ], "active": true } ]
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"CSVbox Docs","description":"Welcome to CSVbox documentation and help site!","colors":{"primary":"#007BFF","light":"#E8F2FF","dark":"#007BFF"},"logo":{"light":"https://mintcdn.com/csvbox-io/VaNqBS2QJ21PoHnw/images/1200_square.png?fit=max\u0026auto=format\u0026n=VaNqBS2QJ21PoHnw\u0026q=85\u0026s=561607ac3a031918fe0739aab943dccf","dark":"https://mintcdn.com/csvbox-io/VaNqBS2QJ21PoHnw/images/512_square_white.png?fit=max\u0026auto=format\u0026n=VaNqBS2QJ21PoHnw\u0026q=85\u0026s=8ad5293ff4b6298ddb0743746426514e","href":"https://csvbox.io"},"favicon":{"light":"https://mintcdn.com/csvbox-io/O7UYE5KjK-GepPt6/images/favicon.ico?fit=max\u0026auto=format\u0026n=O7UYE5KjK-GepPt6\u0026q=85\u0026s=e94aec6c4f92c88cd940ad376432ce7b","dark":"https://mintcdn.com/csvbox-io/O7UYE5KjK-GepPt6/images/favicon.ico?fit=max\u0026auto=format\u0026n=O7UYE5KjK-GepPt6\u0026q=85\u0026s=e94aec6c4f92c88cd940ad376432ce7b"},"api":{"openapi":"https://app.csvbox.io/docs?api-docs.json"},"appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://csvbox.canny.io/feature-requests","label":"Suggestions"},{"href":"/change-log","label":"Changelog"},{"href":"https://share.hsforms.com/1ubpg6RBoQgKOISkRMEViwg5auur","label":"Contact"}],"primary":{"type":"button","label":"Login","href":"https://app.csvbox.io/"}},"seo":{"metatags":{"canonical":"https://help.csvbox.io","og:image":"https://csvbox.io/og/default.png","twitter:site":"@csvboxio"}},"styling":{"eyebrows":"breadcrumbs","codeblocks":"dark","latex":false},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"interaction":{"drilldown":true},"metadata":{"timestamp":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"csvbox-io","hasAudioNarration":false,"actualSubdomain":"csvbox-io","customDomains":["help.csvbox.io"],"gitSource":{"type":"github","owner":"csvbox-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"latestBuiltDeploymentHistoryId":"6ae47335c2eaceb0e3448906","collectionId":"aab417ff-9ed3-47ff-a6af-9ce6b205e9ce","liveDeploymentHistoryId":"6ae47335c2eaceb0e3448906","schemaVersion":"v3"},"feedback":{"edits":false,"issues":true},"entitlements":{"AI_CHAT":{"status":"DISABLED"},"WEB_MCP":{"status":"DISABLED"},"NARRATION":{"status":"DISABLED"}},"buildId":"6ae47335c2eaceb0e3448906","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"Data Destinations","count":29},{"language":"default","tag":"Advanced Installation","count":15},{"language":"default","tag":"Dashboard Settings","count":13},{"language":"default","tag":"Sheet Settings","count":13},{"language":"default","tag":"APIs \u0026 Integrations","count":9},{"language":"default","tag":"Legal","count":7},{"language":"default","tag":"Sheet API","count":6},{"language":"default","tag":"AI Features","count":5},{"language":"default","tag":"Import Steps","count":5},{"language":"default","tag":"Getting Started","count":4}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"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":"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":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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":"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":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"privacy":{"consentBanner":{"enabled":true}},"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".frame img:not([data-path$=\".svg\"]){border:1px solid rgb(156 163 175)}.dark .frame img:not([data-path$=\".svg\"]){border-color:rgb(55 65 81)}"}],"page":{"pagePath":"advanced-installation/sheet-api/create-sheet","slug":"/advanced-installation/sheet-api/create-sheet","pageMetadata":{"title":"Create a sheet","openapi":"POST /1.1/sheet","description":"Creates a new sheet importer.","href":"/advanced-installation/sheet-api/create-sheet"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Creates a new sheet importer.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"codeStyling":"dark","config":{},"pageMetadata":{"title":"Create a sheet","openapi":"POST /1.1/sheet","description":"Creates a new sheet importer.","href":"/advanced-installation/sheet-api/create-sheet"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Sheets"],"summary":"Create Sheet","description":"Creates a new sheet importer.","operationId":"createSheet","parameters":["1bbecd76-6e4f-46ac-a5ed-89790188586a","bcc21a50-20ac-4b53-ac31-17ba44bf3741"],"requestBody":"056647b6-366a-4775-b44b-6958266a1b65","responses":{"201":"b97db58f-d334-46a4-a9a1-c71c34197209","400":"025f60b3-2381-483e-9e2b-34581e40735a","401":"f4bfc43c-af41-49b2-a4ba-37356bbdcdf9","422":"ff24dd30-3951-4f05-a28b-7470d5db1168","500":"4e5e6551-1be5-4713-9cc9-19dc8dedd074"},"security":["f87e3d06-508f-426f-9919-e591964b8471"],"method":"post","type":"path","servers":["85dfa550-617a-49df-b618-dab33beb09bb"],"path":"/1.1/sheet","baseUrlOptions":["https://api.csvbox.io/"],"title":"Create Sheet","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"1bbecd76-6e4f-46ac-a5ed-89790188586a":{"name":"Accept","in":"header","description":"Must be application/json","required":true,"schema":{"type":"string","example":"application/json","isRequired":true,"description":"Must be application/json","uniqueKey":"","typeLabel":"string"}},"bcc21a50-20ac-4b53-ac31-17ba44bf3741":{"name":"Content-Type","in":"header","description":"Content type must be application/json","required":true,"schema":{"type":"string","example":"application/json","isRequired":true,"description":"Content type must be application/json","uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"required":["title"],"properties":{"title":{"type":"string","example":"Customer Import","isRequired":true,"uniqueKey":"title","typeLabel":"string"},"webhooks":{"type":"array","items":{"properties":{"import_complete":{"properties":{"url":{"type":"string","format":"url","example":"https://example.com/webhook","uniqueKey":"webhooks.items.[INDEX].import_complete.url","typeLabel":"string\u003curl>"},"send_copy":{"description":"Send a copy of imported data to client","type":"boolean","example":false,"uniqueKey":"webhooks.items.[INDEX].import_complete.send_copy","typeLabel":"boolean"},"custom_headers":{"type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"webhooks.items.[INDEX].import_complete.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"webhooks.items.[INDEX].import_complete.custom_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"webhooks.items.[INDEX].import_complete.custom_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"webhooks.items.[INDEX].import_complete.custom_headers","typeLabel":"object[]"}},"type":"object","uniqueKey":"webhooks.items.[INDEX].import_complete","typeLabel":"object"}},"type":"object","uniqueKey":"webhooks.items.[INDEX]","typeLabel":"object"},"uniqueKey":"webhooks","typeLabel":"object[]"},"destinations":{"type":"array","items":{"properties":{"type":{"type":"string","enum":["webhook","testapi","none","xano"],"example":"webhook","uniqueKey":"destinations.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"isActive":{"type":"boolean","example":true,"uniqueKey":"destinations.items.[INDEX].isActive","typeLabel":"boolean"},"settings":{"properties":{"method":{"type":"string","enum":["POST","PATCH"],"example":"POST","uniqueKey":"destinations.items.[INDEX].settings.method","typeLabel":"enum\u003cstring>"},"url":{"type":"string","format":"url","example":"https://example.com/api/import","uniqueKey":"destinations.items.[INDEX].settings.url","typeLabel":"string\u003curl>"},"post_data_format":{"type":"string","enum":["JSON","FORM_DATA","XML"],"example":"JSON","uniqueKey":"destinations.items.[INDEX].settings.post_data_format","typeLabel":"enum\u003cstring>"},"rows_per_chunk":{"type":"integer","example":100,"uniqueKey":"destinations.items.[INDEX].settings.rows_per_chunk","typeLabel":"integer"},"request_type":{"type":"string","enum":["parallel","sequential"],"example":"parallel","uniqueKey":"destinations.items.[INDEX].settings.request_type","typeLabel":"enum\u003cstring>"},"server_side_validation":{"type":"boolean","example":true,"uniqueKey":"destinations.items.[INDEX].settings.server_side_validation","typeLabel":"boolean"},"allow_resubmit":{"type":"string","enum":["all_rows","error_rows_only"],"example":"all_rows","uniqueKey":"destinations.items.[INDEX].settings.allow_resubmit","typeLabel":"enum\u003cstring>"},"custom_headers":{"type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"destinations.items.[INDEX].settings.custom_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"destinations.items.[INDEX].settings.custom_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"destinations.items.[INDEX].settings.custom_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"destinations.items.[INDEX].settings.custom_headers","typeLabel":"object[]"}},"type":"object","uniqueKey":"destinations.items.[INDEX].settings","typeLabel":"object"}},"type":"object","uniqueKey":"destinations.items.[INDEX]","typeLabel":"object"},"uniqueKey":"destinations","typeLabel":"object[]"},"sheet_columns":{"type":"array","items":{"required":["column_name"],"properties":{"column_name":{"type":"string","example":"email","isRequired":true,"uniqueKey":"sheet_columns.items.[INDEX].column_name","typeLabel":"string"},"display_label":{"type":"string","example":"Email","uniqueKey":"sheet_columns.items.[INDEX].display_label","typeLabel":"string"},"info_hint":{"type":"string","example":"Enter user email","uniqueKey":"sheet_columns.items.[INDEX].info_hint","typeLabel":"string"},"matching_keywords":{"type":"string","example":"email,user_email","uniqueKey":"sheet_columns.items.[INDEX].matching_keywords","typeLabel":"string"},"type":{"type":"string","enum":["text","number","email","date","time","boolean","regex","ip","url","credit_card","phone_number","currency","list","dependent_list","dynamic_list","dependent_dynamic_list","multiselect_list","multiselect_dynamic_list","percentage","iana_timezone","upc","uuid","domain","currency_code","country_code_a2","country_code_a3","imei","ean","json"],"example":"text","uniqueKey":"sheet_columns.items.[INDEX].type","typeLabel":"enum\u003cstring>"},"default_value":{"type":"string","example":"","uniqueKey":"sheet_columns.items.[INDEX].default_value","typeLabel":"string"},"required":{"type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].required","typeLabel":"boolean"},"read_only":{"type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].read_only","typeLabel":"boolean"},"position":{"type":"integer","minimum":1,"example":1,"uniqueKey":"sheet_columns.items.[INDEX].position","typeLabel":"integer"},"validators":{"description":"Validators depend on the column type. See examples below for each type.","properties":{"min_length":{"description":"[text] Minimum character length","type":"integer","example":2,"uniqueKey":"sheet_columns.items.[INDEX].validators.min_length","typeLabel":"integer"},"max_length":{"description":"[text] Maximum character length","type":"integer","example":50,"uniqueKey":"sheet_columns.items.[INDEX].validators.max_length","typeLabel":"integer"},"min_value":{"description":"[number, percentage] Minimum numeric value","type":"number","example":1,"uniqueKey":"sheet_columns.items.[INDEX].validators.min_value","typeLabel":"number"},"max_value":{"description":"[number, percentage] Maximum numeric value","type":"number","example":100,"uniqueKey":"sheet_columns.items.[INDEX].validators.max_value","typeLabel":"number"},"output":{"description":"[percentage] Output format","type":"string","enum":["number","percent"],"example":"number","uniqueKey":"sheet_columns.items.[INDEX].validators.output","typeLabel":"enum\u003cstring>"},"format":{"description":"[date] Date format e.g. YYYY-MM-DD | [time] Time format e.g. HH:mm:ss","type":"string","example":"YYYY-MM-DD","uniqueKey":"sheet_columns.items.[INDEX].validators.format","typeLabel":"string"},"custom":{"description":"[date, time] Custom format string, used when format is \"custom\"","type":"string","example":"DD/MM/YYYY","uniqueKey":"sheet_columns.items.[INDEX].validators.custom","typeLabel":"string"},"multiple":{"description":"[date, time] Accepted formats, used when format is \"multiple\"","type":"array","items":{"type":"string","uniqueKey":"sheet_columns.items.[INDEX].validators.multiple.items.[INDEX]","typeLabel":"string"},"uniqueKey":"sheet_columns.items.[INDEX].validators.multiple","typeLabel":"string[]"},"expression":{"description":"[regex] Regular expression pattern","type":"string","example":"^\\d{10}$","uniqueKey":"sheet_columns.items.[INDEX].validators.expression","typeLabel":"string"},"error_message":{"description":"[regex] Custom error message","type":"string","example":"Please enter a valid 10 digit phone number","uniqueKey":"sheet_columns.items.[INDEX].validators.error_message","typeLabel":"string"},"version":{"description":"[ip] IP version","type":"string","enum":["ipv4","ipv6"],"example":"ipv4","uniqueKey":"sheet_columns.items.[INDEX].validators.version","typeLabel":"enum\u003cstring>"},"country_code":{"description":"[phone_number] Country code e.g. IN, US","type":"string","example":"IN","uniqueKey":"sheet_columns.items.[INDEX].validators.country_code","typeLabel":"string"},"symbol":{"description":"[currency] Currency symbol","type":"string","example":"$","uniqueKey":"sheet_columns.items.[INDEX].validators.symbol","typeLabel":"string"},"require_symbol":{"description":"[currency] Whether symbol is required","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.require_symbol","typeLabel":"boolean"},"allow_space_after_symbol":{"description":"[currency] Allow a space between the symbol and digits","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.allow_space_after_symbol","typeLabel":"boolean"},"symbol_after_digits":{"description":"[currency] Place the symbol after the digits instead of before","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.symbol_after_digits","typeLabel":"boolean"},"allow_negatives":{"description":"[currency] Allow negative values","type":"boolean","example":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.allow_negatives","typeLabel":"boolean"},"parens_for_negatives":{"description":"[currency] Show negative values in parentheses instead of a minus sign","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.parens_for_negatives","typeLabel":"boolean"},"negative_sign_before_digits":{"description":"[currency] Place the negative sign before the digits","type":"boolean","example":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.negative_sign_before_digits","typeLabel":"boolean"},"negative_sign_after_digits":{"description":"[currency] Place the negative sign after the digits","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.negative_sign_after_digits","typeLabel":"boolean"},"thousands_separator":{"description":"[currency] Thousands separator character","type":"string","example":",","uniqueKey":"sheet_columns.items.[INDEX].validators.thousands_separator","typeLabel":"string"},"decimal_separator":{"description":"[currency] Decimal separator character","type":"string","example":".","uniqueKey":"sheet_columns.items.[INDEX].validators.decimal_separator","typeLabel":"string"},"allow_decimal":{"description":"[currency] Allow decimal values","type":"boolean","example":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.allow_decimal","typeLabel":"boolean"},"require_decimal":{"description":"[currency] Require a decimal portion","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.require_decimal","typeLabel":"boolean"},"digits_after_decimal":{"description":"[currency] Number of digits allowed after the decimal separator","type":"integer","example":2,"uniqueKey":"sheet_columns.items.[INDEX].validators.digits_after_decimal","typeLabel":"integer"},"allow_space_after_digits":{"description":"[currency] Allow a trailing space after the digits","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.allow_space_after_digits","typeLabel":"boolean"},"values":{"oneOf":[{"type":"array","items":{"properties":{"value":{"type":"string","example":"ind","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].value","typeLabel":"string"},"display_label":{"type":"string","example":"India","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].display_label","typeLabel":"string"},"dependents":{"type":"array","items":{"properties":{"value":{"type":"string","example":"mh","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].value","typeLabel":"string"},"display_label":{"type":"string","example":"Maharashtra","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].display_label","typeLabel":"string"},"dependents":{"type":"array","items":{"properties":{"value":{"type":"string","example":"mum","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].dependents.items.[INDEX].value","typeLabel":"string"},"display_label":{"type":"string","example":"Mumbai","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].dependents.items.[INDEX].display_label","typeLabel":"string"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].dependents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX].dependents","typeLabel":"object[]"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX].dependents","typeLabel":"object[]"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"[list] Array of ListItem objects (with dependents) | [multiselect_list] Array of strings","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.0","typeLabel":"object[]"},{"type":"array","items":{"type":"string","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.1.items.[INDEX]","typeLabel":"string"},"description":"[list] Array of ListItem objects (with dependents) | [multiselect_list] Array of strings","uniqueKey":"sheet_columns.items.[INDEX].validators.values.oneOf.1","typeLabel":"string[]"}],"uniqueKey":"sheet_columns.items.[INDEX].validators.values","typeLabel":"object[] | string[]"},"case_sensitive":{"description":"[list, multiselect_list] Case-sensitive matching","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.case_sensitive","typeLabel":"boolean"},"trim_whitespace":{"description":"[list, dynamic_list, multiselect_list, multiselect_dynamic_list] Trim whitespace before matching","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.trim_whitespace","typeLabel":"boolean"},"accept_list_values":{"description":"[list] Accept values already present in the configured list without further validation","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.accept_list_values","typeLabel":"boolean"},"primary_column":{"description":"[dependent_list, dependent_dynamic_list] The column_name of the parent list column","type":"string","example":"col14","uniqueKey":"sheet_columns.items.[INDEX].validators.primary_column","typeLabel":"string"},"source_url":{"description":"[dynamic_list] URL to fetch list options from","type":"string","example":"https://example.com/api/list-options","uniqueKey":"sheet_columns.items.[INDEX].validators.source_url","typeLabel":"string"},"request_method":{"description":"[dynamic_list] HTTP method","type":"string","enum":["GET","POST"],"example":"GET","uniqueKey":"sheet_columns.items.[INDEX].validators.request_method","typeLabel":"enum\u003cstring>"},"request_headers":{"description":"[dynamic_list] Custom request headers","type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.request_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.request_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].validators.request_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sheet_columns.items.[INDEX].validators.request_headers","typeLabel":"object[]"},"custom_user_attributes":{"description":"[dynamic_list] Include custom user attributes in request","type":"boolean","example":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.custom_user_attributes","typeLabel":"boolean"},"other_values":{"description":"[dynamic_list, multiselect_list] Allow values outside predefined list","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.other_values","typeLabel":"boolean"},"delimiter":{"description":"[multiselect_list, multiselect_dynamic_list] Delimiter for multiple values","type":"string","example":",","uniqueKey":"sheet_columns.items.[INDEX].validators.delimiter","typeLabel":"string"},"dml_source_url":{"description":"[multiselect_dynamic_list] URL to fetch list options from","type":"string","example":"https://example.com/api/multiselect-dynamic-options","uniqueKey":"sheet_columns.items.[INDEX].validators.dml_source_url","typeLabel":"string"},"dml_request_method":{"description":"[multiselect_dynamic_list] HTTP method","type":"string","enum":["GET","POST","PATCH"],"example":"GET","uniqueKey":"sheet_columns.items.[INDEX].validators.dml_request_method","typeLabel":"enum\u003cstring>"},"dml_request_headers":{"description":"[multiselect_dynamic_list] Custom request headers","type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.dml_request_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"sheet_columns.items.[INDEX].validators.dml_request_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].validators.dml_request_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"sheet_columns.items.[INDEX].validators.dml_request_headers","typeLabel":"object[]"},"dml_other_values":{"description":"[multiselect_dynamic_list] Allow values outside predefined list","type":"boolean","example":false,"uniqueKey":"sheet_columns.items.[INDEX].validators.dml_other_values","typeLabel":"boolean"}},"type":"object","example":{"col1 (text)":{"min_length":2,"max_length":50},"col2 (number)":{"min_value":1,"max_value":100},"col5 (date)":{"format":"YYYY-MM-DD"},"col6 (time)":{"format":"HH:mm:ss"},"col8 (regex)":{"expression":"^\\d{10}$","error_message":"Please enter a valid 10 digit phone number"},"col9 (ip)":{"version":"ipv4"},"col12 (phone_number)":{"country_code":"IN"},"col13 (currency)":{"symbol":"$","require_symbol":false},"col17 (dynamic_list)":{"source_url":"https://example.com/api/list-options","request_method":"GET","request_headers":[],"custom_user_attributes":true,"other_values":false},"col18 (dependent_dynamic_list)":{"primary_column":"col17"},"col20 (multiselect_list)":{"values":["Red","Green","Blue"],"delimiter":",","case_sensitive":false,"other_values":false},"col21 (multiselect_dynamic_list)":{"dml_source_url":"https://example.com/api/multiselect-options","dml_request_method":"GET","dml_request_headers":[],"delimiter":",","dml_other_values":false},"col22 (percentage)":{"min_value":0,"max_value":100,"output":"percent"}},"uniqueKey":"sheet_columns.items.[INDEX].validators","typeLabel":"object"},"metadata":{"description":"Data transforms configured for this column, under the same metadata.transforms key POST/PUT/PATCH accept. An empty object when no transforms are configured.","properties":{"transforms":{"type":"object","uniqueKey":"sheet_columns.items.[INDEX].metadata.transforms","typeLabel":"object"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX].metadata","typeLabel":"object"}},"type":"object","uniqueKey":"sheet_columns.items.[INDEX]","typeLabel":"object"},"example":[{"column_name":"col1","display_label":"Col1 - Text","info_hint":"What is your highest educational degree","matching_keywords":"degree, education","type":"text","validators":{"min_length":2,"max_length":50},"default_value":"","required":false,"position":5},{"column_name":"col2","display_label":"col2 - Number","info_hint":"Years of work experience","type":"number","validators":{"min_value":1,"max_value":100},"required":false,"position":6},{"column_name":"col4","display_label":"col4 - Email","type":"email","required":false,"position":7},{"column_name":"col5","display_label":"col5 - Date","type":"date","required":false,"validators":{"format":"YYYY-MM-DD"},"position":8},{"column_name":"col6","display_label":"col6 - Time","type":"time","required":false,"validators":{"format":"HH:mm:ss"}},{"column_name":"col7","display_label":"col7 - Boolean","type":"boolean","required":false},{"column_name":"col8","display_label":"col8 - Regex","type":"regex","required":false,"validators":{"expression":"^\\d{10}$","error_message":"Please enter a valid 10 digit phone number"}},{"column_name":"col9","display_label":"col9 - IP","type":"ip","required":false,"validators":{"version":"ipv4"}},{"column_name":"col10","display_label":"col10 - URL","type":"url","required":false},{"column_name":"col11","display_label":"col11 - Credit Card","type":"credit_card","required":false},{"column_name":"col12","display_label":"col12 - Phone Number","type":"phone_number","required":false,"validators":{"country_code":"IN"}},{"column_name":"col13","display_label":"col13 - Currency","type":"currency","required":false,"validators":{"symbol":"$","require_symbol":false}},{"column_name":"col14","display_label":"col14 - List","type":"list","required":false,"validators":{"values":[{"value":"ind","display_label":"India","dependents":[{"value":"mh","display_label":"Maharashtra","dependents":[{"value":"mum","display_label":"Mumbai"},{"value":"pun","display_label":"Pune"}]},{"value":"gj","display_label":"Gujarat","dependents":[{"value":"amd","display_label":"Ahmedabad"},{"value":"sur","display_label":"Surat"}]}]},{"value":"usa","display_label":"United States","dependents":[{"value":"ca","display_label":"California","dependents":[{"value":"la","display_label":"Los Angeles"},{"value":"sf","display_label":"San Francisco"}]},{"value":"ny","display_label":"New York","dependents":[{"value":"nyc","display_label":"New York City"},{"value":"buf","display_label":"Buffalo"}]}]},{"value":"can","display_label":"Canada","dependents":[{"value":"on","display_label":"Ontario","dependents":[{"value":"tor","display_label":"Toronto"},{"value":"ott","display_label":"Ottawa"}]},{"value":"bc","display_label":"British Columbia","dependents":[{"value":"van","display_label":"Vancouver"},{"value":"vic","display_label":"Victoria"}]}]}],"case_sensitive":false}},{"column_name":"col15","display_label":"col15 - Dependent List","type":"dependent_list","required":false,"validators":{"primary_column":"col14"}},{"column_name":"col16","display_label":"col16 - Dependent List","type":"dependent_list","required":false,"validators":{"primary_column":"col15"}},{"column_name":"col17","display_label":"col17 - Dynamic List","type":"dynamic_list","required":false,"validators":{"source_url":"https://example.com/api/dynamic-list-options","request_method":"GET","request_headers":[],"custom_user_attributes":true,"other_values":false}},{"column_name":"col18","display_label":"col18 - Dependent Dynamic List","type":"dependent_dynamic_list","required":false,"validators":{"primary_column":"col17"}},{"column_name":"col19","display_label":"col19 - Dependent Dynamic List","type":"dependent_dynamic_list","required":false,"validators":{"primary_column":"col18"}},{"column_name":"col20","display_label":"col20 - Multiselect List","type":"multiselect_list","required":false,"validators":{"values":["Red","Green","Blue","orange","yellow","black"],"delimiter":",","case_sensitive":false,"other_values":false}},{"column_name":"col21","display_label":"col21 - Multiselect Dynamic List","type":"multiselect_dynamic_list","required":false,"validators":{"dml_source_url":"https://example.com/api/multiselect-dynamic-options","dml_request_method":"GET","dml_request_headers":[],"delimiter":",","dml_other_values":false}},{"column_name":"col22","display_label":"col22 - Percentage","type":"percentage","required":false,"validators":{"min_value":0,"max_value":100,"output":"percent"}},{"column_name":"col23","display_label":"col23 - UUID","type":"uuid","required":false},{"column_name":"col24","display_label":"col24 - JSON","type":"json","required":false}],"uniqueKey":"sheet_columns","typeLabel":"object[]"},"steps":{"properties":{"file_upload":{"properties":{"types":{"type":"array","items":{"type":"string","example":".csv","uniqueKey":"steps.file_upload.types.items.[INDEX]","typeLabel":"string"},"uniqueKey":"steps.file_upload.types","typeLabel":"string[]"},"title":{"type":"string","example":"File Upload","uniqueKey":"steps.file_upload.title","typeLabel":"string"},"help":{"type":"string","example":"Upload your CSV file","uniqueKey":"steps.file_upload.help","typeLabel":"string"},"sample_file_url":{"type":"string","example":"","uniqueKey":"steps.file_upload.sample_file_url","typeLabel":"string"},"size_mb":{"type":"integer","example":200,"uniqueKey":"steps.file_upload.size_mb","typeLabel":"integer"},"validation_msg":{"type":"string","example":"upto 200mb allowed","uniqueKey":"steps.file_upload.validation_msg","typeLabel":"string"},"copy_paste":{"type":"boolean","example":true,"uniqueKey":"steps.file_upload.copy_paste","typeLabel":"boolean"},"copy_delimiter":{"type":"string","example":"comma","uniqueKey":"steps.file_upload.copy_delimiter","typeLabel":"string"},"show_upload":{"type":"boolean","example":true,"uniqueKey":"steps.file_upload.show_upload","typeLabel":"boolean"},"worksheet_select":{"type":"boolean","example":true,"uniqueKey":"steps.file_upload.worksheet_select","typeLabel":"boolean"},"description_option":{"type":"boolean","example":true,"uniqueKey":"steps.file_upload.description_option","typeLabel":"boolean"},"lang":{"type":"string","example":"en","uniqueKey":"steps.file_upload.lang","typeLabel":"string"},"excel_date_format":{"type":"string","example":"custom","uniqueKey":"steps.file_upload.excel_date_format","typeLabel":"string"},"excel_date_custom":{"type":"string","example":"DD-MM-YYYY","uniqueKey":"steps.file_upload.excel_date_custom","typeLabel":"string"},"hide_cancel":{"type":"boolean","example":false,"uniqueKey":"steps.file_upload.hide_cancel","typeLabel":"boolean"},"split":{"description":"Split large files into multiple imports","type":"boolean","example":true,"uniqueKey":"steps.file_upload.split","typeLabel":"boolean"},"split_rows":{"description":"Rows per import when splitting (min 1)","type":"integer","example":1000,"uniqueKey":"steps.file_upload.split_rows","typeLabel":"integer"},"split_confirm":{"description":"User confirmation required after each import: no=0, yes=1, no_if_no_errors=2","type":"string","enum":["no","yes","no_if_no_errors"],"example":"no","uniqueKey":"steps.file_upload.split_confirm","typeLabel":"enum\u003cstring>"},"extract_types":{"description":"Allowed document extraction types (mapped to .pdf/.doc/images)","type":"array","items":{"type":"string","enum":["pdf","docs","images"],"uniqueKey":"steps.file_upload.extract_types.items.[INDEX]","typeLabel":"enum\u003cstring>"},"example":["pdf","images"],"uniqueKey":"steps.file_upload.extract_types","typeLabel":"enum\u003cstring>[]"},"page_limit":{"oneOf":[{"description":"Max pages allowed for extraction (null = no limit)","type":"integer","example":10,"uniqueKey":"steps.file_upload.page_limit.oneOf.0","typeLabel":"integer"},{"description":"Max pages allowed for extraction (null = no limit)","type":"null","example":10,"uniqueKey":"steps.file_upload.page_limit.oneOf.1","typeLabel":"null"}],"uniqueKey":"steps.file_upload.page_limit","typeLabel":"integer | null"},"accept_raw_value":{"description":"Skip data-type coercion and pass raw cell values through. Defaults to false, deliberately — see the repo's revert-accept-raw-values-default change; this is not a stale default to \"fix\".","type":"boolean","example":false,"uniqueKey":"steps.file_upload.accept_raw_value","typeLabel":"boolean"},"skip_min_rows":{"oneOf":[{"description":"Skip extracted tables with fewer than this many rows (table extraction only)","type":"integer","example":2,"uniqueKey":"steps.file_upload.skip_min_rows.oneOf.0","typeLabel":"integer"},{"description":"Skip extracted tables with fewer than this many rows (table extraction only)","type":"null","example":2,"uniqueKey":"steps.file_upload.skip_min_rows.oneOf.1","typeLabel":"null"}],"uniqueKey":"steps.file_upload.skip_min_rows","typeLabel":"integer | null"},"skip_max_rows":{"oneOf":[{"description":"Skip extracted tables with more than this many rows (table extraction only)","type":"integer","example":1000,"uniqueKey":"steps.file_upload.skip_max_rows.oneOf.0","typeLabel":"integer"},{"description":"Skip extracted tables with more than this many rows (table extraction only)","type":"null","example":1000,"uniqueKey":"steps.file_upload.skip_max_rows.oneOf.1","typeLabel":"null"}],"uniqueKey":"steps.file_upload.skip_max_rows","typeLabel":"integer | null"},"skip_min_cols":{"oneOf":[{"description":"Skip extracted tables with fewer than this many columns (table extraction only)","type":"integer","example":2,"uniqueKey":"steps.file_upload.skip_min_cols.oneOf.0","typeLabel":"integer"},{"description":"Skip extracted tables with fewer than this many columns (table extraction only)","type":"null","example":2,"uniqueKey":"steps.file_upload.skip_min_cols.oneOf.1","typeLabel":"null"}],"uniqueKey":"steps.file_upload.skip_min_cols","typeLabel":"integer | null"},"skip_max_cols":{"oneOf":[{"description":"Skip extracted tables with more than this many columns (table extraction only)","type":"integer","example":20,"uniqueKey":"steps.file_upload.skip_max_cols.oneOf.0","typeLabel":"integer"},{"description":"Skip extracted tables with more than this many columns (table extraction only)","type":"null","example":20,"uniqueKey":"steps.file_upload.skip_max_cols.oneOf.1","typeLabel":"null"}],"uniqueKey":"steps.file_upload.skip_max_cols","typeLabel":"integer | null"}},"type":"object","uniqueKey":"steps.file_upload","typeLabel":"object"},"select_header":{"properties":{"skip":{"type":"boolean","example":true,"uniqueKey":"steps.select_header.skip","typeLabel":"boolean"},"help":{"type":"string","example":"Select header row","uniqueKey":"steps.select_header.help","typeLabel":"string"},"default_row":{"type":"string","example":"2","uniqueKey":"steps.select_header.default_row","typeLabel":"string"},"encoding_option":{"type":"boolean","example":true,"uniqueKey":"steps.select_header.encoding_option","typeLabel":"boolean"},"encoding":{"description":"Accepted values: utf-8, windows-1251, windows-1252, ibm866, iso-8859-2, iso-8859-3, iso-8859-4, iso-8859-5, iso-8859-6, iso-8859-7, iso-8859-8, iso-8859-8-i, iso-8859-10, iso-8859-13, iso-8859-14, iso-8859-15, iso-8859-16, koi8-r, koi8-u, macintosh, windows-874, windows-1250, windows-1253, windows-1254, windows-1255, windows-1256, windows-1257, windows-1258, gbk, gb18030, big5, euc-jp, shift-jis, euc-kr, utf-16be, utf-16le. Values are case-insensitive and lowercased before storage.","type":"string","enum":["utf-8","windows-1251","windows-1252","ibm866","iso-8859-2","iso-8859-3","iso-8859-4","iso-8859-5","iso-8859-6","iso-8859-7","iso-8859-8","iso-8859-8-i","iso-8859-10","iso-8859-13","iso-8859-14","iso-8859-15","iso-8859-16","koi8-r","koi8-u","macintosh","windows-874","windows-1250","windows-1253","windows-1254","windows-1255","windows-1256","windows-1257","windows-1258","gbk","gb18030","big5","euc-jp","shift-jis","euc-kr","utf-16be","utf-16le"],"example":"windows-1252","uniqueKey":"steps.select_header.encoding","typeLabel":"enum\u003cstring>"},"row_column_switch":{"type":"boolean","example":false,"uniqueKey":"steps.select_header.row_column_switch","typeLabel":"boolean"}},"type":"object","uniqueKey":"steps.select_header","typeLabel":"object"},"map_columns":{"properties":{"skip":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.skip","typeLabel":"boolean"},"help":{"type":"string","example":"Map columns","uniqueKey":"steps.map_columns.help","typeLabel":"string"},"mapping_mode":{"type":"string","example":"template_fields","uniqueKey":"steps.map_columns.mapping_mode","typeLabel":"string"},"bulk_cols_dd":{"type":"boolean","example":false,"uniqueKey":"steps.map_columns.bulk_cols_dd","typeLabel":"boolean"},"accept_unmapped":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.accept_unmapped","typeLabel":"boolean"},"accept_unmapped_select":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.accept_unmapped_select","typeLabel":"boolean"},"allow_zero_template":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.allow_zero_template","typeLabel":"boolean"},"ignore_cols":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.ignore_cols","typeLabel":"boolean"},"ignore_cols_default":{"type":"boolean","example":true,"uniqueKey":"steps.map_columns.ignore_cols_default","typeLabel":"boolean"},"user_keywords":{"type":"boolean","example":false,"uniqueKey":"steps.map_columns.user_keywords","typeLabel":"boolean"}},"type":"object","uniqueKey":"steps.map_columns","typeLabel":"object"},"verify_data":{"properties":{"skip":{"type":"boolean","example":true,"uniqueKey":"steps.verify_data.skip","typeLabel":"boolean"},"help":{"type":"string","example":"Verify data","uniqueKey":"steps.verify_data.help","typeLabel":"string"},"row_display_mode":{"type":"string","example":"invalid","uniqueKey":"steps.verify_data.row_display_mode","typeLabel":"string"},"export_option":{"type":"boolean","example":true,"uniqueKey":"steps.verify_data.export_option","typeLabel":"boolean"},"search_option":{"type":"boolean","example":false,"uniqueKey":"steps.verify_data.search_option","typeLabel":"boolean"},"ai_transform":{"type":"boolean","example":true,"uniqueKey":"steps.verify_data.ai_transform","typeLabel":"boolean"},"allow_new_rows":{"type":"boolean","example":false,"uniqueKey":"steps.verify_data.allow_new_rows","typeLabel":"boolean"},"rows_display":{"type":"integer","example":25,"uniqueKey":"steps.verify_data.rows_display","typeLabel":"integer"},"allow_invalid":{"type":"boolean","example":true,"uniqueKey":"steps.verify_data.allow_invalid","typeLabel":"boolean"},"invalid_confirmation":{"type":"boolean","example":false,"uniqueKey":"steps.verify_data.invalid_confirmation","typeLabel":"boolean"},"max_rows":{"type":"integer","example":600,"uniqueKey":"steps.verify_data.max_rows","typeLabel":"integer"},"allow_upload_if_max":{"type":"boolean","example":false,"uniqueKey":"steps.verify_data.allow_upload_if_max","typeLabel":"boolean"},"max_rows_msg":{"type":"string","example":"maaaaaax","uniqueKey":"steps.verify_data.max_rows_msg","typeLabel":"string"},"min_rows":{"type":"integer","example":2,"uniqueKey":"steps.verify_data.min_rows","typeLabel":"integer"},"min_rows_msg":{"type":"string","example":"miiiiin","uniqueKey":"steps.verify_data.min_rows_msg","typeLabel":"string"}},"type":"object","uniqueKey":"steps.verify_data","typeLabel":"object"},"results":{"properties":{"close_mode":{"type":"string","example":"close_on_success","uniqueKey":"steps.results.close_mode","typeLabel":"string"},"redirect_url":{"type":"string","example":"","uniqueKey":"steps.results.redirect_url","typeLabel":"string"},"success_type":{"type":"string","example":"static","uniqueKey":"steps.results.success_type","typeLabel":"string"},"success_text":{"type":"string","example":"Import successful","uniqueKey":"steps.results.success_text","typeLabel":"string"},"success_method":{"type":"string","example":"get","uniqueKey":"steps.results.success_method","typeLabel":"string"},"success_url":{"type":"string","example":"","uniqueKey":"steps.results.success_url","typeLabel":"string"},"success_headers":{"description":"Custom headers sent with the success dynamic callback","type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"steps.results.success_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"steps.results.success_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"steps.results.success_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"steps.results.success_headers","typeLabel":"object[]"},"failed_type":{"type":"string","example":"static","uniqueKey":"steps.results.failed_type","typeLabel":"string"},"failed_text":{"type":"string","example":"Failure","uniqueKey":"steps.results.failed_text","typeLabel":"string"},"failed_method":{"type":"string","example":"get","uniqueKey":"steps.results.failed_method","typeLabel":"string"},"failed_url":{"type":"string","example":"","uniqueKey":"steps.results.failed_url","typeLabel":"string"},"failed_headers":{"description":"Custom headers sent with the failure dynamic callback","type":"array","items":{"required":["key","value"],"properties":{"key":{"description":"---------------------------------------------------------\nHEADER OBJECT\n---------------------------------------------------------","type":"string","example":"Content-Type","isRequired":true,"uniqueKey":"steps.results.failed_headers.items.[INDEX].key","typeLabel":"string"},"value":{"type":"string","example":"application/json","isRequired":true,"uniqueKey":"steps.results.failed_headers.items.[INDEX].value","typeLabel":"string"}},"type":"object","uniqueKey":"steps.results.failed_headers.items.[INDEX]","typeLabel":"object"},"uniqueKey":"steps.results.failed_headers","typeLabel":"object[]"},"show_resubmit":{"type":"boolean","example":false,"uniqueKey":"steps.results.show_resubmit","typeLabel":"boolean"},"show_error_text":{"type":"boolean","example":false,"uniqueKey":"steps.results.show_error_text","typeLabel":"boolean"}},"type":"object","uniqueKey":"steps.results","typeLabel":"object"}},"type":"object","uniqueKey":"steps","typeLabel":"object"},"security_settings":{"properties":{"region":{"type":"string","enum":["us","eu"],"example":"us","uniqueKey":"security_settings.region","typeLabel":"enum\u003cstring>"},"domains":{"type":"array","items":{"type":"string","example":"example.com","uniqueKey":"security_settings.domains.items.[INDEX]","typeLabel":"string"},"uniqueKey":"security_settings.domains","typeLabel":"string[]"},"import_url_upload":{"type":"boolean","example":true,"uniqueKey":"security_settings.import_url_upload","typeLabel":"boolean"},"s3_upload":{"type":"boolean","example":true,"uniqueKey":"security_settings.s3_upload","typeLabel":"boolean"}},"type":"object","uniqueKey":"security_settings","typeLabel":"object"},"virtual_columns":{"description":"POST: every item listed is created. Omitting the key creates nothing.","type":"array","items":{"description":"A computed column. Max 20 per sheet. `column_name` must not collide with a real sheet column.","required":["column_name"],"properties":{"column_name":{"type":"string","maxLength":190,"example":"full_name","isRequired":true,"uniqueKey":"virtual_columns.items.[INDEX].column_name","typeLabel":"string"},"js_code":{"description":"Function body receiving a single `csvbox` argument and returning the computed value. Required unless `_delete` is true, or a PATCH is updating an item that already exists — an omitted `js_code` then keeps the stored snippet. Sending an empty string, null or whitespace is refused with js_syntax_error: preservation is triggered by absence, not emptiness.","type":"string","maxLength":32768,"example":"const a = csvbox.row['col1'] || ''; const b = csvbox.row['col2'] || ''; return (a + ' ' + b).trim();","uniqueKey":"virtual_columns.items.[INDEX].js_code","typeLabel":"string"},"active":{"description":"Defaults to true on API create — unlike the web UI, whose post-save toggle starts off.","type":"boolean","default":true,"example":true,"uniqueKey":"virtual_columns.items.[INDEX].active","typeLabel":"boolean"},"dependencies":{"description":"Supported here as on every collection. Empty in this example because the snippet above needs only `csvbox` and built-ins — see the `check_date` validation function for a worked dependency. To use one here, send `[{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"], \"integrity\": \"sha384-…\"}]`; `globals` and `integrity` are optional, and further scripts are further objects in the same array. See the JsDependency schema for the host allowlist and per-field rules.","type":"array","items":{"description":"A third-party script an item's `js_code` may use. The API never accepts raw HTML — send the URL and the server renders the \u003cscript src> tag. Migrating from the web UI: `js_dependency` markup is not a writable field. Full shape, all three fields, on any of the three collections: `\"dependencies\": [{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"], \"integrity\": \"sha384-…\"}]`. Only `url` is required; `globals` is what makes the library's name callable from `js_code`, and `integrity` is optional. Up to 5 dependencies per item — send them as separate objects in the array, comma-separated, one per script. The server renders each as `\u003cscript src=\"…\" integrity=\"…\" crossorigin=\"anonymous\">\u003c/script>`, in the order sent, so a library that must load before another goes first.","required":["url"],"properties":{"url":{"description":"HTTPS only. Host must be exactly cdn.jsdelivr.net, unpkg.com or cdnjs.cloudflare.com (no subdomains). Path must end in .js or .mjs. No query string, fragment, userinfo or port.","type":"string","format":"url","maxLength":512,"example":"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js","isRequired":true,"uniqueKey":"virtual_columns.items.[INDEX].dependencies.items.[INDEX].url","typeLabel":"string\u003curl>"},"globals":{"description":"Names this script defines. Each is added to the allowed-identifier list for this item only — code referencing an undeclared global is rejected with js_disallowed_global. May not shadow a built-in or `csvbox`. Loading the script is not enough on its own: the code gate checks this list, so a name absent from it is refused whether or not the CDN would have defined it at runtime. Up to 5 names, each matching /^[A-Za-z_$][A-Za-z0-9_$]{0,63}$/.","type":"array","items":{"type":"string","example":"dayjs","uniqueKey":"virtual_columns.items.[INDEX].dependencies.items.[INDEX].globals.items.[INDEX]","typeLabel":"string"},"maxItems":5,"uniqueKey":"virtual_columns.items.[INDEX].dependencies.items.[INDEX].globals","typeLabel":"string[]"},"integrity":{"description":"Optional Subresource Integrity digest: sha256-, sha384- or sha512- followed by base64. When sent it is rendered as the tag's integrity attribute, so the browser refuses the script if the file does not hash to it. Take the digest from the CDN's own copy button (jsDelivr and cdnjs both publish one) — a digest that does not match the exact file at that URL stops the library loading, and the failure shows up in the importer at runtime, not as a 422 here. Pin an exact version in the URL when you use it: a floating version resolves to a different file later and invalidates the digest.","type":"string","example":"sha384-abc123+/def456==","uniqueKey":"virtual_columns.items.[INDEX].dependencies.items.[INDEX].integrity","typeLabel":"string"}},"type":"object","uniqueKey":"virtual_columns.items.[INDEX].dependencies.items.[INDEX]","typeLabel":"object"},"maxItems":5,"example":[],"uniqueKey":"virtual_columns.items.[INDEX].dependencies","typeLabel":"object[]"},"_delete":{"description":"PATCH only. When true the item is deleted and every other field on it is ignored, including `js_code`.","type":"boolean","example":false,"uniqueKey":"virtual_columns.items.[INDEX]._delete","typeLabel":"boolean"}},"type":"object","uniqueKey":"virtual_columns.items.[INDEX]","typeLabel":"object"},"maxItems":20,"uniqueKey":"virtual_columns","typeLabel":"object[]"},"validation_functions":{"description":"POST: every item listed is created. Omitting the key creates nothing. Two functions are shown: `check_email` needs nothing beyond the built-ins, while `check_date` declares `dayjs` — remove that dependency and its code is rejected with js_disallowed_global. That entry omits the optional `integrity` field so this body can be sent unmodified; in your own sheet add `\"integrity\": \"sha384-\u003cdigest published by the CDN>\"` beside the `url`, and add further scripts as further comma-separated objects in the same array (5 max).","type":"array","items":{"description":"A custom validation rule. Max 10 per sheet.","required":["function_name"],"properties":{"function_name":{"type":"string","maxLength":190,"example":"check_email","isRequired":true,"uniqueKey":"validation_functions.items.[INDEX].function_name","typeLabel":"string"},"scope":{"description":"`column` runs over whole columns via csvbox.column[...]; `row` runs per row via csvbox.row[...]. A column-scoped item must name at least one entry across `columns` and `dynamic_columns`. On a PATCH updating an existing item, `scope`, `columns` and `dynamic_columns` preserve as a GROUP: send none of the three and the stored scoping is kept; send any one and all three are taken from the request, so `columns` alone also clears `dynamic_columns`.","type":"string","default":"column","enum":["column","row"],"example":"column","uniqueKey":"validation_functions.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"columns":{"description":"Sheet columns this function reads. Validated against the sheet as it stands AFTER this request, so one call may add a column and a function that uses it. A scope preserved by a PATCH that sent none of the three scope fields is written back as stored and is not re-checked.","type":"array","items":{"type":"string","example":"col4","uniqueKey":"validation_functions.items.[INDEX].columns.items.[INDEX]","typeLabel":"string"},"uniqueKey":"validation_functions.items.[INDEX].columns","typeLabel":"string[]"},"dynamic_columns":{"description":"Columns that only exist at import time and so cannot be checked against the sheet definition.","type":"array","items":{"type":"string","example":"region","uniqueKey":"validation_functions.items.[INDEX].dynamic_columns.items.[INDEX]","typeLabel":"string"},"uniqueKey":"validation_functions.items.[INDEX].dynamic_columns","typeLabel":"string[]"},"js_code":{"description":"Function body receiving `csvbox` and returning an array of errors — empty means valid. Required unless `_delete` is true, or a PATCH is updating an item that already exists — an omitted `js_code` then keeps the stored snippet. Sending an empty string, null or whitespace is refused with js_syntax_error: preservation is triggered by absence, not emptiness.","type":"string","maxLength":32768,"example":"const rows = csvbox.column['col4'] || []; const errs = []; for (let i = 0; i \u003c rows.length; i++) { if (String(rows[i]).indexOf('@') === -1) { errs.push({ row_id: i + 1, column: 'col4', message: 'Not a valid email' }); } } return errs;","uniqueKey":"validation_functions.items.[INDEX].js_code","typeLabel":"string"},"active":{"type":"boolean","default":true,"example":true,"uniqueKey":"validation_functions.items.[INDEX].active","typeLabel":"boolean"},"dependencies":{"description":"Scripts this item's `js_code` may use. The `check_date` example below is the worked case: `[{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"]}]`, plus an optional `integrity` digest per entry. Remove it and the same code is rejected with js_disallowed_global, which is the whole purpose of `globals`. Up to 5 entries, comma-separated in the array, loaded in the order sent.","type":"array","items":{"description":"A third-party script an item's `js_code` may use. The API never accepts raw HTML — send the URL and the server renders the \u003cscript src> tag. Migrating from the web UI: `js_dependency` markup is not a writable field. Full shape, all three fields, on any of the three collections: `\"dependencies\": [{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"], \"integrity\": \"sha384-…\"}]`. Only `url` is required; `globals` is what makes the library's name callable from `js_code`, and `integrity` is optional. Up to 5 dependencies per item — send them as separate objects in the array, comma-separated, one per script. The server renders each as `\u003cscript src=\"…\" integrity=\"…\" crossorigin=\"anonymous\">\u003c/script>`, in the order sent, so a library that must load before another goes first.","required":["url"],"properties":{"url":{"description":"HTTPS only. Host must be exactly cdn.jsdelivr.net, unpkg.com or cdnjs.cloudflare.com (no subdomains). Path must end in .js or .mjs. No query string, fragment, userinfo or port.","type":"string","format":"url","maxLength":512,"example":"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js","isRequired":true,"uniqueKey":"validation_functions.items.[INDEX].dependencies.items.[INDEX].url","typeLabel":"string\u003curl>"},"globals":{"description":"Names this script defines. Each is added to the allowed-identifier list for this item only — code referencing an undeclared global is rejected with js_disallowed_global. May not shadow a built-in or `csvbox`. Loading the script is not enough on its own: the code gate checks this list, so a name absent from it is refused whether or not the CDN would have defined it at runtime. Up to 5 names, each matching /^[A-Za-z_$][A-Za-z0-9_$]{0,63}$/.","type":"array","items":{"type":"string","example":"dayjs","uniqueKey":"validation_functions.items.[INDEX].dependencies.items.[INDEX].globals.items.[INDEX]","typeLabel":"string"},"maxItems":5,"uniqueKey":"validation_functions.items.[INDEX].dependencies.items.[INDEX].globals","typeLabel":"string[]"},"integrity":{"description":"Optional Subresource Integrity digest: sha256-, sha384- or sha512- followed by base64. When sent it is rendered as the tag's integrity attribute, so the browser refuses the script if the file does not hash to it. Take the digest from the CDN's own copy button (jsDelivr and cdnjs both publish one) — a digest that does not match the exact file at that URL stops the library loading, and the failure shows up in the importer at runtime, not as a 422 here. Pin an exact version in the URL when you use it: a floating version resolves to a different file later and invalidates the digest.","type":"string","example":"sha384-abc123+/def456==","uniqueKey":"validation_functions.items.[INDEX].dependencies.items.[INDEX].integrity","typeLabel":"string"}},"type":"object","uniqueKey":"validation_functions.items.[INDEX].dependencies.items.[INDEX]","typeLabel":"object"},"maxItems":5,"uniqueKey":"validation_functions.items.[INDEX].dependencies","typeLabel":"object[]"},"_delete":{"description":"PATCH only. See VirtualColumn._delete.","type":"boolean","example":false,"uniqueKey":"validation_functions.items.[INDEX]._delete","typeLabel":"boolean"}},"type":"object","uniqueKey":"validation_functions.items.[INDEX]","typeLabel":"object"},"maxItems":10,"example":[{"function_name":"check_email","scope":"column","columns":["col4"],"js_code":"const rows = csvbox.column['col4'] || []; const errs = []; for (let i = 0; i \u003c rows.length; i++) { if (String(rows[i]).indexOf('@') === -1) { errs.push({ row_id: i + 1, column: 'col4', message: 'Not a valid email' }); } } return errs;","active":true},{"function_name":"check_date","scope":"column","columns":["col5"],"js_code":"const rows = csvbox.column['col5'] || []; const errs = []; const today = dayjs(); for (let i = 0; i \u003c rows.length; i++) { const raw = String(rows[i] || '').trim(); if (raw === '') { continue; } const d = dayjs(raw); if (!d.isValid() || d.format('YYYY-MM-DD') !== raw) { errs.push({ row_id: i + 1, column: 'col5', message: 'Use YYYY-MM-DD, e.g. 2024-01-31' }); } else if (d.isAfter(today)) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date cannot be in the future' }); } else if (d.year() \u003c 1900) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date must be 1900 or later' }); } } return errs;","dependencies":[{"url":"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js","globals":["dayjs"]}],"active":true}],"uniqueKey":"validation_functions","typeLabel":"object[]"},"data_transforms":{"description":"POST: every item listed is created. Omitting the key creates nothing.","type":"array","items":{"description":"A transform that rewrites values in place. Max 10 per sheet.","required":["transform_name"],"properties":{"transform_name":{"type":"string","maxLength":190,"example":"uppercase_country","isRequired":true,"uniqueKey":"data_transforms.items.[INDEX].transform_name","typeLabel":"string"},"scope":{"type":"string","default":"column","enum":["column","row"],"example":"column","uniqueKey":"data_transforms.items.[INDEX].scope","typeLabel":"enum\u003cstring>"},"run_at":{"description":"When the transform runs relative to validation.","type":"string","enum":["before_validation","after_validation"],"example":"before_validation","uniqueKey":"data_transforms.items.[INDEX].run_at","typeLabel":"enum\u003cstring>"},"columns":{"type":"array","items":{"type":"string","example":"col1","uniqueKey":"data_transforms.items.[INDEX].columns.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data_transforms.items.[INDEX].columns","typeLabel":"string[]"},"dynamic_columns":{"type":"array","items":{"type":"string","example":"region","uniqueKey":"data_transforms.items.[INDEX].dynamic_columns.items.[INDEX]","typeLabel":"string"},"uniqueKey":"data_transforms.items.[INDEX].dynamic_columns","typeLabel":"string[]"},"js_code":{"description":"Function body receiving `csvbox`, mutating it and returning it. Required unless `_delete` is true, or a PATCH is updating an item that already exists — an omitted `js_code` then keeps the stored snippet. Sending an empty string, null or whitespace is refused with js_syntax_error: preservation is triggered by absence, not emptiness.","type":"string","maxLength":32768,"example":"for (let i = 0; i \u003c csvbox.column['col1'].length; i++) { csvbox.column['col1'][i] = String(csvbox.column['col1'][i]).toUpperCase(); } return csvbox;","uniqueKey":"data_transforms.items.[INDEX].js_code","typeLabel":"string"},"active":{"type":"boolean","default":true,"example":true,"uniqueKey":"data_transforms.items.[INDEX].active","typeLabel":"boolean"},"dependencies":{"description":"Supported here as on every collection. Empty in this example because the snippet above needs only `csvbox` and built-ins — see the `check_date` validation function for a worked dependency. To use one here, send `[{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"], \"integrity\": \"sha384-…\"}]`; `globals` and `integrity` are optional, and further scripts are further objects in the same array. See the JsDependency schema for the host allowlist and per-field rules.","type":"array","items":{"description":"A third-party script an item's `js_code` may use. The API never accepts raw HTML — send the URL and the server renders the \u003cscript src> tag. Migrating from the web UI: `js_dependency` markup is not a writable field. Full shape, all three fields, on any of the three collections: `\"dependencies\": [{\"url\": \"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js\", \"globals\": [\"dayjs\"], \"integrity\": \"sha384-…\"}]`. Only `url` is required; `globals` is what makes the library's name callable from `js_code`, and `integrity` is optional. Up to 5 dependencies per item — send them as separate objects in the array, comma-separated, one per script. The server renders each as `\u003cscript src=\"…\" integrity=\"…\" crossorigin=\"anonymous\">\u003c/script>`, in the order sent, so a library that must load before another goes first.","required":["url"],"properties":{"url":{"description":"HTTPS only. Host must be exactly cdn.jsdelivr.net, unpkg.com or cdnjs.cloudflare.com (no subdomains). Path must end in .js or .mjs. No query string, fragment, userinfo or port.","type":"string","format":"url","maxLength":512,"example":"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js","isRequired":true,"uniqueKey":"data_transforms.items.[INDEX].dependencies.items.[INDEX].url","typeLabel":"string\u003curl>"},"globals":{"description":"Names this script defines. Each is added to the allowed-identifier list for this item only — code referencing an undeclared global is rejected with js_disallowed_global. May not shadow a built-in or `csvbox`. Loading the script is not enough on its own: the code gate checks this list, so a name absent from it is refused whether or not the CDN would have defined it at runtime. Up to 5 names, each matching /^[A-Za-z_$][A-Za-z0-9_$]{0,63}$/.","type":"array","items":{"type":"string","example":"dayjs","uniqueKey":"data_transforms.items.[INDEX].dependencies.items.[INDEX].globals.items.[INDEX]","typeLabel":"string"},"maxItems":5,"uniqueKey":"data_transforms.items.[INDEX].dependencies.items.[INDEX].globals","typeLabel":"string[]"},"integrity":{"description":"Optional Subresource Integrity digest: sha256-, sha384- or sha512- followed by base64. When sent it is rendered as the tag's integrity attribute, so the browser refuses the script if the file does not hash to it. Take the digest from the CDN's own copy button (jsDelivr and cdnjs both publish one) — a digest that does not match the exact file at that URL stops the library loading, and the failure shows up in the importer at runtime, not as a 422 here. Pin an exact version in the URL when you use it: a floating version resolves to a different file later and invalidates the digest.","type":"string","example":"sha384-abc123+/def456==","uniqueKey":"data_transforms.items.[INDEX].dependencies.items.[INDEX].integrity","typeLabel":"string"}},"type":"object","uniqueKey":"data_transforms.items.[INDEX].dependencies.items.[INDEX]","typeLabel":"object"},"maxItems":5,"example":[],"uniqueKey":"data_transforms.items.[INDEX].dependencies","typeLabel":"object[]"},"_delete":{"description":"PATCH only. See VirtualColumn._delete.","type":"boolean","example":false,"uniqueKey":"data_transforms.items.[INDEX]._delete","typeLabel":"boolean"}},"type":"object","uniqueKey":"data_transforms.items.[INDEX]","typeLabel":"object"},"maxItems":10,"uniqueKey":"data_transforms","typeLabel":"object[]"},"pdf_metadata_config":{"description":"Fields to extract from an uploaded PDF/DOCX. Sending the key replaces the whole stored array; omitting it leaves any existing configuration untouched.","type":"array","items":{"description":"One metadata field to extract from an uploaded PDF/DOCX. Max 20 per sheet.","required":["name","source"],"properties":{"name":{"description":"Output key. For `source=native`/`document-kv` this also drives matching (see `source`); for `static`/`line-match` it is only the output key.","type":"string","maxLength":100,"example":"Invoice Number","isRequired":true,"uniqueKey":"pdf_metadata_config.items.[INDEX].name","typeLabel":"string"},"source":{"description":"Where the value comes from. `native`: `name` is matched case-insensitively against the uploaded PDF/DOCX's own document properties (e.g. Author, Title, Subject, Keywords, CreationDate) — `value` is ignored. `document-kv`: `name` must match, after whitespace/trailing-punctuation normalization, the exact (case-sensitive) label text of a key-value pair detected on the document (e.g. a form field literally labeled `Invoice Number`) — `value` is ignored. `static`: `value` is returned verbatim. `line-match`: `value` is a search term — the document's extracted text is scanned line by line and whatever follows that term is returned (falling back to the next line if nothing follows it on the same line).","type":"string","enum":["native","document-kv","static","line-match"],"example":"document-kv","isRequired":true,"uniqueKey":"pdf_metadata_config.items.[INDEX].source","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"description":"Required when `source` is `static` (the literal to return) or `line-match` (the search term). Ignored for `native` and `document-kv`.","type":"string","example":null,"uniqueKey":"pdf_metadata_config.items.[INDEX].value.oneOf.0","typeLabel":"string"},{"description":"Required when `source` is `static` (the literal to return) or `line-match` (the search term). Ignored for `native` and `document-kv`.","type":"null","example":null,"uniqueKey":"pdf_metadata_config.items.[INDEX].value.oneOf.1","typeLabel":"null"}],"uniqueKey":"pdf_metadata_config.items.[INDEX].value","typeLabel":"string | null"}},"type":"object","uniqueKey":"pdf_metadata_config.items.[INDEX]","typeLabel":"object"},"maxItems":20,"example":[{"name":"Author","source":"native"},{"name":"Invoice Number","source":"document-kv"},{"name":"processed_by","source":"static","value":"AP Team"},{"name":"invoice_date","source":"line-match","value":"Invoice Date:"}],"uniqueKey":"pdf_metadata_config","typeLabel":"object[]"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"title":"Customer Import","webhooks":[{"import_complete":{"url":"https://example.com/webhook","send_copy":false,"custom_headers":[{"key":"Content-Type","value":"application/json"}]}}],"destinations":[{"type":"webhook","isActive":true,"settings":{"method":"POST","url":"https://example.com/api/import","post_data_format":"JSON","rows_per_chunk":100,"request_type":"parallel","server_side_validation":true,"allow_resubmit":"all_rows","custom_headers":[{"key":"Content-Type","value":"application/json"}]}}],"sheet_columns":[{"column_name":"col1","display_label":"Col1 - Text","info_hint":"What is your highest educational degree","matching_keywords":"degree, education","type":"text","validators":{"min_length":2,"max_length":50},"default_value":"","required":false,"position":5},{"column_name":"col2","display_label":"col2 - Number","info_hint":"Years of work experience","type":"number","validators":{"min_value":1,"max_value":100},"required":false,"position":6},{"column_name":"col4","display_label":"col4 - Email","type":"email","required":false,"position":7},{"column_name":"col5","display_label":"col5 - Date","type":"date","required":false,"validators":{"format":"YYYY-MM-DD"},"position":8},{"column_name":"col6","display_label":"col6 - Time","type":"time","required":false,"validators":{"format":"HH:mm:ss"}},{"column_name":"col7","display_label":"col7 - Boolean","type":"boolean","required":false},{"column_name":"col8","display_label":"col8 - Regex","type":"regex","required":false,"validators":{"expression":"^\\d{10}$","error_message":"Please enter a valid 10 digit phone number"}},{"column_name":"col9","display_label":"col9 - IP","type":"ip","required":false,"validators":{"version":"ipv4"}},{"column_name":"col10","display_label":"col10 - URL","type":"url","required":false},{"column_name":"col11","display_label":"col11 - Credit Card","type":"credit_card","required":false},{"column_name":"col12","display_label":"col12 - Phone Number","type":"phone_number","required":false,"validators":{"country_code":"IN"}},{"column_name":"col13","display_label":"col13 - Currency","type":"currency","required":false,"validators":{"symbol":"$","require_symbol":false}},{"column_name":"col14","display_label":"col14 - List","type":"list","required":false,"validators":{"values":[{"value":"ind","display_label":"India","dependents":[{"value":"mh","display_label":"Maharashtra","dependents":[{"value":"mum","display_label":"Mumbai"},{"value":"pun","display_label":"Pune"}]},{"value":"gj","display_label":"Gujarat","dependents":[{"value":"amd","display_label":"Ahmedabad"},{"value":"sur","display_label":"Surat"}]}]},{"value":"usa","display_label":"United States","dependents":[{"value":"ca","display_label":"California","dependents":[{"value":"la","display_label":"Los Angeles"},{"value":"sf","display_label":"San Francisco"}]},{"value":"ny","display_label":"New York","dependents":[{"value":"nyc","display_label":"New York City"},{"value":"buf","display_label":"Buffalo"}]}]},{"value":"can","display_label":"Canada","dependents":[{"value":"on","display_label":"Ontario","dependents":[{"value":"tor","display_label":"Toronto"},{"value":"ott","display_label":"Ottawa"}]},{"value":"bc","display_label":"British Columbia","dependents":[{"value":"van","display_label":"Vancouver"},{"value":"vic","display_label":"Victoria"}]}]}],"case_sensitive":false}},{"column_name":"col15","display_label":"col15 - Dependent List","type":"dependent_list","required":false,"validators":{"primary_column":"col14"}},{"column_name":"col16","display_label":"col16 - Dependent List","type":"dependent_list","required":false,"validators":{"primary_column":"col15"}},{"column_name":"col17","display_label":"col17 - Dynamic List","type":"dynamic_list","required":false,"validators":{"source_url":"https://example.com/api/dynamic-list-options","request_method":"GET","request_headers":[],"custom_user_attributes":true,"other_values":false}},{"column_name":"col18","display_label":"col18 - Dependent Dynamic List","type":"dependent_dynamic_list","required":false,"validators":{"primary_column":"col17"}},{"column_name":"col19","display_label":"col19 - Dependent Dynamic List","type":"dependent_dynamic_list","required":false,"validators":{"primary_column":"col18"}},{"column_name":"col20","display_label":"col20 - Multiselect List","type":"multiselect_list","required":false,"validators":{"values":["Red","Green","Blue","orange","yellow","black"],"delimiter":",","case_sensitive":false,"other_values":false}},{"column_name":"col21","display_label":"col21 - Multiselect Dynamic List","type":"multiselect_dynamic_list","required":false,"validators":{"dml_source_url":"https://example.com/api/multiselect-dynamic-options","dml_request_method":"GET","dml_request_headers":[],"delimiter":",","dml_other_values":false}},{"column_name":"col22","display_label":"col22 - Percentage","type":"percentage","required":false,"validators":{"min_value":0,"max_value":100,"output":"percent"}},{"column_name":"col23","display_label":"col23 - UUID","type":"uuid","required":false},{"column_name":"col24","display_label":"col24 - JSON","type":"json","required":false}],"steps":{"file_upload":{"types":[".csv"],"title":"File Upload","help":"Upload your CSV file","sample_file_url":"","size_mb":200,"validation_msg":"upto 200mb allowed","copy_paste":true,"copy_delimiter":"comma","show_upload":true,"worksheet_select":true,"description_option":true,"lang":"en","excel_date_format":"custom","excel_date_custom":"DD-MM-YYYY","hide_cancel":false,"split":true,"split_rows":1000,"split_confirm":"no","extract_types":["pdf","images"],"page_limit":10,"accept_raw_value":false,"skip_min_rows":2,"skip_max_rows":1000,"skip_min_cols":2,"skip_max_cols":20},"select_header":{"skip":true,"help":"Select header row","default_row":"2","encoding_option":true,"encoding":"windows-1252","row_column_switch":false},"map_columns":{"skip":true,"help":"Map columns","mapping_mode":"template_fields","bulk_cols_dd":false,"accept_unmapped":true,"accept_unmapped_select":true,"allow_zero_template":true,"ignore_cols":true,"ignore_cols_default":true,"user_keywords":false},"verify_data":{"skip":true,"help":"Verify data","row_display_mode":"invalid","export_option":true,"search_option":false,"ai_transform":true,"allow_new_rows":false,"rows_display":25,"allow_invalid":true,"invalid_confirmation":false,"max_rows":600,"allow_upload_if_max":false,"max_rows_msg":"maaaaaax","min_rows":2,"min_rows_msg":"miiiiin"},"results":{"close_mode":"close_on_success","redirect_url":"","success_type":"static","success_text":"Import successful","success_method":"get","success_url":"","success_headers":[{"key":"Content-Type","value":"application/json"}],"failed_type":"static","failed_text":"Failure","failed_method":"get","failed_url":"","failed_headers":[{"key":"Content-Type","value":"application/json"}],"show_resubmit":false,"show_error_text":false}},"security_settings":{"region":"us","domains":["example.com"],"import_url_upload":true,"s3_upload":true},"virtual_columns":[{"column_name":"full_name","js_code":"const a = csvbox.row['col1'] || ''; const b = csvbox.row['col2'] || ''; return (a + ' ' + b).trim();","active":true,"dependencies":[],"_delete":false}],"validation_functions":[{"function_name":"check_email","scope":"column","columns":["col4"],"js_code":"const rows = csvbox.column['col4'] || []; const errs = []; for (let i = 0; i \u003c rows.length; i++) { if (String(rows[i]).indexOf('@') === -1) { errs.push({ row_id: i + 1, column: 'col4', message: 'Not a valid email' }); } } return errs;","active":true},{"function_name":"check_date","scope":"column","columns":["col5"],"js_code":"const rows = csvbox.column['col5'] || []; const errs = []; const today = dayjs(); for (let i = 0; i \u003c rows.length; i++) { const raw = String(rows[i] || '').trim(); if (raw === '') { continue; } const d = dayjs(raw); if (!d.isValid() || d.format('YYYY-MM-DD') !== raw) { errs.push({ row_id: i + 1, column: 'col5', message: 'Use YYYY-MM-DD, e.g. 2024-01-31' }); } else if (d.isAfter(today)) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date cannot be in the future' }); } else if (d.year() \u003c 1900) { errs.push({ row_id: i + 1, column: 'col5', message: 'Date must be 1900 or later' }); } } return errs;","dependencies":[{"url":"https://cdn.jsdelivr.net/npm/dayjs@1.11.10/dayjs.min.js","globals":["dayjs"]}],"active":true}],"data_transforms":[{"transform_name":"uppercase_country","scope":"column","run_at":"before_validation","columns":["col1"],"dynamic_columns":["region"],"js_code":"for (let i = 0; i \u003c csvbox.column['col1'].length; i++) { csvbox.column['col1'][i] = String(csvbox.column['col1'][i]).toUpperCase(); } return csvbox;","active":true,"dependencies":[],"_delete":false}],"pdf_metadata_config":[{"name":"Author","source":"native"},{"name":"Invoice Number","source":"document-kv"},{"name":"processed_by","source":"static","value":"AP Team"},{"name":"invoice_date","source":"line-match","value":"Invoice Date:"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"b97db58f-d334-46a4-a9a1-c71c34197209":{"description":"Sheet Created Successfully","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","example":"Sheet Created Successfully","uniqueKey":"status","typeLabel":"string"},"data":{"properties":{"sheet_license_key":{"type":"string","uniqueKey":"data.sheet_license_key","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.title","typeLabel":"string"},"virtual_columns":{"description":"Per-item outcome, present only when the request sent this collection. Additive — existing clients reading sheet_license_key and title are unaffected.","type":"array","items":{"properties":{"column_name":{"type":"string","example":"full_name","uniqueKey":"data.virtual_columns.items.[INDEX].column_name","typeLabel":"string"},"result":{"type":"string","enum":["created","updated","unchanged","deleted"],"example":"created","uniqueKey":"data.virtual_columns.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.virtual_columns.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.virtual_columns","typeLabel":"object[]"},"validation_functions":{"description":"Per-item outcome, present only when the request sent this collection. `unchanged` means the item was submitted but matched what was already stored, so no write happened.","type":"array","items":{"properties":{"function_name":{"type":"string","example":"check_email","uniqueKey":"data.validation_functions.items.[INDEX].function_name","typeLabel":"string"},"result":{"type":"string","enum":["created","updated","unchanged","deleted"],"example":"updated","uniqueKey":"data.validation_functions.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.validation_functions.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.validation_functions","typeLabel":"object[]"},"data_transforms":{"description":"Per-item outcome, present only when the request sent this collection.","type":"array","items":{"properties":{"transform_name":{"type":"string","example":"uppercase_country","uniqueKey":"data.data_transforms.items.[INDEX].transform_name","typeLabel":"string"},"result":{"type":"string","enum":["created","updated","unchanged","deleted"],"example":"unchanged","uniqueKey":"data.data_transforms.items.[INDEX].result","typeLabel":"enum\u003cstring>"}},"type":"object","uniqueKey":"data.data_transforms.items.[INDEX]","typeLabel":"object"},"uniqueKey":"data.data_transforms","typeLabel":"object[]"}},"type":"object","uniqueKey":"data","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"Sheet Created Successfully","data":{"sheet_license_key":"\u003cstring>","title":"\u003cstring>","virtual_columns":[{"column_name":"full_name","result":"created"}],"validation_functions":[{"function_name":"check_email","result":"updated"}],"data_transforms":[{"transform_name":"uppercase_country","result":"unchanged"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"025f60b3-2381-483e-9e2b-34581e40735a":{"description":"Bad Request","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","example":"Sheet Creation Failed","uniqueKey":"status","typeLabel":"string"},"errors":{"description":"Keys are dotted paths into the request body (for example `virtual_columns.0.js_code`), each mapping to a list of problems found at that path. Every failing item is reported in one response, so a caller pushing ten functions learns about all ten in a single round trip. Requests rejected by the JavaScript gate always use this form, and point into that item's own js_code: `line` is 1-based, `column` is 0-based. `identifier`, `line` and `column` are present only when the violation has one. Codes: js_code_too_long, js_forbidden_sequence, js_syntax_error, js_disallowed_global, js_forbidden_construct, js_duplicate_name, js_name_conflicts_column, js_unknown_column, js_too_many_items, js_budget_exceeded, js_name_ambiguous, js_missing_name, js_unknown_field, js_invalid_field, js_invalid_item, dependency_url_invalid, dependency_host_not_allowed, column_name_ambiguous.","type":"object","example":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"js_disallowed_global","uniqueKey":"errors.additionalProperties.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","uniqueKey":"errors.additionalProperties.items.[INDEX].message","typeLabel":"string"},"identifier":{"type":"string","example":"fetch","uniqueKey":"errors.additionalProperties.items.[INDEX].identifier","typeLabel":"string"},"line":{"type":"integer","example":1,"uniqueKey":"errors.additionalProperties.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","example":7,"uniqueKey":"errors.additionalProperties.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"errors","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"Sheet Creation Failed","errors":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"f4bfc43c-af41-49b2-a4ba-37356bbdcdf9":{"description":"Unauthorized","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","example":"Sheet Creation Failed","uniqueKey":"status","typeLabel":"string"},"errors":{"description":"Keys are dotted paths into the request body (for example `virtual_columns.0.js_code`), each mapping to a list of problems found at that path. Every failing item is reported in one response, so a caller pushing ten functions learns about all ten in a single round trip. Requests rejected by the JavaScript gate always use this form, and point into that item's own js_code: `line` is 1-based, `column` is 0-based. `identifier`, `line` and `column` are present only when the violation has one. Codes: js_code_too_long, js_forbidden_sequence, js_syntax_error, js_disallowed_global, js_forbidden_construct, js_duplicate_name, js_name_conflicts_column, js_unknown_column, js_too_many_items, js_budget_exceeded, js_name_ambiguous, js_missing_name, js_unknown_field, js_invalid_field, js_invalid_item, dependency_url_invalid, dependency_host_not_allowed, column_name_ambiguous.","type":"object","example":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"js_disallowed_global","uniqueKey":"errors.additionalProperties.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","uniqueKey":"errors.additionalProperties.items.[INDEX].message","typeLabel":"string"},"identifier":{"type":"string","example":"fetch","uniqueKey":"errors.additionalProperties.items.[INDEX].identifier","typeLabel":"string"},"line":{"type":"integer","example":1,"uniqueKey":"errors.additionalProperties.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","example":7,"uniqueKey":"errors.additionalProperties.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"errors","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"Sheet Creation Failed","errors":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"ff24dd30-3951-4f05-a28b-7470d5db1168":{"description":"Validation Failed","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","example":"Sheet Creation Failed","uniqueKey":"status","typeLabel":"string"},"errors":{"description":"Keys are dotted paths into the request body (for example `virtual_columns.0.js_code`), each mapping to a list of problems found at that path. Every failing item is reported in one response, so a caller pushing ten functions learns about all ten in a single round trip. Requests rejected by the JavaScript gate always use this form, and point into that item's own js_code: `line` is 1-based, `column` is 0-based. `identifier`, `line` and `column` are present only when the violation has one. Codes: js_code_too_long, js_forbidden_sequence, js_syntax_error, js_disallowed_global, js_forbidden_construct, js_duplicate_name, js_name_conflicts_column, js_unknown_column, js_too_many_items, js_budget_exceeded, js_name_ambiguous, js_missing_name, js_unknown_field, js_invalid_field, js_invalid_item, dependency_url_invalid, dependency_host_not_allowed, column_name_ambiguous.","type":"object","example":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"js_disallowed_global","uniqueKey":"errors.additionalProperties.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","uniqueKey":"errors.additionalProperties.items.[INDEX].message","typeLabel":"string"},"identifier":{"type":"string","example":"fetch","uniqueKey":"errors.additionalProperties.items.[INDEX].identifier","typeLabel":"string"},"line":{"type":"integer","example":1,"uniqueKey":"errors.additionalProperties.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","example":7,"uniqueKey":"errors.additionalProperties.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"errors","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"Sheet Creation Failed","errors":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"4e5e6551-1be5-4713-9cc9-19dc8dedd074":{"description":"Server Error","content":{"application/json":{"schema":{"properties":{"status":{"type":"string","example":"Sheet Creation Failed","uniqueKey":"status","typeLabel":"string"},"errors":{"description":"Keys are dotted paths into the request body (for example `virtual_columns.0.js_code`), each mapping to a list of problems found at that path. Every failing item is reported in one response, so a caller pushing ten functions learns about all ten in a single round trip. Requests rejected by the JavaScript gate always use this form, and point into that item's own js_code: `line` is 1-based, `column` is 0-based. `identifier`, `line` and `column` are present only when the violation has one. Codes: js_code_too_long, js_forbidden_sequence, js_syntax_error, js_disallowed_global, js_forbidden_construct, js_duplicate_name, js_name_conflicts_column, js_unknown_column, js_too_many_items, js_budget_exceeded, js_name_ambiguous, js_missing_name, js_unknown_field, js_invalid_field, js_invalid_item, dependency_url_invalid, dependency_host_not_allowed, column_name_ambiguous.","type":"object","example":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]},"additionalProperties":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string","example":"js_disallowed_global","uniqueKey":"errors.additionalProperties.items.[INDEX].code","typeLabel":"string"},"message":{"type":"string","example":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","uniqueKey":"errors.additionalProperties.items.[INDEX].message","typeLabel":"string"},"identifier":{"type":"string","example":"fetch","uniqueKey":"errors.additionalProperties.items.[INDEX].identifier","typeLabel":"string"},"line":{"type":"integer","example":1,"uniqueKey":"errors.additionalProperties.items.[INDEX].line","typeLabel":"integer"},"column":{"type":"integer","example":7,"uniqueKey":"errors.additionalProperties.items.[INDEX].column","typeLabel":"integer"}},"uniqueKey":"errors.additionalProperties.items.[INDEX]","typeLabel":"object"},"uniqueKey":"errors.additionalProperties","typeLabel":"object[]"},"uniqueKey":"errors","typeLabel":"object"}},"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":"Sheet Creation Failed","errors":{"virtual_columns.0.js_code":[{"code":"js_disallowed_global","message":"Disallowed global `fetch`. Snippets may only reference the `csvbox` argument, standard built-ins, and globals declared in this item's dependencies.","identifier":"fetch","line":1,"column":7}]}}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"f87e3d06-508f-426f-9919-e591964b8471":{"ApiKeyAuth":{"type":"apiKey","name":"x-csvbox-api-key","in":"header","scopes":[],"schemeName":"ApiKeyAuth"},"ApiSecretKeyAuth":{"type":"apiKey","name":"x-csvbox-secret-api-key","in":"header","scopes":[],"schemeName":"ApiSecretKeyAuth"}}},"servers":{"85dfa550-617a-49df-b618-dab33beb09bb":{"url":"https://api.csvbox.io/","description":"CSVBox Sheets API Server"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"x-csvbox-api-key","in":"header","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"x-csvbox-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"x-csvbox-api-key"},{"scheme":{"type":"apiKey","name":"x-csvbox-secret-api-key","in":"header","scopes":[],"schemeName":"ApiSecretKeyAuth"},"schema":{"title":"x-csvbox-secret-api-key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiSecretKeyAuth","name":"x-csvbox-secret-api-key"}],"title":"ApiKeyAuth \u0026 ApiSecretKeyAuth"}]},"originalFileLocation":"https://app.csvbox.io/docs?api-docs.json"},"subdomain":"csvbox-io","siteName":"CSVbox Docs","title":"Create a sheet - CSVbox Docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T10:57:38.209Z","originalFileLocation":"advanced-installation/sheet-api/create-sheet.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";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=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Creates a new sheet importer.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CSVbox Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_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/csvbox-io/bl8fwLPU1An19g_C/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Create a sheet - CSVbox Docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Creates a new sheet importer.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CSVbox Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://csvbox.io/og/default.png\">\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=\"Create a sheet - CSVbox Docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Creates a new sheet importer.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://csvbox.io/og/default.png\">\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/csvbox-io/bl8fwLPU1An19g_C/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CSVbox Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#007BFF\">\u003clink data-mint-head rel=\"canonical\" href=\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/advanced-installation/sheet-api/create-sheet.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://help.csvbox.io/#organization\",\"name\":\"CSVbox Docs\",\"url\":\"https://help.csvbox.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/csvbox-io/VaNqBS2QJ21PoHnw/images/1200_square.png?fit=max\u0026auto=format\u0026n=VaNqBS2QJ21PoHnw\u0026q=85\u0026s=561607ac3a031918fe0739aab943dccf\"}},{\"@type\":\"WebSite\",\"@id\":\"https://help.csvbox.io#website\",\"name\":\"CSVbox Docs\",\"url\":\"https://help.csvbox.io\",\"publisher\":{\"@id\":\"https://help.csvbox.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet#webpage\",\"url\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet\",\"name\":\"Create a sheet\",\"description\":\"Creates a new sheet importer.\",\"dateModified\":\"2026-10-09T10:57:38.209Z\",\"isPartOf\":{\"@id\":\"https://help.csvbox.io#website\"},\"breadcrumb\":{\"@id\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Advanced Installation\",\"item\":\"https://help.csvbox.io/advanced-installation\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"APIs \u0026 Integrations\",\"item\":\"https://help.csvbox.io/advanced-installation/rest-file-api\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Sheet API\",\"item\":\"https://help.csvbox.io/advanced-installation/sheet-api\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Create a sheet\",\"item\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet#apireference\",\"headline\":\"Create a sheet\",\"name\":\"Create a sheet\",\"description\":\"Creates a new sheet importer.\",\"url\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet\",\"mainEntityOfPage\":{\"@id\":\"https://help.csvbox.io/advanced-installation/sheet-api/create-sheet#webpage\"},\"image\":\"https://csvbox.io/og/default.png\",\"dateModified\":\"2026-10-09T10:57:38.209Z\",\"publisher\":{\"@id\":\"https://help.csvbox.io/#organization\"},\"isPartOf\":{\"@id\":\"https://help.csvbox.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CSVbox Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"CSVbox Docs","nav":{"global":null,"pages":[{"title":"Help Center","sidebarTitle":"Home","icon":"house","href":"/index"},{"group":"Getting Started","icon":"rocket","expanded":true,"pages":[{"title":"Getting Started","sidebarTitle":"Overview","href":"/getting-started"},{"title":"Add a Template","href":"/getting-started/1-add-template"},{"title":"Install the Code","href":"/getting-started/2-install-code"},{"title":"Receive Data","href":"/getting-started/3-receive-data"}]},{"group":"Dashboard Settings","icon":"sliders","pages":[{"title":"Dashboard Settings","sidebarTitle":"Overview","href":"/dashboard-settings"},{"title":"Sheet Options","href":"/dashboard-settings/sheet-options-1"},{"title":"Bulk Add Columns","href":"/dashboard-settings/add-columns-via-csv"},{"title":"Validations","href":"/dashboard-settings/validations"},{"title":"Smart Date and Number Formats","sidebarTitle":"Date \u0026 Number Formats","href":"/dashboard-settings/smart-date-and-number-formats"},{"title":"Sheet Tags","href":"/dashboard-settings/sheet-tags"},{"title":"Import Analytics","href":"/dashboard-settings/import-analytics"},{"title":"Split Large CSV","href":"/dashboard-settings/split-large-csv"},{"group":"AI Features","pages":[{"title":"AI Pre-Import Transform","href":"/dashboard-settings/ai-pre-import-transform"},{"title":"AI Bulk Transforms","href":"/dashboard-settings/ai-bulk-transforms"},{"title":"AI Function Generator","href":"/dashboard-settings/ai-function-generator"},{"title":"AI Document Import","sidebarTitle":"AI Document Import","href":"/dashboard-settings/ai-document-import"},{"title":"Document Metadata Fields","href":"/dashboard-settings/ai-document-import/document-metadata-fields"}]}]},{"group":"Sheet Settings","icon":"table-list","pages":[{"title":"Columns","href":"/sheet-settings/columns"},{"group":"Import Steps","pages":[{"title":"File Upload","href":"/sheet-settings/import-steps/file-upload"},{"title":"Select Header","href":"/sheet-settings/import-steps/select-header"},{"title":"Map Columns","href":"/sheet-settings/import-steps/map-columns"},{"title":"Verify Data","href":"/sheet-settings/import-steps/verify-data"},{"title":"Results","href":"/sheet-settings/import-steps/results"}]},{"title":"Display","href":"/sheet-settings/display"},{"title":"Security","href":"/sheet-settings/security"},{"title":"Code Snippet","href":"/sheet-settings/code-snippet"},{"title":"Sheet import \u0026 export","href":"/sheet-settings/sheet-import-export"},{"title":"Data Transforms","href":"/sheet-settings/data-transforms"},{"title":"Validation Functions","href":"/sheet-settings/validation-functions"},{"title":"Virtual Columns","href":"/sheet-settings/virtual-columns"}]},{"group":"Advanced Installation","icon":"code","pages":[{"title":"Advanced Installation","sidebarTitle":"Overview","href":"/advanced-installation"},{"group":"Columns","pages":[{"title":"Dynamic Columns","sidebarTitle":"Dynamic Columns","href":"/advanced-installation/dynamic-columns"}]},{"group":"Validation \u0026 Transforms","pages":[{"title":"Server-Side Validation","href":"/advanced-installation/server-side-validation"},{"title":"If/Else Builder","href":"/advanced-installation/if-else-builder"}]},{"group":"APIs \u0026 Integrations","pages":[{"title":"REST File API","href":"/advanced-installation/rest-file-api"},{"title":"Auth API","href":"/advanced-installation/auth-api"},{"group":"Sheet API","pages":[{"title":"Sheet API","sidebarTitle":"Overview","href":"/advanced-installation/sheet-api"},{"title":"List sheets","openapi":"GET /1.1/sheet","href":"/advanced-installation/sheet-api/list-sheets"},{"title":"Get a sheet","openapi":"GET /1.1/sheet/{sheet_license_key}","description":"Fetches a single sheet owned by the authenticated API user, looked up by sheet_id or slug (sheet_license_key).","href":"/advanced-installation/sheet-api/get-sheet"},{"title":"Create a sheet","openapi":"POST /1.1/sheet","href":"/advanced-installation/sheet-api/create-sheet"},{"title":"Replace a sheet","openapi":"PUT /1.1/sheet/{sheet_license_key}","description":"Fully updates an existing sheet. All provided fields will overwrite existing values.","href":"/advanced-installation/sheet-api/replace-sheet"},{"title":"Update a sheet","openapi":"PATCH /1.1/sheet/{sheet_license_key}","href":"/advanced-installation/sheet-api/update-sheet"}]},{"title":"CSVbox MCP Server","sidebarTitle":"MCP Server","href":"/advanced-installation/mcp-server"}]},{"group":"Configuration","pages":[{"title":"Import Links","href":"/advanced-installation/import-links"},{"title":"Environment Variables","href":"/advanced-installation/environment-variables"}]}]},{"group":"Data Destinations","icon":"database","pages":[{"title":"Data Destinations","sidebarTitle":"Overview","href":"/destinations"},{"title":"None","href":"/destinations/none"},{"title":"Test API","href":"/destinations/test-api"},{"title":"API / Webhook","sidebarTitle":"API / Webhook","href":"/destinations/api-webhook"},{"title":"Google Cloud Storage","href":"/destinations/google-cloud-storage"},{"title":"Amazon S3","href":"/destinations/amazon-s3"},{"title":"FTP Server","href":"/destinations/ftp-server"},{"title":"MySQL","href":"/destinations/mysql"},{"title":"PostgreSQL","href":"/destinations/postgresql"},{"title":"SQL Server","href":"/destinations/sql-server"},{"title":"MongoDB","href":"/destinations/mongodb"},{"title":"Google Sheets","href":"/destinations/google-sheets"},{"title":"Airtable","href":"/destinations/airtable"},{"title":"Bubble","href":"/destinations/bubble-io"},{"title":"Notion","href":"/destinations/notion"},{"title":"Zapier","href":"/destinations/zapier"},{"title":"Webflow","href":"/destinations/webflow"},{"title":"Hasura","href":"/destinations/hasura"},{"title":"Softr","href":"/destinations/softr"},{"title":"Google BigQuery","href":"/destinations/google-bigquery"},{"title":"Supabase","href":"/destinations/supabase"},{"title":"Neon","href":"/destinations/neon"},{"title":"Xano","href":"/destinations/xano"},{"title":"Xero","href":"/destinations/xero"},{"title":"OpenAPI","href":"/destinations/openapi"},{"title":"n8n","href":"/destinations/n8n"},{"title":"Pipedream","href":"/destinations/pipedream"},{"title":"Automation Platforms","sidebarTitle":"Other Platforms","href":"/destinations/automation-platforms"},{"title":"Private Mode","href":"/destinations/private-mode"}]},{"group":"Account","icon":"user","pages":[{"title":"Account","sidebarTitle":"Overview","href":"/account"},{"title":"Teams","href":"/account/teams"}]},{"group":"Resources","icon":"book","pages":[{"title":"Performance Benchmarks","href":"/performance-benchmarks"},{"title":"Changelog","href":"/change-log"}]},{"group":"Legal","icon":"scale-balanced","pages":[{"title":"Privacy Policy","href":"/legal/privacy"},{"title":"Terms of Use","href":"/legal/terms"},{"title":"Cookie Policy","href":"/legal/cookie-policy"},{"title":"User Data Policy","href":"/legal/data-policy"},{"group":"GDPR","pages":[{"title":"GDPR","sidebarTitle":"Overview","href":"/legal/gdpr"},{"title":"Data Processing Addendum","href":"/legal/gdpr/data-processing-addendum"}]},{"title":"SOC 2 Type 2","href":"/legal/soc-2-type-2"}]}]},"basePath":"","title":"Create a sheet - CSVbox Docs","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-C8RPHPxo.js","utils-0BK-9q6z.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DfjzsUJT.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-B4v9psJ4.js","snippetPresets-CpTQv-Ez.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-BNP-Fvr0.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BSgu6h1D.js","shallow-Biv1i9Gs.js","getApiPlaygroundDisplay-BoGOXhtF.js","CodeSnippet-DvQoT18_.js","CodeSnippets-Dnpa15xT.js","Page-Buji1S4J.js","getPastedJson-xAIyhUFE.js","icon-S6FBih11.js","MethodPill-SaYeUZyk.js","DuplicateIcon-Cs-p3v2Q.js","createIcon-DjCFEoHq.js","DynamicMarkdown-BcnBltEQ.js","SectionHeading-BUBl0eEF.js","axios-vUo_bRtp.js","Markdown-h4cOoD8d.js","clsx-B2v50t8t.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DJnKvr0g.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BHrrjR1K.js"]}