Sheet API
Returns a paginated list of sheets owned by the authenticated API user.
Page number (1-indexed). Defaults to 1.
Sheets per page. Defaults to 20, clamped to a maximum of 100.
Must be application/json
application/jsonPaginated list of sheets
Unauthorized
GET /1.1/sheet HTTP/1.1
Host: api.csvbox.io/
x-csvbox-api-key: YOUR_API_KEY
x-csvbox-secret-api-key: YOUR_API_KEY
Accept: application/json
{
"data": [
{
"sheet_id": 123,
"sheet_license_key": "a1b2c3d4",
"title": "Customer Import",
"created_via": "text",
"columns_count": 1,
"import_count": 1,
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z"
}
],
"links": {
"first": "text",
"last": "text",
"prev": "text",
"next": "text"
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 3,
"per_page": 20,
"to": 20,
"total": 42
}
}Fetches a single sheet owned by the authenticated API user, looked up by sheet_id or slug (sheet_license_key).
Sheet's numeric sheet_id or its slug (sheet_license_key)
Must be application/json
application/jsonSheet found
123a1b2c3d4Customer ImportOnly the configured destination's type is shown. One of webhook, testapi, xano or none (the values destinations[].type accepts on POST/PUT/PATCH, aliased back from their internal storage form) when the destination was configured through this API. A destination configured only through the dashboard — every type besides those four has no write-API surface, same as display.theme — reports that destination's own internal type name instead (e.g. mysql, salesforce, airtable) so the field stays meaningful; such a value cannot be round-tripped via PUT/PATCH. none when no destination is configured. No destination's credentials or settings (host, password, API key, tokens, mappings, etc.) ever appear here, for any destination.
webhookStep settings under the same step and field names accepted by POST/PUT/PATCH's steps (file_upload, select_header, map_columns, verify_data, results) — no credentials. Coded/mapped values (e.g. copy_delimiter, split_confirm) are converted back to what a caller sends.
Unauthorized
Sheet Not Found
GET /1.1/sheet/{sheet_license_key} HTTP/1.1
Host: api.csvbox.io/
x-csvbox-api-key: YOUR_API_KEY
x-csvbox-secret-api-key: YOUR_API_KEY
Accept: application/json
{
"sheet_id": 123,
"sheet_license_key": "a1b2c3d4",
"title": "Customer Import",
"created_via": "text",
"columns_count": 1,
"import_count": 1,
"created_at": "2026-01-01T00:00:00.000Z",
"updated_at": "2026-01-01T00:00:00.000Z",
"sheet_columns": [
{
"column_name": "email",
"display_label": "Email",
"info_hint": "Enter user email",
"matching_keywords": "email,user_email",
"type": "text",
"default_value": "",
"required": false,
"read_only": false,
"position": 1,
"validators": {
"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"
}
},
"metadata": {
"transforms": {}
}
}
],
"virtual_columns": [
{
"column_name": "full_name",
"js_code": "text",
"active": true,
"dependencies": [
{
"url": "text",
"integrity": "text",
"globals": [
"text"
]
}
]
}
],
"validation_functions": [
{
"function_name": "check_email",
"js_code": "text",
"active": true,
"scope": "column",
"columns": [
"text"
],
"dynamic_columns": [
"text"
],
"dependencies": [
{
"url": "text",
"integrity": "text",
"globals": [
"text"
]
}
]
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"js_code": "text",
"active": true,
"scope": "column",
"columns": [
"text"
],
"dynamic_columns": [
"text"
],
"run_at": "before_validation",
"dependencies": [
{
"url": "text",
"integrity": "text",
"globals": [
"text"
]
}
]
}
],
"destination": "webhook",
"webhooks": [
{
"import_complete": {
"url": "https://example.com/webhook",
"send_copy": false,
"custom_headers": [
{
"key": "Content-Type",
"value": "application/json"
}
]
}
}
],
"security_settings": {
"region": "us",
"domains": [
"example.com"
],
"import_url_upload": true,
"s3_upload": true
},
"display": {
"theme": {
"type": "Light",
"importer_dialog_size": "Large"
}
},
"steps": {},
"pdf_metadata_config": [
{
"name": "Invoice Number",
"source": "document-kv",
"value": null
}
]
}Creates a new sheet importer.
Must be application/json
application/jsonContent type must be application/json
application/jsonCustomer ImportSheet Created Successfully
Sheet Created SuccessfullyBad Request
Unauthorized
Validation Failed
Server Error
POST /1.1/sheet HTTP/1.1
Host: api.csvbox.io/
x-csvbox-api-key: YOUR_API_KEY
x-csvbox-secret-api-key: YOUR_API_KEY
Accept: application/json
Content-Type: application/json
Content-Length: 8940
{
"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 < 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
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"scope": "column",
"run_at": "before_validation",
"columns": [
"col1"
],
"dynamic_columns": [
"region"
],
"js_code": "for (let i = 0; i < 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:"
}
]
}{
"status": "Sheet Created Successfully",
"data": {
"sheet_license_key": "text",
"title": "text",
"virtual_columns": [
{
"column_name": "full_name",
"result": "created"
}
],
"validation_functions": [
{
"function_name": "check_email",
"result": "updated"
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"result": "unchanged"
}
]
}
}Fully updates an existing sheet. All provided fields will overwrite existing values.
Sheet License Key
Must be application/json
application/jsonContent type must be application/json
application/jsonUpdated SheetSheet Updated Successfully
Sheet Created SuccessfullyBad Request
Unauthorized
Sheet Not Found
Validation Failed
Server Error
PUT /1.1/sheet/{sheet_license_key} HTTP/1.1
Host: api.csvbox.io/
x-csvbox-api-key: YOUR_API_KEY
x-csvbox-secret-api-key: YOUR_API_KEY
Accept: application/json
Content-Type: application/json
Content-Length: 5016
{
"title": "Updated Sheet",
"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",
"validators": {
"format": "YYYY-MM-DD"
},
"required": false,
"position": 8
}
],
"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 < 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
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"scope": "column",
"run_at": "before_validation",
"columns": [
"col1"
],
"dynamic_columns": [
"region"
],
"js_code": "for (let i = 0; i < 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:"
}
]
}{
"status": "Sheet Created Successfully",
"data": {
"sheet_license_key": "text",
"title": "text",
"virtual_columns": [
{
"column_name": "full_name",
"result": "created"
}
],
"validation_functions": [
{
"function_name": "check_email",
"result": "updated"
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"result": "unchanged"
}
]
}
}Partially updates an existing sheet. Only provided fields will be updated. Fields not included will remain unchanged.
Sheet License Key
Must be application/json
application/jsonContent type must be application/json
application/jsonUpdated SheetSheet Partially Updated Successfully
Sheet Created SuccessfullyBad Request
Unauthorized
Sheet Not Found
Validation Failed
Server Error
PATCH /1.1/sheet/{sheet_license_key} HTTP/1.1
Host: api.csvbox.io/
x-csvbox-api-key: YOUR_API_KEY
x-csvbox-secret-api-key: YOUR_API_KEY
Accept: application/json
Content-Type: application/json
Content-Length: 8938
{
"title": "Updated Sheet",
"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 < 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
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"scope": "column",
"run_at": "before_validation",
"columns": [
"col1"
],
"dynamic_columns": [
"region"
],
"js_code": "for (let i = 0; i < 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:"
}
]
}{
"status": "Sheet Created Successfully",
"data": {
"sheet_license_key": "text",
"title": "text",
"virtual_columns": [
{
"column_name": "full_name",
"result": "created"
}
],
"validation_functions": [
{
"function_name": "check_email",
"result": "updated"
}
],
"data_transforms": [
{
"transform_name": "uppercase_country",
"result": "unchanged"
}
]
}
}Last updated