Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again.
Commit the exact normalized draft returned by preflight after explicit user approval. Add draft.approved_at, use an output_id ending :approved, and pass the current approval_token. Revalidate and obtain renewed approval after a material change.
approval_token
string
required
Current approval_token returned by preflight for the exact normalized draft and allocated amount.
Required string length: 1 - 4000
draft
object
required
Show child attributes
output_id
string
required
Stable reviewed output id ending in :approved. Preserve the reviewed id prefix for idempotency.
Required string length: 1 - 240
Pattern: :approved$
draft_file
object
Optional draft.json file reference used for auditability.
Show child attributes
Response
Idempotent portfolio import result
Option 1
Option 2
Successful managed paper portfolio import response.
ok
enum<boolean>
required
True when import succeeded.
Available options:
true
portfolio_id
string
required
Id of the created managed paper portfolio.
Minimum string length: 1
portfolio_url
string
required
App URL path for the created portfolio.
Minimum string length: 1
allocated_amount_usd
string
USD capital allocated to the imported managed paper portfolio.
Minimum string length: 1
execution_mode
enum<string>
Execution mode of the created portfolio.
Available options:
paper
idempotent
boolean
True when this response came from an idempotent retry of an existing import.
imported_cash_count
integer
Count of cash rows imported.
Required range: x >= 0
imported_holding_count
integer
Count of holding rows imported.
Required range: x >= 0
portfolio_type
enum<string>
Portfolio type of the created portfolio.
Available options:
managed
portfolio_value
object
Reviewed value provenance and its difference from the current provider mark, when comparable.
Show child attributes
presentation_hint
string
Hint about what is attached to the portfolio, based on verified state. A fresh import has nothing attached and keeps any watch-or-manage intent already supplied; an idempotent retry may instead report an existing monitor or strategy, or say the state could not be verified. A failed lookup does not mean nothing is attached.
Minimum string length: 1
row_warnings
object[]
Per-holding valuation warnings with row_id. Price warnings use field price: price_not_fetched means the vendor did not answer; no_recent_close means no usable close in the last 14 days. holding_fx_unavailable uses field currency and names the missing exchange rate to USD. Warnings do not block confirmation.
Show child attributes
source_broker
enum<string> | null
Broker metadata stored with the created portfolio, or null when absent.
Available options:
trading212,
robinhood,
zerodha,
alpaca,
ibkr,
other,
null
strategy_id
string
Id of a controlling strategy already linked to this portfolio, when present. Fresh import does not create a strategy; this is set only on an idempotent retry of an older import that already has one.
Minimum string length: 1
strategy_name
string
Name of the already-linked controlling strategy, when present.
Minimum string length: 1
strategy_url
string
App URL path for the already-linked controlling strategy, when present.
Minimum string length: 1
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Itoflow developer docs","description":"Itoflow takes an investment idea from research to live trading, with agents doing the work. Research an idea, have agents watch it and your portfolios around the clock, run it as paper strategies, then trade it live; a person approves every live trade. Each step keeps the context of the last, and Itoflow supplies the market data and compute. Start with one part, such as the factor risk engine with ETF look-through, from Claude, ChatGPT or Codex over MCP, or from your code over HTTP.","colors":{"primary":"#0079AD","light":"#4FB3E4","dark":"#0079AD"},"logo":{"light":"https://mintcdn.com/itoflow/sRxx5iBL0vfWaMBY/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=sRxx5iBL0vfWaMBY\u0026q=85\u0026s=3d23e4b830dc16fd51eb271bce00fa46","dark":"https://mintcdn.com/itoflow/sRxx5iBL0vfWaMBY/assets/logo-dark.svg?fit=max\u0026auto=format\u0026n=sRxx5iBL0vfWaMBY\u0026q=85\u0026s=5d169026671363e61b6117aa443d0dcd"},"favicon":{"light":"https://mintcdn.com/itoflow/sRxx5iBL0vfWaMBY/assets/favicon-light.svg?fit=max\u0026auto=format\u0026n=sRxx5iBL0vfWaMBY\u0026q=85\u0026s=38166eb10bbe84f06f29e63640daddcd","dark":"https://mintcdn.com/itoflow/sRxx5iBL0vfWaMBY/assets/favicon-dark.svg?fit=max\u0026auto=format\u0026n=sRxx5iBL0vfWaMBY\u0026q=85\u0026s=8e46915f491ba449c8d9d0bef5cc78a8"},"api":{"playground":{"display":"interactive","proxy":false,"credentials":false},"examples":{"languages":["curl","python","javascript"],"prefill":false},"url":"full"},"appearance":{"default":"dark","strict":false},"background":{"color":{"light":"#FDFDFD","dark":"#0B1419"}},"navbar":{"links":[{"href":"https://itoflow.ai/pricing","label":"Pricing"},{"href":"https://itoflow.ai/blog","label":"Blog"}],"primary":{"type":"button","label":"Open Itoflow","href":"https://app.itoflow.ai"}},"footer":{"links":[{"header":"Product","items":[{"label":"Itoflow","href":"https://itoflow.ai"},{"label":"Open the app","href":"https://app.itoflow.ai"},{"label":"Pricing","href":"https://itoflow.ai/pricing"},{"label":"Benchmark","href":"https://itoflow.ai/benchmark"}]},{"header":"Learn","items":[{"label":"Blog","href":"https://itoflow.ai/blog"},{"label":"Help center","href":"https://itoflow.ai/help"}]},{"header":"Trust","items":[{"label":"Security","href":"https://itoflow.ai/security"},{"label":"Privacy","href":"https://itoflow.ai/privacy"},{"label":"Terms","href":"https://itoflow.ai/terms"}]}]},"fonts":{"heading":{"family":"Reckless","weight":400,"source":"assets/fonts/reckless.woff2","format":"woff2"},"body":{"family":"Onest","weight":400,"source":"assets/fonts/onest-latin.woff2","format":"woff2"}},"contextual":{"options":["copy","view","chatgpt","claude"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"itoflow","hasAudioNarration":false,"actualSubdomain":"itoflow","customDomains":["docs.itoflow.ai"],"gitSource":{"type":"github","owner":"itoflow","repo":"ai_researcher","deployBranch":"develop","contentDirectory":"developer-docs","isPrivate":true,"mountPath":"","label":""},"entitlements":{},"buildId":"6af6c085993a78013fddf9ab","clientVersion":"0.0.4143","searchFilterCounts":[{"language":"default","tag":"Endpoints","count":156},{"language":"default","tag":"Portfolios","count":23},{"language":"default","tag":"Strategies","count":22},{"language":"default","tag":"Billing","count":19},{"language":"default","tag":"Monitors","count":17},{"language":"default","tag":"Market data","count":14},{"language":"default","tag":"Chat","count":13},{"language":"default","tag":"Use cases","count":11},{"language":"default","tag":"Features","count":10},{"language":"default","tag":"Brokers","count":10}]},"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":"custom-rbac-roles","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":"rbac-expansion","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":"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":"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":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","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}],"googleFontsInlined":false},"customCss":[{"filePath":"styles.css","content":"@font-face{font-family:\"Onest\";src:url(\"/assets/fonts/onest-latin.woff2\") format(\"woff2\");font-style:normal;font-weight:400 800;font-display:swap}@font-face{font-family:\"Reckless\";src:url(\"/assets/fonts/reckless.woff2\") format(\"woff2\");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:\"Geist Mono\";src:url(\"/assets/fonts/geist-mono-latin.woff2\") format(\"woff2\");font-style:normal;font-weight:400 600;font-display:swap}h1,h2,h3:not(.sidebar-title),h4,h5,h6{font-weight:400;font-feature-settings:\"cv02\", \"cv03\", \"cv04\", \"cv11\", \"liga\" 1}code,pre,kbd,samp,.font-mono{font-family:\"Geist Mono\", monospace}body{font-weight:450}.sidebar-title{font-weight:650;font-size:0.75rem;letter-spacing:0.06em;text-transform:uppercase}"}],"page":{"pagePath":"api-reference/endpoints/post__portfolios_import","slug":"/api-reference/endpoints/post__portfolios_import","pageMetadata":{"title":"Commit an approved paper portfolio import","description":"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again.\n\nOperation ID: post__portfolios_import.","deprecated":null,"version":null,"sidebarTitle":"Commit an approved paper portfolio import","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/import","href":"/api-reference/endpoints/post__portfolios_import","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 p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsx(_components.p, {\n children: \"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again.\"\n }), \"\\n\", _jsx(_components.p, {\n children: \"Operation ID: post__portfolios_import.\"\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":"Commit an approved paper portfolio import","description":"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again.\n\nOperation ID: post__portfolios_import.","deprecated":null,"version":null,"sidebarTitle":"Commit an approved paper portfolio import","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/import","href":"/api-reference/endpoints/post__portfolios_import","autogeneratedByOpenApi":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"description":"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again.\n\nOperation ID: post__portfolios_import.","operationId":"post__portfolios_import","requestBody":"fe715115-4dc7-45e4-a1cb-72f01f8cf874","responses":{"200":"ac6e63e9-d810-422d-90f9-e43de93cffc0","201":"7a287ca9-133b-44f4-b67b-1b8f3554a3a9","400":"279e0633-8345-44f1-9afb-1513fc788f96","401":"191cc675-8319-4d95-a2a6-2462209e38b0","403":"aafdb317-1a25-4783-905c-851431d12113","500":"20adedb9-059d-461c-9987-6376aed7ff54"},"security":["4be08cb2-274e-4a66-9310-5f5fcd6094fa"],"summary":"Commit an approved paper portfolio import","tags":["Portfolios"],"x-mint":{"href":"/api-reference/endpoints/post__portfolios_import","metadata":{"playground":"simple","sidebarTitle":"Commit an approved paper portfolio import","title":"Commit an approved paper portfolio import"}},"method":"post","type":"path","servers":["885fa0e1-2ea5-48b1-835e-2157d8c1a66e"],"path":"/portfolios/import","baseUrlOptions":["https://api.itoflow.ai"],"title":"Commit an approved paper portfolio import","codeSamples":[],"requestExampleLanguages":["bash","python","javascript"],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated","disableProxy":true,"urlDisplay":"full"},"dependencies":{"parameters":{},"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Commit the exact normalized draft returned by preflight after explicit user approval. Add draft.approved_at, use an output_id ending :approved, and pass the current approval_token. Revalidate and obtain renewed approval after a material change.","properties":{"approval_token":{"description":"Current approval_token returned by preflight for the exact normalized draft and allocated amount.","maxLength":4000,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"approval_token","typeLabel":"string"},"draft":{"additionalProperties":false,"properties":{"approved_at":{"oneOf":[{"type":"string","description":"ISO timestamp set only after the user explicitly approves the complete reviewed draft.","format":"date-time","isRequired":true,"uniqueKey":"draft.approved_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"string","description":"ISO timestamp set only after the user explicitly approves the complete reviewed draft.","format":"date-time","isRequired":true,"uniqueKey":"draft.approved_at.oneOf.1","typeLabel":"string\u003cdate-time>"}],"isRequired":true,"uniqueKey":"draft.approved_at","typeLabel":"string\u003cdate-time>"},"draft_id":{"description":"Stable id for this parsed portfolio draft across review revisions.","maxLength":120,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.draft_id","typeLabel":"string"},"execution_mode":{"description":"Always paper for chat portfolio uploads; this import cannot create a live portfolio.","enum":["paper"],"type":"string","isRequired":true,"uniqueKey":"draft.execution_mode","typeLabel":"enum\u003cstring>"},"holdings":{"description":"Parsed holding rows for user review and possible import.","items":{"additionalProperties":false,"description":"One parsed holding row for the editable portfolio upload review.","properties":{"quantity":{"description":"Signed number of shares or units held: positive for a long, negative for a short. Never market value, allocation weight, total cost, or cash.","pattern":"^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].quantity","typeLabel":"string"},"row_id":{"description":"Stable row id used for edits, validation errors, and import diagnostics.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].row_id","typeLabel":"string"},"symbol":{"description":"Fully qualified holding symbol in SYMBOL.EXCHANGE format, matching symbol_resolution.symbol after lookup.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].symbol","typeLabel":"string"},"cost_basis":{"description":"Optional average entry price per one share/unit in currency and price_unit terms; omit when unknown and never use 0 as a placeholder; never copy total cost, total invested, or current value into this field. A deterministic per-unit value reconciled from quantity, market value, signed unrealized P\u0026L, explicit currency evidence, and available current-price evidence is allowed when the derivation is recorded as a row warning.","pattern":"^(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"string","uniqueKey":"draft.holdings.items.[INDEX].cost_basis","typeLabel":"string"},"currency":{"description":"Ledger currency established by source or user edit evidence, or by verified Itoflow provider symbol metadata; never infer it from unverified symbol text, exchange, broker, country, or filename.","enum":["USD","EUR","GBP","ZAR","ILS","JPY","CAD","AUD","CHF","INR","HKD","SEK","NOK","DKK","PLN","SGD","KRW","TWD","CNY","SAR","TRY","QAR","AED","ISK","NZD"],"type":"string","uniqueKey":"draft.holdings.items.[INDEX].currency","typeLabel":"enum\u003cstring>"},"included":{"default":true,"description":"Whether this holding row should be imported if the user confirms.","type":"boolean","uniqueKey":"draft.holdings.items.[INDEX].included","typeLabel":"boolean"},"issues":{"default":[],"description":"Row-scoped parser or validation issues; error severity blocks confirmation.","items":{"additionalProperties":false,"description":"Typed validation or parser issue attached to the portfolio draft.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX].message","typeLabel":"string"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX].row_id","typeLabel":"string"},"severity":{"default":"error","description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["code","message"],"type":"object","uniqueKey":"draft.holdings.items.[INDEX].issues.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.holdings.items.[INDEX].issues","typeLabel":"object[]"},"price_unit":{"default":"NATIVE","description":"Quote denomination for unit_value and cost_basis; use NATIVE unless the source or selected Itoflow symbol metadata explicitly quotes GBX, ZAC, or ILA.","enum":["NATIVE","GBX","ZAC","ILA"],"type":"string","uniqueKey":"draft.holdings.items.[INDEX].price_unit","typeLabel":"enum\u003cstring>"},"side":{"description":"Optional position side copied from a side column: long or L, short or S, in any case. A short side turns a positive quantity negative; omit side when the quantity already carries its sign.","pattern":"^(?:[Ll][Oo][Nn][Gg]|[Ll]|[Ss][Hh][Oo][Rr][Tt]|[Ss])$","type":"string","uniqueKey":"draft.holdings.items.[INDEX].side","typeLabel":"string"},"source":{"description":"Short source note for the row, such as filename, screenshot area, or sheet name.","maxLength":240,"type":"string","uniqueKey":"draft.holdings.items.[INDEX].source","typeLabel":"string"},"symbol_resolution":{"additionalProperties":false,"description":"Selected Itoflow symbol lookup result for a holding; this is not free text.","properties":{"code":{"description":"Provider ticker code from the selected Itoflow symbol result.","maxLength":40,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.code","typeLabel":"string"},"exchange":{"description":"Exchange code from the selected Itoflow symbol result.","maxLength":40,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.exchange","typeLabel":"string"},"name":{"description":"Instrument name from the selected Itoflow symbol result.","maxLength":240,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.name","typeLabel":"string"},"symbol":{"description":"Fully qualified Itoflow symbol selected from lookup, e.g. AAPL.US.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.symbol","typeLabel":"string"},"currency":{"oneOf":[{"description":"Currency or quote-unit alias returned by the selected Itoflow symbol result.","pattern":"^(?:[A-Z]{3}|GBp)$","type":"string","uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.currency.oneOf.0","typeLabel":"string"},{"description":"Currency or quote-unit alias returned by the selected Itoflow symbol result.","pattern":"^(?:[A-Z]{3}|GBp)$","type":"null","uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.currency.oneOf.1","typeLabel":"null"}],"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.currency","typeLabel":"string | null"},"type":{"oneOf":[{"description":"Instrument type from the selected Itoflow symbol result when known.","maxLength":120,"type":"string","uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.type.oneOf.0","typeLabel":"string"},{"description":"Instrument type from the selected Itoflow symbol result when known.","maxLength":120,"type":"null","uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.type.oneOf.1","typeLabel":"null"}],"uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution.type","typeLabel":"string | null"}},"required":["code","exchange","name","symbol"],"type":"object","uniqueKey":"draft.holdings.items.[INDEX].symbol_resolution","typeLabel":"object"},"unit_scale":{"description":"Required only for supported quote subdivisions GBX, ZAC, or ILA; omit for NATIVE price units.","enum":["0.01"],"type":"string","uniqueKey":"draft.holdings.items.[INDEX].unit_scale","typeLabel":"enum\u003cstring>"},"unit_value":{"description":"Optional parsed current market price per one share/unit in currency and price_unit terms; omit when unknown. Import validation ignores this field and resolves provider current prices for display when available; never total row value, market value, account value, invested value, or position value.","pattern":"^(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"string","uniqueKey":"draft.holdings.items.[INDEX].unit_value","typeLabel":"string"}},"required":["quantity","row_id","symbol"],"type":"object","uniqueKey":"draft.holdings.items.[INDEX]","typeLabel":"object"},"maxItems":3000,"type":"array","isRequired":true,"uniqueKey":"draft.holdings","typeLabel":"object[]"},"portfolio_name":{"description":"User-editable name for the managed paper portfolio to create.","maxLength":100,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.portfolio_name","typeLabel":"string"},"portfolio_type":{"description":"Always managed for chat portfolio uploads; this import cannot create a reference portfolio.","enum":["managed"],"type":"string","isRequired":true,"uniqueKey":"draft.portfolio_type","typeLabel":"enum\u003cstring>"},"revision":{"description":"Draft revision number; it increases each time the draft is reparsed or repaired.","minimum":0,"type":"integer","isRequired":true,"uniqueKey":"draft.revision","typeLabel":"integer"},"schema_version":{"description":"Portfolio upload draft schema version; currently v1.","enum":["v1"],"type":"string","isRequired":true,"uniqueKey":"draft.schema_version","typeLabel":"enum\u003cstring>"},"cash":{"default":[],"description":"Optional parsed cash balances to import alongside holdings.","items":{"additionalProperties":false,"description":"One parsed cash balance row for the editable portfolio upload review.","properties":{"amount":{"description":"Cash amount in the row currency; negative for borrowed cash such as a margin loan. Never a security quantity or portfolio total unless explicitly a cash balance.","pattern":"^-?(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"string","isRequired":true,"uniqueKey":"draft.cash.items.[INDEX].amount","typeLabel":"string"},"row_id":{"description":"Stable cash row id used for edits, validation errors, and import diagnostics.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.cash.items.[INDEX].row_id","typeLabel":"string"},"currency":{"description":"Ledger currency established by source or user edit evidence, or by verified Itoflow provider symbol metadata; never infer it from unverified symbol text, exchange, broker, country, or filename.","enum":["USD","EUR","GBP","ZAR","ILS","JPY","CAD","AUD","CHF","INR","HKD","SEK","NOK","DKK","PLN","SGD","KRW","TWD","CNY","SAR","TRY","QAR","AED","ISK","NZD"],"type":"string","uniqueKey":"draft.cash.items.[INDEX].currency","typeLabel":"enum\u003cstring>"},"included":{"default":true,"description":"Whether this cash row should be imported if the user confirms.","type":"boolean","uniqueKey":"draft.cash.items.[INDEX].included","typeLabel":"boolean"},"issues":{"default":[],"description":"Cash-row parser or validation issues; error severity blocks confirmation.","items":{"additionalProperties":false,"description":"Typed validation or parser issue attached to the portfolio draft.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX].message","typeLabel":"string"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX].row_id","typeLabel":"string"},"severity":{"default":"error","description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["code","message"],"type":"object","uniqueKey":"draft.cash.items.[INDEX].issues.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.cash.items.[INDEX].issues","typeLabel":"object[]"},"source":{"description":"Short source note for the cash row, such as filename, screenshot area, or sheet name.","maxLength":240,"type":"string","uniqueKey":"draft.cash.items.[INDEX].source","typeLabel":"string"}},"required":["amount","row_id"],"type":"object","uniqueKey":"draft.cash.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.cash","typeLabel":"object[]"},"parser_warnings":{"default":[],"description":"Draft-level parsing warnings from ambiguous or incomplete source evidence.","items":{"additionalProperties":false,"description":"Typed validation or parser issue attached to the portfolio draft.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.parser_warnings.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.parser_warnings.items.[INDEX].message","typeLabel":"string"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"draft.parser_warnings.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"draft.parser_warnings.items.[INDEX].row_id","typeLabel":"string"},"severity":{"default":"error","description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","uniqueKey":"draft.parser_warnings.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["code","message"],"type":"object","uniqueKey":"draft.parser_warnings.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.parser_warnings","typeLabel":"object[]"},"portfolio_value":{"additionalProperties":false,"description":"Optional user/source value to reconcile with quantity-bearing holdings. Omit when the current provider-priced mark is the only known value.","properties":{"amount":{"description":"Decimal string without commas or currency symbols.","pattern":"^(?:0|[1-9]\\d*)(?:\\.\\d+)?$","type":"string","isRequired":true,"uniqueKey":"draft.portfolio_value.amount","typeLabel":"string"},"as_of_date":{"description":"Date of the user or source portfolio value, not the import timestamp.","pattern":"^\\d{4}-\\d{2}-\\d{2}$","type":"string","isRequired":true,"uniqueKey":"draft.portfolio_value.as_of_date","typeLabel":"string"},"basis":{"description":"Use portfolio_value for any new portfolio notional, including a fund NAV found at the user's request. fund_total_nav is only for an explicit, user-declared fund-total-NAV statement.","enum":["portfolio_value","fund_total_nav"],"type":"string","isRequired":true,"uniqueKey":"draft.portfolio_value.basis","typeLabel":"enum\u003cstring>"},"currency":{"description":"Ledger currency established by source or user edit evidence, or by verified Itoflow provider symbol metadata; never infer it from unverified symbol text, exchange, broker, country, or filename.","enum":["USD","EUR","GBP","ZAR","ILS","JPY","CAD","AUD","CHF","INR","HKD","SEK","NOK","DKK","PLN","SGD","KRW","TWD","CNY","SAR","TRY","QAR","AED","ISK","NZD"],"type":"string","isRequired":true,"uniqueKey":"draft.portfolio_value.currency","typeLabel":"enum\u003cstring>"},"source":{"description":"Where the one stated portfolio value came from.","enum":["user_declared","source_document"],"type":"string","isRequired":true,"uniqueKey":"draft.portfolio_value.source","typeLabel":"enum\u003cstring>"}},"required":["amount","as_of_date","basis","currency","source"],"type":"object","uniqueKey":"draft.portfolio_value","typeLabel":"object"},"source_attachments":{"default":[],"description":"Compact references to the files or screenshots used to parse this draft.","items":{"additionalProperties":false,"description":"Compact reference to a source attachment used to parse the draft.","properties":{"filename":{"description":"Original uploaded filename or screenshot label.","maxLength":240,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.source_attachments.items.[INDEX].filename","typeLabel":"string"},"attachment_id":{"description":"Stable chat attachment id when available.","type":"string","uniqueKey":"draft.source_attachments.items.[INDEX].attachment_id","typeLabel":"string"},"media_type":{"description":"Attachment MIME/media type when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"draft.source_attachments.items.[INDEX].media_type","typeLabel":"string"},"sha256":{"description":"Hash of the source attachment when available.","maxLength":128,"minLength":8,"type":"string","uniqueKey":"draft.source_attachments.items.[INDEX].sha256","typeLabel":"string"},"workspace_path":{"description":"Workspace path for the attachment artifact when available.","maxLength":400,"minLength":1,"type":"string","uniqueKey":"draft.source_attachments.items.[INDEX].workspace_path","typeLabel":"string"}},"required":["filename"],"type":"object","uniqueKey":"draft.source_attachments.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.source_attachments","typeLabel":"object[]"},"source_broker":{"description":"Broker or platform the user appears to keep this portfolio in; metadata only, never evidence for row currency or quote unit.","enum":["trading212","robinhood","zerodha","alpaca","ibkr","other"],"type":"string","uniqueKey":"draft.source_broker","typeLabel":"enum\u003cstring>"},"validation_issues":{"default":[],"description":"Draft-level validation issues not tied to one holding or cash row.","items":{"additionalProperties":false,"description":"Typed validation or parser issue attached to the portfolio draft.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.validation_issues.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft.validation_issues.items.[INDEX].message","typeLabel":"string"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"draft.validation_issues.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"draft.validation_issues.items.[INDEX].row_id","typeLabel":"string"},"severity":{"default":"error","description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","uniqueKey":"draft.validation_issues.items.[INDEX].severity","typeLabel":"enum\u003cstring>"}},"required":["code","message"],"type":"object","uniqueKey":"draft.validation_issues.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"draft.validation_issues","typeLabel":"object[]"}},"required":["draft_id","execution_mode","holdings","portfolio_name","portfolio_type","revision","schema_version","approved_at"],"type":"object","isRequired":true,"uniqueKey":"draft","typeLabel":"object"},"output_id":{"description":"Stable reviewed output id ending in :approved. Preserve the reviewed id prefix for idempotency.","maxLength":240,"minLength":1,"pattern":":approved$","type":"string","isRequired":true,"uniqueKey":"output_id","typeLabel":"string"},"draft_file":{"additionalProperties":false,"description":"Optional draft.json file reference used for auditability.","properties":{"path":{"description":"Workspace-relative path to the validated draft JSON file.","maxLength":240,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"draft_file.path","typeLabel":"string"},"sha256":{"description":"Hash of the draft JSON file when available.","maxLength":128,"minLength":8,"type":"string","uniqueKey":"draft_file.sha256","typeLabel":"string"},"size_bytes":{"description":"Draft JSON file size in bytes when available.","minimum":0,"type":"integer","uniqueKey":"draft_file.size_bytes","typeLabel":"integer"}},"required":["path"],"type":"object","uniqueKey":"draft_file","typeLabel":"object"}},"required":["approval_token","draft","output_id"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"approval_token":"\u003cstring>","draft":{"approved_at":"2023-11-07T05:31:56Z","draft_id":"\u003cstring>","execution_mode":"paper","holdings":[{"quantity":"\u003cstring>","row_id":"\u003cstring>","symbol":"\u003cstring>","cost_basis":"\u003cstring>","included":true,"issues":[],"price_unit":"NATIVE","side":"\u003cstring>","source":"\u003cstring>","unit_scale":"0.01","unit_value":"\u003cstring>"}],"portfolio_name":"\u003cstring>","portfolio_type":"managed","revision":1,"schema_version":"v1","cash":[],"parser_warnings":[],"source_attachments":[],"validation_issues":[]},"output_id":"\u003cstring>"}}},"exampleType":"generated"}},"required":true,"exampleType":"generated"},"responses":{"ac6e63e9-d810-422d-90f9-e43de93cffc0":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","description":"Successful managed paper portfolio import response.","required":["ok","portfolio_id","portfolio_url"],"properties":{"ok":{"description":"True when import succeeded.","enum":[true],"type":"boolean","isRequired":true,"uniqueKey":"oneOf.0.ok","typeLabel":"enum\u003cboolean>"},"portfolio_id":{"description":"Id of the created managed paper portfolio.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_id","typeLabel":"string"},"portfolio_url":{"description":"App URL path for the created portfolio.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_url","typeLabel":"string"},"allocated_amount_usd":{"description":"USD capital allocated to the imported managed paper portfolio.","minLength":1,"type":"string","uniqueKey":"oneOf.0.allocated_amount_usd","typeLabel":"string"},"execution_mode":{"description":"Execution mode of the created portfolio.","enum":["paper"],"type":"string","uniqueKey":"oneOf.0.execution_mode","typeLabel":"enum\u003cstring>"},"idempotent":{"description":"True when this response came from an idempotent retry of an existing import.","type":"boolean","uniqueKey":"oneOf.0.idempotent","typeLabel":"boolean"},"imported_cash_count":{"description":"Count of cash rows imported.","minimum":0,"type":"integer","uniqueKey":"oneOf.0.imported_cash_count","typeLabel":"integer"},"imported_holding_count":{"description":"Count of holding rows imported.","minimum":0,"type":"integer","uniqueKey":"oneOf.0.imported_holding_count","typeLabel":"integer"},"portfolio_type":{"description":"Portfolio type of the created portfolio.","enum":["managed"],"type":"string","uniqueKey":"oneOf.0.portfolio_type","typeLabel":"enum\u003cstring>"},"portfolio_value":{"additionalProperties":false,"description":"Reviewed value provenance and its difference from the current provider mark, when comparable.","properties":{"amount_usd":{"description":"Reviewed portfolio value in USD.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.amount_usd","typeLabel":"string"},"as_of_date":{"oneOf":[{"description":"Date of the reviewed value, when known.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.as_of_date.oneOf.0","typeLabel":"string"},{"description":"Date of the reviewed value, when known.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.as_of_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.as_of_date","typeLabel":"string | null"},"basis":{"description":"Role of the reviewed value.","enum":["portfolio_value","fund_total_nav"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.basis","typeLabel":"enum\u003cstring>"},"current_mark_as_of_date":{"oneOf":[{"description":"Date of the provider-priced mark, when known.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_as_of_date.oneOf.0","typeLabel":"string"},{"description":"Date of the provider-priced mark, when known.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_as_of_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_as_of_date","typeLabel":"string | null"},"current_mark_usd":{"oneOf":[{"description":"Current provider-priced mark in USD, when available.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_usd.oneOf.0","typeLabel":"string"},{"description":"Current provider-priced mark in USD, when available.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.current_mark_usd","typeLabel":"string | null"},"difference_usd":{"oneOf":[{"description":"Reviewed value less the current provider mark in USD, when comparable.","type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.difference_usd.oneOf.0","typeLabel":"string"},{"description":"Reviewed value less the current provider mark in USD, when comparable.","type":"null","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.difference_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.difference_usd","typeLabel":"string | null"},"source":{"description":"Provenance of the reviewed value.","enum":["provider_derived","user_declared","source_document"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.portfolio_value.source","typeLabel":"enum\u003cstring>"}},"required":["amount_usd","as_of_date","basis","current_mark_usd","current_mark_as_of_date","difference_usd","source"],"type":"object","uniqueKey":"oneOf.0.portfolio_value","typeLabel":"object"},"presentation_hint":{"description":"Hint about what is attached to the portfolio, based on verified state. A fresh import has nothing attached and keeps any watch-or-manage intent already supplied; an idempotent retry may instead report an existing monitor or strategy, or say the state could not be verified. A failed lookup does not mean nothing is attached.","minLength":1,"type":"string","uniqueKey":"oneOf.0.presentation_hint","typeLabel":"string"},"row_warnings":{"description":"Per-holding valuation warnings with row_id. Price warnings use field price: price_not_fetched means the vendor did not answer; no_recent_close means no usable close in the last 14 days. holding_fx_unavailable uses field currency and names the missing exchange rate to USD. Warnings do not block confirmation.","items":{"additionalProperties":false,"description":"Normalized validation or parser issue returned by portfolio import APIs.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.0.row_warnings.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.0.row_warnings.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","isRequired":true,"uniqueKey":"oneOf.0.row_warnings.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"oneOf.0.row_warnings.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"oneOf.0.row_warnings.items.[INDEX].row_id","typeLabel":"string"}},"required":["code","message","severity"],"type":"object","uniqueKey":"oneOf.0.row_warnings.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"oneOf.0.row_warnings","typeLabel":"object[]"},"source_broker":{"oneOf":[{"description":"Broker metadata stored with the created portfolio, or null when absent.","enum":["trading212","robinhood","zerodha","alpaca","ibkr","other",null],"type":"string","uniqueKey":"oneOf.0.source_broker.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Broker metadata stored with the created portfolio, or null when absent.","enum":["trading212","robinhood","zerodha","alpaca","ibkr","other",null],"type":"null","uniqueKey":"oneOf.0.source_broker.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.source_broker","typeLabel":"enum\u003cstring> | null"},"strategy_id":{"description":"Id of a controlling strategy already linked to this portfolio, when present. Fresh import does not create a strategy; this is set only on an idempotent retry of an older import that already has one.","minLength":1,"type":"string","uniqueKey":"oneOf.0.strategy_id","typeLabel":"string"},"strategy_name":{"description":"Name of the already-linked controlling strategy, when present.","minLength":1,"type":"string","uniqueKey":"oneOf.0.strategy_name","typeLabel":"string"},"strategy_url":{"description":"App URL path for the already-linked controlling strategy, when present.","minLength":1,"type":"string","uniqueKey":"oneOf.0.strategy_url","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"Portfolio import validation or import failure response.","required":["error","message","ok","row_errors"],"properties":{"error":{"description":"Stable machine-readable import error code.","maxLength":120,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.1.error","typeLabel":"string"},"message":{"description":"Short user-facing explanation of why validation or import failed.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.1.message","typeLabel":"string"},"ok":{"description":"False when validation or import failed.","enum":[false],"type":"boolean","isRequired":true,"uniqueKey":"oneOf.1.ok","typeLabel":"enum\u003cboolean>"},"row_errors":{"description":"Typed row-level errors, for showing beside fields and for fixing rows.","items":{"additionalProperties":false,"description":"Normalized validation or parser issue returned by portfolio import APIs.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.1.row_errors.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"oneOf.1.row_errors.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","isRequired":true,"uniqueKey":"oneOf.1.row_errors.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"oneOf.1.row_errors.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"oneOf.1.row_errors.items.[INDEX].row_id","typeLabel":"string"}},"required":["code","message","severity"],"type":"object","uniqueKey":"oneOf.1.row_errors.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"oneOf.1.row_errors","typeLabel":"object[]"},"allocated_amount_usd":{"description":"USD capital requested by the draft when calculable.","minLength":1,"type":"string","uniqueKey":"oneOf.1.allocated_amount_usd","typeLabel":"string"},"available":{"description":"Available value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"oneOf.1.available","typeLabel":"string"},"requested":{"description":"Requested value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"oneOf.1.requested","typeLabel":"string"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"ok":true,"portfolio_id":"\u003cstring>","portfolio_url":"\u003cstring>","allocated_amount_usd":"\u003cstring>","execution_mode":"paper","idempotent":true,"imported_cash_count":1,"imported_holding_count":1,"portfolio_type":"managed","portfolio_value":{"amount_usd":"\u003cstring>","as_of_date":"\u003cstring>","basis":"portfolio_value","current_mark_as_of_date":"\u003cstring>","current_mark_usd":"\u003cstring>","difference_usd":"\u003cstring>","source":"provider_derived"},"presentation_hint":"\u003cstring>","row_warnings":[{"code":"\u003cstring>","message":"\u003cstring>","severity":"info","field":"\u003cstring>","row_id":"\u003cstring>"}],"source_broker":"trading212","strategy_id":"\u003cstring>","strategy_name":"\u003cstring>","strategy_url":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Idempotent portfolio import result","exampleType":"generated"},"7a287ca9-133b-44f4-b67b-1b8f3554a3a9":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Successful managed paper portfolio import response.","properties":{"ok":{"description":"True when import succeeded.","enum":[true],"type":"boolean","isRequired":true,"uniqueKey":"ok","typeLabel":"enum\u003cboolean>"},"portfolio_id":{"description":"Id of the created managed paper portfolio.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"portfolio_id","typeLabel":"string"},"portfolio_url":{"description":"App URL path for the created portfolio.","minLength":1,"type":"string","isRequired":true,"uniqueKey":"portfolio_url","typeLabel":"string"},"allocated_amount_usd":{"description":"USD capital allocated to the imported managed paper portfolio.","minLength":1,"type":"string","uniqueKey":"allocated_amount_usd","typeLabel":"string"},"execution_mode":{"description":"Execution mode of the created portfolio.","enum":["paper"],"type":"string","uniqueKey":"execution_mode","typeLabel":"enum\u003cstring>"},"idempotent":{"description":"True when this response came from an idempotent retry of an existing import.","type":"boolean","uniqueKey":"idempotent","typeLabel":"boolean"},"imported_cash_count":{"description":"Count of cash rows imported.","minimum":0,"type":"integer","uniqueKey":"imported_cash_count","typeLabel":"integer"},"imported_holding_count":{"description":"Count of holding rows imported.","minimum":0,"type":"integer","uniqueKey":"imported_holding_count","typeLabel":"integer"},"portfolio_type":{"description":"Portfolio type of the created portfolio.","enum":["managed"],"type":"string","uniqueKey":"portfolio_type","typeLabel":"enum\u003cstring>"},"portfolio_value":{"additionalProperties":false,"description":"Reviewed value provenance and its difference from the current provider mark, when comparable.","properties":{"amount_usd":{"description":"Reviewed portfolio value in USD.","type":"string","isRequired":true,"uniqueKey":"portfolio_value.amount_usd","typeLabel":"string"},"as_of_date":{"oneOf":[{"description":"Date of the reviewed value, when known.","type":"string","isRequired":true,"uniqueKey":"portfolio_value.as_of_date.oneOf.0","typeLabel":"string"},{"description":"Date of the reviewed value, when known.","type":"null","isRequired":true,"uniqueKey":"portfolio_value.as_of_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"portfolio_value.as_of_date","typeLabel":"string | null"},"basis":{"description":"Role of the reviewed value.","enum":["portfolio_value","fund_total_nav"],"type":"string","isRequired":true,"uniqueKey":"portfolio_value.basis","typeLabel":"enum\u003cstring>"},"current_mark_as_of_date":{"oneOf":[{"description":"Date of the provider-priced mark, when known.","type":"string","isRequired":true,"uniqueKey":"portfolio_value.current_mark_as_of_date.oneOf.0","typeLabel":"string"},{"description":"Date of the provider-priced mark, when known.","type":"null","isRequired":true,"uniqueKey":"portfolio_value.current_mark_as_of_date.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"portfolio_value.current_mark_as_of_date","typeLabel":"string | null"},"current_mark_usd":{"oneOf":[{"description":"Current provider-priced mark in USD, when available.","type":"string","isRequired":true,"uniqueKey":"portfolio_value.current_mark_usd.oneOf.0","typeLabel":"string"},{"description":"Current provider-priced mark in USD, when available.","type":"null","isRequired":true,"uniqueKey":"portfolio_value.current_mark_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"portfolio_value.current_mark_usd","typeLabel":"string | null"},"difference_usd":{"oneOf":[{"description":"Reviewed value less the current provider mark in USD, when comparable.","type":"string","isRequired":true,"uniqueKey":"portfolio_value.difference_usd.oneOf.0","typeLabel":"string"},{"description":"Reviewed value less the current provider mark in USD, when comparable.","type":"null","isRequired":true,"uniqueKey":"portfolio_value.difference_usd.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"portfolio_value.difference_usd","typeLabel":"string | null"},"source":{"description":"Provenance of the reviewed value.","enum":["provider_derived","user_declared","source_document"],"type":"string","isRequired":true,"uniqueKey":"portfolio_value.source","typeLabel":"enum\u003cstring>"}},"required":["amount_usd","as_of_date","basis","current_mark_usd","current_mark_as_of_date","difference_usd","source"],"type":"object","uniqueKey":"portfolio_value","typeLabel":"object"},"presentation_hint":{"description":"Hint about what is attached to the portfolio, based on verified state. A fresh import has nothing attached and keeps any watch-or-manage intent already supplied; an idempotent retry may instead report an existing monitor or strategy, or say the state could not be verified. A failed lookup does not mean nothing is attached.","minLength":1,"type":"string","uniqueKey":"presentation_hint","typeLabel":"string"},"row_warnings":{"description":"Per-holding valuation warnings with row_id. Price warnings use field price: price_not_fetched means the vendor did not answer; no_recent_close means no usable close in the last 14 days. holding_fx_unavailable uses field currency and names the missing exchange rate to USD. Warnings do not block confirmation.","items":{"additionalProperties":false,"description":"Normalized validation or parser issue returned by portfolio import APIs.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_warnings.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_warnings.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","isRequired":true,"uniqueKey":"row_warnings.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"row_warnings.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"row_warnings.items.[INDEX].row_id","typeLabel":"string"}},"required":["code","message","severity"],"type":"object","uniqueKey":"row_warnings.items.[INDEX]","typeLabel":"object"},"type":"array","uniqueKey":"row_warnings","typeLabel":"object[]"},"source_broker":{"oneOf":[{"description":"Broker metadata stored with the created portfolio, or null when absent.","enum":["trading212","robinhood","zerodha","alpaca","ibkr","other",null],"type":"string","uniqueKey":"source_broker.oneOf.0","typeLabel":"enum\u003cstring>"},{"description":"Broker metadata stored with the created portfolio, or null when absent.","enum":["trading212","robinhood","zerodha","alpaca","ibkr","other",null],"type":"null","uniqueKey":"source_broker.oneOf.1","typeLabel":"null"}],"uniqueKey":"source_broker","typeLabel":"enum\u003cstring> | null"},"strategy_id":{"description":"Id of a controlling strategy already linked to this portfolio, when present. Fresh import does not create a strategy; this is set only on an idempotent retry of an older import that already has one.","minLength":1,"type":"string","uniqueKey":"strategy_id","typeLabel":"string"},"strategy_name":{"description":"Name of the already-linked controlling strategy, when present.","minLength":1,"type":"string","uniqueKey":"strategy_name","typeLabel":"string"},"strategy_url":{"description":"App URL path for the already-linked controlling strategy, when present.","minLength":1,"type":"string","uniqueKey":"strategy_url","typeLabel":"string"}},"required":["ok","portfolio_id","portfolio_url"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"ok":true,"portfolio_id":"\u003cstring>","portfolio_url":"\u003cstring>","allocated_amount_usd":"\u003cstring>","execution_mode":"paper","idempotent":true,"imported_cash_count":1,"imported_holding_count":1,"portfolio_type":"managed","portfolio_value":{"amount_usd":"\u003cstring>","as_of_date":"\u003cstring>","basis":"portfolio_value","current_mark_as_of_date":"\u003cstring>","current_mark_usd":"\u003cstring>","difference_usd":"\u003cstring>","source":"provider_derived"},"presentation_hint":"\u003cstring>","row_warnings":[{"code":"\u003cstring>","message":"\u003cstring>","severity":"info","field":"\u003cstring>","row_id":"\u003cstring>"}],"source_broker":"trading212","strategy_id":"\u003cstring>","strategy_name":"\u003cstring>","strategy_url":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Portfolio imported","exampleType":"generated"},"279e0633-8345-44f1-9afb-1513fc788f96":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Portfolio import validation or import failure response.","properties":{"error":{"description":"Stable machine-readable import error code.","maxLength":120,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"description":"Short user-facing explanation of why validation or import failed.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"ok":{"description":"False when validation or import failed.","enum":[false],"type":"boolean","isRequired":true,"uniqueKey":"ok","typeLabel":"enum\u003cboolean>"},"row_errors":{"description":"Typed row-level errors, for showing beside fields and for fixing rows.","items":{"additionalProperties":false,"description":"Normalized validation or parser issue returned by portfolio import APIs.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"row_errors.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"row_errors.items.[INDEX].row_id","typeLabel":"string"}},"required":["code","message","severity"],"type":"object","uniqueKey":"row_errors.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"row_errors","typeLabel":"object[]"},"allocated_amount_usd":{"description":"USD capital requested by the draft when calculable.","minLength":1,"type":"string","uniqueKey":"allocated_amount_usd","typeLabel":"string"},"available":{"description":"Available value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"available","typeLabel":"string"},"requested":{"description":"Requested value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"requested","typeLabel":"string"}},"required":["error","message","ok","row_errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","ok":false,"row_errors":[{"code":"\u003cstring>","message":"\u003cstring>","severity":"info","field":"\u003cstring>","row_id":"\u003cstring>"}],"allocated_amount_usd":"\u003cstring>","available":"\u003cstring>","requested":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Portfolio import rejected","exampleType":"generated"},"191cc675-8319-4d95-a2a6-2462209e38b0":{"content":{"application/json":{"schema":{"properties":{"error":{"description":"Error type or code","type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"available":{"description":"Optional available amount or value","type":"string","uniqueKey":"available","typeLabel":"string"},"billing_action":{"description":"Action that resolves a billing-related rejection","properties":{"href":{"type":"string","isRequired":true,"uniqueKey":"billing_action.href","typeLabel":"string"},"kind":{"enum":["upgrade","payment_method","spending_cap","billing"],"type":"string","isRequired":true,"uniqueKey":"billing_action.kind","typeLabel":"enum\u003cstring>"},"label":{"type":"string","isRequired":true,"uniqueKey":"billing_action.label","typeLabel":"string"}},"required":["href","label","kind"],"type":"object","uniqueKey":"billing_action","typeLabel":"object"},"code":{"description":"Machine-readable error code","type":"string","uniqueKey":"code","typeLabel":"string"},"currentVersion":{"description":"Current server-side version, when relevant","type":"number","uniqueKey":"currentVersion","typeLabel":"number"},"details":{"description":"Optional structured error details","uniqueKey":"details","typeLabel":"any"},"expectedVersion":{"description":"Client-provided expected version, when relevant","type":"number","uniqueKey":"expectedVersion","typeLabel":"number"},"message":{"description":"Human-readable error message","type":"string","uniqueKey":"message","typeLabel":"string"},"requested":{"description":"Optional requested amount or value","type":"string","uniqueKey":"requested","typeLabel":"string"},"usage":{"description":"Optional usage metadata for limit errors","uniqueKey":"usage","typeLabel":"any"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","available":"\u003cstring>","billing_action":{"href":"\u003cstring>","kind":"upgrade","label":"\u003cstring>"},"code":"\u003cstring>","currentVersion":123,"details":"\u003cunknown>","expectedVersion":123,"message":"\u003cstring>","requested":"\u003cstring>","usage":"\u003cunknown>"}}},"exampleType":"generated"}},"description":"Authentication required","exampleType":"generated"},"aafdb317-1a25-4783-905c-851431d12113":{"content":{"application/json":{"schema":{"properties":{"error":{"description":"Error type or code","type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"available":{"description":"Optional available amount or value","type":"string","uniqueKey":"available","typeLabel":"string"},"billing_action":{"description":"Action that resolves a billing-related rejection","properties":{"href":{"type":"string","isRequired":true,"uniqueKey":"billing_action.href","typeLabel":"string"},"kind":{"enum":["upgrade","payment_method","spending_cap","billing"],"type":"string","isRequired":true,"uniqueKey":"billing_action.kind","typeLabel":"enum\u003cstring>"},"label":{"type":"string","isRequired":true,"uniqueKey":"billing_action.label","typeLabel":"string"}},"required":["href","label","kind"],"type":"object","uniqueKey":"billing_action","typeLabel":"object"},"code":{"description":"Machine-readable error code","type":"string","uniqueKey":"code","typeLabel":"string"},"currentVersion":{"description":"Current server-side version, when relevant","type":"number","uniqueKey":"currentVersion","typeLabel":"number"},"details":{"description":"Optional structured error details","uniqueKey":"details","typeLabel":"any"},"expectedVersion":{"description":"Client-provided expected version, when relevant","type":"number","uniqueKey":"expectedVersion","typeLabel":"number"},"message":{"description":"Human-readable error message","type":"string","uniqueKey":"message","typeLabel":"string"},"requested":{"description":"Optional requested amount or value","type":"string","uniqueKey":"requested","typeLabel":"string"},"usage":{"description":"Optional usage metadata for limit errors","uniqueKey":"usage","typeLabel":"any"}},"required":["error"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","available":"\u003cstring>","billing_action":{"href":"\u003cstring>","kind":"upgrade","label":"\u003cstring>"},"code":"\u003cstring>","currentVersion":123,"details":"\u003cunknown>","expectedVersion":123,"message":"\u003cstring>","requested":"\u003cstring>","usage":"\u003cunknown>"}}},"exampleType":"generated"}},"description":"Forbidden","exampleType":"generated"},"20adedb9-059d-461c-9987-6376aed7ff54":{"content":{"application/json":{"schema":{"additionalProperties":false,"description":"Portfolio import validation or import failure response.","properties":{"error":{"description":"Stable machine-readable import error code.","maxLength":120,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"error","typeLabel":"string"},"message":{"description":"Short user-facing explanation of why validation or import failed.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"message","typeLabel":"string"},"ok":{"description":"False when validation or import failed.","enum":[false],"type":"boolean","isRequired":true,"uniqueKey":"ok","typeLabel":"enum\u003cboolean>"},"row_errors":{"description":"Typed row-level errors, for showing beside fields and for fixing rows.","items":{"additionalProperties":false,"description":"Normalized validation or parser issue returned by portfolio import APIs.","properties":{"code":{"description":"Stable machine-readable issue code.","maxLength":80,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].code","typeLabel":"string"},"message":{"description":"Short user-facing explanation of the issue.","maxLength":500,"minLength":1,"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].message","typeLabel":"string"},"severity":{"description":"Issue severity; error blocks confirmation.","enum":["info","warning","error"],"type":"string","isRequired":true,"uniqueKey":"row_errors.items.[INDEX].severity","typeLabel":"enum\u003cstring>"},"field":{"description":"Draft field path or row control this issue belongs to when known.","maxLength":120,"minLength":1,"type":"string","uniqueKey":"row_errors.items.[INDEX].field","typeLabel":"string"},"row_id":{"description":"Row id this issue belongs to when the issue is row-scoped.","maxLength":80,"minLength":1,"type":"string","uniqueKey":"row_errors.items.[INDEX].row_id","typeLabel":"string"}},"required":["code","message","severity"],"type":"object","uniqueKey":"row_errors.items.[INDEX]","typeLabel":"object"},"type":"array","isRequired":true,"uniqueKey":"row_errors","typeLabel":"object[]"},"allocated_amount_usd":{"description":"USD capital requested by the draft when calculable.","minLength":1,"type":"string","uniqueKey":"allocated_amount_usd","typeLabel":"string"},"available":{"description":"Available value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"available","typeLabel":"string"},"requested":{"description":"Requested value for balance or capacity failures when available.","minLength":1,"type":"string","uniqueKey":"requested","typeLabel":"string"}},"required":["error","message","ok","row_errors"],"type":"object","uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":"\u003cstring>","message":"\u003cstring>","ok":false,"row_errors":[{"code":"\u003cstring>","message":"\u003cstring>","severity":"info","field":"\u003cstring>","row_id":"\u003cstring>"}],"allocated_amount_usd":"\u003cstring>","available":"\u003cstring>","requested":"\u003cstring>"}}},"exampleType":"generated"}},"description":"Server error","exampleType":"generated"}},"security":{"4be08cb2-274e-4a66-9310-5f5fcd6094fa":{"bearerAuth":{"bearerFormat":"JWT","description":"Itoflow access token issued for the Itoflow API.","scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"885fa0e1-2ea5-48b1-835e-2157d8c1a66e":{"description":"Itoflow API","url":"https://api.itoflow.ai"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"bearerFormat":"JWT","description":"Itoflow access token issued for the Itoflow API.","scheme":"bearer","type":"http","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Itoflow access token issued for the Itoflow API.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi/itoflow-public.openapi.json"},"subdomain":"itoflow","siteName":"Itoflow developer docs","title":"Commit an approved paper portfolio import - Itoflow developer docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T07:47:25.464Z","originalFileLocation":"api-reference/endpoints/post__portfolios_import.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=\"dark\"}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=\"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again. Operation ID: post__portfolios_import.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Itoflow developer docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_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/itoflow/TsEkVxPr_ppj41sQ/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Commit an approved paper portfolio import - Itoflow developer docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again. Operation ID: post__portfolios_import.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Itoflow developer docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://itoflow.mintlify.site/_mintlify/api/og/v2?division=Portfolios\u0026amp;title=Commit+an+approved+paper+portfolio+import\u0026amp;description=Commit+the+normalized+draft+returned+by+preflight+only+after+explicit+user+approval.+Set+draft.approved_at%2C+use+the+reviewed+output+id+with+an+%3Aapproved+suffix%2C\u0026amp;theme=dad8b8aab01d3e9507fe66b3\u0026amp;signature=342a69c1c6d23a8c5cd91e1cde341489dde8b657d35c2dbecf40d63eb8f5bed3\">\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=\"Commit an approved paper portfolio import - Itoflow developer docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again. Operation ID: post__portfolios_import.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://itoflow.mintlify.site/_mintlify/api/og/v2?division=Portfolios\u0026amp;title=Commit+an+approved+paper+portfolio+import\u0026amp;description=Commit+the+normalized+draft+returned+by+preflight+only+after+explicit+user+approval.+Set+draft.approved_at%2C+use+the+reviewed+output+id+with+an+%3Aapproved+suffix%2C\u0026amp;theme=dad8b8aab01d3e9507fe66b3\u0026amp;signature=342a69c1c6d23a8c5cd91e1cde341489dde8b657d35c2dbecf40d63eb8f5bed3\">\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/itoflow/TsEkVxPr_ppj41sQ/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Itoflow developer docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#0079AD\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/endpoints/post__portfolios_import.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.itoflow.ai/#organization\",\"name\":\"Itoflow developer docs\",\"url\":\"https://docs.itoflow.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/itoflow/sRxx5iBL0vfWaMBY/assets/logo-light.svg?fit=max\u0026auto=format\u0026n=sRxx5iBL0vfWaMBY\u0026q=85\u0026s=3d23e4b830dc16fd51eb271bce00fa46\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.itoflow.ai#website\",\"name\":\"Itoflow developer docs\",\"url\":\"https://docs.itoflow.ai\",\"publisher\":{\"@id\":\"https://docs.itoflow.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import#webpage\",\"url\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import\",\"name\":\"Commit an approved paper portfolio import\",\"description\":\"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again. Operation ID: post__portfolios_import.\",\"dateModified\":\"2026-11-13T07:47:25.464Z\",\"isPartOf\":{\"@id\":\"https://docs.itoflow.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Endpoints\",\"item\":\"https://docs.itoflow.ai/api-reference/endpoints/get__account_billing_costs\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Portfolios\",\"item\":\"https://docs.itoflow.ai/api-reference/endpoints/get__portfolios\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Commit an approved paper portfolio import\",\"item\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import#apireference\",\"headline\":\"Commit an approved paper portfolio import\",\"name\":\"Commit an approved paper portfolio import\",\"description\":\"Commit the normalized draft returned by preflight only after explicit user approval. Set draft.approved_at, use the reviewed output id with an :approved suffix, and pass the current approval token. If pricing or any material input changed, revalidate and review again. Operation ID: post__portfolios_import.\",\"url\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import\",\"mainEntityOfPage\":{\"@id\":\"https://docs.itoflow.ai/api-reference/endpoints/post__portfolios_import#webpage\"},\"dateModified\":\"2026-11-13T07:47:25.464Z\",\"publisher\":{\"@id\":\"https://docs.itoflow.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.itoflow.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Itoflow developer docs\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Itoflow developer docs\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/endpoints/post__portfolios_import.md","siteName":"Itoflow developer docs","nav":{"global":null,"groups":[{"group":"Get started","pages":[{"title":"Itoflow developer docs","sidebarTitle":"Overview","href":"/index"},{"title":"Itoflow MCP","sidebarTitle":"Why use MCP","href":"/mcp/overview"},{"title":"Connect your AI assistant","href":"/mcp/install"},{"title":"Use Itoflow from your assistant","href":"/mcp/usage"},{"title":"Read the docs with AI tools","href":"/guides/ai-tools"}]},{"group":"Platform","pages":[{"title":"How Itoflow works","href":"/platform/how-itoflow-works"},{"title":"The agent harness","href":"/platform/agent-harness"},{"title":"Quant engine and risk model","href":"/platform/quant-engine"},{"title":"Design principles","href":"/guides/design-principles"}]},{"group":"Use cases","pages":[{"title":"Use cases","sidebarTitle":"All use cases","href":"/use-cases/overview"},{"title":"Test a signal or dataset","href":"/use-cases/test-a-signal"},{"title":"Build and stress-test a strategy idea","href":"/use-cases/stress-test-a-strategy-idea"},{"title":"Decide whether a name improves a book","href":"/use-cases/add-a-name-to-a-book"},{"title":"Compare tax-loss harvesting rules","href":"/use-cases/compare-tax-loss-harvesting"},{"title":"Measure a book's factor risk","href":"/use-cases/measure-factor-risk"},{"title":"Analyze your Interactive Brokers portfolio","href":"/use-cases/interactive-brokers-risk"},{"title":"Monitor a portfolio","href":"/use-cases/portfolio-monitoring"},{"title":"Run a strategy under a mandate","href":"/use-cases/run-a-strategy"},{"title":"Get a daily news brief","href":"/use-cases/daily-news-brief"},{"title":"Research with your own code and tools","href":"/use-cases/research-with-your-code"}]},{"group":"Features","pages":[{"title":"Chat","href":"/features/chat"},{"title":"Portfolios and trade approvals","href":"/features/portfolios"},{"title":"Strategies","href":"/features/strategies"},{"title":"Monitors","href":"/features/monitors"},{"title":"Market data and risk","href":"/features/market-data"},{"title":"Broker connections","href":"/features/brokers"},{"title":"Connect GitHub and MCP servers","href":"/features/integrations"},{"title":"Sharing","href":"/features/sharing"},{"title":"Notifications","href":"/features/notifications"},{"title":"Billing and credits","href":"/features/billing"}]},{"group":"HTTP API","pages":[{"title":"Make your first API request","href":"/quickstart/http"},{"title":"Authentication","href":"/authentication"},{"title":"API conventions","href":"/guides/api-conventions"},{"title":"HTTP API overview","href":"/api-reference/overview"},{"title":"Risk runs","href":"/api-reference/risk-runs"},{"title":"Risk measure","href":"/api-reference/risk-measure"},{"title":"API coverage","href":"/api-reference/coverage"},{"title":"Find and resolve symbols","href":"/guides/symbols"},{"title":"SDKs and client libraries","href":"/sdk/overview"}]},{"group":"Troubleshooting","pages":[{"title":"MCP troubleshooting","href":"/mcp/troubleshooting"},{"title":"API troubleshooting","href":"/troubleshooting"}]},{"group":"Endpoints","pages":[{"group":"Account","pages":[{"title":"Get billing costs","deprecated":null,"version":null,"sidebarTitle":"Get billing costs","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /account/billing-costs","href":"/api-reference/endpoints/get__account_billing_costs"},{"title":"Update account display currency","deprecated":null,"version":null,"sidebarTitle":"Update account display currency","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json patch /account/display-currency","href":"/api-reference/endpoints/patch__account_display_currency"},{"title":"Get account display preferences","deprecated":null,"version":null,"sidebarTitle":"Get account display preferences","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /account/preferences","href":"/api-reference/endpoints/get__account_preferences"},{"title":"Get public sign-in configuration","deprecated":null,"version":null,"sidebarTitle":"Get public sign-in configuration","playground":"interactive","openapi":"/openapi/itoflow-public.openapi.json get /auth/client-config","href":"/api-reference/endpoints/getauthclientconfig"},{"title":"Get authenticated user","deprecated":null,"version":null,"sidebarTitle":"Get authenticated user","playground":"interactive","openapi":"/openapi/itoflow-public.openapi.json get /auth/user","href":"/api-reference/endpoints/getauthuser"},{"title":"Get the current user Codex subscription connection","deprecated":null,"version":null,"sidebarTitle":"Get the current user Codex subscription connection","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /codex-subscription","href":"/api-reference/endpoints/get__codex_subscription"},{"title":"Disconnect the subscription and revoke it at the provider","deprecated":null,"version":null,"sidebarTitle":"Disconnect the subscription and revoke it at the provider","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /codex-subscription","href":"/api-reference/endpoints/delete__codex_subscription"},{"title":"Check whether the user has approved the device authorization","deprecated":null,"version":null,"sidebarTitle":"Check whether the user has approved the device authorization","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /codex-subscription/poll","href":"/api-reference/endpoints/post__codex_subscription_poll"},{"title":"Start a device authorization the user approves in a browser","deprecated":null,"version":null,"sidebarTitle":"Start a device authorization the user approves in a browser","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /codex-subscription/start","href":"/api-reference/endpoints/post__codex_subscription_start"}]},{"group":"Sharing and data","pages":[{"title":"Create or reuse a shareable artifact","deprecated":null,"version":null,"sidebarTitle":"Create or reuse a shareable artifact","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /artifacts","href":"/api-reference/endpoints/post__artifacts"},{"title":"Archive a shareable artifact","deprecated":null,"version":null,"sidebarTitle":"Archive a shareable artifact","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /artifacts/{slug}","href":"/api-reference/endpoints/delete__artifacts_slug_"},{"title":"Read a public artifact","deprecated":null,"version":null,"sidebarTitle":"Read a public artifact","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /artifacts/public/{slug}","href":"/api-reference/endpoints/get__artifacts_public_slug_"},{"title":"Read a public artifact dataframe snapshot","deprecated":null,"version":null,"sidebarTitle":"Read a public artifact dataframe snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /artifacts/public/{slug}/dataframes/{dfId}","href":"/api-reference/endpoints/get__artifacts_public_slug_dataframes_dfid_"}]},{"group":"Market data","pages":[{"title":"List benchmark index prices to compare performance","deprecated":null,"version":null,"sidebarTitle":"List benchmark index prices to compare performance","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /benchmarks","href":"/api-reference/endpoints/get__benchmarks"},{"title":"Compute a point-in-time factor risk covariance matrix","deprecated":null,"version":null,"sidebarTitle":"Compute a point-in-time factor risk covariance matrix","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /factor-risk/covariance","href":"/api-reference/endpoints/post__factor_risk_covariance"},{"title":"Get the exchange rate between two currencies","deprecated":null,"version":null,"sidebarTitle":"Get the exchange rate between two currencies","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /fx-rate","href":"/api-reference/endpoints/get__fx_rate"},{"title":"Get current exchange rates for all supported currencies","deprecated":null,"version":null,"sidebarTitle":"Get current exchange rates for all supported currencies","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /fx-rates","href":"/api-reference/endpoints/get__fx_rates"},{"title":"Get anonymous strategy leaderboard","deprecated":null,"version":null,"sidebarTitle":"Get anonymous strategy leaderboard","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /leaderboard","href":"/api-reference/endpoints/get__leaderboard"},{"title":"Search stored news by query, symbol or monitor","deprecated":null,"version":null,"sidebarTitle":"Search stored news by query, symbol or monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /news","href":"/api-reference/endpoints/get__news"},{"title":"Get latest analytics for a list of symbols","deprecated":null,"version":null,"sidebarTitle":"Get latest analytics for a list of symbols","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /symbols/analytics","href":"/api-reference/endpoints/get__symbols_analytics"},{"title":"Get latest symbol baseline cards","deprecated":null,"version":null,"sidebarTitle":"Get latest symbol baseline cards","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /symbols/baseline","href":"/api-reference/endpoints/get__symbols_baseline"},{"title":"Get symbol cache status","deprecated":null,"version":null,"sidebarTitle":"Get symbol cache status","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /symbols/cache-status","href":"/api-reference/endpoints/get__symbols_cache_status"},{"title":"List symbol exchanges","deprecated":null,"version":null,"sidebarTitle":"List symbol exchanges","playground":"interactive","openapi":"/openapi/itoflow-public.openapi.json get /symbols/exchanges","href":"/api-reference/endpoints/getsymbolsexchanges"},{"title":"Get cached live quotes for symbols","deprecated":null,"version":null,"sidebarTitle":"Get cached live quotes for symbols","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /symbols/quotes","href":"/api-reference/endpoints/post__symbols_quotes"},{"title":"Resolve canonical instrument identifiers","deprecated":null,"version":null,"sidebarTitle":"Resolve canonical instrument identifiers","playground":"interactive","openapi":"/openapi/itoflow-public.openapi.json get /symbols/resolve","href":"/api-reference/endpoints/getsymbolsresolve"},{"title":"Resolve canonical instrument identifiers in bulk","deprecated":null,"version":null,"sidebarTitle":"Resolve canonical instrument identifiers in bulk","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /symbols/resolve/batch","href":"/api-reference/endpoints/post__symbols_resolve_batch"},{"title":"Search or resolve symbols","deprecated":null,"version":null,"sidebarTitle":"Search or resolve symbols","playground":"interactive","openapi":"/openapi/itoflow-public.openapi.json get /symbols/search","href":"/api-reference/endpoints/getsymbolssearch"}]},{"group":"Brokers","pages":[{"title":"Disconnect broker","deprecated":null,"version":null,"sidebarTitle":"Disconnect broker","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /brokers/{connectionId}","href":"/api-reference/endpoints/delete__brokers_connectionid_"},{"title":"Get broker holdings","deprecated":null,"version":null,"sidebarTitle":"Get broker holdings","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /brokers/{connectionId}/holdings","href":"/api-reference/endpoints/get__brokers_connectionid_holdings"},{"title":"Get broker margins","deprecated":null,"version":null,"sidebarTitle":"Get broker margins","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /brokers/{connectionId}/margins","href":"/api-reference/endpoints/get__brokers_connectionid_margins"},{"title":"Reconnect broker connection","deprecated":null,"version":null,"sidebarTitle":"Reconnect broker connection","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /brokers/{connectionId}/reconnect","href":"/api-reference/endpoints/post__brokers_connectionid_reconnect"},{"title":"Get broker connection status","deprecated":null,"version":null,"sidebarTitle":"Get broker connection status","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /brokers/{connectionId}/status","href":"/api-reference/endpoints/get__brokers_connectionid_status"},{"title":"Reconnect Trading 212 with supplied credentials","deprecated":null,"version":null,"sidebarTitle":"Reconnect Trading 212 with supplied credentials","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /brokers/{connectionId}/trading212/reconnect","href":"/api-reference/endpoints/post__brokers_connectionid_trading212_reconnect"},{"title":"Reconnect Trading 212 with stored credentials","deprecated":null,"version":null,"sidebarTitle":"Reconnect Trading 212 with stored credentials","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /brokers/{connectionId}/trading212/reconnect-stored","href":"/api-reference/endpoints/post__brokers_connectionid_trading212_reconnect_stored"},{"title":"Start broker connection","deprecated":null,"version":null,"sidebarTitle":"Start broker connection","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /brokers/connect","href":"/api-reference/endpoints/post__brokers_connect"},{"title":"List broker connections","deprecated":null,"version":null,"sidebarTitle":"List broker connections","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /brokers/connections","href":"/api-reference/endpoints/get__brokers_connections"},{"title":"Connect Trading 212 manually","deprecated":null,"version":null,"sidebarTitle":"Connect Trading 212 manually","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /brokers/trading212/connect-manual","href":"/api-reference/endpoints/post__brokers_trading212_connect_manual"}]},{"group":"Chat","pages":[{"title":"Permanently delete a chat","deprecated":null,"version":null,"sidebarTitle":"Permanently delete a chat","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /chat-runtime/chats/{chatId}","href":"/api-reference/endpoints/chat_delete"},{"title":"Download a file a chat saved in its workspace","deprecated":null,"version":null,"sidebarTitle":"Download a file a chat saved in its workspace","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-runtime/chats/{chatId}/downloads/workspace/{relativePath}","href":"/api-reference/endpoints/downloadchatworkspacefile"},{"title":"List files a chat saved in its workspace","deprecated":null,"version":null,"sidebarTitle":"List files a chat saved in its workspace","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-runtime/chats/{chatId}/workspace","href":"/api-reference/endpoints/listchatworkspacedirectory"},{"title":"Create or reuse a public chat share","deprecated":null,"version":null,"sidebarTitle":"Create or reuse a public chat share","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /chat-shares","href":"/api-reference/endpoints/post__chat_shares"},{"title":"Read a public chat share","deprecated":null,"version":null,"sidebarTitle":"Read a public chat share","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-shares/public/{slug}","href":"/api-reference/endpoints/get__chat_shares_public_slug_"},{"title":"Read a public chat share dataframe snapshot","deprecated":null,"version":null,"sidebarTitle":"Read a public chat share dataframe snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-shares/public/{slug}/dataframes/{dfId}","href":"/api-reference/endpoints/get__chat_shares_public_slug_dataframes_dfid_"},{"title":"Read a public chat share plot snapshot","deprecated":null,"version":null,"sidebarTitle":"Read a public chat share plot snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-shares/public/{slug}/plots/{plotId}","href":"/api-reference/endpoints/get__chat_shares_public_slug_plots_plotid_"},{"title":"Refresh a public chat share viewing token","deprecated":null,"version":null,"sidebarTitle":"Refresh a public chat share viewing token","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat-shares/public/{slug}/runtime-token","href":"/api-reference/endpoints/get__chat_shares_public_slug_runtime_token"},{"title":"Get chat","deprecated":null,"version":null,"sidebarTitle":"Get chat","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat/{id}","href":"/api-reference/endpoints/get__chat_id_"},{"title":"Get chat events","deprecated":null,"version":null,"sidebarTitle":"Get chat events","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat/{id}/events","href":"/api-reference/endpoints/get__chat_id_events"},{"title":"Sync chat state","deprecated":null,"version":null,"sidebarTitle":"Sync chat state","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chat/{id}/sync","href":"/api-reference/endpoints/get__chat_id_sync"},{"title":"List chats","deprecated":null,"version":null,"sidebarTitle":"List chats","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /chats","href":"/api-reference/endpoints/get__chats"},{"title":"Get dataframe data","deprecated":null,"version":null,"sidebarTitle":"Get dataframe data","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /dataframes/{chatId}/{dfName}","href":"/api-reference/endpoints/get__dataframes_chatid_dfname_"}]},{"group":"GitHub","pages":[{"title":"Availability","deprecated":null,"version":null,"sidebarTitle":"Availability","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /integrations/github/availability","href":"/api-reference/endpoints/githubavailability"},{"title":"Connect","deprecated":null,"version":null,"sidebarTitle":"Connect","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/github/connect","href":"/api-reference/endpoints/github_connect"},{"title":"Disconnect","deprecated":null,"version":null,"sidebarTitle":"Disconnect","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/github/disconnect","href":"/api-reference/endpoints/github_disconnect"},{"title":"Get Connection","deprecated":null,"version":null,"sidebarTitle":"Get Connection","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/github/getConnection","href":"/api-reference/endpoints/github_getconnection"},{"title":"List Repositories","deprecated":null,"version":null,"sidebarTitle":"List Repositories","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/github/listRepositories","href":"/api-reference/endpoints/github_listrepositories"}]},{"group":"Connected MCP servers","pages":[{"title":"Add","deprecated":null,"version":null,"sidebarTitle":"Add","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/add","href":"/api-reference/endpoints/remotemcp_add"},{"title":"Availability","deprecated":null,"version":null,"sidebarTitle":"Availability","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /integrations/remote-mcp/availability","href":"/api-reference/endpoints/remotemcpavailability"},{"title":"Connect","deprecated":null,"version":null,"sidebarTitle":"Connect","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/connect","href":"/api-reference/endpoints/remotemcp_connect"},{"title":"Disconnect","deprecated":null,"version":null,"sidebarTitle":"Disconnect","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/disconnect","href":"/api-reference/endpoints/remotemcp_disconnect"},{"title":"Get Status","deprecated":null,"version":null,"sidebarTitle":"Get Status","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/getStatus","href":"/api-reference/endpoints/remotemcp_getstatus"},{"title":"List","deprecated":null,"version":null,"sidebarTitle":"List","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/list","href":"/api-reference/endpoints/remotemcp_list"},{"title":"List Tools","deprecated":null,"version":null,"sidebarTitle":"List Tools","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/listTools","href":"/api-reference/endpoints/remotemcp_listtools"},{"title":"Remove","deprecated":null,"version":null,"sidebarTitle":"Remove","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/remove","href":"/api-reference/endpoints/remotemcp_remove"},{"title":"Rename","deprecated":null,"version":null,"sidebarTitle":"Rename","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /integrations/remote-mcp/rename","href":"/api-reference/endpoints/remotemcp_rename"}]},{"group":"Notifications","pages":[{"title":"List notification logs","deprecated":null,"version":null,"sidebarTitle":"List notification logs","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /notifications/logs","href":"/api-reference/endpoints/get__notifications_logs"},{"title":"Get notification preferences","deprecated":null,"version":null,"sidebarTitle":"Get notification preferences","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /notifications/preferences","href":"/api-reference/endpoints/get__notifications_preferences"},{"title":"Update notification preferences","deprecated":null,"version":null,"sidebarTitle":"Update notification preferences","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json put /notifications/preferences","href":"/api-reference/endpoints/put__notifications_preferences"},{"title":"Unsubscribe notification recipient","deprecated":null,"version":null,"sidebarTitle":"Unsubscribe notification recipient","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /notifications/unsubscribe","href":"/api-reference/endpoints/post__notifications_unsubscribe"}]},{"group":"Strategies","pages":[{"title":"Get strategy approvals history","deprecated":null,"version":null,"sidebarTitle":"Get strategy approvals history","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/approvals","href":"/api-reference/endpoints/get__paper_trading_strategyid_approvals"},{"title":"Get strategy decision history","deprecated":null,"version":null,"sidebarTitle":"Get strategy decision history","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/decisions","href":"/api-reference/endpoints/get__paper_trading_strategyid_decisions"},{"title":"Get strategy pending trades","deprecated":null,"version":null,"sidebarTitle":"Get strategy pending trades","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/pending-trades","href":"/api-reference/endpoints/get__paper_trading_strategyid_pending_trades"},{"title":"Get strategy performance snapshot","deprecated":null,"version":null,"sidebarTitle":"Get strategy performance snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/status","href":"/api-reference/endpoints/get__paper_trading_strategyid_status"},{"title":"Get strategy trade history","deprecated":null,"version":null,"sidebarTitle":"Get strategy trade history","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/{strategyId}/trades","href":"/api-reference/endpoints/get__paper_trading_strategyid_trades"},{"title":"Get paper trading portfolio summaries","deprecated":null,"version":null,"sidebarTitle":"Get paper trading portfolio summaries","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /paper-trading/summaries","href":"/api-reference/endpoints/get__paper_trading_summaries"},{"title":"Assign strategy to portfolio","deprecated":null,"version":null,"sidebarTitle":"Assign strategy to portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json put /portfolios/{id}/link","href":"/api-reference/endpoints/put__portfolios_id_link"},{"title":"Remove strategy from portfolio","deprecated":null,"version":null,"sidebarTitle":"Remove strategy from portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /portfolios/{id}/link","href":"/api-reference/endpoints/delete__portfolios_id_link"},{"title":"List strategies visible to user","deprecated":null,"version":null,"sidebarTitle":"List strategies visible to user","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies","href":"/api-reference/endpoints/get__strategies"},{"title":"Create a paper strategy","deprecated":null,"version":null,"sidebarTitle":"Create a paper strategy","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /strategies","href":"/api-reference/endpoints/post__strategies"},{"title":"Get strategy detail","deprecated":null,"version":null,"sidebarTitle":"Get strategy detail","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}","href":"/api-reference/endpoints/get__strategies_id_"},{"title":"Update a strategy","deprecated":null,"version":null,"sidebarTitle":"Update a strategy","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json put /strategies/{id}","href":"/api-reference/endpoints/put__strategies_id_"},{"title":"Get the strategy run in progress","deprecated":null,"version":null,"sidebarTitle":"Get the strategy run in progress","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}/active-execution","href":"/api-reference/endpoints/get__strategies_id_active_execution"},{"title":"Control strategy execution","deprecated":null,"version":null,"sidebarTitle":"Control strategy execution","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /strategies/{id}/control","href":"/api-reference/endpoints/post__strategies_id_control"},{"title":"Get strategy decision events","deprecated":null,"version":null,"sidebarTitle":"Get strategy decision events","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}/decisions/{decisionId}/events","href":"/api-reference/endpoints/get__strategies_id_decisions_decisionid_events"},{"title":"Queue a manual strategy execution","deprecated":null,"version":null,"sidebarTitle":"Queue a manual strategy execution","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /strategies/{id}/execute","href":"/api-reference/endpoints/post__strategies_id_execute"},{"title":"List strategy executions","deprecated":null,"version":null,"sidebarTitle":"List strategy executions","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}/executions","href":"/api-reference/endpoints/get__strategies_id_executions"},{"title":"Get strategy execution events","deprecated":null,"version":null,"sidebarTitle":"Get strategy execution events","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}/executions/{executionId}/events","href":"/api-reference/endpoints/get__strategies_id_executions_executionid_events"},{"title":"Stream strategy execution events","deprecated":null,"version":null,"sidebarTitle":"Stream strategy execution events","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/{id}/stream/{executionId}","href":"/api-reference/endpoints/get__strategies_id_stream_executionid_"},{"title":"List strategies that can go live at a broker","deprecated":null,"version":null,"sidebarTitle":"List strategies that can go live at a broker","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/eligible","href":"/api-reference/endpoints/get__strategies_eligible"},{"title":"Create a live-linked strategy","deprecated":null,"version":null,"sidebarTitle":"Create a live-linked strategy","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /strategies/live","href":"/api-reference/endpoints/post__strategies_live"},{"title":"List public strategy showcase","deprecated":null,"version":null,"sidebarTitle":"List public strategy showcase","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /strategies/public","href":"/api-reference/endpoints/get__strategies_public"}]},{"group":"Portfolios","pages":[{"title":"List user portfolios","deprecated":null,"version":null,"sidebarTitle":"List user portfolios","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios","href":"/api-reference/endpoints/get__portfolios"},{"title":"Create portfolio","deprecated":null,"version":null,"sidebarTitle":"Create portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios","href":"/api-reference/endpoints/post__portfolios"},{"title":"Get portfolio detail","deprecated":null,"version":null,"sidebarTitle":"Get portfolio detail","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}","href":"/api-reference/endpoints/get__portfolios_id_"},{"title":"Delete portfolio","deprecated":null,"version":null,"sidebarTitle":"Delete portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /portfolios/{id}","href":"/api-reference/endpoints/delete__portfolios_id_"},{"title":"Update portfolio auto-execute","deprecated":null,"version":null,"sidebarTitle":"Update portfolio auto-execute","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json patch /portfolios/{id}/auto-execute","href":"/api-reference/endpoints/patch__portfolios_id_auto_execute"},{"title":"Set portfolio benchmark comparison basis","deprecated":null,"version":null,"sidebarTitle":"Set portfolio benchmark comparison basis","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json put /portfolios/{id}/benchmark","href":"/api-reference/endpoints/put__portfolios_id_benchmark"},{"title":"Get broker validation status","deprecated":null,"version":null,"sidebarTitle":"Get broker validation status","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/broker-status","href":"/api-reference/endpoints/get__portfolios_id_broker_status"},{"title":"Get AI trading decisions","deprecated":null,"version":null,"sidebarTitle":"Get AI trading decisions","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/decisions","href":"/api-reference/endpoints/get__portfolios_id_decisions"},{"title":"Convert portfolio to paper mode","deprecated":null,"version":null,"sidebarTitle":"Convert portfolio to paper mode","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/{id}/go-paper","href":"/api-reference/endpoints/post__portfolios_id_go_paper"},{"title":"Get historical holdings snapshot","deprecated":null,"version":null,"sidebarTitle":"Get historical holdings snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/holdings/history","href":"/api-reference/endpoints/get__portfolios_id_holdings_history"},{"title":"Liquidate portfolio","deprecated":null,"version":null,"sidebarTitle":"Liquidate portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/{id}/liquidate","href":"/api-reference/endpoints/post__portfolios_id_liquidate"},{"title":"List pending trades","deprecated":null,"version":null,"sidebarTitle":"List pending trades","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/pending-trades","href":"/api-reference/endpoints/get__portfolios_id_pending_trades"},{"title":"Cancel pending trades","deprecated":null,"version":null,"sidebarTitle":"Cancel pending trades","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /portfolios/{id}/pending-trades","href":"/api-reference/endpoints/delete__portfolios_id_pending_trades"},{"title":"Approve pending trades","deprecated":null,"version":null,"sidebarTitle":"Approve pending trades","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/{id}/pending-trades/approve","href":"/api-reference/endpoints/post__portfolios_id_pending_trades_approve"},{"title":"Get portfolio performance history","deprecated":null,"version":null,"sidebarTitle":"Get portfolio performance history","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/performance","href":"/api-reference/endpoints/get__portfolios_id_performance"},{"title":"Reconcile live portfolio","deprecated":null,"version":null,"sidebarTitle":"Reconcile live portfolio","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/{id}/reconcile","href":"/api-reference/endpoints/post__portfolios_id_reconcile"},{"title":"Sync live portfolio state","deprecated":null,"version":null,"sidebarTitle":"Sync live portfolio state","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/{id}/sync-live-state","href":"/api-reference/endpoints/post__portfolios_id_sync_live_state"},{"title":"Get trade history","deprecated":null,"version":null,"sidebarTitle":"Get trade history","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/trades","href":"/api-reference/endpoints/get__portfolios_id_trades"},{"title":"Get trade execution attempts","deprecated":null,"version":null,"sidebarTitle":"Get trade execution attempts","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/{id}/trades/{tradeId}/attempts","href":"/api-reference/endpoints/get__portfolios_id_trades_tradeid_attempts"},{"title":"List pending approval summaries","description":"Returns one aggregate pending-approval summary across owned portfolios without fetching full per-portfolio trade detail.\n\nOperation ID: get__portfolios_approvals_pending.","deprecated":null,"version":null,"sidebarTitle":"List pending approval summaries","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /portfolios/approvals/pending","href":"/api-reference/endpoints/get__portfolios_approvals_pending"},{"title":"Commit an approved paper portfolio import","deprecated":null,"version":null,"sidebarTitle":"Commit an approved paper portfolio import","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/import","href":"/api-reference/endpoints/post__portfolios_import"},{"title":"Validate uploaded paper portfolio import","description":"Validate holdings and cash for a managed paper-portfolio import. This preflight returns the complete review result and an approval token but does not create a portfolio.\n\nOperation ID: post__portfolios_import_validate.","deprecated":null,"version":null,"sidebarTitle":"Validate uploaded paper portfolio import","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /portfolios/import/validate","href":"/api-reference/endpoints/post__portfolios_import_validate"},{"title":"Get portfolio transition status","deprecated":null,"version":null,"sidebarTitle":"Get portfolio transition status","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /transition/{taskId}","href":"/api-reference/endpoints/get__transition_taskid_"}]},{"group":"Billing","pages":[{"title":"Create billing portal session","deprecated":null,"version":null,"sidebarTitle":"Create billing portal session","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/billing-portal","href":"/api-reference/endpoints/post__pricing_billing_portal"},{"title":"Get billing summary","deprecated":null,"version":null,"sidebarTitle":"Get billing summary","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/billing-summary","href":"/api-reference/endpoints/get__pricing_billing_summary"},{"title":"Get current public plan prices, usage allowances and model access","deprecated":null,"version":null,"sidebarTitle":"Get current public plan prices, usage allowances and model access","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/catalog","href":"/api-reference/endpoints/get__pricing_catalog"},{"title":"Get pricing configuration","deprecated":null,"version":null,"sidebarTitle":"Get pricing configuration","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/config","href":"/api-reference/endpoints/get__pricing_config"},{"title":"Confirm payment","deprecated":null,"version":null,"sidebarTitle":"Confirm payment","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/confirm-payment","href":"/api-reference/endpoints/post__pricing_confirm_payment"},{"title":"List credit tiers","deprecated":null,"version":null,"sidebarTitle":"List credit tiers","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/credit-tiers","href":"/api-reference/endpoints/get__pricing_credit_tiers"},{"title":"Get customer balance","deprecated":null,"version":null,"sidebarTitle":"Get customer balance","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/customer-balance","href":"/api-reference/endpoints/get__pricing_customer_balance"},{"title":"Get pricing plans","deprecated":null,"version":null,"sidebarTitle":"Get pricing plans","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/get-plans","href":"/api-reference/endpoints/post__pricing_get_plans"},{"title":"Get subscription","deprecated":null,"version":null,"sidebarTitle":"Get subscription","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/get-subscription","href":"/api-reference/endpoints/post__pricing_get_subscription"},{"title":"List invoices","deprecated":null,"version":null,"sidebarTitle":"List invoices","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/invoices","href":"/api-reference/endpoints/get__pricing_invoices"},{"title":"Get configured agent models and current model access","deprecated":null,"version":null,"sidebarTitle":"Get configured agent models and current model access","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/model-access","href":"/api-reference/endpoints/get__pricing_model_access"},{"title":"List payment methods","deprecated":null,"version":null,"sidebarTitle":"List payment methods","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /pricing/payment-methods","href":"/api-reference/endpoints/get__pricing_payment_methods"},{"title":"Delete payment method","deprecated":null,"version":null,"sidebarTitle":"Delete payment method","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /pricing/payment-methods/{paymentMethodId}","href":"/api-reference/endpoints/delete__pricing_payment_methods_paymentmethodid_"},{"title":"Set default payment method","deprecated":null,"version":null,"sidebarTitle":"Set default payment method","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/payment-methods/default","href":"/api-reference/endpoints/post__pricing_payment_methods_default"},{"title":"Create payment method setup intent","deprecated":null,"version":null,"sidebarTitle":"Create payment method setup intent","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/payment-methods/setup-intent","href":"/api-reference/endpoints/post__pricing_payment_methods_setup_intent"},{"title":"Preview subscription upgrade","deprecated":null,"version":null,"sidebarTitle":"Preview subscription upgrade","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/preview-upgrade","href":"/api-reference/endpoints/post__pricing_preview_upgrade"},{"title":"Refund customer balance","deprecated":null,"version":null,"sidebarTitle":"Refund customer balance","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/refund-balance","href":"/api-reference/endpoints/post__pricing_refund_balance"},{"title":"Set spending cap","deprecated":null,"version":null,"sidebarTitle":"Set spending cap","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/spending-cap","href":"/api-reference/endpoints/post__pricing_spending_cap"},{"title":"Update subscription","deprecated":null,"version":null,"sidebarTitle":"Update subscription","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /pricing/update-subscription","href":"/api-reference/endpoints/post__pricing_update_subscription"}]},{"group":"Risk runs","pages":[{"title":"Measure","deprecated":null,"version":null,"sidebarTitle":"Measure","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /risk/measure","href":"/api-reference/endpoints/startriskmeasure"},{"title":"Read a risk measure","deprecated":null,"version":null,"sidebarTitle":"Read a risk measure","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /risk/measure/{measure_id}","href":"/api-reference/endpoints/getriskmeasure"},{"title":"Stop a risk measure","deprecated":null,"version":null,"sidebarTitle":"Stop a risk measure","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /risk/measure/{measure_id}/cancel","href":"/api-reference/endpoints/cancelriskmeasure"},{"title":"Runs","deprecated":null,"version":null,"sidebarTitle":"Runs","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /risk/runs","href":"/api-reference/endpoints/startriskrun"},{"title":"Read a risk run","deprecated":null,"version":null,"sidebarTitle":"Read a risk run","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /risk/runs/{run_id}","href":"/api-reference/endpoints/getriskrun"},{"title":"Read the full risk run output","deprecated":null,"version":null,"sidebarTitle":"Read the full risk run output","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /risk/runs/{run_id}/artifact","href":"/api-reference/endpoints/getriskrunartifact"},{"title":"Stop a risk run","deprecated":null,"version":null,"sidebarTitle":"Stop a risk run","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /risk/runs/{run_id}/cancel","href":"/api-reference/endpoints/cancelriskrun"}]},{"group":"Monitors","pages":[{"title":"List monitors","deprecated":null,"version":null,"sidebarTitle":"List monitors","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists","href":"/api-reference/endpoints/get__watchlists"},{"title":"Create monitor","deprecated":null,"version":null,"sidebarTitle":"Create monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /watchlists","href":"/api-reference/endpoints/post__watchlists"},{"title":"Get monitor","deprecated":null,"version":null,"sidebarTitle":"Get monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}","href":"/api-reference/endpoints/get__watchlists_id_"},{"title":"Update monitor","deprecated":null,"version":null,"sidebarTitle":"Update monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json put /watchlists/{id}","href":"/api-reference/endpoints/put__watchlists_id_"},{"title":"Delete monitor","deprecated":null,"version":null,"sidebarTitle":"Delete monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json delete /watchlists/{id}","href":"/api-reference/endpoints/delete__watchlists_id_"},{"title":"Get the Monitor run in progress","deprecated":null,"version":null,"sidebarTitle":"Get the Monitor run in progress","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/active-execution","href":"/api-reference/endpoints/get__watchlists_id_active_execution"},{"title":"Get latest monitor analytics snapshot","deprecated":null,"version":null,"sidebarTitle":"Get latest monitor analytics snapshot","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/analytics/latest","href":"/api-reference/endpoints/get__watchlists_id_analytics_latest"},{"title":"Control monitor agent","deprecated":null,"version":null,"sidebarTitle":"Control monitor agent","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /watchlists/{id}/control","href":"/api-reference/endpoints/post__watchlists_id_control"},{"title":"Get the results a Monitor run has shown so far","deprecated":null,"version":null,"sidebarTitle":"Get the results a Monitor run has shown so far","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/executions/{executionId}/results","href":"/api-reference/endpoints/get__watchlists_id_executions_executionid_results"},{"title":"Fork a readable monitor","deprecated":null,"version":null,"sidebarTitle":"Fork a readable monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /watchlists/{id}/fork","href":"/api-reference/endpoints/post__watchlists_id_fork"},{"title":"Read news for a monitor","deprecated":null,"version":null,"sidebarTitle":"Read news for a monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/news","href":"/api-reference/endpoints/getmonitornews"},{"title":"Fetch news for a monitor","deprecated":null,"version":null,"sidebarTitle":"Fetch news for a monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /watchlists/{id}/news/fetch","href":"/api-reference/endpoints/fetchmonitornews"},{"title":"Get cached live quotes for a monitor","deprecated":null,"version":null,"sidebarTitle":"Get cached live quotes for a monitor","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/quotes","href":"/api-reference/endpoints/get__watchlists_id_quotes"},{"title":"List monitor reports","deprecated":null,"version":null,"sidebarTitle":"List monitor reports","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/reports","href":"/api-reference/endpoints/get__watchlists_id_reports"},{"title":"Get monitor report","deprecated":null,"version":null,"sidebarTitle":"Get monitor report","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/reports/{reportId}","href":"/api-reference/endpoints/get__watchlists_id_reports_reportid_"},{"title":"Get the latest completed Monitor report","deprecated":null,"version":null,"sidebarTitle":"Get the latest completed Monitor report","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json get /watchlists/{id}/reports/latest","href":"/api-reference/endpoints/get__watchlists_id_reports_latest"},{"title":"Manually regenerate the current monitor report","deprecated":null,"version":null,"sidebarTitle":"Manually regenerate the current monitor report","playground":"simple","openapi":"/openapi/itoflow-public.openapi.json post /watchlists/{id}/reports/run","href":"/api-reference/endpoints/post__watchlists_id_reports_run"}]}]}]},"basePath":"","title":"Commit an approved paper portfolio import - Itoflow developer docs","buildId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","deploymentId":"dpl_Fyv1NbzwP68g2bEH2Roy98uY1zmE","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DdEMm2kG.js","utils-BMo572L7.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-C-4m9KAx.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DPLK2Oq9.js","snippetPresets-BKjfJMC9.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-DTsgtCEj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-C8vmhyQM.js","shallow-r9w8LQGS.js","getApiPlaygroundDisplay-DjPI64HQ.js","CodeSnippet-C8Bvhl16.js","CodeSnippets-BtWUwcMy.js","Page-BIYvYBgk.js","getPastedJson-Dcm_3Pgl.js","icon-BXwrTpjc.js","MethodPill-CcjfVmmy.js","DuplicateIcon-BuKIbXAQ.js","createIcon-DaL9yXsO.js","DynamicMarkdown-Co5nikxh.js","SectionHeading-P4UNTsMZ.js","axios-vUo_bRtp.js","Markdown-CEfymfIH.js","clsx-Dq9TQuNi.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-D2J8knkn.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BgZ2ThuU.js"]}