To push data to a data table, you will need to setup first the table inside Qobra here. You must select the Public API integration in the first step of creating a table. After creating the table you will need to set up all the fields you will use later.If you try editing your data table, you’ll find:
the table-api-name, that you can edit, to identify your data table
the id-field-api-name, that you can edit if needed
the name-field-api-name, that you can edit if needed
On this page, you will also find each of your data table fields api keys (field-api-key). You can edit them if needed.
This endpoint is based on dynamic fields. This mean that all annotations
that look like <variable-key>, will have to or will be replaced by their
actual API keys.
We recommend splitting large imports into smaller batches (for example 1,000 to 5,000 records per request).Sending very large payloads in a single request can lead to network timeouts or failed imports.Sending very small payloads (for example, one or a few records) per request is discouraged, as it may quickly hit the API rate limit (80 requests per second across all endpoints) and significantly slow down ingestion.For full resynchronizations, you can combine batching with the all and debounce query parameters.
Optional (minimum:0): debounce is the number of seconds we wait before launching imports. This query parameter is used in conjunction with the all query parameter. If you want to push a large number of records, but delete the data tables records before, this debounce system will enable you to split this large amount in several requests. For instance, if you have 300k records to push, you can set a the debounce query parameter to 15 minutes and split your synchronisation in 60 requests of 5k records each. For large imports, we recommend combining debounce with batched requests. See the Best practices for large imports section above for recommended batch sizes and ingestion patterns.
Optional: When set to true it will keep the manual overrides made in the targeted data table.
Body
application/json
The body is a json list of records you want to push to Qobra. Each record in the list should be an object containing the following keys, and values associated
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Qobra public API documentation","description":"Reference and guides for integrating with Qobra: inbound/outbound data integrations, the v1 and v2 public REST API, and the MCP server for AI agents.","colors":{"primary":"#460629","light":"#FBF5DF","dark":"#460629"},"logo":{"light":"https://mintcdn.com/qobra/BOwfuCXh9Zd24PEc/logo/dark.svg?fit=max\u0026auto=format\u0026n=BOwfuCXh9Zd24PEc\u0026q=85\u0026s=89cd1b29990b669fb3daa20d2e46c52f","dark":"https://mintcdn.com/qobra/BOwfuCXh9Zd24PEc/logo/white.svg?fit=max\u0026auto=format\u0026n=BOwfuCXh9Zd24PEc\u0026q=85\u0026s=b7fa948d600e3558dc1307d622a4c7e2"},"favicon":"https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/favicon.svg?fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=8bd0cfde4ff59d84d6892e4bbdc66cf8","api":{"openapi":["api_reference/v1/openapi.json","api_reference/v2/openapi.json","mcp_documentation/openapi.json"]},"background":{"color":{"light":"#FFFFFF","dark":"#00161F"}},"navbar":{"links":[{"href":"https://app.qobra.co/auth","label":"Application"},{"href":"mailto:support@qobra.co","label":"Support"}],"primary":{"type":"button","label":"Book a demo!","href":"https://www.qobra.co/book-a-call"}},"footer":{"socials":{"github":"https://github.com/qobra-co","linkedin":"https://www.linkedin.com/company/qobra-co"}},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Help center","icon":"hands-holding-heart","href":"https://help.qobra.co/en/"},{"anchor":"Blog","icon":"newspaper","href":"https://www.qobra.co/blog"},{"anchor":"Security","icon":"shield-check","href":"https://trust.qobra.co/"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"qobra","hasAudioNarration":false,"actualSubdomain":"qobra","customDomains":["docs.qobra.co"],"gitSource":{"type":"github","owner":"qobra-co","repo":"public-api-doc","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6aea19d905f836676fdf4ae1","collectionId":"4f033b8f-0bf1-4365-b24e-1c2419c5a3b0","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6aea19d905f836676fdf4ae1"},"feedback":{"thumbs":true,"issues":false},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"REMOVE_BRANDING":{"status":"ENABLED"},"CONTEXTUAL_FEEDBACK":{"status":"ENABLED"},"CODE_SNIPPET_FEEDBACK":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6aea19d905f836676fdf4ae1","clientVersion":"0.0.4054","searchFilterCounts":[{"language":"default","tag":"MCP server","count":86},{"language":"default","tag":"Qobra MCP server","count":86},{"language":"default","tag":"Tools","count":84},{"language":"default","tag":"Documentation","count":38},{"language":"default","tag":"Public API Documentation","count":20},{"language":"default","tag":"Integrations","count":16},{"language":"default","tag":"Inbound data integrations","count":15},{"language":"default","tag":"Statements","count":13},{"language":"default","tag":"Data tables","count":11},{"language":"default","tag":"Endpoints","count":10}]},"assistantConfig":{"enableStarterQuestions":false},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api_reference/v1/endpoints/data_tables/ingest_records","slug":"/api_reference/v1/endpoints/data_tables/ingest_records","pageMetadata":{"openapi":"post /v1/tables/{data_table_key}/records/bulk","version":"v1","title":"Upsert records bulk","description":"Imports records in an existing table via an import.","href":"/api_reference/v1/endpoints/data_tables/ingest_records"},"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: \"Imports records in an existing table via an import.\"\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,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Create new records or update existing ones.`}),`\n`,_jsx(Heading,{level:`1`,id:`how-to-use-it`,children:`How to use it`}),`\n`,_jsx(Heading,{level:`2`,id:`create-your-data-table`,children:`Create your data table`}),`\n`,_jsxs(_components.p,{children:[`To push data to a data table, you will need to setup first the table inside Qobra `,_jsx(_components.a,{href:`https://app.qobra.co/objects/fields`,children:`here`}),`. You must select the Public API integration in the first step of creating a table. After creating the table you will need to set up all the fields you will use later.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=a53f2c3473a5344badce5dd1913f35e0`,alt:`Qobra data table creation`,\"data-og-width\":`3024`,width:`3024`,\"data-og-height\":`1648`,height:`1648`,\"data-path\":`api_reference/v1/images/settings_add_table.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=280\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=1eda19883b0705a9b67bfcf84c98fa08 280w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=560\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=73208fdbea89a47f5e011d1d08105c9c 560w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=840\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=f2684c716b08cd7c64f559c6ca4cb6b9 840w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=b5e914d65ae2d79a36cbc3c27ee61fea 1100w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=c2c06c0e770e48a2188a080f62fd2b0c 1650w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_add_table.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=0d4e10b51c295e345bf11229ecba2215 2500w`}),`\n`,_jsx(_components.p,{children:`If you try editing your data table, you’ll find:`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.code,{children:`table-api-name`}),`, that you can edit, to identify your data table`]}),`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.code,{children:`id-field-api-name`}),`, that you can edit if needed`]}),`\n`,_jsxs(_components.li,{children:[`the `,_jsx(_components.code,{children:`name-field-api-name`}),`, that you can edit if needed`]}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=571deba2c070165493af0f4009eb3fa5`,alt:`Qobra edit data table`,\"data-og-width\":`546`,width:`546`,\"data-og-height\":`548`,height:`548`,\"data-path\":`api_reference/v1/images/settings_edit_table.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=280\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=51b31a06b0be4c558258b6ca58276e82 280w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=560\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=54b6e3940dfa8d08530496a3cc5a4b62 560w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=840\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=07f258eadfd90581dedf7e9144e32e57 840w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=01f36b78e0dfe7aca8ef81b4d9ff1808 1100w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=a5546dfaa8470d079a2fca87c830f68b 1650w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/settings_edit_table.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=ec1c028529b1089fcc963a9cb1aa6785 2500w`}),`\n`,_jsxs(_components.p,{children:[`On this page, you will also find each of your data table fields api keys (`,_jsx(_components.code,{children:`field-api-key`}),`). You can edit them if needed.`]}),`\n`,_jsx(Heading,{level:`2`,id:`variable-api-keys`,children:`Variable api keys`}),`\n`,_jsxs(_components.p,{children:[`This endpoint is based on dynamic fields. This mean that all annotations\nthat look like `,_jsx(_components.code,{children:`\u003cvariable-key>`}),`, will have to or will be replaced by their\nactual API keys.`]}),`\n`,_jsx(Heading,{level:`2`,id:`best-practices-for-large-imports`,children:`Best practices for large imports`}),`\n`,_jsx(_components.p,{children:`We recommend splitting large imports into smaller batches (for example 1,000 to 5,000 records per request).`}),`\n`,_jsx(_components.p,{children:`Sending very large payloads in a single request can lead to network timeouts or failed imports.`}),`\n`,_jsx(_components.p,{children:`Sending very small payloads (for example, one or a few records) per request is discouraged, as it may quickly hit the API rate limit (80 requests per second across all endpoints) and significantly slow down ingestion.`}),`\n`,_jsx(_components.p,{children:`For full resynchronizations, you can combine batching with the all and debounce query parameters.`}),`\n`,_jsx(Heading,{level:`2`,id:`trouble-shooting`,children:`Trouble shooting`}),`\n`,_jsxs(_components.p,{children:[`When trouble shooting a webhook import, first check you imports are present in Qobra’s import page `,_jsx(_components.a,{href:`https://app.qobra.co/objects/imports`,children:`here`}),`.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=6938eb8366c064035334f23092e842be`,alt:`Qobra import history`,\"data-og-width\":`3023`,width:`3023`,\"data-og-height\":`1646`,height:`1646`,\"data-path\":`api_reference/v1/images/import_history.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=280\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=efd26d8898feaa3a0c18381bcc486e47 280w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=560\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=7e65cded8c504b7aa138e2874855049b 560w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=840\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=5476f7c363c2ee0574bd3540c24c47a5 840w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=a4a2f0cd71bd107ffff09b0a90172908 1100w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=37ca8fbe0c047b0d30ac14ae84b5a97e 1650w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=ca395c8bd1802b349efef03278420902 2500w`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`if your imports do not appear in the list of previous imports (after refreshing the page), check the authentication`}),`\n`,_jsx(_components.li,{children:`if your import is in warning, you’ll see the records which did not import, with the error’s detail`}),`\n`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=4671929ff06fce36877bf577a1b0a9f6`,alt:`Qobra import history error details`,\"data-og-width\":`2746`,width:`2746`,\"data-og-height\":`718`,height:`718`,\"data-path\":`api_reference/v1/images/import_history_error_details.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=280\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=b594e14dbd18f86ab70b5453351ebcfe 280w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=560\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=194ee6a37e2b7890d1e588714de7993d 560w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=840\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=096978d47a2775e5536a8231a0545295 840w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=1100\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=4582bdc97d8cb44f1d220ce8ed1a6382 1100w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=1650\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=c86f1cd2b70113e556333dbca6825d9d 1650w, https://mintcdn.com/qobra/4g7tQyP7wYl6AlCt/api_reference/v1/images/import_history_error_details.png?w=2500\u0026fit=max\u0026auto=format\u0026n=4g7tQyP7wYl6AlCt\u0026q=85\u0026s=5fb355ad94cff9a48f38b66013e44150 2500w`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`if your import seems successful, but data in your data table is not updated, your fields api name must mismatch the ones parameterized in Qobra.`}),`\n`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"openapi":"post /v1/tables/{data_table_key}/records/bulk","version":"v1","title":"Upsert records bulk","description":"Imports records in an existing table via an import.","href":"/api_reference/v1/endpoints/data_tables/ingest_records"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"How to use it","slug":"how-to-use-it","depth":1,"children":[]},{"title":"Create your data table","slug":"create-your-data-table","depth":2,"children":[]},{"title":"Variable api keys","slug":"variable-api-keys","depth":2,"children":[]},{"title":"Best practices for large imports","slug":"best-practices-for-large-imports","depth":2,"children":[]},{"title":"Trouble shooting","slug":"trouble-shooting","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["public_api","v1","tables"],"summary":"Upsert records bulk","description":"Imports records in an existing table via an import.","operationId":"POST_/v1/tables/(data_table_key)/records/bulk","security":["31579994-5e37-4c89-9054-cbcced56b079"],"parameters":["52de4af8-2073-4f70-bdc7-46ed73bf9440","1b46cf76-a74e-4b58-a375-d0aa6ac7db16","fab68795-7acd-42eb-b985-59ab446fd3fa","64a28963-9ddd-443b-8ac0-2f37dce28bee"],"responses":{"200":"68b6e607-00b5-4be8-951d-0c4199e3f0c6"},"requestBody":"2f2d3b68-b651-424a-9326-8991ed92605f","method":"post","type":"path","servers":["4c4bb5da-d2a6-46b9-85cb-f3b7db976fc4"],"path":"/v1/tables/{data_table_key}/records/bulk","baseUrlOptions":["https://api.qobra.co"],"title":"Upsert records bulk","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"52de4af8-2073-4f70-bdc7-46ed73bf9440":{"name":"data_table_key","in":"path","required":true,"schema":{"type":"string","isRequired":true,"description":"Used to identify the data table","uniqueKey":"","typeLabel":"string"},"description":"Used to identify the data table"},"1b46cf76-a74e-4b58-a375-d0aa6ac7db16":{"name":"all","in":"query","schema":{"title":"All","description":"Optional: if all is true, the request will delete all the data table’s content, before doing the import","default":false,"type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"},"required":false},"fab68795-7acd-42eb-b985-59ab446fd3fa":{"name":"debounce","in":"query","description":"Optional (minimum:0): debounce is the number of seconds we wait before launching imports. This query parameter is used in conjunction with the all query parameter. If you want to push a large number of records, but delete the data tables records before, this debounce system will enable you to split this large amount in several requests. For instance, if you have 300k records to push, you can set a the debounce query parameter to 15 minutes and split your synchronisation in 60 requests of 5k records each. For large imports, we recommend combining debounce with batched requests. See the Best practices for large imports section above for recommended batch sizes and ingestion patterns.","schema":{"title":"Debounce","default":0,"type":"integer","isRequired":false,"description":"Optional (minimum:0): debounce is the number of seconds we wait before launching imports. This query parameter is used in conjunction with the all query parameter. If you want to push a large number of records, but delete the data tables records before, this debounce system will enable you to split this large amount in several requests. For instance, if you have 300k records to push, you can set a the debounce query parameter to 15 minutes and split your synchronisation in 60 requests of 5k records each. For large imports, we recommend combining debounce with batched requests. See the Best practices for large imports section above for recommended batch sizes and ingestion patterns.","uniqueKey":"","typeLabel":"integer"},"required":false},"64a28963-9ddd-443b-8ac0-2f37dce28bee":{"name":"keep_overrides","in":"query","schema":{"title":"Keep Overrides","description":"Optional: When set to true it will keep the manual overrides made in the targeted data table.","default":false,"type":"boolean","isRequired":false,"uniqueKey":"","typeLabel":"boolean"},"required":false}},"requestBody":{"description":"The body is a json list of records you want to push to Qobra. Each record in the list should be an object containing the following keys, and values associated","required":true,"content":{"application/json":{"schema":{"properties":{"items":{"description":"Array containing all the records you want to import.","type":"array","items":{"type":"object","properties":{"\u003cid-field-api-key>":{"description":"Record unique identifier value.","type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].\u003cid-field-api-key>","typeLabel":"string"},"\u003cname-field-api-key>":{"description":"Record name value.","type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].\u003cname-field-api-key>","typeLabel":"string"},"\u003cfield-string-api-key>":{"description":"Field string value.","type":"string","uniqueKey":"\\items.items.[INDEX].\u003cfield-string-api-key>","typeLabel":"string"},"\u003cfield-checkbox-api-key>":{"description":"Field checkbox value.","type":"boolean","uniqueKey":"\\items.items.[INDEX].\u003cfield-checkbox-api-key>","typeLabel":"boolean"},"\u003cfield-number-api-key>":{"description":"Field number value.","type":"number","uniqueKey":"\\items.items.[INDEX].\u003cfield-number-api-key>","typeLabel":"number"},"\u003cfield-percentage-api-key>":{"description":"Field percentage value.","type":"number","uniqueKey":"\\items.items.[INDEX].\u003cfield-percentage-api-key>","typeLabel":"number"},"\u003cfield-date-api-key>":{"description":"ISO Formatted Date UTC or with explicit timezone (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SS±HH:MM).","type":"string","uniqueKey":"\\items.items.[INDEX].\u003cfield-date-api-key>","typeLabel":"string"},"\u003cfield-user-api-key>":{"description":"Field user value as email or a string, depending of the user matching key defined in the data table settings.","type":"string","uniqueKey":"\\items.items.[INDEX].\u003cfield-user-api-key>","typeLabel":"string"},"\u003cfield-picklist-api-key>":{"description":"Field picklist key value.","type":"string","uniqueKey":"\\items.items.[INDEX].\u003cfield-picklist-api-key>","typeLabel":"string"},"\u003cfield-multipicklist-api-key>":{"description":"Field multipicklist key values, semicolon separated.","type":"string","uniqueKey":"\\items.items.[INDEX].\u003cfield-multipicklist-api-key>","typeLabel":"string"},"\u003cfield-amount-api-key>":{"description":"Field amount value.","type":"number","uniqueKey":"\\items.items.[INDEX].\u003cfield-amount-api-key>","typeLabel":"number"},"\u003cfield-amount-api-key>_currency":{"description":"Allowed currency codes.","type":"string","enum":["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYR","BZD","CAD","CDF","CHF","CLF","CLP","CNY","COP","COU","CRC","CUC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HRK","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LTL","LVL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRO","MUR","MVR","MWK","MXN","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLL","SOS","SRD","STD","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","UYI","UYU","UZS","VEF","VND","VUV","WST","XAG","XAU","XCD","XPD","XPT","XSU","YER","ZAR","ZMK","ZWL"],"title":"CurrencyCode","uniqueKey":"\\items.items.[INDEX].\u003cfield-amount-api-key>_currency","typeLabel":"enum\u003cstring>"},"deleted":{"description":"Input true if the record should be deleted after import.","type":"boolean","uniqueKey":"\\items.items.[INDEX].deleted","typeLabel":"boolean"}},"required":["\u003cid-field-api-key>","\u003cname-field-api-key>","\u003cfield-1-api-key>","\u003cfield-2-api-key>","\u003cfield-3-api-key>","\u003camount-field-1-api-key>","\u003camount-field-1-api-key>_currency"],"title":"RecordsImportIngestionModel","uniqueKey":"\\items.items.[INDEX]","typeLabel":"RecordsImportIngestionModel · object"},"uniqueKey":"\\items","typeLabel":"RecordsImportIngestionModel · object[]"}},"title":"RecordsImportIngestionPostModel","type":"object","uniqueKey":"","typeLabel":"RecordsImportIngestionPostModel · object"},"examples":{"record-import-body":{"title":"record-import-body","value":[{"id":"6545110915808dbcc34531ef","name":"Great opportunity","owner_id":"user@company.fr","close_date":"2024-06-25T09:58:32Z","product":"Product A","amount":4000,"amount_currency":"EUR","deleted":false,"deal_types":"New Business;Existing Business"},"..."]}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"68b6e607-00b5-4be8-951d-0c4199e3f0c6":{"description":"Success operation","content":{"application/json":{"schema":{"type":"object","properties":{"import_id":{"title":"Import Id","type":"string","format":"ObjectId","description":"unique identifier of the import you created","isRequired":true,"uniqueKey":"import_id","typeLabel":"string\u003cObjectId>"},"objects_imported":{"title":"Objects Imported","type":"integer","description":"number of records your request contained","isRequired":true,"uniqueKey":"objects_imported","typeLabel":"integer"}},"required":["import_id","objects_imported"],"title":"RecordsImportsModelResponse","uniqueKey":"","typeLabel":"RecordsImportsModelResponse · object"},"examples":{"ingestion-success":{"title":"ingestion-success","value":{"import_id":"QfejsQZ6mpOVHT5Tt1SdNLPZ","objects_imported":1}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"31579994-5e37-4c89-9054-cbcced56b079":{"api_key":{"type":"apiKey","name":"X-API-Key","in":"header","scopes":[]}}},"servers":{"4c4bb5da-d2a6-46b9-85cb-f3b7db976fc4":{"url":"https://api.qobra.co","description":"API"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","name":"X-API-Key","in":"header","scopes":[]},"schema":{"title":"X-API-Key","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"api_key","name":"X-API-Key"}],"title":"api_key"}]},"originalFileLocation":"api_reference/v1/openapi.json"},"subdomain":"qobra","siteName":"Qobra public API documentation","title":"Upsert records bulk - Qobra public API documentation","navMaps":{"firstHrefInVersion":{"v1":{"href":"/api_reference/v1/endpoints/data_tables/ingest_records","matchLevel":0},"v2":{"href":"/api_reference/v2/introduction","matchLevel":2}},"firstHrefInLanguage":{}},"lastModified":"2026-03-19T16:54:34.728Z","originalFileLocation":"api_reference/v1/endpoints/data_tables/ingest_records.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Imports records in an existing table via an import.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Qobra public API documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_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/qobra/LfZGqJYgKlEETanR/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upsert records bulk - Qobra public API documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Imports records in an existing table via an import.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Qobra public API documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://qobra.mintlify.app/_mintlify/api/og/v2?division=Data+table\u0026amp;title=Upsert+records+bulk\u0026amp;description=Imports+records+in+an+existing+table+via+an+import.\u0026amp;theme=3f6043674a55ff34ed6fbc78\u0026amp;signature=c0eca9a169057c2d4ac74ad169d88cf9b8fe673cf9c7f76443ed1ca700920192\">\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=\"Upsert records bulk - Qobra public API documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Imports records in an existing table via an import.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://qobra.mintlify.app/_mintlify/api/og/v2?division=Data+table\u0026amp;title=Upsert+records+bulk\u0026amp;description=Imports+records+in+an+existing+table+via+an+import.\u0026amp;theme=3f6043674a55ff34ed6fbc78\u0026amp;signature=c0eca9a169057c2d4ac74ad169d88cf9b8fe673cf9c7f76443ed1ca700920192\">\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/qobra/LfZGqJYgKlEETanR/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Qobra public API documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#460629\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api_reference/v1/endpoints/data_tables/ingest_records.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.qobra.co/#organization\",\"name\":\"Qobra public API documentation\",\"url\":\"https://docs.qobra.co\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/qobra/BOwfuCXh9Zd24PEc/logo/dark.svg?fit=max\u0026auto=format\u0026n=BOwfuCXh9Zd24PEc\u0026q=85\u0026s=89cd1b29990b669fb3daa20d2e46c52f\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.qobra.co#website\",\"name\":\"Qobra public API documentation\",\"url\":\"https://docs.qobra.co\",\"publisher\":{\"@id\":\"https://docs.qobra.co/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records#webpage\",\"url\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records\",\"name\":\"Upsert records bulk\",\"description\":\"Imports records in an existing table via an import.\",\"dateModified\":\"2026-03-19T16:54:34.728Z\",\"isPartOf\":{\"@id\":\"https://docs.qobra.co#website\"},\"breadcrumb\":{\"@id\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Public API Documentation\",\"item\":\"https://docs.qobra.co/api_reference/v1/introduction\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Endpoints\",\"item\":\"https://docs.qobra.co/api_reference/v1/endpoints/users/fetch_users\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Data table\",\"item\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/fetch_records_data\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Upsert records bulk\",\"item\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records#apireference\",\"headline\":\"Upsert records bulk\",\"name\":\"Upsert records bulk\",\"description\":\"Imports records in an existing table via an import.\",\"url\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records\",\"mainEntityOfPage\":{\"@id\":\"https://docs.qobra.co/api_reference/v1/endpoints/data_tables/ingest_records#webpage\"},\"dateModified\":\"2026-03-19T16:54:34.728Z\",\"publisher\":{\"@id\":\"https://docs.qobra.co/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.qobra.co#website\"}}]}\u003c/script>","siteName":"Qobra public API documentation","nav":{"global":{"anchors":[{"anchor":"Help center","icon":"hands-holding-heart","href":"https://help.qobra.co/en/"},{"anchor":"Blog","icon":"newspaper","href":"https://www.qobra.co/blog"},{"anchor":"Security","icon":"shield-check","href":"https://trust.qobra.co/"}]},"versions":[{"version":"v1","anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":"Inbound data integrations","pages":[{"title":"Introduction","href":"/integration_documentation/introductions/inbound_integration"},{"group":"Integrations","pages":[{"group":"CRMs","pages":[{"title":null,"href":"/integration_documentation/crms/salesforce"},{"title":null,"href":"/integration_documentation/crms/hubspot"},{"title":null,"href":"/integration_documentation/crms/pipedrive"},{"title":"Microsoft Dynamics","href":"/integration_documentation/crms/microsoft_dynamics"},{"title":null,"href":"/integration_documentation/crms/zoho"},{"title":null,"href":"/integration_documentation/crms/odoo"},{"title":null,"href":"/integration_documentation/crms/attio"}]},{"group":"Databases","pages":[{"title":"snowflake","href":"/integration_documentation/databases/snowflake"},{"title":null,"href":"/integration_documentation/databases/bigquery"},{"title":"PostgreSQL","href":"/integration_documentation/databases/postgresql"}]},{"group":"ERP","pages":[{"title":"NetSuite","href":"/integration_documentation/erp/netsuite"}]},{"group":"Files","pages":[{"title":null,"href":"/integration_documentation/files/s3"},{"title":"SFTP","href":"/integration_documentation/files/sftp"}]},{"group":"HRIS","pages":[{"title":"HRIS Connector","href":"/integration_documentation/hris/hris_connector"}]}]}]},{"group":"Outbound data integrations","pages":[{"title":"Introduction","href":"/integration_documentation/introductions/outbound_integration"},{"group":"Integrations","pages":[{"title":null,"href":"/integration_documentation/webhook/webhook"}]}]},{"group":"Public API Documentation","pages":[{"title":"Introduction","href":"/api_reference/v1/introduction"},{"title":"Migration guide v1 → v2","href":"/api_reference/v2/migration_guide"},{"group":"Endpoints","pages":[{"group":"User management","pages":[{"openapi":"get /v1/users","version":"v1","title":"Fetch users","href":"/api_reference/v1/endpoints/users/fetch_users"},{"openapi":"put /v1/users/bulk","version":"v1","title":"Upsert users bulk","href":"/api_reference/v1/endpoints/users/upsert_bulk_user"},{"openapi":"delete /v1/users/archive/bulk","version":"v1","title":"Archive users bulk","href":"/api_reference/v1/endpoints/users/archive_users"},{"group":"Group attributions","pages":[{"openapi":"put /v1/users/groups/bulk","version":"v1","title":"Upsert group attributions bulk","href":"/api_reference/v1/endpoints/users/upsert_bulk_user_group"}]},{"group":"Manager attributions","pages":[{"openapi":"put /v1/users/managers/bulk","version":"v1","title":"Upsert manager attributions bulk","href":"/api_reference/v1/endpoints/users/upsert_bulk_user_manager"}]}]},{"group":"Data table","pages":[{"openapi":"get /v1/tables/{data_table_key}/records","version":"v1","title":"Fetch records","description":"Retrieves table records data","href":"/api_reference/v1/endpoints/data_tables/fetch_records_data"},{"openapi":"post /v1/tables/{data_table_key}/records/bulk","version":"v1","title":"Upsert records bulk","href":"/api_reference/v1/endpoints/data_tables/ingest_records"}]},{"group":"Imports","pages":[{"openapi":"get /v1/imports/{import_id}","version":"v1","title":"Fetch import","description":"Retrieve the status and associated details of an import","href":"/api_reference/v1/endpoints/imports/fetch_import"}]},{"group":"Reporting","pages":[{"openapi":"get /v1/reporting","version":"v1","deprecated":true,"title":"Fetch statement reporting data","href":"/api_reference/v1/endpoints/reporting/fetch_statement_reporting_data"},{"openapi":"get /v1/reporting/{data_table_id}/records","version":"v1","deprecated":true,"title":"Fetch record reporting data","href":"/api_reference/v1/endpoints/reporting/fetch_record_reporting_data"}]}]}]},{"group":"Authentication","pages":[{"title":"SSO","href":"/authentication_documentation/sso/sso_documentation"}]}]},{"anchor":"MCP server","icon":"plug","pages":[{"title":"MCP server","href":"/mcp_documentation/introduction"}]}]},{"version":"v2","pages":[{"title":"v2","href":"/api_reference/v2/introduction"}]}]},"basePath":"","title":"Upsert records bulk - Qobra public API documentation","buildId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","deploymentId":"dpl_345ReqzYaAjzS9QpeJemsKdb7KDj","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a74be98ba7","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","zoom-image-lightbox-B4-wUcHm.js","lightbox-handle-r17bVUz3.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"]}