{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Oxen.ai","description":"Oxen.ai is the platform for building AI on your own data. Use 200+ models through one API, version your datasets at scale, and fine-tune custom models.","colors":{"primary":"#0E87CB","light":"#0E87CB","dark":"#161616"},"logo":{"light":"https://mintcdn.com/oxenai/VndlMSXTb9YuU-Wl/logo/light.svg?fit=max\u0026auto=format\u0026n=VndlMSXTb9YuU-Wl\u0026q=85\u0026s=c1e0ff00ab0a8de0a5dca3f7cd146763","dark":"https://mintcdn.com/oxenai/VndlMSXTb9YuU-Wl/logo/dark.svg?fit=max\u0026auto=format\u0026n=VndlMSXTb9YuU-Wl\u0026q=85\u0026s=5ada75aaf4c15e38fe2743a7ac66c1b9"},"favicon":"https://mintcdn.com/oxenai/s_o9ZlhOEkYJf27_/favicon.png?fit=max\u0026auto=format\u0026n=s_o9ZlhOEkYJf27_\u0026q=85\u0026s=4977fd8edf8bbfb3ef5192cdd0156e37","background":{"color":{"dark":"#0A0A0A"}},"navbar":{"links":[{"href":"https://www.oxen.ai/blog","label":"Blog"},{"href":"https://discord.com/invite/s3tBEn7Ptg","label":"Support"}],"primary":{"type":"button","label":"Sign Up","href":"https://oxen.ai/register"}},"footer":{"socials":{"twitter":"https://twitter.com/oxen_ai","github":"https://github.com/Oxen-AI/Oxen","linkedin":"https://www.linkedin.com/company/oxenai"}},"integrations":{"ga4":{"measurementId":"G-H6D2C08EKP"},"posthog":{"apiKey":"phc_Do6VnS78puWwBQuPcJ7TkjixBZwsV4Xxc3ABHVNvjmE"}},"styling":{"latex":true},"navigation":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://docs.oxen.ai"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.oxen.ai"},{"anchor":"GitHub","icon":"github","href":"https://github.com/Oxen-AI/Oxen"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"oxenai","hasAudioNarration":false,"actualSubdomain":"oxenai","customDomains":["docs.oxen.ai"],"gitSource":{"type":"github","owner":"oxen-ai","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adc549d3e0e90aa2af878b8","collectionId":"a6211855-adb6-447b-9a88-7a55cf636c76","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adc549d3e0e90aa2af878b8"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adc549d3e0e90aa2af878b8","clientVersion":"0.0.3971","searchFilterCounts":[{"language":"default","tag":"Repository API","count":86},{"language":"default","tag":"Fine-Tuning API","count":77},{"language":"default","tag":"Documentation","count":46},{"language":"default","tag":"API Reference","count":40},{"language":"default","tag":"Inference API","count":36},{"language":"default","tag":"Developer Tools","count":25},{"language":"default","tag":"Get Started","count":21},{"language":"default","tag":"fine_tunes","count":16},{"language":"default","tag":"๐ Python","count":15},{"language":"default","tag":"Commits","count":14}]},"assistantConfig":{},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-v7-file-tree","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-nav-generations","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-agent-model-picker","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":".cta-button{display:inline-block;padding:.4rem .9rem;margin:1.25rem 0;background-color:#8d34ff;color:#fff!important;font-weight:600;font-size:.875rem;border-radius:.375rem;text-decoration:none!important;border-bottom:none!important;box-shadow:none!important;transition:opacity .15s ease}.cta-button:hover{opacity:.85;color:#fff!important}"}],"page":{"pagePath":"python-api/diff/line_diff","slug":"/python-api/diff/line_diff","pageMetadata":{"title":null,"description":null,"href":"/python-api/diff/line_diff"},"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={code:`code`,p:`p`,pre:`pre`,span:`span`,..._provideComponents(),...props.components},{CodeBlock,Heading}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);return _jsxs(_Fragment,{children:[_jsx(`a`,{id:`oxen.diff/line_diff`}),`\n`,_jsx(Heading,{level:`1`,id:`oxen-diff/line_diff`,children:`oxen.diff/line_diff`}),`\n`,_jsx(`a`,{id:`oxen.diff/line_diff.LineDiff`}),`\n`,_jsx(Heading,{level:`2`,id:`linediff-objects`,children:`LineDiff Objects`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`class`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#4EC9B0`},children:` LineDiff`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`()`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`A class representing a change in a line of text.`}),`\n`,_jsx(`a`,{id:`oxen.diff/line_diff.LineDiff.modification`}),`\n`,_jsx(Heading,{level:`2`,id:`modification`,children:`modification`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`property`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` modification`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() -> ChangeType`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Returns the modification of the line diff.`}),`\n`,_jsx(`a`,{id:`oxen.diff/line_diff.LineDiff.text`}),`\n`,_jsx(Heading,{level:`2`,id:`text`,children:`text`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`python`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`python`,children:_jsxs(_components.code,{language:`python`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:`@`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`property`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#569CD6`},children:`def`}),_jsx(_components.span,{style:{color:`#8250DF`,\"--shiki-dark\":`#DCDCAA`},children:` text`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`() -> `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#4EC9B0`},children:`str`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Returns the text of the line diff.`})]})}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":{"title":null,"description":null,"href":"/python-api/diff/line_diff"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"oxen.diff/line_diff","slug":"oxen-diff/line_diff","depth":1,"children":[]},{"title":"LineDiff Objects","slug":"linediff-objects","depth":2,"children":[]},{"title":"modification","slug":"modification","depth":2,"children":[]},{"title":"text","slug":"text","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"subdomain":"oxenai","siteName":"Oxen.ai","title":"Line diff - Oxen.ai","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-09-26T03:47:31.316Z","originalFileLocation":"python-api/diff/line_diff.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Oxen.ai\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_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/oxenai/qjH8p5zfmK1DS0SK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Line diff - Oxen.ai\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Oxen.ai\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.oxen.ai/python-api/diff/line_diff\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://oxenai.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%90%8D+Python\u0026amp;title=Line+diff\u0026amp;theme=09fb966f50f0573092e61af3\u0026amp;signature=906984d13e5e8b0d49170154a14b99f87db6ee51378e6e96b691ba714b1f7ee9\">\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=\"Line diff - Oxen.ai\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://oxenai.mintlify.app/_mintlify/api/og/v2?division=%F0%9F%90%8D+Python\u0026amp;title=Line+diff\u0026amp;theme=09fb966f50f0573092e61af3\u0026amp;signature=906984d13e5e8b0d49170154a14b99f87db6ee51378e6e96b691ba714b1f7ee9\">\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/oxenai/qjH8p5zfmK1DS0SK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Oxen.ai\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0E87CB\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.oxen.ai/python-api/diff/line_diff\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/python-api/diff/line_diff.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.oxen.ai/#organization\",\"name\":\"Oxen.ai\",\"url\":\"https://docs.oxen.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/oxenai/VndlMSXTb9YuU-Wl/logo/light.svg?fit=max\u0026auto=format\u0026n=VndlMSXTb9YuU-Wl\u0026q=85\u0026s=c1e0ff00ab0a8de0a5dca3f7cd146763\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.oxen.ai#website\",\"name\":\"Oxen.ai\",\"url\":\"https://docs.oxen.ai\",\"publisher\":{\"@id\":\"https://docs.oxen.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.oxen.ai/python-api/diff/line_diff#webpage\",\"url\":\"https://docs.oxen.ai/python-api/diff/line_diff\",\"name\":\"Line diff\",\"dateModified\":\"2026-09-26T03:47:31.316Z\",\"isPartOf\":{\"@id\":\"https://docs.oxen.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.oxen.ai/python-api/diff/line_diff#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.oxen.ai/python-api/diff/line_diff#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Developer Tools\",\"item\":\"https://docs.oxen.ai/getting-started/install\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"๐ Python\",\"item\":\"https://docs.oxen.ai/python-api/index\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Line diff\",\"item\":\"https://docs.oxen.ai/python-api/diff/line_diff\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.oxen.ai/python-api/diff/line_diff#article\",\"headline\":\"Line diff\",\"name\":\"Line diff\",\"url\":\"https://docs.oxen.ai/python-api/diff/line_diff\",\"mainEntityOfPage\":{\"@id\":\"https://docs.oxen.ai/python-api/diff/line_diff#webpage\"},\"dateModified\":\"2026-09-26T03:47:31.316Z\",\"publisher\":{\"@id\":\"https://docs.oxen.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.oxen.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Oxen.ai\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Oxen.ai","nav":{"global":{"anchors":[{"anchor":"Documentation","icon":"book-open-cover","href":"https://docs.oxen.ai"},{"anchor":"Blog","icon":"newspaper","href":"https://blog.oxen.ai"},{"anchor":"GitHub","icon":"github","href":"https://github.com/Oxen-AI/Oxen"}]},"tabs":[{"tab":"Documentation","groups":[{"group":"Get Started","pages":[{"title":"๐ Oxen.ai","href":"/getting-started/intro"},{"group":"โก๏ธ Models","pages":[{"title":"Using Models on Oxen.ai","sidebarTitle":"๐ Overview","href":"/getting-started/inference"},{"title":"๐ฌ Language Models","href":"/examples/inference/chat_completions"},{"title":"๐๏ธ Vision Language Models","href":"/examples/inference/vision_language_models"},{"title":"๐ผ๏ธ Image Generation","href":"/examples/inference/image_generation"},{"title":"๐จ Image Editing","href":"/examples/inference/image_editing"},{"title":"๐ฅ Video Generation","href":"/examples/inference/video_generation"}]},{"group":"๐ข๏ธ Data","pages":[{"title":"Repositories on Oxen.ai","sidebarTitle":"๐ Overview","href":"/getting-started/data"},{"title":"๐พ Version Control","href":"/examples/data/versioning"},{"title":"๐ Datasets","href":"/examples/data/datasets"},{"title":"๐ฆ Workspaces","href":"/examples/data/workspaces"},{"title":"๐ฅ Performance","href":"/examples/data/performance"},{"title":"โ๏ธ Dataset Diffs","href":"/concepts/diffs"},{"title":"๐ท๏ธ File Metadata","href":"/concepts/file_metadata"}]},{"group":"๐ ๏ธ Fine-Tuning","pages":[{"title":"Fine-Tuning Models on Oxen.ai","sidebarTitle":"๐ Overview","href":"/getting-started/fine-tuning"},{"title":"๐ฌ Text Generation","href":"/examples/fine-tuning/text_generation"},{"title":"๐ค Chat Completions","href":"/examples/fine-tuning/chat_completions"},{"title":"๐๏ธ Vision Language Models","href":"/examples/fine-tuning/image_understanding"},{"title":"๐ผ๏ธ Image Generation","href":"/examples/fine-tuning/image_generation"},{"title":"๐จโ๐จ Image Editing","href":"/examples/fine-tuning/image_editing"},{"title":"๐ฅ Video Generation","href":"/examples/fine-tuning/video_generation"}]}]},{"group":"Developer Tools","pages":[{"title":"โ๏ธ Installation","href":"/getting-started/install"},{"group":"๐ป Command Line Interface","pages":[{"title":"โ๏ธ Setup \u0026 Authentication","href":"/getting-started/command-line/setup"},{"title":"๐ Start a Repository","href":"/getting-started/command-line/start_repository"},{"title":"๐ Track Changes","href":"/getting-started/command-line/track_changes"},{"title":"๐ฟ Branches \u0026 Merging","href":"/getting-started/command-line/branches"},{"title":"๐ Sync with a Remote","href":"/getting-started/command-line/sync_remote"},{"title":"๐๏ธ Workspaces","href":"/getting-started/command-line/workspaces"},{"title":"๐งน Maintenance","href":"/getting-started/command-line/maintenance"},{"title":"๐ง Debugging \u0026 Performance","href":"/getting-started/command-line/debugging"}]},{"group":"๐ Python","pages":[{"title":"Introduction","href":"/python-api/index"},{"title":null,"href":"/python-api/clone"},{"title":null,"href":"/python-api/data_frame"},{"title":null,"href":"/python-api/datasets"},{"title":null,"href":"/python-api/df_utils"},{"title":null,"description":null,"href":"/python-api/diff/diff"},{"title":null,"href":"/python-api/diff/line_diff"},{"title":null,"description":null,"href":"/python-api/diff/tabular_diff"},{"title":null,"href":"/python-api/diff/text_diff"},{"title":null,"href":"/python-api/init"},{"title":null,"href":"/python-api/oxen_fs"},{"title":null,"href":"/python-api/remote_repo"},{"title":null,"href":"/python-api/repo"},{"title":"Repositories","href":"/python-api/repositories"},{"title":null,"href":"/python-api/workspace"}]},{"title":"๐ก Oxen Server","href":"/getting-started/oxen-server"}]}]},{"tab":"Inference API","groups":[{"group":"Inference API","pages":[{"title":"Inference API Overview","href":"/inference-api/overview"},{"group":"Quick Starts","pages":[{"title":"Chat Completions","href":"/inference-api/quickstart/chat"},{"title":"Image Generation","href":"/inference-api/quickstart/image-generation"},{"title":"Video Generation","href":"/inference-api/quickstart/video-generation"},{"title":"Async Queue","href":"/inference-api/quickstart/async-queue"}]},{"group":"API Reference","pages":[{"title":"Chat Completions","href":"/inference-api/reference/chat_completions"},{"title":"Image Generation","href":"/inference-api/reference/image_generation"},{"title":"Image Editing","href":"/inference-api/reference/image_editing"},{"title":"Video Generation","href":"/inference-api/reference/video_generation"},{"title":"Async Queue","href":"/inference-api/reference/async_queue"},{"title":"Models","href":"/inference-api/reference/models/overview"},{"title":"Model API References","href":"/inference-api/reference/model-references"}]},{"group":"Model Walkthroughs","pages":[{"title":"Model Walkthroughs","href":"/inference-api/reference/models/walkthroughs/overview"},{"title":"Kling O3 Pro: Reference to Video","href":"/inference-api/reference/models/walkthroughs/kling_o3_pro_reference_to_video"},{"title":"Kling O3 Edit: Video to Video","href":"/inference-api/reference/models/walkthroughs/kling_o3_pro_video_to_video_edit"},{"title":"Seedance 2.0: Reference to Video","href":"/inference-api/reference/models/walkthroughs/seedance_2_reference_to_video"},{"title":"Seedance 2.5: Draft Mode","href":"/inference-api/reference/models/walkthroughs/seedance_2_5_draft_mode"},{"title":"Topaz Starlight Precise 2.5","href":"/inference-api/reference/models/walkthroughs/topaz_starlight_precise_2_5"}]}]}]},{"tab":"Repository API","groups":[{"group":"Repository API","pages":[{"title":"Repository API","href":"/http-api"},{"title":"File Upload Example","href":"/http-api/example"},{"title":"Large File Upload","href":"/http-api/large-file-upload"}]},{"group":"Branches","pages":[{"title":"Merge a commit into a branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/branches/{branch_name}/merge","href":"/http-api/branches/merge-a-commit-into-a-branch"},{"title":"Get an existing branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/branches/{branch_name}","href":"/http-api/branches/get-an-existing-branch"},{"title":"Update a branch to a new commit","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/branches/{branch_name}","href":"/http-api/branches/update-a-branch-to-a-new-commit"},{"title":"Delete a branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/branches/{branch_name}","href":"/http-api/branches/delete-a-branch"},{"title":"Get all versions of a file on a branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/branches/{branch_name}/versions/{path}","href":"/http-api/branches/get-all-versions-of-a-file-on-a-branch"},{"title":"List all branches","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/branches","href":"/http-api/branches/list-all-branches"},{"title":"Create a new branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/branches","href":"/http-api/branches/create-a-new-branch"}]},{"group":"Commits","pages":[{"title":"Upload commits DB","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/commits/upload","href":"/http-api/commits/upload-commits-db"},{"title":"Download commits DB","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits_db","href":"/http-api/commits/download-commits-db"},{"title":"Upload data chunk","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/commits/upload_chunk","href":"/http-api/commits/upload-data-chunk"},{"title":"Notify upload complete","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/commits/{commit_id}/complete","href":"/http-api/commits/notify-upload-complete"},{"title":"Get root commit","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/root","href":"/http-api/commits/get-root-commit"},{"title":"Get commit","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/{commit_id}","href":"/http-api/commits/get-commit"},{"title":"Download commit entries DB","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/{commit_or_branch}/commit_entries_db","href":"/http-api/commits/download-commit-entries-db"},{"title":"Upload commit","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/commits","href":"/http-api/commits/upload-commit"},{"title":"List commit history","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/history/{resource}","href":"/http-api/commits/list-commit-history"},{"title":"List missing commits","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/missing","href":"/http-api/commits/list-missing-commits"},{"title":"List missing files from commits","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/missing_files","href":"/http-api/commits/list-missing-files-from-commits"},{"title":"List all commits","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/all","href":"/http-api/commits/list-all-commits"},{"title":"Download dir hashes DB","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/{base_head}/dir_hashes_db","href":"/http-api/commits/download-dir-hashes-db"},{"title":"Get a commit's parents","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/commits/{commit_or_branch}/parents","href":"/http-api/commits/get-a-commits-parents"}]},{"group":"Compare","pages":[{"title":"Get Derived Data Frame","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/data_frames/{compare_id}/diff","href":"/http-api/compare/get-derived-data-frame"},{"title":"List changed files","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/{base_head}/dir/{dir}/entries","href":"/http-api/compare/list-changed-files"},{"title":"Get file diff","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/{base_head}/file/{resource}","href":"/http-api/compare/get-file-diff"},{"title":"Get diff tree","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/{base_head}/tree","href":"/http-api/compare/get-diff-tree"},{"title":"List file and directory entries changed between base and head","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/{base_head}/entries","href":"/http-api/compare/list-file-and-directory-entries-changed-between-base-and-head"},{"title":"List commits between two revisions","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/{base_head}/commits","href":"/http-api/compare/list-commits-between-two-revisions"}]},{"group":"Export","pages":[{"title":"Export resource as a zip","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/export/download/{resource}","href":"/http-api/export/export-resource-as-a-zip"}]},{"group":"Repositories","pages":[{"title":"Get repository stats","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/stats","href":"/http-api/repositories/get-repository-stats"},{"title":"List repositories","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}","href":"/http-api/repositories/list-repositories"},{"title":"Transfer repository namespace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json patch /api/repos/{namespace}/{repo_name}/transfer","href":"/http-api/repositories/transfer-repository-namespace"},{"title":"Rename a repository","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json patch /api/repos/{namespace}/{repo_name}/rename","href":"/http-api/repositories/rename-a-repository"},{"title":"Get repository size","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/size","href":"/http-api/repositories/get-repository-size"},{"title":"Update repository size","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/size","href":"/http-api/repositories/update-repository-size"},{"title":"Get repository details","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}","href":"/http-api/repositories/get-repository-details"},{"title":"Delete repository","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}","href":"/http-api/repositories/delete-repository"},{"title":"Create repository","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos","href":"/http-api/repositories/create-repository"}]},{"group":"Workspaces","pages":[{"title":"Clear workspaces for repo","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/workspaces/clear","href":"/http-api/workspaces/clear-workspaces-for-repo"},{"title":"Check workspace mergeability","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/merge/{branch}","href":"/http-api/workspaces/check-workspace-mergeability"},{"title":"Merge workspace into branch","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/merge/{branch}","href":"/http-api/workspaces/merge-workspace-into-branch"},{"title":"Get workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}","href":"/http-api/workspaces/get-workspace"},{"title":"Delete workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}","href":"/http-api/workspaces/delete-workspace"},{"title":"Get or create workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/workspaces/get_or_create","href":"/http-api/workspaces/get-or-create-workspace"},{"title":"List workspaces","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces","href":"/http-api/workspaces/list-workspaces"}]},{"group":"Version Files","pages":[{"title":"Batch download files (Tarball)","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/versions/batch-download","href":"/http-api/version-files/batch-download-files-tarball"},{"title":"Download version file","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/versions/{resource}","href":"/http-api/version-files/download-version-file"},{"title":"Upload one part of a version file","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/versions/uploads/{upload_id}/parts/{part_number}","href":"/http-api/version-files/upload-one-part-of-a-version-file"},{"title":"Get version file metadata","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/versions/{version_id}/metadata","href":"/http-api/version-files/get-version-file-metadata"},{"title":"Batch upload files (Multipart)","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/versions","href":"/http-api/version-files/batch-upload-files-multipart"},{"title":"Begin a version file upload","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/versions/uploads","href":"/http-api/version-files/begin-a-version-file-upload"}]},{"group":"Data Frames","pages":[{"title":"Get data frame slice","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/data_frames/{resource}","href":"/http-api/data-frames/get-data-frame-slice"},{"title":"Create a tabular data frame diff","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/compare/data_frames","href":"/http-api/data-frames/create-a-tabular-data-frame-diff"},{"title":"Get a cached tabular data frame diff","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/compare/data_frames/{compare_id}","href":"/http-api/data-frames/get-a-cached-tabular-data-frame-diff"},{"title":"Update tabular data frame diff","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/compare/data_frames/{compare_id}","href":"/http-api/data-frames/update-tabular-data-frame-diff"},{"title":"Delete DF Diff","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/compare/data_frames/{compare_id}","href":"/http-api/data-frames/delete-df-diff"},{"title":"Create data frame from directory","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/data_frames/from_directory/{resource}","href":"/http-api/data-frames/create-data-frame-from-directory"},{"title":"Start data frame indexing","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/data_frames/{resource}/index","href":"/http-api/data-frames/start-data-frame-indexing"}]},{"group":"Import","pages":[{"title":"Import file from URL","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/import/{resource}","href":"/http-api/import/import-file-from-url"},{"title":"Upload zip archive","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/import/upload/{resource}","href":"/http-api/import/upload-zip-archive"}]},{"group":"Namespaces","pages":[{"title":"Get namespace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/namespaces/{namespace}","href":"/http-api/namespaces/get-namespace"},{"title":"List namespaces","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/namespaces","href":"/http-api/namespaces/list-namespaces"}]},{"group":"Workspace Files","pages":[{"title":"Get file from workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/files/{path}","href":"/http-api/workspace-files/get-file-from-workspace"},{"title":"Add files to workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/files/{path}","href":"/http-api/workspace-files/add-files-to-workspace"},{"title":"List staged changes under a directory in a workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/changes/{path}","href":"/http-api/workspace-files/list-staged-changes-under-a-directory-in-a-workspace"},{"title":"Unstage a file from the workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/changes/{path}","href":"/http-api/workspace-files/unstage-a-file-from-the-workspace"},{"title":"List staged changes in a workspace","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/changes","href":"/http-api/workspace-files/list-staged-changes-in-a-workspace"},{"title":"Unstage files","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/changes","href":"/http-api/workspace-files/unstage-files"},{"title":"Stage files for removal","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/files","href":"/http-api/workspace-files/stage-files-for-removal"}]},{"group":"Workspace Data Frames","pages":[{"title":"Set the metadata on a data frame's schema itself โ the file-level\ncounterpart to the per-column metadata endpoint. Staged into the\nworkspace, so no commit is required.","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/data_frames/schema/{path}","href":"/http-api/workspace-data-frames/set-the-metadata-on-a-data-frames-schema-itself-โ-the-file-levelcounterpart-to-the-per-column-metadata-endpoint-staged-into-theworkspace-so-no-commit-is-required"},{"title":"Post apirepos workspaces data framescolumnsschemametadata","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/workspaces/{workspace_id}/data_frames/columns/schema/metadata/{path}","href":"/http-api/workspace-data-frames/post-apirepos-workspaces-data_framescolumnsschemametadata"}]},{"group":"Metadata","pages":[{"title":"Get file metadata","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/metadata/{resource}","href":"/http-api/metadata/get-file-metadata"},{"title":"Update file metadata","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/metadata/{resource}","href":"/http-api/metadata/update-file-metadata"}]},{"group":"Merge","pages":[{"title":"Check if branches are mergeable","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/merge/{base_head}","href":"/http-api/merge/check-if-branches-are-mergeable"},{"title":"Merge branches","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json post /api/repos/{namespace}/{repo_name}/merge/{base_head}","href":"/http-api/merge/merge-branches"}]},{"group":"Files","pages":[{"title":"Download File","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/file/{resource}","href":"/http-api/files/download-file"},{"title":"Upload files","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json put /api/repos/{namespace}/{repo_name}/file/{resource}","href":"/http-api/files/upload-files"},{"title":"Delete file","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json delete /api/repos/{namespace}/{repo_name}/file/{resource}","href":"/http-api/files/delete-file"},{"title":"Move/Rename file","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json patch /api/repos/{namespace}/{repo_name}/file/{resource}","href":"/http-api/files/moverename-file"}]},{"group":"Health","pages":[{"title":"Check Oxen server status","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/version","href":"/http-api/health/check-oxen-server-status"}]},{"group":"Directories","pages":[{"title":"List directory contents","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_server_openapi.json get /api/repos/{namespace}/{repo_name}/dir/{resource}","href":"/http-api/directories/list-directory-contents"}]}]},{"tab":"Fine-Tuning API","groups":[{"group":"Fine-Tuning API","pages":[{"title":"Fine-Tuning Overview","href":"/fine-tuning-api/overview"},{"group":"Quick Starts","pages":[{"title":"Text Generation","href":"/fine-tuning-api/quickstart/text"},{"title":"Image Generation","href":"/fine-tuning-api/quickstart/image-generation"},{"title":"Image Editing","href":"/fine-tuning-api/quickstart/image-editing"},{"title":"Video Generation","href":"/fine-tuning-api/quickstart/video"}]},{"group":"Tutorials","pages":[{"title":"Fine-Tuning text generation model","href":"/fine-tuning-api/tutorials/01_fine_tuning"},{"title":"Fine-Tuning an Image Generation Model with API","href":"/fine-tuning-api/tutorials/03_fine_tuning_image_generation"},{"title":"Fine-Tuning an Image Editing Model with API","href":"/fine-tuning-api/tutorials/02_fine_tuning_image"}]},{"group":"API Reference","pages":[{"title":"Fine-Tune: Text Generation","href":"/fine-tuning-api/reference/text_generation"},{"title":"Fine-Tune: Text Chat Messages","href":"/fine-tuning-api/reference/text_chat_messages"},{"title":"Fine-Tune: Image Generation","href":"/fine-tuning-api/reference/image_generation"},{"title":"Fine-Tune: Image Editing","href":"/fine-tuning-api/reference/image_editing"},{"title":"Fine-Tune: Multi Image Editing","href":"/fine-tuning-api/reference/multi_image_editing"},{"title":"Fine-Tune: Image To Text","href":"/fine-tuning-api/reference/image_to_text"},{"title":"Fine-Tune: Image To Video","href":"/fine-tuning-api/reference/image_to_video"},{"title":"Fine-Tune: Text To Video","href":"/fine-tuning-api/reference/text_to_video"}]},{"title":"Parameter Guide","href":"/fine-tuning-api/parameters"}]},{"group":"API Reference","pages":[{"title":"Create chat completion","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/chat/completions","href":"/fine-tuning-api/create-chat-completion"},{"title":"List the values each filter column takes","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/generations/_filters","href":"/fine-tuning-api/list-the-values-each-filter-column-takes"},{"title":"List past generations","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/generations","href":"/fine-tuning-api/list-past-generations"},{"title":"Edit image","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/images/edit","href":"/fine-tuning-api/edit-image"},{"title":"Retrieve model","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/models/{id}","href":"/fine-tuning-api/retrieve-model"},{"title":"Update model","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json put /api/ai/models/{id}","href":"/fine-tuning-api/update-model"},{"title":"Delete custom model","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json delete /api/ai/models/{id}","href":"/fine-tuning-api/delete-custom-model"},{"title":"Search models","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/models/search","href":"/fine-tuning-api/search-models"},{"title":"Get generation details","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/generations/{generation_id}","href":"/fine-tuning-api/get-generation-details"},{"title":"List featured models","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/models/featured","href":"/fine-tuning-api/list-featured-models"},{"title":"Get generation status","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/queue/{generation_id}","href":"/fine-tuning-api/get-generation-status"},{"title":"Cancel generation","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json delete /api/ai/queue/{generation_id}","href":"/fine-tuning-api/cancel-generation"},{"title":"Generate image","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/images/generate","href":"/fine-tuning-api/generate-image"},{"title":"Deactivate model deployment","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/models/{id}/deactivate","href":"/fine-tuning-api/deactivate-model-deployment"},{"title":"Activate model deployment","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/models/{id}/activate","href":"/fine-tuning-api/activate-model-deployment"},{"title":"Kill \u0026 retry generation","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/queue/{generation_id}/retry","href":"/fine-tuning-api/kill-\u0026-retry-generation"},{"title":"Generate audio","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/audio/generate","href":"/fine-tuning-api/generate-audio"},{"title":"List favorite models","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/models/favorites","href":"/fine-tuning-api/list-favorite-models"},{"title":"Resolve workbench input URLs","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/workbench/references/resolve","href":"/fine-tuning-api/resolve-workbench-input-urls"},{"title":"List models","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/models","href":"/fine-tuning-api/list-models"},{"title":"List in-flight queue items","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/ai/queue","href":"/fine-tuning-api/list-in-flight-queue-items"},{"title":"Enqueue generation","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/queue","href":"/fine-tuning-api/enqueue-generation"},{"title":"Generate video","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/videos/generate","href":"/fine-tuning-api/generate-video"},{"title":"Favorite a model","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/ai/models/{id}/favorite","href":"/fine-tuning-api/favorite-a-model"},{"title":"Unfavorite a model","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json delete /api/ai/models/{id}/favorite","href":"/fine-tuning-api/unfavorite-a-model"}]},{"group":"fine_tunes","pages":[{"title":"List fine-tunes for an organization","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/orgs/{name}/fine_tunes","href":"/fine-tuning-api/fine_tunes/list-fine-tunes-for-an-organization"},{"title":"Run a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/actions/run","href":"/fine-tuning-api/fine_tunes/run-a-fine-tune-job"},{"title":"Get a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/fine_tunes/{id}","href":"/fine-tuning-api/fine_tunes/get-a-fine-tune-job"},{"title":"Delete a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json delete /api/repos/{namespace}/{repo_name}/fine_tunes/{id}","href":"/fine-tuning-api/fine_tunes/delete-a-fine-tune-job"},{"title":"Rename or describe a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json patch /api/repos/{namespace}/{repo_name}/fine_tunes/{id}","href":"/fine-tuning-api/fine_tunes/rename-or-describe-a-fine-tune-job"},{"title":"List checkpoints for a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/checkpoints","href":"/fine-tuning-api/fine_tunes/list-checkpoints-for-a-fine-tune-job"},{"title":"Get logs for a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/logs","href":"/fine-tuning-api/fine_tunes/get-logs-for-a-fine-tune-job"},{"title":"Stop a running fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/actions/stop","href":"/fine-tuning-api/fine_tunes/stop-a-running-fine-tune-job"},{"title":"Deploy a checkpoint from a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/checkpoints/{step}/deploy","href":"/fine-tuning-api/fine_tunes/deploy-a-checkpoint-from-a-fine-tune-job"},{"title":"Tokenize data for a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/tokenize","href":"/fine-tuning-api/fine_tunes/tokenize-data-for-a-fine-tune-job"},{"title":"Update training status for a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json put /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/train_status/{new_status}","href":"/fine-tuning-api/fine_tunes/update-training-status-for-a-fine-tune-job"},{"title":"Get training status for a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/fine_tunes/{id}/train_status","href":"/fine-tuning-api/fine_tunes/get-training-status-for-a-fine-tune-job"},{"title":"List fine-tunes in a repository","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/fine_tunes","href":"/fine-tuning-api/fine_tunes/list-fine-tunes-in-a-repository"},{"title":"Create a fine-tune job","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/fine_tunes","href":"/fine-tuning-api/fine_tunes/create-a-fine-tune-job"},{"title":"List all fine-tunes accessible to the current user","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/user/fine_tunes","href":"/fine-tuning-api/fine_tunes/list-all-fine-tunes-accessible-to-the-current-user"},{"title":"List fine-tunes for a user","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/users/{username}/fine_tunes","href":"/fine-tuning-api/fine_tunes/list-fine-tunes-for-a-user"}]},{"group":"evaluations","pages":[{"title":"Get evaluation status","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json get /api/repos/{namespace}/{repo_name}/evaluations/{evaluation_id}","href":"/fine-tuning-api/evaluations/get-evaluation-status"},{"title":"Create an evaluation","deprecated":null,"version":null,"openapi":"https://hub.oxen.ai/api/_spec/oxen_hub_api.json post /api/repos/{namespace}/{repo_name}/evaluations/*resource_path","href":"/fine-tuning-api/evaluations/create-an-evaluation"}]}]}]},"title":"Line diff - Oxen.ai","buildId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","deploymentId":"dpl_DFJrtvUi8HS5F9nkooKuDJsuD5BM","dynamics":[],"chunks":[]}