Log or append an artifact value under an experiment metrics key.
Use this tool when the caller needs to persist run metadata, scalar values,
time-series points, JSON payloads, or base64 image artifacts under an
experiment. Repeated writes to the same data.name are stored as
timestamp-keyed entries and may later read back as normalized timeseries or
value shapes.
When to Use:
Call this after a run, optimization, or analysis step when metadata
or derived outputs should be attached to an experiment.
Call this when the workflow needs to persist human-readable notes,
numeric values, JSON payloads, or image-like previews.
Constraints:
kind must be exactly one of text, value, timeseries,
list, dict, or image.
Repeated writes are stored under timestamp keys in the experiment
metrics map, so read-side responses may normalize to value or
timeseries instead of preserving the write-time kind verbatim.
Notes:
The route returns an empty 200 response on success.
After logging, callers can use list_artifacts_in_experiment or
get_artifact_in_experiment to inspect the normalized MCP
read-side artifact shape.
Args:
experiment_id: Parent experiment identifier.
user: Authenticated user resolved from the API key.
data: Artifact payload. kind must be exactly one of text,
value, timeseries, list, dict, or image.
db: Active database session.
Returns:
An empty 200 response when artifact data is persisted.
Raises:
HTTPException: Raised with 404 if the experiment is missing, or
400 for invalid artifact shape such as missing timeseries
points.
Define payload for logging experiment artifacts from MCP tools.
Logged artifact kinds are accepted on write, but MCP read endpoints expose a
normalized artifact view and do not preserve every submitted kind as a
distinct response shape.
Attributes:
name: Artifact key under which values are stored.
kind: Artifact serialization mode accepted by the logging endpoint.
value: Value payload for non-timeseries kinds.
points: Time series points used when kind='timeseries'.
Artifact type. Use text for strings, value for a single numeric value, timeseries for numeric points in points, list for JSON arrays, dict for JSON objects, and image for a base64 data URL such as data:image/png;base64,....
Artifact payload for all kinds except timeseries. Send properly typed JSON values: string for text, number for value, array for list, object for dict, and a base64 data URL string for image. Leave this empty when kind is timeseries.
Time series points to log when kind is timeseries. Each item must have numeric x and y fields. Leave this empty for all other kinds.
Show child attributes
Response
Successful Response
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Haiqu","description":"Haiqu is a quantum computing software company building a full-stack quantum intelligence platform for enterprise, research, and developer teams.\n\nHaiqu helps quantum R\u0026D teams move from application ideas to executable prototypes and run frontier quantum workloads on real quantum hardware. The platform combines agentic R\u0026D workflows, Haiqu SDK optimization, and runtime orchestration to improve quantum application development, circuit performance, and execution cost. AI agents: The agent orientation is installed to ``haiqu/sdk/AGENTS.md``, and can also be found at https://github.com/haiqu-ai/haiqu-sdk/blob/main/haiqu/sdk/AGENTS.md","colors":{"primary":"#000000","light":"#CDE9F7","dark":"#092382"},"logo":{"light":"https://mintcdn.com/haiqu/naR3-ajV6yLCfg5I/logo/logo-text-black.svg?fit=max\u0026auto=format\u0026n=naR3-ajV6yLCfg5I\u0026q=85\u0026s=2010ac2de39f76a994323bd9afa6aec1","dark":"https://mintcdn.com/haiqu/naR3-ajV6yLCfg5I/logo/logo-text-white.svg?fit=max\u0026auto=format\u0026n=naR3-ajV6yLCfg5I\u0026q=85\u0026s=826f72d62ee230ca75fe7311455a4012"},"favicon":"https://mintcdn.com/haiqu/QnjSg02a6HjnZweN/logo/logo_black.svg?fit=max\u0026auto=format\u0026n=QnjSg02a6HjnZweN\u0026q=85\u0026s=ff388300b90ced457ceff179ec9ca3a9","navbar":{"links":[{"href":"https://feedback.haiqu.ai","label":"Support"}],"primary":{"type":"button","label":"Request Platform Demo","href":"https://haiqu.ai/contactform"}},"footer":{"socials":{"github":"https://github.com/haiqu-ai","linkedin":"https://linkedin.com/company/haiquai"}},"seo":{"indexing":"all"},"fonts":{"heading":{"family":"SuisseIntlMono","weight":400,"source":"fonts/SuisseIntlMono-Regular-WebS.woff2","format":"woff2"},"body":{"family":"Softcore","weight":400,"source":"fonts/Softcore-Regular.woff2","format":"woff2"}},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"haiqu","hasAudioNarration":false,"actualSubdomain":"haiqu","customDomains":["docs.haiqu.ai"],"gitSource":{"type":"github","owner":"haiqu-ai","repo":"sdk-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6adb26c9935ad58d7118117b","collectionId":"093b7692-2a93-43ec-b5d6-290798aa7f23","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6adb26c9935ad58d7118117b"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6adb26c9935ad58d7118117b","clientVersion":"0.0.3964","searchFilterCounts":[{"language":"default","tag":"API Reference","count":178},{"language":"default","tag":"SDK Reference","count":34},{"language":"default","tag":"Guides","count":31},{"language":"default","tag":"Core features","count":17},{"language":"default","tag":"Data loading","count":9},{"language":"default","tag":"Dashboard","count":8},{"language":"default","tag":"Core platform functions","count":8},{"language":"default","tag":"Circuit Execution","count":5},{"language":"default","tag":"SKQD","count":5},{"language":"default","tag":"Catalog","count":4}]},"assistantConfig":{},"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":"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}],"isAtlas":false,"googleFontsInlined":false},"customCss":[{"filePath":"style.css","content":"@font-face{font-family:\"SkandiaSN\";src:url(/fonts/SkandiaSN-Regular.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"SkandiaSN\";src:url(/fonts/SkandiaSN-Bold.woff2) format(\"woff2\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Softcore\";src:url(/fonts/Softcore-Regular.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"Softcore\";src:url(/fonts/Softcore-RegularItalic.woff2) format(\"woff2\");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:\"Softcore\";src:url(/fonts/Softcore-Bold.woff2) format(\"woff2\");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:\"Softcore\";src:url(/fonts/Softcore-BoldItalic.woff2) format(\"woff2\");font-weight:700;font-style:italic;font-display:swap}@font-face{font-family:\"SuisseIntlMono\";src:url(/fonts/SuisseIntlMono-Regular-WebS.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:\"SuisseIntlMono\";src:url(/fonts/SuisseIntlMono-Regular-WebXL.woff2) format(\"woff2\");font-weight:400;font-style:normal;font-display:swap}.code,code,pre{font-family:\"SuisseIntlMono\",monospace}:root{--primary-light:196 213 255;--primary-color:#000000;--light-color:#C4D5FF;--dark-color:#093188;--font-family-suisse-intl-mono:\"SuisseIntlMono\", monospace;--font-family-skandia-sn:\"SkandiaSN\", sans-serif;--font-family-softcore:\"Softcore\", sans-serif}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-suisse-intl-mono)}.case-studies .card-group .card{display:grid;grid-row:span 2;grid-template-rows:subgrid;row-gap:0;padding:1.25rem 1.5rem;border:1px solid rgba(0,0,0,.12);border-radius:1rem}.case-studies .card-group .card:hover{border-color:#000}.case-studies .card-group .card>[data-component-part=card-content-container],.case-studies .card-group .card>[data-component-part=card-content-container]>a,.case-studies .card-group .card>[data-component-part=card-content-container]>a>.w-full{display:contents}"},{"filePath":"styles/content.css","content":".sidebar-group-header{padding-left:0}#sidebar-title,.eyebrow,.sidebar-group>li{text-transform:uppercase;letter-spacing:1px;font-size:12px}.eyebrow,.sidebar-group>li{font-family:var(--font-family-suisse-intl-mono);font-size:10px}.sidebar-group>li>a{padding:9px!important;border-radius:5px!important;line-height:1.5}[data-callout-type=check],[data-callout-type=note],[data-callout-type=tip]{background-color:var(--light-color)!important;border-color:var(--dark-color)!important}[data-callout-type=check] strong,[data-callout-type=check] svg,[data-callout-type=check]>div,[data-callout-type=note] strong,[data-callout-type=note] svg,[data-callout-type=note]>div,[data-callout-type=tip] strong,[data-callout-type=tip] svg,[data-callout-type=tip]>div,[data-component-part=callout-content] h3{color:var(--dark-color)!important}"},{"filePath":"styles/footer.css","content":"#footer{padding:1rem 0}"},{"filePath":"styles/main.css","content":"#navbar~div:has(#content-container){max-width:92rem;padding:0 3rem}#content-container:has([data-page-title=Changelog]){max-width:50rem;margin:0 auto}.changelog-inline-dates .update{flex-direction:column!important;align-items:stretch!important;gap:0!important}.changelog-inline-dates [data-component-part=update-content]>*{min-width:0;overflow-wrap:anywhere}.changelog-inline-dates .update:first-child{padding-top:0}.changelog-inline-dates .update>div,.changelog-inline-dates [data-component-part=update-content]{display:contents}.changelog-inline-dates .update>div:first-child>.absolute,.changelog-inline-dates [data-component-part=update-description]{display:none}.changelog-inline-dates [data-component-part=update-content]>:not(h1,h2,h3,h4){margin-bottom:0!important}.changelog-inline-dates [data-component-part=update-content]>h1{order:-1;margin-bottom:.5rem}.changelog-inline-dates [data-name=frame]{max-width:48rem;margin-inline:auto}.changelog-inline-dates [data-component-part=update-label]{align-self:flex-start;padding:0;background:0 0;font-family:var(--font-family-suisse-intl-mono);font-size:12px;letter-spacing:1px;text-transform:uppercase}#content{margin:32px 0 0}.main-page-title-block h1{font-family:var(--font-family-softcore);font-weight:200;font-size:34px;margin-top:0}.main-page-title-block p{font-family:var(--font-family-softcore);font-weight:400;font-size:15px}.card-group .card{border:0;border-radius:0}.card-group .card>[data-component-part=card-content-container]{padding:1rem 0}.card-group .card>[data-component-part=card-content-container] h2{font-weight:400;margin-bottom:1rem;font-size:14px;letter-spacing:1px}.card-group .card>[data-component-part=card-content-container] [data-component-part=card-content]{font-family:var(--font-family-skandia-sn);font-weight:400;font-size:14px}#quick-navigation{background-color:var(--dark-color);color:#fff;font-size:10px;letter-spacing:1px;border:0;border-radius:5px!important;line-height:1.5;padding:10px;display:inline-block;text-transform:uppercase;font-weight:400}"},{"filePath":"styles/navbar.css","content":"#assistant-entry,#search-bar-entry{text-transform:uppercase;font-family:var(--font-family-suisse-intl-mono);height:32px}#search-bar-entry{background-color:#f1efed;border:0;box-shadow:none;border-radius:6px}#search-bar-entry>div>div,#search-bar-entry>span{font-size:10px;color:var(--primary-color);letter-spacing:1px}#search-bar-entry svg,#topbar-cta-button>a svg{display:none}#assistant-entry{padding:7px 9px}#assistant-entry>span,#topbar-cta-button>a{font-size:10px;line-height:1.5}#assistant-entry,#topbar-cta-button>a{border-radius:5px!important;letter-spacing:1px}#topbar-cta-button>a{border:0;padding:9px}#topbar-cta-button>a>span{border-radius:5px}.nav-tabs>a{font-weight:400;text-shadow:none}#mobile-nav button>span,#navbar button div,#navbar button span,.nav-tabs>a,[role=menu]>a,nav a,nav button{font-family:var(--font-family-suisse-intl-mono);letter-spacing:1px;text-transform:uppercase;font-size:10px}#navbar button div,#navbar button span{font-size:10px!important}"}],"page":{"pagePath":"api-reference/log-artifact-in-experiment","slug":"/api-reference/log-artifact-in-experiment","pageMetadata":{"title":"Log Artifact In Experiment","description":"Log or append an artifact value under an experiment metrics key.\n\nUse this tool when the caller needs to persist run metadata, scalar values,\ntime-series points, JSON payloads, or base64 image artifacts under an\nexperiment. Repeated writes to the same ``data.name`` are stored as\ntimestamp-keyed entries and may later read back as normalized timeseries or\nvalue shapes.\n\nWhen to Use:\n - Call this after a run, optimization, or analysis step when metadata\n or derived outputs should be attached to an experiment.\n - Call this when the workflow needs to persist human-readable notes,\n numeric values, JSON payloads, or image-like previews.\n\nConstraints:\n - ``kind`` must be exactly one of ``text``, ``value``, ``timeseries``,\n ``list``, ``dict``, or ``image``.\n - Repeated writes are stored under timestamp keys in the experiment\n metrics map, so read-side responses may normalize to ``value`` or\n ``timeseries`` instead of preserving the write-time ``kind`` verbatim.\n\nNotes:\n - The route returns an empty ``200`` response on success.\n - After logging, callers can use ``list_artifacts_in_experiment`` or\n ``get_artifact_in_experiment`` to inspect the normalized MCP\n read-side artifact shape.\n\nArgs:\n experiment_id: Parent experiment identifier.\n user: Authenticated user resolved from the API key.\n data: Artifact payload. ``kind`` must be exactly one of ``text``,\n ``value``, ``timeseries``, ``list``, ``dict``, or ``image``.\n db: Active database session.\n\nReturns:\n An empty ``200`` response when artifact data is persisted.\n\nRaises:\n HTTPException: Raised with ``404`` if the experiment is missing, or\n ``400`` for invalid artifact shape such as missing timeseries\n points.","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/{experiment_id}/log_artifact","href":"/api-reference/log-artifact-in-experiment","autogeneratedByOpenApi":true},"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 li: \"li\",\n p: \"p\",\n ul: \"ul\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Log or append an artifact value under an experiment metrics key.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Use this tool when the caller needs to persist run metadata, scalar values,\\ntime-series points, JSON payloads, or base64 image artifacts under an\\nexperiment. Repeated writes to the same \", _jsx(_components.code, {\n children: \"data.name\"\n }), \" are stored as\\ntimestamp-keyed entries and may later read back as normalized timeseries or\\nvalue shapes.\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"When to Use:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsx(_components.li, {\n children: \"Call this after a run, optimization, or analysis step when metadata\\nor derived outputs should be attached to an experiment.\"\n }), \"\\n\", _jsx(_components.li, {\n children: \"Call this when the workflow needs to persist human-readable notes,\\nnumeric values, JSON payloads, or image-like previews.\"\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Constraints:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [_jsx(_components.code, {\n children: \"kind\"\n }), \" must be exactly one of \", _jsx(_components.code, {\n children: \"text\"\n }), \", \", _jsx(_components.code, {\n children: \"value\"\n }), \", \", _jsx(_components.code, {\n children: \"timeseries\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"list\"\n }), \", \", _jsx(_components.code, {\n children: \"dict\"\n }), \", or \", _jsx(_components.code, {\n children: \"image\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"Repeated writes are stored under timestamp keys in the experiment\\nmetrics map, so read-side responses may normalize to \", _jsx(_components.code, {\n children: \"value\"\n }), \" or\\n\", _jsx(_components.code, {\n children: \"timeseries\"\n }), \" instead of preserving the write-time \", _jsx(_components.code, {\n children: \"kind\"\n }), \" verbatim.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Notes:\"\n }), \"\\n\", _jsxs(_components.ul, {\n children: [\"\\n\", _jsxs(_components.li, {\n children: [\"The route returns an empty \", _jsx(_components.code, {\n children: \"200\"\n }), \" response on success.\"]\n }), \"\\n\", _jsxs(_components.li, {\n children: [\"After logging, callers can use \", _jsx(_components.code, {\n children: \"list_artifacts_in_experiment\"\n }), \" or\\n\", _jsx(_components.code, {\n children: \"get_artifact_in_experiment\"\n }), \" to inspect the normalized MCP\\nread-side artifact shape.\"]\n }), \"\\n\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Args:\\nexperiment_id: Parent experiment identifier.\\nuser: Authenticated user resolved from the API key.\\ndata: Artifact payload. \", _jsx(_components.code, {\n children: \"kind\"\n }), \" must be exactly one of \", _jsx(_components.code, {\n children: \"text\"\n }), \",\\n\", _jsx(_components.code, {\n children: \"value\"\n }), \", \", _jsx(_components.code, {\n children: \"timeseries\"\n }), \", \", _jsx(_components.code, {\n children: \"list\"\n }), \", \", _jsx(_components.code, {\n children: \"dict\"\n }), \", or \", _jsx(_components.code, {\n children: \"image\"\n }), \".\\ndb: Active database session.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Returns:\\nAn empty \", _jsx(_components.code, {\n children: \"200\"\n }), \" response when artifact data is persisted.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Raises:\\nHTTPException: Raised with \", _jsx(_components.code, {\n children: \"404\"\n }), \" if the experiment is missing, or\\n\", _jsx(_components.code, {\n children: \"400\"\n }), \" for invalid artifact shape such as missing timeseries\\npoints.\"]\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":"Log Artifact In Experiment","description":"Log or append an artifact value under an experiment metrics key.\n\nUse this tool when the caller needs to persist run metadata, scalar values,\ntime-series points, JSON payloads, or base64 image artifacts under an\nexperiment. Repeated writes to the same ``data.name`` are stored as\ntimestamp-keyed entries and may later read back as normalized timeseries or\nvalue shapes.\n\nWhen to Use:\n - Call this after a run, optimization, or analysis step when metadata\n or derived outputs should be attached to an experiment.\n - Call this when the workflow needs to persist human-readable notes,\n numeric values, JSON payloads, or image-like previews.\n\nConstraints:\n - ``kind`` must be exactly one of ``text``, ``value``, ``timeseries``,\n ``list``, ``dict``, or ``image``.\n - Repeated writes are stored under timestamp keys in the experiment\n metrics map, so read-side responses may normalize to ``value`` or\n ``timeseries`` instead of preserving the write-time ``kind`` verbatim.\n\nNotes:\n - The route returns an empty ``200`` response on success.\n - After logging, callers can use ``list_artifacts_in_experiment`` or\n ``get_artifact_in_experiment`` to inspect the normalized MCP\n read-side artifact shape.\n\nArgs:\n experiment_id: Parent experiment identifier.\n user: Authenticated user resolved from the API key.\n data: Artifact payload. ``kind`` must be exactly one of ``text``,\n ``value``, ``timeseries``, ``list``, ``dict``, or ``image``.\n db: Active database session.\n\nReturns:\n An empty ``200`` response when artifact data is persisted.\n\nRaises:\n HTTPException: Raised with ``404`` if the experiment is missing, or\n ``400`` for invalid artifact shape such as missing timeseries\n points.","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/{experiment_id}/log_artifact","href":"/api-reference/log-artifact-in-experiment","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":["/_mintlify/custom/haiqu/cc26807bbccf8c6c/preload-fonts.js"],"openApiReferenceData":{"operation":{"summary":"Log Artifact In Experiment","description":"Log or append an artifact value under an experiment metrics key.\n\nUse this tool when the caller needs to persist run metadata, scalar values,\ntime-series points, JSON payloads, or base64 image artifacts under an\nexperiment. Repeated writes to the same ``data.name`` are stored as\ntimestamp-keyed entries and may later read back as normalized timeseries or\nvalue shapes.\n\nWhen to Use:\n - Call this after a run, optimization, or analysis step when metadata\n or derived outputs should be attached to an experiment.\n - Call this when the workflow needs to persist human-readable notes,\n numeric values, JSON payloads, or image-like previews.\n\nConstraints:\n - ``kind`` must be exactly one of ``text``, ``value``, ``timeseries``,\n ``list``, ``dict``, or ``image``.\n - Repeated writes are stored under timestamp keys in the experiment\n metrics map, so read-side responses may normalize to ``value`` or\n ``timeseries`` instead of preserving the write-time ``kind`` verbatim.\n\nNotes:\n - The route returns an empty ``200`` response on success.\n - After logging, callers can use ``list_artifacts_in_experiment`` or\n ``get_artifact_in_experiment`` to inspect the normalized MCP\n read-side artifact shape.\n\nArgs:\n experiment_id: Parent experiment identifier.\n user: Authenticated user resolved from the API key.\n data: Artifact payload. ``kind`` must be exactly one of ``text``,\n ``value``, ``timeseries``, ``list``, ``dict``, or ``image``.\n db: Active database session.\n\nReturns:\n An empty ``200`` response when artifact data is persisted.\n\nRaises:\n HTTPException: Raised with ``404`` if the experiment is missing, or\n ``400`` for invalid artifact shape such as missing timeseries\n points.","operationId":"log_artifact_in_experiment","security":["180b1664-ee60-40d9-9509-673db0f9ec1c","438caa10-835e-4920-8da9-4bec545cbdc3"],"parameters":["2a331f96-2992-4d7c-807b-57e703195cb4"],"requestBody":"4ce533ea-832c-4fa3-86fd-9df8f846eb94","responses":{"200":"75f43135-6ec8-4bb8-a2a7-895640744d71","422":"ca2defe2-4944-4b73-afbb-4e37c3895c70"},"method":"post","type":"path","servers":[],"path":"/ai/{experiment_id}/log_artifact","baseUrlOptions":[],"title":"Log Artifact In Experiment","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"2a331f96-2992-4d7c-807b-57e703195cb4":{"name":"experiment_id","in":"path","required":true,"schema":{"type":"string","title":"Experiment Id","isRequired":true,"uniqueKey":"","typeLabel":"string"}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"type":"string","title":"Name","isRequired":true,"uniqueKey":"name","typeLabel":"string"},"kind":{"type":"string","enum":["text","value","timeseries","list","dict","image","file"],"title":"Kind","description":"Artifact type. Use `text` for strings, `value` for a single numeric value, `timeseries` for numeric points in `points`, `list` for JSON arrays, `dict` for JSON objects, and `image` for a base64 data URL such as `data:image/png;base64,...`.","uniqueKey":"kind","typeLabel":"enum\u003cstring>"},"value":{"oneOf":[{"title":"Value","description":"Artifact payload for all kinds except `timeseries`. Send properly typed JSON values: string for `text`, number for `value`, array for `list`, object for `dict`, and a base64 data URL string for `image`. Leave this empty when `kind` is `timeseries`.","uniqueKey":"value.oneOf.0","typeLabel":"any"},{"type":"null","title":"Value","description":"Artifact payload for all kinds except `timeseries`. Send properly typed JSON values: string for `text`, number for `value`, array for `list`, object for `dict`, and a base64 data URL string for `image`. Leave this empty when `kind` is `timeseries`.","uniqueKey":"value.oneOf.1","typeLabel":"null"}],"uniqueKey":"value","typeLabel":"any | null"},"points":{"oneOf":[{"type":"array","items":{"properties":{"x":{"type":"number","title":"X","uniqueKey":"points.oneOf.0.items.[INDEX].x","typeLabel":"number"},"y":{"type":"number","title":"Y","uniqueKey":"points.oneOf.0.items.[INDEX].y","typeLabel":"number"}},"type":"object","title":"ContextTimeSeriesItem","description":"Represent one point in a time series artifact payload.\n\nAttributes:\n x: Timestamp in Unix seconds.\n y: Numeric value for this timestamp.","uniqueKey":"points.oneOf.0.items.[INDEX]","typeLabel":"ContextTimeSeriesItem · object"},"title":"Points","description":"Time series points to log when `kind` is `timeseries`. Each item must have numeric `x` and `y` fields. Leave this empty for all other kinds.","uniqueKey":"points.oneOf.0","typeLabel":"ContextTimeSeriesItem · object[]"},{"type":"null","title":"Points","description":"Time series points to log when `kind` is `timeseries`. Each item must have numeric `x` and `y` fields. Leave this empty for all other kinds.","uniqueKey":"points.oneOf.1","typeLabel":"null"}],"uniqueKey":"points","typeLabel":"ContextTimeSeriesItem · object[] | null"}},"type":"object","required":["name"],"title":"ContextArtifactSubmitModel","description":"Define payload for logging experiment artifacts from MCP tools.\n\nLogged artifact kinds are accepted on write, but MCP read endpoints expose a\nnormalized artifact view and do not preserve every submitted ``kind`` as a\ndistinct response shape.\n\nAttributes:\n name: Artifact key under which values are stored.\n kind: Artifact serialization mode accepted by the logging endpoint.\n value: Value payload for non-timeseries kinds.\n points: Time series points used when ``kind='timeseries'``.","examples":[{"kind":"value","name":"energy","value":42},{"kind":"text","name":"note","value":"Optimization converged after 18 iterations"},{"kind":"timeseries","name":"training_loss","points":[{"x":1710000000,"y":0.91},{"x":1710000060,"y":0.63},{"x":1710000120,"y":0.41}]},{"kind":"list","name":"probabilities","value":[0.12,0.38,0.5]},{"kind":"dict","name":"run_metadata","value":{"device":"simulator","seed":7,"shots":1024}},{"kind":"image","name":"circuit_preview","value":"data:image/png;base64,aGVsbG8="}],"uniqueKey":"","typeLabel":"ContextArtifactSubmitModel · object"},"examples":{"Example":{"title":"Example","value":{"kind":"value","name":"energy","value":42}}},"exampleType":"generated"}},"exampleType":"generated"},"responses":{"75f43135-6ec8-4bb8-a2a7-895640744d71":{"description":"Successful Response","content":{"application/json":{"schema":{}}},"exampleType":"generated"},"ca2defe2-4944-4b73-afbb-4e37c3895c70":{"description":"Validation Error","content":{"application/json":{"schema":{"properties":{"detail":{"items":{"properties":{"loc":{"items":{"oneOf":[{"type":"string","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.0","typeLabel":"string"},{"type":"integer","uniqueKey":"detail.items.[INDEX].loc.items.[INDEX].oneOf.1","typeLabel":"integer"}],"uniqueKey":"detail.items.[INDEX].loc.items.[INDEX]","typeLabel":"string | integer"},"type":"array","title":"Location","isRequired":true,"uniqueKey":"detail.items.[INDEX].loc","typeLabel":"(string | integer)[]"},"msg":{"type":"string","title":"Message","isRequired":true,"uniqueKey":"detail.items.[INDEX].msg","typeLabel":"string"},"type":{"type":"string","title":"Error Type","isRequired":true,"uniqueKey":"detail.items.[INDEX].type","typeLabel":"string"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError","uniqueKey":"detail.items.[INDEX]","typeLabel":"ValidationError · object"},"type":"array","title":"Detail","uniqueKey":"detail","typeLabel":"ValidationError · object[]"}},"type":"object","title":"HTTPValidationError","uniqueKey":"","typeLabel":"HTTPValidationError · object"},"examples":{"Example":{"title":"Example","value":{"detail":[{"loc":["\u003cstring>"],"msg":"\u003cstring>","type":"\u003cstring>"}]}}},"exampleType":"generated"}},"exampleType":"generated"}},"security":{"180b1664-ee60-40d9-9509-673db0f9ec1c":{"APIKeyQuery":{"type":"apiKey","in":"query","name":"HAIQU_API_KEY","scopes":[],"schemeName":"APIKeyQuery"}},"438caa10-835e-4920-8da9-4bec545cbdc3":{"APIKeyHeader":{"type":"apiKey","in":"header","name":"authorization","scopes":[],"schemeName":"APIKeyHeader"}}},"servers":{},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"query","name":"HAIQU_API_KEY","scopes":[],"schemeName":"APIKeyQuery"},"schema":{"title":"HAIQU_API_KEY","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyQuery","name":"HAIQU_API_KEY"}],"title":"APIKeyQuery"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"authorization","scopes":[],"schemeName":"APIKeyHeader"},"schema":{"title":"authorization","type":"string","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"APIKeyHeader","name":"authorization"}],"title":"APIKeyHeader"}]},"originalFileLocation":"https://api.haiqu.ai/openapi.json"},"subdomain":"haiqu","siteName":"Haiqu","title":"Log Artifact In Experiment - Haiqu","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-23T09:20:14.202Z","originalFileLocation":"api-reference/log-artifact-in-experiment.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=\"Log or append an artifact value under an experiment metrics key. Use this tool when the caller needs to persist run metadata, scalar values, time-series points, JSON payloads, or base64 image artifacts under an experiment. Repeated writes to the same data.name are stored as timestamp-keyed entries and may later read back as normalized timeseries or value shapes. When to Use: - Call this after a run, optimization, or analysis step when metadata or derived outputs should be attached to an experiment. - Call this when the workflow needs to persist human-readable notes, numeric values, JSON payloads, or image-like previews. Constraints: - kind must be exactly one of text, value, timeseries, list, dict, or image. - Repeated writes are stored under timestamp keys in the experiment metrics map, so read-side responses may normalize to value or timeseries instead of preserving the write-time kind verbatim. Notes: - The route returns an empty 200 response on success. - After logging, callers can use list_artifacts_in_experiment or get_artifact_in_experiment to inspect the normalized MCP read-side artifact shape. Args: experiment_id: Parent experiment identifier. user: Authenticated user resolved from the API key. data: Artifact payload. kind must be exactly one of text, value, timeseries, list, dict, or image. db: Active database session. Returns: An empty 200 response when artifact data is persisted. Raises: HTTPException: Raised with 404 if the experiment is missing, or 400 for invalid artifact shape such as missing timeseries points.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Haiqu\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_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/haiqu/oEFiEtbJmeciuADt/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Log Artifact In Experiment - Haiqu\">\u003cmeta data-mint-head property=\"og:description\" content=\"Log or append an artifact value under an experiment metrics key. Use this tool when the caller needs to persist run metadata, scalar values, time-series points, JSON payloads, or base64 image artifacts under an experiment. Repeated writes to the same data.name are stored as timestamp-keyed entries and may later read back as normalized timeseries or value shapes. When to Use: - Call this after a run, optimization, or analysis step when metadata or derived outputs should be attached to an experiment. - Call this when the workflow needs to persist human-readable notes, numeric values, JSON payloads, or image-like previews. Constraints: - kind must be exactly one of text, value, timeseries, list, dict, or image. - Repeated writes are stored under timestamp keys in the experiment metrics map, so read-side responses may normalize to value or timeseries instead of preserving the write-time kind verbatim. Notes: - The route returns an empty 200 response on success. - After logging, callers can use list_artifacts_in_experiment or get_artifact_in_experiment to inspect the normalized MCP read-side artifact shape. Args: experiment_id: Parent experiment identifier. user: Authenticated user resolved from the API key. data: Artifact payload. kind must be exactly one of text, value, timeseries, list, dict, or image. db: Active database session. Returns: An empty 200 response when artifact data is persisted. Raises: HTTPException: Raised with 404 if the experiment is missing, or 400 for invalid artifact shape such as missing timeseries points.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Haiqu\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://haiqu.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Log+Artifact+In+Experiment\u0026amp;description=Log+or+append+an+artifact+value+under+an+experiment+metrics+key.%0A%0AUse+this+tool+when+the+caller+needs+to+persist+run+metadata%2C+scalar+values%2C%0Atime-series+points\u0026amp;theme=a89afdb9c3ab85c54450697e\u0026amp;signature=ff7f81db68cb9185d2fb2552193889690a7598df348706bcd8628dfb24b5db51\">\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=\"Log Artifact In Experiment - Haiqu\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Log or append an artifact value under an experiment metrics key. Use this tool when the caller needs to persist run metadata, scalar values, time-series points, JSON payloads, or base64 image artifacts under an experiment. Repeated writes to the same data.name are stored as timestamp-keyed entries and may later read back as normalized timeseries or value shapes. When to Use: - Call this after a run, optimization, or analysis step when metadata or derived outputs should be attached to an experiment. - Call this when the workflow needs to persist human-readable notes, numeric values, JSON payloads, or image-like previews. Constraints: - kind must be exactly one of text, value, timeseries, list, dict, or image. - Repeated writes are stored under timestamp keys in the experiment metrics map, so read-side responses may normalize to value or timeseries instead of preserving the write-time kind verbatim. Notes: - The route returns an empty 200 response on success. - After logging, callers can use list_artifacts_in_experiment or get_artifact_in_experiment to inspect the normalized MCP read-side artifact shape. Args: experiment_id: Parent experiment identifier. user: Authenticated user resolved from the API key. data: Artifact payload. kind must be exactly one of text, value, timeseries, list, dict, or image. db: Active database session. Returns: An empty 200 response when artifact data is persisted. Raises: HTTPException: Raised with 404 if the experiment is missing, or 400 for invalid artifact shape such as missing timeseries points.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://haiqu.mintlify.app/_mintlify/api/og/v2?division=API+Reference\u0026amp;title=Log+Artifact+In+Experiment\u0026amp;description=Log+or+append+an+artifact+value+under+an+experiment+metrics+key.%0A%0AUse+this+tool+when+the+caller+needs+to+persist+run+metadata%2C+scalar+values%2C%0Atime-series+points\u0026amp;theme=a89afdb9c3ab85c54450697e\u0026amp;signature=ff7f81db68cb9185d2fb2552193889690a7598df348706bcd8628dfb24b5db51\">\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/haiqu/oEFiEtbJmeciuADt/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Haiqu\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#000000\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/log-artifact-in-experiment.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.haiqu.ai/#organization\",\"name\":\"Haiqu\",\"url\":\"https://docs.haiqu.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/haiqu/naR3-ajV6yLCfg5I/logo/logo-text-black.svg?fit=max\u0026auto=format\u0026n=naR3-ajV6yLCfg5I\u0026q=85\u0026s=2010ac2de39f76a994323bd9afa6aec1\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.haiqu.ai#website\",\"name\":\"Haiqu\",\"url\":\"https://docs.haiqu.ai\",\"publisher\":{\"@id\":\"https://docs.haiqu.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment#webpage\",\"url\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment\",\"name\":\"Log Artifact In Experiment\",\"description\":\"Log or append an artifact value under an experiment metrics key. Use this tool when the caller needs to persist run metadata, scalar values, time-series points, JSON payloads, or base64 image artifacts under an experiment. Repeated writes to the same data.name are stored as timestamp-keyed entries and may later read back as normalized timeseries or value shapes. When to Use: - Call this after a run, optimization, or analysis step when metadata or derived outputs should be attached to an experiment. - Call this when the workflow needs to persist human-readable notes, numeric values, JSON payloads, or image-like previews. Constraints: - kind must be exactly one of text, value, timeseries, list, dict, or image. - Repeated writes are stored under timestamp keys in the experiment metrics map, so read-side responses may normalize to value or timeseries instead of preserving the write-time kind verbatim. Notes: - The route returns an empty 200 response on success. - After logging, callers can use list_artifacts_in_experiment or get_artifact_in_experiment to inspect the normalized MCP read-side artifact shape. Args: experiment_id: Parent experiment identifier. user: Authenticated user resolved from the API key. data: Artifact payload. kind must be exactly one of text, value, timeseries, list, dict, or image. db: Active database session. Returns: An empty 200 response when artifact data is persisted. Raises: HTTPException: Raised with 404 if the experiment is missing, or 400 for invalid artifact shape such as missing timeseries points.\",\"dateModified\":\"2026-10-23T09:20:14.202Z\",\"isPartOf\":{\"@id\":\"https://docs.haiqu.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"API Reference\",\"item\":\"https://docs.haiqu.ai/api-reference/submit-circuit\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Log Artifact In Experiment\",\"item\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment#apireference\",\"headline\":\"Log Artifact In Experiment\",\"name\":\"Log Artifact In Experiment\",\"description\":\"Log or append an artifact value under an experiment metrics key. Use this tool when the caller needs to persist run metadata, scalar values, time-series points, JSON payloads, or base64 image artifacts under an experiment. Repeated writes to the same data.name are stored as timestamp-keyed entries and may later read back as normalized timeseries or value shapes. When to Use: - Call this after a run, optimization, or analysis step when metadata or derived outputs should be attached to an experiment. - Call this when the workflow needs to persist human-readable notes, numeric values, JSON payloads, or image-like previews. Constraints: - kind must be exactly one of text, value, timeseries, list, dict, or image. - Repeated writes are stored under timestamp keys in the experiment metrics map, so read-side responses may normalize to value or timeseries instead of preserving the write-time kind verbatim. Notes: - The route returns an empty 200 response on success. - After logging, callers can use list_artifacts_in_experiment or get_artifact_in_experiment to inspect the normalized MCP read-side artifact shape. Args: experiment_id: Parent experiment identifier. user: Authenticated user resolved from the API key. data: Artifact payload. kind must be exactly one of text, value, timeseries, list, dict, or image. db: Active database session. Returns: An empty 200 response when artifact data is persisted. Raises: HTTPException: Raised with 404 if the experiment is missing, or 400 for invalid artifact shape such as missing timeseries points.\",\"url\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment\",\"mainEntityOfPage\":{\"@id\":\"https://docs.haiqu.ai/api-reference/log-artifact-in-experiment#webpage\"},\"dateModified\":\"2026-10-23T09:20:14.202Z\",\"publisher\":{\"@id\":\"https://docs.haiqu.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.haiqu.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Haiqu\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Haiqu","nav":{"global":null,"tabs":[{"tab":"Welcome","pages":[{"title":"Welcome","href":""}]},{"tab":"Haiqu AgenticOS","pages":[{"title":"Haiqu AgenticOS","href":"/agentic-os"}]},{"tab":"Guides","versions":[{"version":"1.7.0","groups":[{"group":"Quick Start","pages":[{"title":"Get Started","href":"/quickstart/qs_intro"},{"title":"Local Installation","href":"/quickstart/qs_local"},{"title":"Update the SDK","href":"/quickstart/update-the-sdk"},{"title":"AI Assisted Development","href":"/quickstart/ai-assisted-development"}]},{"group":"Core features","pages":[{"title":"SDK Overview","href":"/core_features/overview"},{"title":"Dashboard Overview","href":"/dashboard-overview"},{"title":"Distribution Loading","href":"/core_features/data_loading_dist"},{"title":"Data Loading","href":"/core_features/data_loading_vect"},{"title":"Feature embedding","href":"/core_features/data_loading_isom"},{"title":"Compression","href":"/core_features/compression"},{"title":"Working with Haiqu Circuits","href":"/core_features/haiqu_circuits"},{"title":"Transpilation","href":"/core_features/transpilation"},{"title":"Measuring in different bases","href":"/core_features/readout_bases"},{"title":"Error Mitigation","href":"/core_features/error_shield"},{"title":"Variational algorithms","href":"/core_features/qml"},{"title":"SU(2)-equivariant gates","href":"/core_features/equivariant_gates"},{"title":"Optimization \u0026 Postprocessing","href":"/core_features/postprocessing"},{"title":"Experiment Tracking","href":"/core_features/exp_tracking"},{"title":"Experiment Sharing","href":"/core_features/experiment-sharing"},{"title":"Circuit Analytics","href":"/core_features/circ_analytics"},{"title":"Job Performance Metrics","href":"/core_features/quality"}]},{"group":"Hybrid programs","pages":[{"title":"Overview","href":"/hybrid/overview"},{"title":"Building and running flows","href":"/hybrid/flows"}]},{"group":"Integrations","pages":[{"title":"IBM Quantum","href":"/integrations/ibm"},{"title":"Amazon Braket","href":"/integrations/amazon"},{"title":"IonQ Cloud","href":"/integrations/ionq"},{"title":"IQM Resonance","href":"/integrations/iqm"}]},{"group":"Catalog","pages":[{"title":"QML building blocks","href":"/catalog/qml_building_blocks"},{"title":"Benchmarks data sheet","href":"/catalog/datasheet"},{"title":"Characteristic Functions","href":"/catalog/characteristic_functions"},{"title":"Multivariate Probability Distributions","href":"/catalog/multivariate_distributions"}]}]}]},{"tab":"Dashboard","pages":[{"title":"Dashboard","href":"/dashboard/overview"}]},{"tab":"SDK Reference","versions":[{"version":"1.7.0","groups":[{"group":"Core platform functions","pages":[{"title":"Login","href":"/reference/core/login"},{"title":"Init or Update Experiment","href":"/reference/core/init"},{"title":"Log Objects","href":"/reference/core/log"},{"title":"List Objects","href":"/reference/core/list"},{"title":"Get Objects","href":"/reference/core/get"},{"title":"Draw","href":"/reference/core/draw"},{"title":"Credentials Helpers","href":"/reference/core/credentials_helpers"},{"title":"Health Check","href":"/reference/core/health_check"}]},{"group":"Data loading","pages":[{"title":"Distribution Loading","href":"/reference/data/distribution"},{"title":"Multivariate Distribution Loading","href":"/reference/data/multivariate_distribution"},{"title":"Vector Loading","href":"/reference/data/vector"},{"title":"Block-wise Vector Loading","href":"/reference/data/block_vector"},{"title":"Entangled Manifold Embedding","href":"/reference/data/entangled_manifold_embedding"},{"title":"MPS Loading","href":"/reference/data/mps_loading"},{"title":"Function Loading","href":"/reference/data/function"},{"title":"Fourier Loading","href":"/reference/data/fourier"},{"title":"Circuit Synthesis Options","href":"/reference/data/synthesis_options"}]},{"group":"Middleware","pages":[{"title":"State Compression","href":"/reference/middleware/compression"},{"title":"Observable Backpropagation","href":"/reference/middleware/observable-backpropagation"}]},{"group":"Circuit Execution","pages":[{"title":"Flow","href":"/reference/run/flow"},{"title":"Hybrid Program","href":"/reference/run/hybrid_program"},{"title":"Run","href":"/reference/run/run"},{"title":"Statevector Run","href":"/reference/run/statevector_run"},{"title":"Transpile","href":"/reference/run/transpile"}]},{"group":"Optimization","pages":[{"title":"Problem Formulations","href":"/reference/optimization/problem"},{"title":"Postprocessing","href":"/reference/optimization/postprocessing"}]},{"group":"Variational Algorithms","pages":[{"title":"Variational Quantum Optimization","href":"/reference/qml/variational"},{"title":"SU(2)-equivariant gates","href":"/reference/qml/equivariant"},{"title":"Pretrain","href":"/reference/qml/pretrain"}]},{"group":"SKQD","pages":[{"title":"Postprocessing","href":"/reference/skqd/postprocess_skqd"},{"title":"Configuration recovery","href":"/reference/skqd/configuration_recovery"},{"title":"Hubbard Model","href":"/reference/skqd/hubbard"},{"title":"SIAM Model","href":"/reference/skqd/siam"},{"title":"SKQD Helpers","href":"/reference/skqd/helpers"}]}]}]},{"tab":"API Reference","groups":[{"group":"API Reference","pages":[{"title":"Submit Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /circuits","href":"/api-reference/submit-circuit"},{"title":"Transpile Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /circuits/transpile","href":"/api-reference/transpile-circuit"},{"title":"Build Lr Qaoa Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /circuits/lr_qaoa","href":"/api-reference/build-lr-qaoa-circuit"},{"title":"Backpropagate Observables","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /circuits/{circuit_id}/backpropagate_observables","href":"/api-reference/backpropagate-observables"},{"title":"Compute Analytics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /circuits/{circuit_id}/compute_analytics/{analytics_type}","href":"/api-reference/compute-analytics"},{"title":"Get Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /circuits/{circuit_id}","href":"/api-reference/get-circuit"},{"title":"Delete Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json delete /circuits/{circuit_id}","href":"/api-reference/delete-circuit"},{"title":"Get Circuit By Hash","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/circuits/{circuit_hash}","href":"/api-reference/get-circuit-by-hash"},{"title":"Post Metrics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /experiments/{experiment_id}/circuits/{circuit_hash}/metrics","href":"/api-reference/post-metrics"},{"title":"Get Analytics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /circuits/{circuit_id}/metrics","href":"/api-reference/get-analytics"},{"title":"Get Metrics Evolution","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /circuits/{circuit_id}/metrics_evolution","href":"/api-reference/get-metrics-evolution"},{"title":"Collect Csp Report","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /csp","href":"/api-reference/collect-csp-report"},{"title":"List Devices Endpoint","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /devices","href":"/api-reference/list-devices-endpoint"},{"title":"Get Device Endpoint","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /devices/{device_id}","href":"/api-reference/get-device-endpoint"},{"title":"Get Device Gate Map","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /devices/{device_id}/gate_map","href":"/api-reference/get-device-gate-map"},{"title":"List Experiments","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments","href":"/api-reference/list-experiments"},{"title":"Create Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /experiments","href":"/api-reference/create-experiment"},{"title":"Init Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /experiments/init","href":"/api-reference/init-experiment"},{"title":"Get Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}","href":"/api-reference/get-experiment"},{"title":"Update Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json put /experiments/{experiment_id}","href":"/api-reference/update-experiment"},{"title":"Delete Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json delete /experiments/{experiment_id}","href":"/api-reference/delete-experiment"},{"title":"Post Metrics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /experiments/{experiment_id}/metrics","href":"/api-reference/post-metrics-1"},{"title":"List Circuits","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/circuits","href":"/api-reference/list-circuits"},{"title":"List Jobs","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/jobs","href":"/api-reference/list-jobs"},{"title":"List Artifacts","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/artifacts","href":"/api-reference/list-artifacts"},{"title":"Get Artifact","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/artifacts/{artifact_name}","href":"/api-reference/get-artifact"},{"title":"Submit Local Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /jobs","href":"/api-reference/submit-local-job"},{"title":"Post Metrics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /experiments/{experiment_id}/jobs/{job_id}/metrics","href":"/api-reference/post-metrics-2"},{"title":"Get Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /jobs/{job_id}","href":"/api-reference/get-job"},{"title":"Get Local Job By Hash","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /experiments/{experiment_id}/jobs/{job_hash}","href":"/api-reference/get-local-job-by-hash"},{"title":"Cancel Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /jobs/{job_id}/cancel","href":"/api-reference/cancel-job"},{"title":"Restart Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /jobs/{job_id}/restart","href":"/api-reference/restart-job"},{"title":"Get User","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /user","href":"/api-reference/get-user"},{"title":"Data Loading","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /data_loading","href":"/api-reference/data-loading"},{"title":"Data Loading Estimates","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /data_loading_estimates","href":"/api-reference/data-loading-estimates"},{"title":"Flow","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /flow","href":"/api-reference/flow"},{"title":"Run","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /run","href":"/api-reference/run"},{"title":"Compression","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /compression","href":"/api-reference/compression"},{"title":"Compression Estimates","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /compression_estimates","href":"/api-reference/compression-estimates"},{"title":"Postprocess Counts","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /postprocess","href":"/api-reference/postprocess-counts"},{"title":"Variational","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /variational","href":"/api-reference/variational"},{"title":"Pretraining","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /pretraining","href":"/api-reference/pretraining"},{"title":"Postprocess Skqd","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /postprocess_skqd","href":"/api-reference/postprocess-skqd"},{"title":"Create New Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/create_new_experiment","href":"/api-reference/create-new-experiment"},{"title":"List Experiments Mcp","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/","href":"/api-reference/list-experiments-mcp"},{"title":"Get Experiment By Name","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/by_name/{experiment_name}","href":"/api-reference/get-experiment-by-name"},{"title":"Get Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}","href":"/api-reference/get-experiment-1"},{"title":"Update Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json put /ai/{experiment_id}","href":"/api-reference/update-experiment-1"},{"title":"Get Experiment Url On Dashboard By Name","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/dashboard_url_by_name/{experiment_name}","href":"/api-reference/get-experiment-url-on-dashboard-by-name"},{"title":"List Circuits In Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/circuits","href":"/api-reference/list-circuits-in-experiment"},{"title":"List Jobs","description":"List jobs associated with an experiment.\n\nUse this tool when the caller needs execution, compression, analytics, or\nrelated job history under one experiment. Returned ``job.id`` values can be\npassed directly to ``get_job_results_and_status``.\n\nWhen to Use:\n - Call this when the workflow already has an ``experiment_id`` but not\n the relevant ``job_id``.\n - Call this to inspect the complete job history for one experiment\n before polling individual jobs.\n\nConstraints:\n - The result may contain heterogeneous job families.\n - ``limit`` caps the number of returned jobs.\n\nNotes:\n - Returned ``job.id`` values can be passed directly to\n ``get_job_results_and_status``.\n - Agent-facing output should group jobs by type and status before\n expanding individual records.\n\nArgs:\n experiment_id: Parent experiment identifier.\n user: Authenticated user resolved from the API key.\n db: Active database session.\n limit: Maximum number of jobs to return. Defaults to ``100``.\n\nReturns:\n A list of job objects capped by ``limit``.\n\nRaises:\n HTTPException: Raised with ``404`` when the experiment is not available\n to the caller.","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/jobs","href":"/api-reference/list-jobs-1"},{"title":"Log Artifact In Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/{experiment_id}/log_artifact","href":"/api-reference/log-artifact-in-experiment"},{"title":"List Artifacts In Experiment","description":"List normalized artifact descriptors derived from experiment metrics.\n\nUse this tool when the caller wants to discover which artifacts exist before\nfetching one specific artifact or downloading binary content. Read-side\nartifact shapes are normalized for MCP, so the returned ``kind`` may be\nmore compact than the original write-time ``kind``.\n\nWhen to Use:\n - Call this before fetching one named artifact or before downloading\n base64-backed content.\n - Call this when the caller needs a discoverable list of current\n artifact keys and normalized output types.\n\nConstraints:\n - The endpoint reads the stored experiment metrics map as-is; it does\n not create a metrics container for experiments that do not already\n have one.\n - The returned ``kind`` reflects MCP normalization, not a guaranteed\n round-trip of the original write-time artifact kind.\n\nNotes:\n - The endpoint returns metadata only.\n - When an artifact is base64-backed, the response includes\n ``content_url`` rather than raw bytes.\n\nArgs:\n experiment_id: Parent experiment identifier.\n user: Authenticated user resolved from the API key.\n db: Active database session.\n\nReturns:\n A list of normalized artifact descriptors for the experiment.\n\nRaises:\n HTTPException: Raised with ``404`` when the experiment is not available\n to the caller.","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/artifacts","href":"/api-reference/list-artifacts-in-experiment"},{"title":"Get Artifact In Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/artifact","href":"/api-reference/get-artifact-in-experiment"},{"title":"Get Artifact Content In Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/artifact/content","href":"/api-reference/get-artifact-content-in-experiment"},{"title":"Get Artifact Download Url In Experiment","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/{experiment_id}/artifact/download_url","href":"/api-reference/get-artifact-download-url-in-experiment"},{"title":"Submit Circuit For Analytics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/submit_circuit_for_analytics","href":"/api-reference/submit-circuit-for-analytics"},{"title":"Backpropagate Observables Mcp","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/backpropagate_observables","href":"/api-reference/backpropagate-observables-mcp"},{"title":"Get Circuit By Id","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/circuit/{circuit_id}","href":"/api-reference/get-circuit-by-id"},{"title":"Get Circuit Metrics Evolution","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/circuit/{circuit_id}/metrics_evolution","href":"/api-reference/get-circuit-metrics-evolution"},{"title":"Compute Circuit Analytics","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/compute_circuit_analytics","href":"/api-reference/compute-circuit-analytics"},{"title":"List Children Circuits","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/circuit/{circuit_id}/children","href":"/api-reference/list-children-circuits"},{"title":"List Jobs For Circuit","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/circuit/{circuit_id}/jobs","href":"/api-reference/list-jobs-for-circuit"},{"title":"Transpile Circuits","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/transpile_circuits","href":"/api-reference/transpile-circuits"},{"title":"Get Job Results And Status","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/jobs/{job_id}/results","href":"/api-reference/get-job-results-and-status"},{"title":"Cancel Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/jobs/{job_id}/cancel","href":"/api-reference/cancel-job-1"},{"title":"Restart Job","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/jobs/{job_id}/restart","href":"/api-reference/restart-job-1"},{"title":"List Qpus And Simulators","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/list_qpus_and_simulators","href":"/api-reference/list-qpus-and-simulators"},{"title":"Get Device Details","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/device/{device_id}","href":"/api-reference/get-device-details"},{"title":"Run Circuits On Qpu Or Simulator","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/run_circuits_on_qpu_or_simulator","href":"/api-reference/run-circuits-on-qpu-or-simulator"},{"title":"Compress Circuit With State Compression","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/compress_circuit_with_state_compression","href":"/api-reference/compress-circuit-with-state-compression"},{"title":"Estimate State Compression","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/estimate_state_compression","href":"/api-reference/estimate-state-compression"},{"title":"Load Classical Data With Data Loading","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/load_classical_data_with_data_loading","href":"/api-reference/load-classical-data-with-data-loading"},{"title":"Estimate Data Loading","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/estimate_data_loading","href":"/api-reference/estimate-data-loading"},{"title":"List Haiqu Algorithms","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/qakb/algorithms","href":"/api-reference/list-haiqu-algorithms"},{"title":"Get Haiqu Algorithm Recipe","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /ai/qakb/algorithms/{algorithm_key}/recipe","href":"/api-reference/get-haiqu-algorithm-recipe"},{"title":"Build Lr Qaoa Circuit Mcp","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/build_lr_qaoa_circuit","href":"/api-reference/build-lr-qaoa-circuit-mcp"},{"title":"Postprocess Measurement Counts","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/postprocess_measurement_counts","href":"/api-reference/postprocess-measurement-counts"},{"title":"Run Variational Workload","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/run_variational_workload","href":"/api-reference/run-variational-workload"},{"title":"Postprocess Skqd Samples","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/postprocess_skqd_samples","href":"/api-reference/postprocess-skqd-samples"},{"title":"Run Hybrid Flow","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /ai/run_hybrid_flow","href":"/api-reference/run-hybrid-flow"},{"title":"Notify Certificate Code","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json post /certificate-codes/{code}/notify","href":"/api-reference/notify-certificate-code"},{"title":"Root","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /","href":"/api-reference/root"},{"title":"Version","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /version","href":"/api-reference/version"},{"title":"Get Benchmarks","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /help/benchmarks","href":"/api-reference/get-benchmarks"},{"title":"Health Live","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /health/live","href":"/api-reference/health-live"},{"title":"Health Ready","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /health/ready","href":"/api-reference/health-ready"},{"title":"Health Auth","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /health/auth","href":"/api-reference/health-auth"},{"title":"Mcp Meta","deprecated":null,"version":null,"openapi":"https://api.haiqu.ai/openapi.json get /mcp/meta","href":"/api-reference/mcp-meta"}]}]},{"tab":"Publications","pages":[{"title":"Publications","href":"/publications"}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog"}]},{"tab":"FAQ","pages":[{"title":"FAQ","href":"/faq"}]}]},"title":"Log Artifact In Experiment - Haiqu","buildId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","deploymentId":"dpl_HcHmUS6i3UwswnTHJUEdcTtwfdTQ","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-BRm_l__d.js","utils-f1l1Oc-G.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BlhqDhJO.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DHCB7rsC.js","snippetPresets-CYXLx6Hv.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-B78P2dEq.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C4YLPVAh.js","shallow-vlLnTDkQ.js","getApiPlaygroundDisplay-D_98hhvf.js","CodeSnippet-DtnZHGqq.js","CodeSnippets-CLFb8KJt.js","Page-kQh739Uz.js","getPastedJson-Cq-zlbnU.js","icon-sN3t983t.js","MethodPill-P_YQ2s09.js","DuplicateIcon-BVzyNsGJ.js","createIcon-B3jqgqC6.js","DynamicMarkdown-Crwq6WG_.js","SectionHeading-C7pGS2Bb.js","axios-vUo_bRtp.js","Markdown-BuPH8yuW.js","clsx-CCOYKgaU.js","lib--scc4DXi.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BnkC_6oA.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BM4S31-f.js"]}