Parses the supplied config, creates a new agent version from it, and returns the new
version number together with the agent’s resulting validation status. Semantic validation
errors (e.g. a missing required export column) do not prevent the version from being
created - they are returned in errors so the caller can decide whether to fix them. Syntax
errors, however, are rejected outright and no version is written.
content must be a JSON object - the same shape returned by GET {agentId}/content’s
default format=json (not the plain-text NestedText produced by format=yaml).
comments is a mandatory commit message describing the change.
expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected
with a conflict if the agent’s current version does not match it.
const res = await fetch("https://dashboard.sequentum.com/api/v1/agent/123/content", {
method: "POST",
headers: {
"Authorization": `ApiKey ${process.env.SEQUENTUM_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
// content must be the canonical config JSON object - the same shape returned by
// GET {agentId}/content's default format=json (not the format=yaml NestedText string).
content: {
Agent: {
Commands: [
{ Type: "URL", Name: "URL", Input: { "Static Value": "https://example.com" } },
],
Export: { "Export Name": "My Agent" },
},
},
comments: "Point at the new start URL",
// Optional optimistic-concurrency guard: reject the upload with a 409 if the agent
// has since moved past this version.
// expectedVersion: 4,
}),
});
const result = await res.json();
console.log(`Created version ${result.newVersion}, status ${result.validationStatus}`);
import os
import requests
response = requests.post(
"https://dashboard.sequentum.com/api/v1/agent/123/content",
headers={
"Authorization": f"ApiKey {os.environ['SEQUENTUM_API_KEY']}",
"Content-Type": "application/json",
},
json={
# content must be the canonical config JSON object - the same shape returned by
# GET {agentId}/content's default format=json (not the format=yaml NestedText string).
"content": {
"Agent": {
"Commands": [
{"Type": "URL", "Name": "URL", "Input": {"Static Value": "https://example.com"}}
],
"Export": {"Export Name": "My Agent"},
}
},
"comments": "Point at the new start URL",
# Optional optimistic-concurrency guard: reject the upload with a 409 if the agent
# has since moved past this version.
# "expectedVersion": 4,
},
)
response.raise_for_status()
result = response.json()
print(f"Created version {result['newVersion']}, status {result['validationStatus']}")
The agent's full config as a JSON object - the same shape returned by the download endpoints'
default format=json (not the plain-text NestedText produced by format=yaml). Must be a
JSON object.
Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the
agent's current version does not match this value.
Response
The new version was created
Result of uploading a new version of an agent's content. Semantic validation errors do
not prevent the version from being created - they are returned alongside it so the caller can decide
whether to fix them.
Semantic validation status of a config's most recently saved definition (e.g. whether every
fixed export schema column is actually produced by a command). Serialized as its underlying
int, not a string - see Sequentum.Enterprise.ControlCenter.Swagger.EnumDescriptionsSchemaFilter
for how these values get documented in the public OpenAPI spec. (1 = Unknown - Validation status was not computed for this response (e.g. a historical config version, which does not retain its own stored status); 2 = Invalid - The config has one or more semantic validation errors (e.g. a required export column with no producing command); 3 = Valid - The config has no semantic validation errors)
Semantic validation errors, if any. Non-empty only when validationStatus is 2 (Invalid) - these do not prevent the version from being created.
Show child attributes
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Sequentum Developer Documentation","description":"Build, run, and operate web data agents at enterprise scale.","colors":{"primary":"#5248f9","light":"#7c74fb","dark":"#14163b"},"logo":{"light":"https://mintcdn.com/sequentum/fcE1x9eYvxrlj_sO/logo/wordmark-light.svg?fit=max\u0026auto=format\u0026n=fcE1x9eYvxrlj_sO\u0026q=85\u0026s=0a67e1bcfec589a284d603f793833f43","dark":"https://mintcdn.com/sequentum/fcE1x9eYvxrlj_sO/logo/wordmark-dark.svg?fit=max\u0026auto=format\u0026n=fcE1x9eYvxrlj_sO\u0026q=85\u0026s=2c2373b40cd1969f989d11624005229b","href":"https://docs.sequentum.com"},"favicon":{"light":"https://mintcdn.com/sequentum/fcE1x9eYvxrlj_sO/favicon-light.svg?fit=max\u0026auto=format\u0026n=fcE1x9eYvxrlj_sO\u0026q=85\u0026s=7b586086bac293498d14050730848a18","dark":"https://mintcdn.com/sequentum/fcE1x9eYvxrlj_sO/favicon-dark.svg?fit=max\u0026auto=format\u0026n=fcE1x9eYvxrlj_sO\u0026q=85\u0026s=93ab6db44ff5945729856e1209d0bc5c"},"navbar":{"links":[{"href":"https://www.sequentum.com/contact-us","label":"Support"}],"primary":{"type":"button","label":"Get API Key","href":"https://dashboard.sequentum.com/user/api-keys"}},"footer":{"socials":{"x":"https://x.com/sequentum","linkedin":"https://www.linkedin.com/company/sequentum","github":"https://github.com/sequentum"}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"sequentum","hasAudioNarration":false,"actualSubdomain":"sequentum","customDomains":["docs.sequentum.com"],"gitSource":{"type":"github","owner":"sequentum","repo":"sequentum-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae566d14f6cee598f7bd105","collectionId":"1284149c-11bf-4d11-8aa2-609e19837aea","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae566d14f6cee598f7bd105"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6ae566d14f6cee598f7bd105","clientVersion":"0.0.4043","searchFilterCounts":[{"language":"default","tag":"Agents","count":64},{"language":"default","tag":"Documentation","count":60},{"language":"default","tag":"API reference","count":48},{"language":"default","tag":"Commands","count":43},{"language":"default","tag":"Export","count":11},{"language":"default","tag":"Extract","count":9},{"language":"default","tag":"Schedules","count":7},{"language":"default","tag":"Get started","count":7},{"language":"default","tag":"Agent Builder","count":6},{"language":"default","tag":"Billing","count":6}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/agents/upload-content","slug":"/api-reference/agents/upload-content","pageMetadata":{"title":"Upload agent content","openapi":"POST /api/v1/agent/{agentId}/content","mode":"wide","description":"Parses the supplied config, creates a new agent version from it, and returns the new\nversion number together with the agent's resulting validation status. Semantic validation\nerrors (e.g. a missing required export column) do **not** prevent the version from being\ncreated - they are returned in `errors` so the caller can decide whether to fix them. Syntax\nerrors, however, are rejected outright and no version is written.\n\n`content` must be a JSON object - the same shape returned by `GET {agentId}/content`'s\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`).\n\n`comments` is a mandatory commit message describing the change.\n\n`expectedVersion` is an optional optimistic-concurrency guard: when set, the upload is rejected\nwith a conflict if the agent's current version does not match it.\n\nRequires write access to the agent.","href":"/api-reference/agents/upload-content"},"description":{"compiledSource":"\"use strict\";\nconst {Fragment: _Fragment, jsx: _jsx, jsxs: _jsxs} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Parses the supplied config, creates a new agent version from it, and returns the new\\nversion number together with the agent’s resulting validation status. Semantic validation\\nerrors (e.g. a missing required export column) do \", _jsx(_components.strong, {\n children: \"not\"\n }), \" prevent the version from being\\ncreated - they are returned in \", _jsx(_components.code, {\n children: \"errors\"\n }), \" so the caller can decide whether to fix them. Syntax\\nerrors, however, are rejected outright and no version is written.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"content\"\n }), \" must be a JSON object - the same shape returned by \", _jsx(_components.code, {\n children: \"GET {agentId}/content\"\n }), \"’s\\ndefault \", _jsx(_components.code, {\n children: \"format=json\"\n }), \" (not the plain-text NestedText produced by \", _jsx(_components.code, {\n children: \"format=yaml\"\n }), \").\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"comments\"\n }), \" is a mandatory commit message describing the change.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.code, {\n children: \"expectedVersion\"\n }), \" is an optional optimistic-concurrency guard: when set, the upload is rejected\\nwith a conflict if the agent’s current version does not match it.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Requires write access to the agent.\"\n })]\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":"Upload agent content","openapi":"POST /api/v1/agent/{agentId}/content","mode":"wide","description":"Parses the supplied config, creates a new agent version from it, and returns the new\nversion number together with the agent's resulting validation status. Semantic validation\nerrors (e.g. a missing required export column) do **not** prevent the version from being\ncreated - they are returned in `errors` so the caller can decide whether to fix them. Syntax\nerrors, however, are rejected outright and no version is written.\n\n`content` must be a JSON object - the same shape returned by `GET {agentId}/content`'s\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`).\n\n`comments` is a mandatory commit message describing the change.\n\n`expectedVersion` is an optional optimistic-concurrency guard: when set, the upload is rejected\nwith a conflict if the agent's current version does not match it.\n\nRequires write access to the agent.","href":"/api-reference/agents/upload-content"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["ApiAgent"],"summary":"Upload a new version of an agent's content","description":"Parses the supplied config, creates a new agent version from it, and returns the new\nversion number together with the agent's resulting validation status. Semantic validation\nerrors (e.g. a missing required export column) do **not** prevent the version from being\ncreated - they are returned in `errors` so the caller can decide whether to fix them. Syntax\nerrors, however, are rejected outright and no version is written.\n\n`content` must be a JSON object - the same shape returned by `GET {agentId}/content`'s\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`).\n\n`comments` is a mandatory commit message describing the change.\n\n`expectedVersion` is an optional optimistic-concurrency guard: when set, the upload is rejected\nwith a conflict if the agent's current version does not match it.\n\nRequires write access to the agent.","parameters":["c93642f2-86ea-4405-9217-37935aefbebb"],"requestBody":"e2438cae-a658-45c3-977e-eb6ade35bd98","responses":{"200":"f0cdb982-0874-4ade-b643-df36ac9ef6b5","400":"076ec3d0-5223-42fc-b38c-ec13363d52b8","401":"14eb8552-f1d3-4571-ab13-6e75b456a04e","404":"9ae54508-d0e9-4c8d-8311-aebf3f4e3321","409":"8e50aefd-5c69-45d2-acd1-3cda082aa569","429":"28cb718f-acdc-4624-9ca7-8b42702af8ac"},"x-codeSamples":[{"lang":"curl","label":"cURL","source":"curl -X POST https://dashboard.sequentum.com/api/v1/agent/123/content \\\n -H \"Authorization: ApiKey $SEQUENTUM_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"content\": {\n \"Agent\": {\n \"Commands\": [\n { \"Type\": \"URL\", \"Name\": \"URL\", \"Input\": { \"Static Value\": \"https://example.com\" } }\n ],\n \"Export\": { \"Export Name\": \"My Agent\" }\n }\n },\n \"comments\": \"Point at the new start URL\"\n }'"},{"lang":"node","label":"Node.js","source":"const res = await fetch(\"https://dashboard.sequentum.com/api/v1/agent/123/content\", {\n method: \"POST\",\n headers: {\n \"Authorization\": `ApiKey ${process.env.SEQUENTUM_API_KEY}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n // content must be the canonical config JSON object - the same shape returned by\n // GET {agentId}/content's default format=json (not the format=yaml NestedText string).\n content: {\n Agent: {\n Commands: [\n { Type: \"URL\", Name: \"URL\", Input: { \"Static Value\": \"https://example.com\" } },\n ],\n Export: { \"Export Name\": \"My Agent\" },\n },\n },\n comments: \"Point at the new start URL\",\n // Optional optimistic-concurrency guard: reject the upload with a 409 if the agent\n // has since moved past this version.\n // expectedVersion: 4,\n }),\n});\n\nconst result = await res.json();\nconsole.log(`Created version ${result.newVersion}, status ${result.validationStatus}`);"},{"lang":"python","label":"Python","source":"import os\nimport requests\n\nresponse = requests.post(\n \"https://dashboard.sequentum.com/api/v1/agent/123/content\",\n headers={\n \"Authorization\": f\"ApiKey {os.environ['SEQUENTUM_API_KEY']}\",\n \"Content-Type\": \"application/json\",\n },\n json={\n # content must be the canonical config JSON object - the same shape returned by\n # GET {agentId}/content's default format=json (not the format=yaml NestedText string).\n \"content\": {\n \"Agent\": {\n \"Commands\": [\n {\"Type\": \"URL\", \"Name\": \"URL\", \"Input\": {\"Static Value\": \"https://example.com\"}}\n ],\n \"Export\": {\"Export Name\": \"My Agent\"},\n }\n },\n \"comments\": \"Point at the new start URL\",\n # Optional optimistic-concurrency guard: reject the upload with a 409 if the agent\n # has since moved past this version.\n # \"expectedVersion\": 4,\n },\n)\nresponse.raise_for_status()\nresult = response.json()\nprint(f\"Created version {result['newVersion']}, status {result['validationStatus']}\")"}],"method":"post","type":"path","servers":[],"security":["c8641e7d-99f9-44e8-a2b7-2b249e4b5896"],"path":"/api/v1/agent/{agentId}/content","baseUrlOptions":[],"title":"Upload a new version of an agent's content","codeSamples":[{"label":"cURL","lang":"curl","source":"curl -X POST https://dashboard.sequentum.com/api/v1/agent/123/content \\\n -H \"Authorization: ApiKey $SEQUENTUM_API_KEY\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"content\": {\n \"Agent\": {\n \"Commands\": [\n { \"Type\": \"URL\", \"Name\": \"URL\", \"Input\": { \"Static Value\": \"https://example.com\" } }\n ],\n \"Export\": { \"Export Name\": \"My Agent\" }\n }\n },\n \"comments\": \"Point at the new start URL\"\n }'"},{"label":"Node.js","lang":"node","source":"const res = await fetch(\"https://dashboard.sequentum.com/api/v1/agent/123/content\", {\n method: \"POST\",\n headers: {\n \"Authorization\": `ApiKey ${process.env.SEQUENTUM_API_KEY}`,\n \"Content-Type\": \"application/json\",\n },\n body: JSON.stringify({\n // content must be the canonical config JSON object - the same shape returned by\n // GET {agentId}/content's default format=json (not the format=yaml NestedText string).\n content: {\n Agent: {\n Commands: [\n { Type: \"URL\", Name: \"URL\", Input: { \"Static Value\": \"https://example.com\" } },\n ],\n Export: { \"Export Name\": \"My Agent\" },\n },\n },\n comments: \"Point at the new start URL\",\n // Optional optimistic-concurrency guard: reject the upload with a 409 if the agent\n // has since moved past this version.\n // expectedVersion: 4,\n }),\n});\n\nconst result = await res.json();\nconsole.log(`Created version ${result.newVersion}, status ${result.validationStatus}`);"},{"label":"Python","lang":"python","source":"import os\nimport requests\n\nresponse = requests.post(\n \"https://dashboard.sequentum.com/api/v1/agent/123/content\",\n headers={\n \"Authorization\": f\"ApiKey {os.environ['SEQUENTUM_API_KEY']}\",\n \"Content-Type\": \"application/json\",\n },\n json={\n # content must be the canonical config JSON object - the same shape returned by\n # GET {agentId}/content's default format=json (not the format=yaml NestedText string).\n \"content\": {\n \"Agent\": {\n \"Commands\": [\n {\"Type\": \"URL\", \"Name\": \"URL\", \"Input\": {\"Static Value\": \"https://example.com\"}}\n ],\n \"Export\": {\"Export Name\": \"My Agent\"},\n }\n },\n \"comments\": \"Point at the new start URL\",\n # Optional optimistic-concurrency guard: reject the upload with a 409 if the agent\n # has since moved past this version.\n # \"expectedVersion\": 4,\n },\n)\nresponse.raise_for_status()\nresult = response.json()\nprint(f\"Created version {result['newVersion']}, status {result['validationStatus']}\")"}],"requiredOnlyExamples":false,"requestExampleType":"codeSamples","responseExampleType":"generated"},"dependencies":{"parameters":{"c93642f2-86ea-4405-9217-37935aefbebb":{"name":"agentId","in":"path","description":"The ID of the agent","required":true,"schema":{"type":"integer","format":"int32","isRequired":true,"description":"The ID of the agent","uniqueKey":"","typeLabel":"integer\u003cint32>"}}},"requestBody":{"description":"The new content, commit comments, and optional expected version","content":{"application/json":{"schema":{"required":["comments"],"type":"object","properties":{"comments":{"minLength":1,"type":"string","description":"A mandatory commit message describing the change, stored alongside the new version.","example":"Point at the new start URL","isRequired":true,"uniqueKey":"comments","typeLabel":"string"},"content":{"description":"The agent's full config as a JSON object - the same shape returned by the download endpoints'\r\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`). Must be a\r\nJSON object.","example":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"uniqueKey":"content","typeLabel":"any"},"expectedVersion":{"oneOf":[{"type":"integer","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"expectedVersion","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"description":"Request body for uploading a new version of an agent's content.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"comments":"Point at the new start URL","content":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"expectedVersion":123}}},"exampleType":"generated"},"text/json":{"schema":{"required":["comments"],"type":"object","properties":{"comments":{"minLength":1,"type":"string","description":"A mandatory commit message describing the change, stored alongside the new version.","example":"Point at the new start URL","isRequired":true,"uniqueKey":"comments","typeLabel":"string"},"content":{"description":"The agent's full config as a JSON object - the same shape returned by the download endpoints'\r\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`). Must be a\r\nJSON object.","example":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"uniqueKey":"content","typeLabel":"any"},"expectedVersion":{"oneOf":[{"type":"integer","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"expectedVersion","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"description":"Request body for uploading a new version of an agent's content.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"comments":"Point at the new start URL","content":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"expectedVersion":123}}},"exampleType":"generated"},"application/*+json":{"schema":{"required":["comments"],"type":"object","properties":{"comments":{"minLength":1,"type":"string","description":"A mandatory commit message describing the change, stored alongside the new version.","example":"Point at the new start URL","isRequired":true,"uniqueKey":"comments","typeLabel":"string"},"content":{"description":"The agent's full config as a JSON object - the same shape returned by the download endpoints'\r\ndefault `format=json` (not the plain-text NestedText produced by `format=yaml`). Must be a\r\nJSON object.","example":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"uniqueKey":"content","typeLabel":"any"},"expectedVersion":{"oneOf":[{"type":"integer","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","description":"Optional optimistic-concurrency guard. When set, the upload is rejected with a conflict if the\r\nagent's current version does not match this value.","format":"int32","uniqueKey":"expectedVersion.oneOf.1","typeLabel":"null"}],"uniqueKey":"expectedVersion","typeLabel":"integer\u003cint32> | null"}},"additionalProperties":false,"description":"Request body for uploading a new version of an agent's content.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"comments":"Point at the new start URL","content":{"Agent":{"Commands":[{"Type":"URL","Name":"URL","Input":{"Static Value":"https://example.com"}}],"Export":{"Export Name":"My Agent"}}},"expectedVersion":123}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"f0cdb982-0874-4ade-b643-df36ac9ef6b5":{"description":"The new version was created","content":{"application/json":{"schema":{"type":"object","properties":{"agentId":{"type":"integer","description":"The ID of the agent this content belongs to.","format":"int32","uniqueKey":"agentId","typeLabel":"integer\u003cint32>"},"newVersion":{"type":"integer","description":"The newly created version number.","format":"int32","uniqueKey":"newVersion","typeLabel":"integer\u003cint32>"},"validationStatus":{"enum":[1,2,3],"type":"integer","description":"Semantic validation status of a config's most recently saved definition (e.g. whether every\r\nfixed export schema column is actually produced by a command). Serialized as its underlying\r\nint, not a string - see Sequentum.Enterprise.ControlCenter.Swagger.EnumDescriptionsSchemaFilter\r\nfor how these values get documented in the public OpenAPI spec. (`1` = `Unknown` - Validation status was not computed for this response (e.g. a historical config version, which does not retain its own stored status); `2` = `Invalid` - The config has one or more semantic validation errors (e.g. a required export column with no producing command); `3` = `Valid` - The config has no semantic validation errors)","format":"int32","uniqueKey":"validationStatus","typeLabel":"enum\u003cinteger>"},"errors":{"oneOf":[{"type":"array","items":{"type":"object","properties":{"path":{"oneOf":[{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX].path.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"errors.oneOf.0.items.[INDEX].path.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors.oneOf.0.items.[INDEX].path","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","uniqueKey":"errors.oneOf.0.items.[INDEX].message.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"errors.oneOf.0.items.[INDEX].message.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors.oneOf.0.items.[INDEX].message","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"errors.oneOf.0.items.[INDEX]","typeLabel":"object"},"description":"Semantic validation errors, if any. Non-empty only when `validationStatus` is `2` (`Invalid`) - these do not prevent the version from being created.","uniqueKey":"errors.oneOf.0","typeLabel":"object[]"},{"type":"null","items":{"type":"object","properties":{"path":{"oneOf":[{"type":"string"},{"type":"null"}]},"message":{"oneOf":[{"type":"string"},{"type":"null"}]}},"additionalProperties":false},"description":"Semantic validation errors, if any. Non-empty only when `validationStatus` is `2` (`Invalid`) - these do not prevent the version from being created.","uniqueKey":"errors.oneOf.1","typeLabel":"null"}],"uniqueKey":"errors","typeLabel":"object[] | null"}},"additionalProperties":false,"description":"Result of uploading a new version of an agent's content. Semantic validation errors do\r\nnot prevent the version from being created - they are returned alongside it so the caller can decide\r\nwhether to fix them.","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"agentId":123,"newVersion":123,"validationStatus":1,"errors":[{"path":"\u003cstring>","message":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"},"076ec3d0-5223-42fc-b38c-ec13363d52b8":{"description":"If the request is invalid or the content has a syntax error","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","format":"int32","uniqueKey":"statusCode","typeLabel":"integer\u003cint32>"},"statusDescription":{"oneOf":[{"type":"string","uniqueKey":"statusDescription.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"statusDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"statusDescription","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","readOnly":true,"uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"severity":{"enum":[0,1,2,3,4],"type":"integer","description":"`0` = `Error`; `1` = `Unexpected`; `2` = `Fatal`; `3` = `Warning`; `4` = `Info`","format":"int32","uniqueKey":"severity","typeLabel":"enum\u003cinteger>"},"errorCode":{"oneOf":[{"type":"string","description":"Optional machine-readable error code. When present, clients should switch on this\r\nvalue rather than parsing Sequentum.Enterprise.Core.ControllerError.Message. Omitted from the response when null.","uniqueKey":"errorCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional machine-readable error code. When present, clients should switch on this\r\nvalue rather than parsing Sequentum.Enterprise.Core.ControllerError.Message. Omitted from the response when null.","uniqueKey":"errorCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorCode","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"statusDescription":"\u003cstring>","message":"\u003cstring>","severity":0,"errorCode":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"14eb8552-f1d3-4571-ab13-6e75b456a04e":{"description":"If the API key is missing or invalid","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"9ae54508-d0e9-4c8d-8311-aebf3f4e3321":{"description":"If the agent is not found, or the user doesn't have write access to it","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"8e50aefd-5c69-45d2-acd1-3cda082aa569":{"description":"If `expectedVersion` no longer matches the agent's current version","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"integer","format":"int32","uniqueKey":"statusCode","typeLabel":"integer\u003cint32>"},"statusDescription":{"oneOf":[{"type":"string","uniqueKey":"statusDescription.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"statusDescription.oneOf.1","typeLabel":"null"}],"uniqueKey":"statusDescription","typeLabel":"string | null"},"message":{"oneOf":[{"type":"string","readOnly":true,"uniqueKey":"message.oneOf.0","typeLabel":"string"},{"type":"null","readOnly":true,"uniqueKey":"message.oneOf.1","typeLabel":"null"}],"uniqueKey":"message","typeLabel":"string | null"},"severity":{"enum":[0,1,2,3,4],"type":"integer","description":"`0` = `Error`; `1` = `Unexpected`; `2` = `Fatal`; `3` = `Warning`; `4` = `Info`","format":"int32","uniqueKey":"severity","typeLabel":"enum\u003cinteger>"},"errorCode":{"oneOf":[{"type":"string","description":"Optional machine-readable error code. When present, clients should switch on this\r\nvalue rather than parsing Sequentum.Enterprise.Core.ControllerError.Message. Omitted from the response when null.","uniqueKey":"errorCode.oneOf.0","typeLabel":"string"},{"type":"null","description":"Optional machine-readable error code. When present, clients should switch on this\r\nvalue rather than parsing Sequentum.Enterprise.Core.ControllerError.Message. Omitted from the response when null.","uniqueKey":"errorCode.oneOf.1","typeLabel":"null"}],"uniqueKey":"errorCode","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"statusCode":123,"statusDescription":"\u003cstring>","message":"\u003cstring>","severity":0,"errorCode":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"},"28cb718f-acdc-4624-9ca7-8b42702af8ac":{"description":"Too Many Requests","content":{"application/json":{"schema":{"type":"object","properties":{"type":{"oneOf":[{"type":"string","uniqueKey":"type.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"type.oneOf.1","typeLabel":"null"}],"uniqueKey":"type","typeLabel":"string | null"},"title":{"oneOf":[{"type":"string","uniqueKey":"title.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"title.oneOf.1","typeLabel":"null"}],"uniqueKey":"title","typeLabel":"string | null"},"status":{"oneOf":[{"type":"integer","format":"int32","uniqueKey":"status.oneOf.0","typeLabel":"integer\u003cint32>"},{"type":"null","format":"int32","uniqueKey":"status.oneOf.1","typeLabel":"null"}],"uniqueKey":"status","typeLabel":"integer\u003cint32> | null"},"detail":{"oneOf":[{"type":"string","uniqueKey":"detail.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"detail.oneOf.1","typeLabel":"null"}],"uniqueKey":"detail","typeLabel":"string | null"},"instance":{"oneOf":[{"type":"string","uniqueKey":"instance.oneOf.0","typeLabel":"string"},{"type":"null","uniqueKey":"instance.oneOf.1","typeLabel":"null"}],"uniqueKey":"instance","typeLabel":"string | null"}},"additionalProperties":{"oneOf":[{}],"uniqueKey":"additionalProperties","typeLabel":"any"},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"type":"\u003cstring>","title":"\u003cstring>","status":123,"detail":"\u003cstring>","instance":"\u003cstring>"}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"c8641e7d-99f9-44e8-a2b7-2b249e4b5896":{"ApiKey":{"type":"apiKey","description":"API Key authorization header. Example: \"Authorization: ApiKey {your-api-key}\"","name":"Authorization","in":"header","scopes":[]},"Bearer":{"type":"http","description":"OAuth 2.0 Bearer token. Example: \"Authorization: Bearer {access-token}\"","scheme":"bearer","bearerFormat":"JWT","scopes":[]}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","description":"API Key authorization header. Example: \"Authorization: ApiKey {your-api-key}\"","name":"Authorization","in":"header","scopes":[]},"schema":{"title":"Authorization","type":"string","description":"API Key authorization header. Example: \"Authorization: ApiKey {your-api-key}\"","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"Authorization"},{"scheme":{"type":"http","description":"OAuth 2.0 Bearer token. Example: \"Authorization: Bearer {access-token}\"","scheme":"bearer","bearerFormat":"JWT","scopes":[]},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"OAuth 2.0 Bearer token. Example: \"Authorization: Bearer {access-token}\"","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"Bearer","name":"Authorization"}],"title":"ApiKey \u0026 Bearer"}]},"originalFileLocation":"swagger.json"},"subdomain":"sequentum","siteName":"Sequentum Developer Documentation","title":"Upload agent content - Sequentum Developer Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-31T03:56:09.204Z","originalFileLocation":"api-reference/agents/upload-content.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=\"Parses the supplied config, creates a new agent version from it, and returns the new version number together with the agent\u0026#x27;s resulting validation status. Semantic validation errors (e.g. a missing required export column) do not prevent the version from being created - they are returned in errors so the caller can decide whether to fix them. Syntax errors, however, are rejected outright and no version is written. content must be a JSON object - the same shape returned by GET {agentId}/content\u0026#x27;s default format=json (not the plain-text NestedText produced by format=yaml). comments is a mandatory commit message describing the change. expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected with a conflict if the agent\u0026#x27;s current version does not match it. Requires write access to the agent.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Sequentum Developer Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_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/sequentum/VkZlqfknQ1prTgmm/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Upload agent content - Sequentum Developer Documentation\">\u003cmeta data-mint-head property=\"og:description\" content=\"Parses the supplied config, creates a new agent version from it, and returns the new version number together with the agent\u0026#x27;s resulting validation status. Semantic validation errors (e.g. a missing required export column) do not prevent the version from being created - they are returned in errors so the caller can decide whether to fix them. Syntax errors, however, are rejected outright and no version is written. content must be a JSON object - the same shape returned by GET {agentId}/content\u0026#x27;s default format=json (not the plain-text NestedText produced by format=yaml). comments is a mandatory commit message describing the change. expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected with a conflict if the agent\u0026#x27;s current version does not match it. Requires write access to the agent.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Sequentum Developer Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.sequentum.com/api-reference/agents/upload-content\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://sequentum.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Upload+agent+content\u0026amp;description=Parses+the+supplied+config%2C+creates+a+new+agent+version+from+it%2C+and+returns+the+new%0Aversion+number+together+with+the+agent%27s+resulting+validation+status.+Seman\u0026amp;theme=79ab2d552dc11d5e80ec210a\u0026amp;signature=95a47beebb5d4930e40d68614cef3a91efb1f937b0b59e0db9fca93f7bc53399\">\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=\"Upload agent content - Sequentum Developer Documentation\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Parses the supplied config, creates a new agent version from it, and returns the new version number together with the agent\u0026#x27;s resulting validation status. Semantic validation errors (e.g. a missing required export column) do not prevent the version from being created - they are returned in errors so the caller can decide whether to fix them. Syntax errors, however, are rejected outright and no version is written. content must be a JSON object - the same shape returned by GET {agentId}/content\u0026#x27;s default format=json (not the plain-text NestedText produced by format=yaml). comments is a mandatory commit message describing the change. expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected with a conflict if the agent\u0026#x27;s current version does not match it. Requires write access to the agent.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://sequentum.mintlify.app/_mintlify/api/og/v2?division=Agents\u0026amp;title=Upload+agent+content\u0026amp;description=Parses+the+supplied+config%2C+creates+a+new+agent+version+from+it%2C+and+returns+the+new%0Aversion+number+together+with+the+agent%27s+resulting+validation+status.+Seman\u0026amp;theme=79ab2d552dc11d5e80ec210a\u0026amp;signature=95a47beebb5d4930e40d68614cef3a91efb1f937b0b59e0db9fca93f7bc53399\">\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/sequentum/VkZlqfknQ1prTgmm/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Sequentum Developer Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#5248f9\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.sequentum.com/api-reference/agents/upload-content\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/agents/upload-content.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.sequentum.com/#organization\",\"name\":\"Sequentum Developer Documentation\",\"url\":\"https://docs.sequentum.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/sequentum/fcE1x9eYvxrlj_sO/logo/wordmark-light.svg?fit=max\u0026auto=format\u0026n=fcE1x9eYvxrlj_sO\u0026q=85\u0026s=0a67e1bcfec589a284d603f793833f43\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.sequentum.com#website\",\"name\":\"Sequentum Developer Documentation\",\"url\":\"https://docs.sequentum.com\",\"publisher\":{\"@id\":\"https://docs.sequentum.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.sequentum.com/api-reference/agents/upload-content#webpage\",\"url\":\"https://docs.sequentum.com/api-reference/agents/upload-content\",\"name\":\"Upload agent content\",\"description\":\"Parses the supplied config, creates a new agent version from it, and returns the new version number together with the agent's resulting validation status. Semantic validation errors (e.g. a missing required export column) do not prevent the version from being created - they are returned in errors so the caller can decide whether to fix them. Syntax errors, however, are rejected outright and no version is written. content must be a JSON object - the same shape returned by GET {agentId}/content's default format=json (not the plain-text NestedText produced by format=yaml). comments is a mandatory commit message describing the change. expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected with a conflict if the agent's current version does not match it. Requires write access to the agent.\",\"dateModified\":\"2026-10-31T03:56:09.204Z\",\"isPartOf\":{\"@id\":\"https://docs.sequentum.com#website\"},\"breadcrumb\":{\"@id\":\"https://docs.sequentum.com/api-reference/agents/upload-content#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.sequentum.com/api-reference/agents/upload-content#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Agents\",\"item\":\"https://docs.sequentum.com/api-reference/agents/list\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Upload agent content\",\"item\":\"https://docs.sequentum.com/api-reference/agents/upload-content\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.sequentum.com/api-reference/agents/upload-content#apireference\",\"headline\":\"Upload agent content\",\"name\":\"Upload agent content\",\"description\":\"Parses the supplied config, creates a new agent version from it, and returns the new version number together with the agent's resulting validation status. Semantic validation errors (e.g. a missing required export column) do not prevent the version from being created - they are returned in errors so the caller can decide whether to fix them. Syntax errors, however, are rejected outright and no version is written. content must be a JSON object - the same shape returned by GET {agentId}/content's default format=json (not the plain-text NestedText produced by format=yaml). comments is a mandatory commit message describing the change. expectedVersion is an optional optimistic-concurrency guard: when set, the upload is rejected with a conflict if the agent's current version does not match it. Requires write access to the agent.\",\"url\":\"https://docs.sequentum.com/api-reference/agents/upload-content\",\"mainEntityOfPage\":{\"@id\":\"https://docs.sequentum.com/api-reference/agents/upload-content#webpage\"},\"dateModified\":\"2026-10-31T03:56:09.204Z\",\"publisher\":{\"@id\":\"https://docs.sequentum.com/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.sequentum.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Sequentum Developer Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Sequentum Developer Documentation","nav":{"global":null,"tabs":[{"tab":"Documentation","pages":[{"title":"Documentation","href":""}]},{"tab":"API reference","groups":[{"group":"Overview","pages":[{"title":"API reference","href":"/api-reference/introduction"},{"title":"Authentication","href":"/api-reference/authentication"},{"title":"Errors","href":"/api-reference/errors"}]},{"group":"Agent Builder","pages":[{"title":"Start an Agent Builder session","openapi":"POST /api/v1/agent-builder/start","mode":"wide","href":"/api-reference/agent-builder/start-session"},{"title":"Get session status","openapi":"GET /api/v1/agent-builder/{sessionId}/status","mode":"wide","href":"/api-reference/agent-builder/session-status"},{"title":"Stop a session","openapi":"POST /api/v1/agent-builder/{sessionId}/stop","mode":"wide","href":"/api-reference/agent-builder/session-stop"}]},{"group":"Agents","pages":[{"title":"List agents","openapi":"GET /api/v1/agent/all","mode":"wide","href":"/api-reference/agents/list"},{"title":"Search agents","openapi":"GET /api/v1/agent/search","mode":"wide","href":"/api-reference/agents/search"},{"title":"Get an agent","openapi":"GET /api/v1/agent/{agentId}","mode":"wide","href":"/api-reference/agents/get"},{"title":"Get agent content","openapi":"GET /api/v1/agent/{agentId}/content","mode":"wide","description":"Returns the latest version of an agent's content. Edit it and upload it via\n`POST {agentId}/content` to create a new version.\n\n`format` controls the shape of the returned `content`:\n- `json` (default) - the canonical config as a JSON object. This is the only format\n `POST {agentId}/content` accepts.\n- `yaml` - the plain-text NestedText format used by the agent editor, returned as a string.\n\nSecret values in the content (for example static input values, or FTP/Snowflake\npasswords and API keys) are returned as encrypted ciphertext, not plaintext.\n\nRequires read access to the agent.","href":"/api-reference/agents/get-content"},{"title":"Upload agent content","openapi":"POST /api/v1/agent/{agentId}/content","mode":"wide","href":"/api-reference/agents/upload-content"},{"title":"Get agent input parameters","openapi":"GET /api/v1/agent/{agentId}/input-parameters","mode":"wide","description":"Returns the list of input parameters the agent expects, including whether each parameter is encrypted.\n\nUse this endpoint to discover which parameters to pass when calling the start-run endpoint,\nand which parameters are sensitive (encrypted at rest). For encrypted parameters the default\nvalue is not returned, to avoid leaking secrets.","href":"/api-reference/agents/input-parameters"},{"title":"Start a run","openapi":"POST /api/v1/agent/{agentId}/start","mode":"wide","href":"/api-reference/agents/start-run"},{"title":"List runs for an agent","openapi":"GET /api/v1/agent/{agentId}/runs","mode":"wide","href":"/api-reference/agents/list-runs"},{"title":"Get run status","openapi":"GET /api/v1/agent/{agentId}/run/{runId}/status","mode":"wide","href":"/api-reference/agents/run-status"},{"title":"Stop a run","openapi":"POST /api/v1/agent/{agentId}/run/{runId}/stop","mode":"wide","href":"/api-reference/agents/stop-run"},{"title":"Kill a run","openapi":"POST /api/v1/agent/{agentId}/run/{runId}/kill","mode":"wide","href":"/api-reference/agents/kill-run"},{"title":"Delete a run","openapi":"DELETE /api/v1/agent/{agentId}/run/{runId}","mode":"wide","href":"/api-reference/agents/delete-run"},{"title":"List run output files","openapi":"GET /api/v1/agent/{agentId}/run/{runId}/files","mode":"wide","href":"/api-reference/agents/run-files"},{"title":"Download a run output file","openapi":"GET /api/v1/agent/{agentId}/run/{runId}/file/{fileId}/download","mode":"wide","href":"/api-reference/agents/run-file-download"},{"title":"List agent versions","openapi":"GET /api/v1/agent/{agentId}/versions","mode":"wide","href":"/api-reference/agents/versions"},{"title":"Get version content","openapi":"GET /api/v1/agent/{agentId}/version/{versionNumber}/content","mode":"wide","href":"/api-reference/agents/version-content"},{"title":"Restore an agent version","openapi":"POST /api/v1/agent/{agentId}/version/{versionNumber}/restore","mode":"wide","href":"/api-reference/agents/restore-version"},{"title":"Archive an agent","openapi":"POST /api/v1/agent/{agentId}/archive","mode":"wide","href":"/api-reference/agents/archive"},{"title":"Unarchive an agent","openapi":"POST /api/v1/agent/{agentId}/unarchive","mode":"wide","href":"/api-reference/agents/unarchive"}]},{"group":"Schedules","pages":[{"title":"List schedules for an agent","openapi":"GET /api/v1/agent/{agentId}/schedules","mode":"wide","href":"/api-reference/schedules/list"},{"title":"Create a schedule","openapi":"POST /api/v1/agent/{agentId}/schedules","mode":"wide","href":"/api-reference/schedules/create"},{"title":"Get a schedule","openapi":"GET /api/v1/agent/{agentId}/schedules/{scheduleId}","mode":"wide","href":"/api-reference/schedules/get"},{"title":"Update a schedule","openapi":"PUT /api/v1/agent/{agentId}/schedules/{scheduleId}","mode":"wide","href":"/api-reference/schedules/update"},{"title":"Delete a schedule","openapi":"DELETE /api/v1/agent/{agentId}/schedules/{scheduleId}","mode":"wide","href":"/api-reference/schedules/delete"},{"title":"Enable a schedule","openapi":"POST /api/v1/agent/{agentId}/schedules/{scheduleId}/enable","mode":"wide","href":"/api-reference/schedules/enable"},{"title":"Disable a schedule","openapi":"POST /api/v1/agent/{agentId}/schedules/{scheduleId}/disable","mode":"wide","href":"/api-reference/schedules/disable"}]},{"group":"Analytics","pages":[{"title":"Runs summary","openapi":"GET /api/v1/analytics/runs/summary","mode":"wide","href":"/api-reference/analytics/runs-summary"},{"title":"Records summary","openapi":"GET /api/v1/analytics/records/summary","mode":"wide","href":"/api-reference/analytics/records-summary"},{"title":"Upcoming schedules","openapi":"GET /api/v1/analytics/schedules/upcoming","mode":"wide","href":"/api-reference/analytics/schedules-upcoming"},{"title":"Run diagnostics","openapi":"GET /api/v1/analytics/agents/{agentId}/runs/{runId}/diagnostics","mode":"wide","href":"/api-reference/analytics/run-diagnostics"},{"title":"Latest failure for an agent","openapi":"GET /api/v1/analytics/agents/{agentId}/latest-failure","mode":"wide","href":"/api-reference/analytics/latest-failure"}]},{"group":"Billing","pages":[{"title":"Get credits balance","openapi":"GET /api/v1/billing/credits","mode":"wide","href":"/api-reference/billing/credits"},{"title":"Get spending","openapi":"GET /api/v1/billing/spending","mode":"wide","href":"/api-reference/billing/spending"},{"title":"Billing history","openapi":"GET /api/v1/billing/history","mode":"wide","href":"/api-reference/billing/history"},{"title":"Per-agent billing summary","openapi":"GET /api/v1/billing/agents","mode":"wide","href":"/api-reference/billing/agents"},{"title":"Agent billing detail","openapi":"GET /api/v1/billing/agents/{agentId}","mode":"wide","href":"/api-reference/billing/agent"},{"title":"Agent run-level billing","openapi":"GET /api/v1/billing/agents/{agentId}/runs","mode":"wide","href":"/api-reference/billing/agent-runs"}]},{"group":"Spaces","pages":[{"title":"List spaces","openapi":"GET /api/v1/spaces","mode":"wide","href":"/api-reference/spaces/list"},{"title":"Get a space","openapi":"GET /api/v1/spaces/{spaceId}","mode":"wide","href":"/api-reference/spaces/get"},{"title":"List agents in a space","openapi":"GET /api/v1/spaces/{spaceId}/agents","mode":"wide","href":"/api-reference/spaces/agents"},{"title":"Run all agents in a space","openapi":"POST /api/v1/spaces/{spaceId}/run-all","mode":"wide","href":"/api-reference/spaces/run-all"},{"title":"Search spaces","openapi":"GET /api/v1/spaces/search","mode":"wide","href":"/api-reference/spaces/search"}]}]}]},"basePath":"","title":"Upload agent content - Sequentum Developer Documentation","buildId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","deploymentId":"dpl_G9nrg4qeJSZtah1Ziwbc2n6WkLch","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-B7XKH4J3.js","utils-lOYzL7z-.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-DF6jUUIM.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-Dpsj5f7C.js","snippetPresets-CYeiDe8v.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","Page-DSVu9Ucl.js","ApiExamples-CUFz1YZ_.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-D8H_iLS4.js","shallow-DdluZBHX.js","getApiPlaygroundDisplay-B9922vev.js","CodeSnippet-CMoRNGYs.js","CodeSnippets-DwyrPHuw.js","getPastedJson-G-zIvlHh.js","icon-B03fnEy0.js","MethodPill-CW7teklc.js","DuplicateIcon-CtO8eekd.js","createIcon-DZTKdM_A.js","DynamicMarkdown-D5M2At0B.js","SectionHeading-C_2NaA2U.js","axios-vUo_bRtp.js","Markdown-D7QRHV3m.js","clsx-D1Z-ELXV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-lvhuD9Du.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-CKfC4ywL.js"]}