{
"error": "This endpoint requires a Pro plan subscription"
}
{
"status": 500
}
Queries
DuckDB (legacy)
Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization’s default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.
Automatically save query results to a table based on the query hash. If a table with the same hash exists, returns cached results instead of re-executing.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"oleander","colors":{"primary":"#ec4899","light":"#f472b6","dark":"#db2777"},"logo":{"light":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/light.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=310e150e92ecf20e459e0231d14e554b","dark":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/dark.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=a92922eda9e5b45cf4ec06ae1af0cd61"},"favicon":"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/favicon.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=20b6f00aa8532b600cb78044894e7dda","background":{"color":{"dark":"#020817"}},"navbar":{"links":[{"href":"mailto:willy@oleander.dev","label":"Support"}],"primary":{"type":"button","label":"oleander.dev","href":"https://oleander.dev/account"}},"footer":{"socials":{"x":"https://x.com/OleanderHQ","github":"https://github.com/OleanderHQ","linkedin":"https://www.linkedin.com/company/oleander-dev"}},"seo":{"metatags":{"title":"oleander","description":"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.","og:site_name":"oleander","og:description":"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.","twitter:image":"https://oleander.dev/opengraph-image","og:image":"https://oleander.dev/opengraph-image"},"indexing":"navigable"},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Slack","icon":"slack","href":"https://join.slack.com/t/oleander-hq/shared_invite/zt-2wzl5ncjb-c~ZubVAHVzBP7OZM~Hwuyw"},{"anchor":"Blog","icon":"newspaper","href":"https://oleander.dev/blog"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"oleander","hasAudioNarration":false,"actualSubdomain":"oleander","customDomains":["docs.oleander.dev"],"gitSource":{"type":"github","owner":"oleanderhq","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae4c9787f8a500a1fd86db2","collectionId":"ee7c55a2-1105-4a04-a8e4-bda971e3f2bc","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae4c9787f8a500a1fd86db2"},"feedback":{"thumbs":true,"edits":true,"issues":true},"entitlements":{},"buildId":"6ae4c9787f8a500a1fd86db2","clientVersion":"0.0.4045","searchFilterCounts":[{"language":"default","tag":"Documentation","count":55},{"language":"default","tag":"Platform","count":19},{"language":"default","tag":"SDKs","count":14},{"language":"default","tag":"API Reference","count":7},{"language":"default","tag":"Python","count":7},{"language":"default","tag":"TypeScript","count":7},{"language":"default","tag":"CLI","count":6},{"language":"default","tag":"IAM","count":6},{"language":"default","tag":"Integrations","count":6},{"language":"default","tag":"Coding with agents","count":6}]},"assistantConfig":{},"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}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/duckdb-legacy","slug":"/api-reference/duckdb-legacy","pageMetadata":{"title":"DuckDB (legacy)","description":"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization's default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/warehouse/query","href":"/api-reference/duckdb-legacy","autogeneratedByOpenApi":true},"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: \"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization’s default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"DuckDB (legacy)","description":"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization's default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/warehouse/query","href":"/api-reference/duckdb-legacy","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"summary":"DuckDB (legacy)","description":"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization's default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.","operationId":"queryWarehouse","requestBody":"c869a82d-0cf8-43c8-9711-26cadc1fdcc5","responses":{"200":"82e3bc5b-d635-4f44-9728-d6ec3ec1a9e1","400":"4166e08d-7788-4f17-9115-7c767f8826e0","401":"fab779da-72c0-4b66-b58e-8584f4d8605f","403":"4a1b294d-07af-48bf-9dfa-db13d2f1a3b9","500":"8d81dc5f-a6ae-4f66-ad57-986f11769a15"},"method":"post","type":"path","servers":["8becb045-3227-4ba9-9ec1-32dfe7ca827e"],"security":["c8fc6d18-b632-4d85-ad93-12bf2e10261b"],"path":"/api/v1/warehouse/query","baseUrlOptions":["https://oleander.dev"],"title":"DuckDB (legacy)","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"The SQL query to execute. Supports all DuckDB SQL syntax.","example":"WITH\n src AS (\n SELECT\n *\n FROM\n read_json (\n 'https://api.tvmaze.com/search/shows?q=breaking+bad',\n auto_detect = TRUE\n )\n )\nSELECT\n src -> 'show' ->> 'name' AS show_name,\n src -> 'show' ->> 'premiered' AS premiered,\n src -> 'show' -> 'rating' ->> 'average' AS rating,\n src -> 'show' -> 'network' ->> 'name' AS network_name\nFROM\n src;","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"autoSaveByHash":{"type":"boolean","description":"Automatically save query results to a table based on the query hash. If a table with the same hash exists, returns cached results instead of re-executing.","default":false,"uniqueKey":"autoSaveByHash","typeLabel":"boolean"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"query":"WITH\n src AS (\n SELECT\n *\n FROM\n read_json (\n 'https://api.tvmaze.com/search/shows?q=breaking+bad',\n auto_detect = TRUE\n )\n )\nSELECT\n src -> 'show' ->> 'name' AS show_name,\n src -> 'show' ->> 'premiered' AS premiered,\n src -> 'show' -> 'rating' ->> 'average' AS rating,\n src -> 'show' -> 'network' ->> 'name' AS network_name\nFROM\n src;","autoSaveByHash":false}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"82e3bc5b-d635-4f44-9728-d6ec3ec1a9e1":{"description":"Query executed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the query executed successfully","isRequired":true,"uniqueKey":"success","typeLabel":"boolean"},"results":{"type":"object","description":"Query results with columns, column types, and rows","properties":{"columns":{"type":"array","items":{"type":"string","uniqueKey":"results.columns.items.[INDEX]","typeLabel":"string"},"description":"Column names","isRequired":true,"uniqueKey":"results.columns","typeLabel":"string[]"},"column_types":{"type":"array","items":{"type":"string","uniqueKey":"results.column_types.items.[INDEX]","typeLabel":"string"},"description":"Column data types","isRequired":true,"uniqueKey":"results.column_types","typeLabel":"string[]"},"rows":{"type":"array","items":{"type":"array","items":{"oneOf":[{}],"uniqueKey":"results.rows.items.[INDEX].items.[INDEX]","typeLabel":"any"},"uniqueKey":"results.rows.items.[INDEX]","typeLabel":"any[]"},"description":"Query results as an array of row arrays","isRequired":true,"uniqueKey":"results.rows","typeLabel":"any[][]"}},"required":["columns","column_types","rows"],"isRequired":true,"uniqueKey":"results","typeLabel":"object"},"row_count":{"type":"integer","description":"Number of rows returned","isRequired":true,"uniqueKey":"row_count","typeLabel":"integer"},"execution_time":{"type":"string","description":"Query execution time (e.g., '991ms')","isRequired":true,"uniqueKey":"execution_time","typeLabel":"string"},"query":{"type":"string","description":"The original SQL query that was executed","isRequired":true,"uniqueKey":"query","typeLabel":"string"},"job":{"type":"object","description":"Lineage job information","properties":{"namespace":{"type":"string","description":"Job namespace (typically 'oleander.lake')","isRequired":true,"uniqueKey":"job.namespace","typeLabel":"string"},"name":{"type":"string","description":"Job name (query hash identifier)","isRequired":true,"uniqueKey":"job.name","typeLabel":"string"}},"required":["namespace","name"],"isRequired":true,"uniqueKey":"job","typeLabel":"object"},"explainResult":{"type":"object","description":"Query execution plan explanation","uniqueKey":"explainResult","typeLabel":"object"}},"required":["success","results","row_count","execution_time","query","job"],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"success":true,"results":{"columns":["\u003cstring>"],"column_types":["\u003cstring>"],"rows":[["\u003cunknown>"]]},"row_count":123,"execution_time":"\u003cstring>","query":"\u003cstring>","job":{"namespace":"\u003cstring>","name":"\u003cstring>"},"explainResult":{}}}},"exampleType":"generated"}},"exampleType":"generated"},"4166e08d-7788-4f17-9115-7c767f8826e0":{"description":"Invalid request (e.g. invalid SQL query).","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"SQL syntax error","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"SQL syntax error"}}},"exampleType":"generated"}},"exampleType":"generated"},"fab779da-72c0-4b66-b58e-8584f4d8605f":{"description":"Unauthorized – request either lacks a valid Bearer token or session credentials.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"Unauthorized","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"Unauthorized"}}},"exampleType":"generated"}},"exampleType":"generated"},"4a1b294d-07af-48bf-9dfa-db13d2f1a3b9":{"description":"Forbidden – Pro plan required.","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string","example":"This endpoint requires a Pro plan subscription","uniqueKey":"error","typeLabel":"string"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"This endpoint requires a Pro plan subscription"}}},"exampleType":"generated"}},"exampleType":"generated"},"8d81dc5f-a6ae-4f66-ad57-986f11769a15":{"description":"unexpected error","content":{"application/json":{"schema":{"required":["status"],"type":"object","properties":{"status":{"type":"integer","format":"int32","default":500,"isRequired":true,"uniqueKey":"status","typeLabel":"integer\u003cint32>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"status":500}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c8fc6d18-b632-4d85-ad93-12bf2e10261b":{"bearerAuth":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"8becb045-3227-4ba9-9ec1-32dfe7ca827e":{"url":"https://oleander.dev"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Bearer authentication header of the form `Bearer \u003ctoken>`, where `\u003ctoken>` is your auth token.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"api-reference/openapi.json"},"subdomain":"oleander","siteName":"oleander","title":"DuckDB (legacy) - oleander","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-16T16:39:52.192Z","originalFileLocation":"api-reference/duckdb-legacy.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=\"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization\u0026#x27;s default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.\">\u003cmeta data-mint-head name=\"application-name\" content=\"oleander\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_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/oleander/_OXtZHAwyn78Hoiy/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"DuckDB (legacy) - oleander\">\u003cmeta data-mint-head property=\"og:description\" content=\"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"oleander\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.oleander.dev/api-reference/duckdb-legacy\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://oleander.dev/opengraph-image\">\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=\"DuckDB (legacy) - oleander\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"oleander is a multi-engine data warehouse built on Apache Iceberg, with serverless compute and intelligent routing in one platform.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://oleander.dev/opengraph-image\">\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/oleander/_OXtZHAwyn78Hoiy/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"oleander\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#ec4899\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.oleander.dev/api-reference/duckdb-legacy\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/duckdb-legacy.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.oleander.dev/#organization\",\"name\":\"oleander\",\"url\":\"https://docs.oleander.dev\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/oleander/N5KOCj-KV-raHP2J/logo/light.svg?fit=max\u0026auto=format\u0026n=N5KOCj-KV-raHP2J\u0026q=85\u0026s=310e150e92ecf20e459e0231d14e554b\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.oleander.dev#website\",\"name\":\"oleander\",\"url\":\"https://docs.oleander.dev\",\"publisher\":{\"@id\":\"https://docs.oleander.dev/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.oleander.dev/api-reference/duckdb-legacy#webpage\",\"url\":\"https://docs.oleander.dev/api-reference/duckdb-legacy\",\"name\":\"DuckDB (legacy)\",\"description\":\"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization's default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.\",\"dateModified\":\"2026-10-16T16:39:52.192Z\",\"isPartOf\":{\"@id\":\"https://docs.oleander.dev#website\"},\"breadcrumb\":{\"@id\":\"https://docs.oleander.dev/api-reference/duckdb-legacy#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.oleander.dev/api-reference/duckdb-legacy#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Queries\",\"item\":\"https://docs.oleander.dev/api-reference/query-routed\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"DuckDB (legacy)\",\"item\":\"https://docs.oleander.dev/api-reference/duckdb-legacy\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.oleander.dev/api-reference/duckdb-legacy#apireference\",\"headline\":\"DuckDB (legacy)\",\"name\":\"DuckDB (legacy)\",\"description\":\"Legacy endpoint. Executes SQL against the oleander lake, always on DuckDB, sized by the organization's default sandbox setting rather than by the query. Prefer POST /api/v1/query, which routes to the right engine and machine; use this only for autoSaveByHash. All queries capture lineage metadata automatically. This endpoint is only available on the Pro plan.\",\"url\":\"https://docs.oleander.dev/api-reference/duckdb-legacy\",\"mainEntityOfPage\":{\"@id\":\"https://docs.oleander.dev/api-reference/duckdb-legacy#webpage\"},\"image\":\"https://oleander.dev/opengraph-image\",\"dateModified\":\"2026-10-16T16:39:52.192Z\",\"publisher\":{\"@id\":\"https://docs.oleander.dev/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.oleander.dev#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"oleander\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"oleander","nav":{"global":{"anchors":[{"anchor":"Slack","icon":"slack","href":"https://join.slack.com/t/oleander-hq/shared_invite/zt-2wzl5ncjb-c~ZubVAHVzBP7OZM~Hwuyw"},{"anchor":"Blog","icon":"newspaper","href":"https://oleander.dev/blog"}]},"tabs":[{"tab":"Documentation","icon":"book-open","pages":[{"title":"Documentation","href":"/quickstart"}]},{"tab":"API Reference","icon":"terminal","groups":[{"group":"Overview","pages":[{"title":"API Reference","href":"/api-reference/introduction"}]},{"group":"Lineage","pages":[{"title":"Record event","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/lineage","href":"/api-reference/record-event"},{"title":"Retrieve events","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json get /api/v1/events","href":"/api-reference/retrieve-events"}]},{"group":"Queries","pages":[{"title":"Query (routed)","description":"The unified query endpoint. oleander parses the SQL, estimates how much data the referenced tables hold, and picks the engine (DuckDB, Polars, Bloom, or Spark) and machine size to match. Leave `engine` on `auto` unless you need a specific one.\n\nInteractive reads return rows on the call. A query with a `destination`, a statement that names its own target, or a read too large for an interactive engine is submitted asynchronously and returns `state: \"SUBMITTED\"` with a `run_id` to poll.\n\nThis endpoint supersedes `/api/v1/warehouse/query`, which pins DuckDB and is sized by the org default rather than by the query.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/query","href":"/api-reference/query-routed"},{"title":"DuckDB (legacy)","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/warehouse/query","href":"/api-reference/duckdb-legacy"},{"title":"Spark","description":"Execute a SQL query against the oleander lake using managed Spark. The query runs as a named job in the specified namespace. Results are written to `output_table` as an Iceberg table. Lineage is captured automatically for every run.","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v2/spark/query","href":"/api-reference/spark"},{"title":"Polars","deprecated":null,"version":null,"openapi":"/api-reference/openapi.json post /api/v1/warehouse/polars","href":"/api-reference/polars"}]}]},{"tab":"SDKs","icon":"code","pages":[{"title":"SDKs","href":"/sdk/typescript/introduction"}]}]},"basePath":"","title":"DuckDB (legacy) - oleander","buildId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","deploymentId":"dpl_36EDyZCDfRuoUD9af5CH4M1bqY2h","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DCDCdBVX.js","utils-ME8dDnLe.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-0e84ACsd.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-wgRBj-ia.js","snippetPresets-C11Sgb-o.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-C0lapOpP.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ZeRQV8fF.js","shallow-BupWh095.js","getApiPlaygroundDisplay-BnYQO2Ss.js","CodeSnippet-RKKOc8c_.js","CodeSnippets-Drf_m8wS.js","Page-Bevw23-4.js","getPastedJson-u6QiPzNZ.js","icon-Bb-CBSxO.js","MethodPill-F7l5AI7V.js","DuplicateIcon-IiAXkdSg.js","createIcon-FliI8EBc.js","DynamicMarkdown-B62XqCSI.js","SectionHeading-Dj31pT03.js","axios-vUo_bRtp.js","Markdown-BOgQCTwD.js","clsx-BIWXJmsZ.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-DKZWslLH.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-UDqbR6xh.js"]}