Maps stored import rows into records in bulk, in the background, for a
migration or spreadsheet load. Store the rows first with Import Rows
(ingestFmv1ImportRows), then follow the job with Get Import Job
(getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts)
filtered by jobId. To fix failed rows or change the mapping, queue another
job; for one record with an immediate result, use Import Entity
(createFmv1Import).
Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types.
Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first.
Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress.
Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts.
Required permission: the target entity type’s import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type’s import permission. Permissions and API-key revocation are checked again by the worker.
User-principal OAuth 2.0 Bearer authentication. Send a user-scoped Auth0 access token (audience = the app API audience) as Authorization: Bearer <jwt>. The request resolves to the user's identity and is authorized by their Role on the {companyId} in the path — the same role-based permissions the web app enforces. This is the path the MCP connector uses to act on a user's behalf; endpoints that accept it list both BearerAuth and ApiKeyAuth.
Path Parameters
companyId
string<uuid>
required
Company identifier
Body
application/json
Option 1
Option 2
entityType
enum<string>
required
The entity type this job writes, independent of its source rows.
Available options:
Event,
Exposure,
Quote,
Submission,
Person,
Organization
source
object
required
At least one selector is required. Selectors combine with AND. Membership is snapshotted when queued; later rows are excluded. Explicit IDs must all exist, be accessible and match the other selectors.
Show child attributes
groupBy
string[]
Optional JSON path segments. Rows with equal non-null values at this path produce one result together; missing/null values stay separate. Maximum 1000 rows per result. Omitted means one result per row.
Required array length: 1 - 20 elements
Minimum string length: 1
quoteMode
enum<string>
Quote jobs only, without groupBy. Restore an already bound legacy quote from its retained source identity, original bound/applied_to_policy status and existing policy. Existing quotes retain their identity and parent links; conflicting statuses or source evidence are refused. This does not bind a policy or generate invoices, recommended forms or lifecycle packets. See the historical bound quote contract in the import overview.
Available options:
restore-bound
transformations
object
How data.<entityKey> becomes an entity in this company's field model: one
entry per field reference id (camelCase). Each value is either a JEXL
expression string that reads the data's top-level keys by name
(submission.name, broker.email), or a mapping for a list of child
objects:
{ "mapOver": "<data path>", "values": { "<childKey>": "<expression>" } }.
Inside values, bare names and me are the current element, parent is
the object holding the list and root is the whole data. A child value may
itself be a mapping; its mapOver path reads the current scope (for example
me.locations). A { "values": { ... } } constructor without mapOver builds
one object in the surrounding scope and can contain mapped lists. At every
depth, root remains the original data.
Every field of data.<entityKey> without a transformation is kept as sent.
A transformed entity with an id updates that entity; otherwise one is
created. Keys the company's field model does not declare are dropped before
an entity write. Policy jobs instead construct the whole-policy or single-transaction
command envelope; envelope keys are validated by that contract.
Show child attributes
guards
object[]
Conditions that must hold for the write to proceed, evaluated against the
transformed entity, reading its fields by bare name. Only a strict true
passes, and a condition that cannot be evaluated fails. They run in addition
to the company's own entity invariants.
Show child attributes
attemptBatch
string | null
Optional label applied to every attempt created by this job.
Minimum string length: 1
Response
Job accepted for background execution.
id
string<uuid>
required
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"AI Insurance","colors":{"primary":"#714CC5","light":"#D3BFFF","dark":"#A887F3"},"logo":{"light":"https://mintcdn.com/ai-insurance-fmv1/HtPQvD-FDA5nbM7L/logo/dark.jpg?fit=max\u0026auto=format\u0026n=HtPQvD-FDA5nbM7L\u0026q=85\u0026s=14ace86d6e87c6eab47960c514760266","dark":"https://mintcdn.com/ai-insurance-fmv1/HtPQvD-FDA5nbM7L/logo/dark.jpg?fit=max\u0026auto=format\u0026n=HtPQvD-FDA5nbM7L\u0026q=85\u0026s=14ace86d6e87c6eab47960c514760266","href":"https://go.aiinsurance.io"},"favicon":"https://mintcdn.com/ai-insurance-fmv1/HtPQvD-FDA5nbM7L/logo/dark.jpg?fit=max\u0026auto=format\u0026n=HtPQvD-FDA5nbM7L\u0026q=85\u0026s=14ace86d6e87c6eab47960c514760266","navbar":{"links":[{"href":"mailto:support@aiinsurance.io","label":"Support"}],"primary":{"type":"button","label":"Dashboard","href":"https://go.aiinsurance.io"}},"footer":{"socials":{"linkedin":"https://www.linkedin.com/company/a-i-insurance-inc"}},"seo":{"metatags":{"canonical":"https://docs.go.aiinsurance.io"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity"],"display":"header"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ai-insurance-fmv1","hasAudioNarration":false,"actualSubdomain":"ai-insurance-fmv1","customDomains":["docs.go.aiinsurance.io"],"gitSource":{"type":"github","owner":"ai-insurance","repo":"docs-mirror","deployBranch":"main","contentDirectory":"docs","isPrivate":true,"mountPath":"","label":"","_id":"6af4b096ee8edba08e00c669"},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6af7498e75f3e5c02082a680","clientVersion":"0.0.4131","searchFilterCounts":[{"language":"default","tag":"API","count":244},{"language":"default","tag":"Financials","count":94},{"language":"default","tag":"App","count":35},{"language":"default","tag":"Policy Transactions","count":34},{"language":"default","tag":"Company Files","count":28},{"language":"default","tag":"Entities","count":25},{"language":"default","tag":"Record Emails","count":23},{"language":"default","tag":"Configuration","count":23},{"language":"default","tag":"Forms","count":18},{"language":"default","tag":"Guides","count":18}]},"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":[],"page":{"pagePath":"api-reference/imports/queue-import-job","slug":"/api-reference/imports/queue-import-job","pageMetadata":{"title":"Queue Import Job","description":"Maps stored import rows into records in bulk, in the background, for a\nmigration or spreadsheet load. Store the rows first with Import Rows\n(`ingestFmv1ImportRows`), then follow the job with Get Import Job\n(`getFmv1ImportJob`) and List Import Attempts (`listFmv1ImportAttempts`)\nfiltered by `jobId`. To fix failed rows or change the mapping, queue another\njob; for one record with an immediate result, use Import Entity\n(`createFmv1Import`).\n\nQueues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types.\n\nExpressions read `row` (the first source JSON value) and `rows` (all source JSON values for this result). Mapping starts with an empty target entity. Use `groupBy` to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first.\n\nSelectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with `jobId` to follow progress.\n\nPolicy jobs require `policyMode: whole-policy` or `single-transaction` and refuse `groupBy`. Their transformations produce the corresponding policy command envelope. Both modes support execution and `dryRun: true`. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See [Policy import contracts](/api-reference/imports/overview#policy-import-contracts).\n\n**Required permission:** the target entity type's import permission (`policy.import` for `Policy`, `exposure.import` for `Exposure`, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type's import permission. Permissions and API-key revocation are checked again by the worker.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports/jobs","href":"/api-reference/imports/queue-import-job","autogeneratedByOpenApi":true,"hidden":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 a: \"a\",\n code: \"code\",\n p: \"p\",\n strong: \"strong\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsxs(_Fragment, {\n children: [_jsxs(_components.p, {\n children: [\"Maps stored import rows into records in bulk, in the background, for a\\nmigration or spreadsheet load. Store the rows first with Import Rows\\n(\", _jsx(_components.code, {\n children: \"ingestFmv1ImportRows\"\n }), \"), then follow the job with Get Import Job\\n(\", _jsx(_components.code, {\n children: \"getFmv1ImportJob\"\n }), \") and List Import Attempts (\", _jsx(_components.code, {\n children: \"listFmv1ImportAttempts\"\n }), \")\\nfiltered by \", _jsx(_components.code, {\n children: \"jobId\"\n }), \". To fix failed rows or change the mapping, queue another\\njob; for one record with an immediate result, use Import Entity\\n(\", _jsx(_components.code, {\n children: \"createFmv1Import\"\n }), \").\"]\n }), \"\\n\", _jsx(_components.p, {\n children: \"Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types.\"\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Expressions read \", _jsx(_components.code, {\n children: \"row\"\n }), \" (the first source JSON value) and \", _jsx(_components.code, {\n children: \"rows\"\n }), \" (all source JSON values for this result). Mapping starts with an empty target entity. Use \", _jsx(_components.code, {\n children: \"groupBy\"\n }), \" to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with \", _jsx(_components.code, {\n children: \"jobId\"\n }), \" to follow progress.\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [\"Policy jobs require \", _jsx(_components.code, {\n children: \"policyMode: whole-policy\"\n }), \" or \", _jsx(_components.code, {\n children: \"single-transaction\"\n }), \" and refuse \", _jsx(_components.code, {\n children: \"groupBy\"\n }), \". Their transformations produce the corresponding policy command envelope. Both modes support execution and \", _jsx(_components.code, {\n children: \"dryRun: true\"\n }), \". Single commands return one receipt; whole-policy rows return ordered transaction receipts. See \", _jsx(_components.a, {\n href: \"/api-reference/imports/overview#policy-import-contracts\",\n children: \"Policy import contracts\"\n }), \".\"]\n }), \"\\n\", _jsxs(_components.p, {\n children: [_jsx(_components.strong, {\n children: \"Required permission:\"\n }), \" the target entity type’s import permission (\", _jsx(_components.code, {\n children: \"policy.import\"\n }), \" for \", _jsx(_components.code, {\n children: \"Policy\"\n }), \", \", _jsx(_components.code, {\n children: \"exposure.import\"\n }), \" for \", _jsx(_components.code, {\n children: \"Exposure\"\n }), \", for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type’s import permission. Permissions and API-key revocation are checked again by the worker.\"]\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":"Queue Import Job","description":"Maps stored import rows into records in bulk, in the background, for a\nmigration or spreadsheet load. Store the rows first with Import Rows\n(`ingestFmv1ImportRows`), then follow the job with Get Import Job\n(`getFmv1ImportJob`) and List Import Attempts (`listFmv1ImportAttempts`)\nfiltered by `jobId`. To fix failed rows or change the mapping, queue another\njob; for one record with an immediate result, use Import Entity\n(`createFmv1Import`).\n\nQueues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types.\n\nExpressions read `row` (the first source JSON value) and `rows` (all source JSON values for this result). Mapping starts with an empty target entity. Use `groupBy` to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first.\n\nSelectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with `jobId` to follow progress.\n\nPolicy jobs require `policyMode: whole-policy` or `single-transaction` and refuse `groupBy`. Their transformations produce the corresponding policy command envelope. Both modes support execution and `dryRun: true`. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See [Policy import contracts](/api-reference/imports/overview#policy-import-contracts).\n\n**Required permission:** the target entity type's import permission (`policy.import` for `Policy`, `exposure.import` for `Exposure`, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type's import permission. Permissions and API-key revocation are checked again by the worker.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports/jobs","href":"/api-reference/imports/queue-import-job","autogeneratedByOpenApi":true,"hidden":true}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"queueFmv1ImportJob","security":["5172135a-d690-4895-b875-54d83aa85979","6407fd47-9b40-4d2d-b02a-d0954fbe794b"],"summary":"Queue Import Job","description":"Maps stored import rows into records in bulk, in the background, for a\nmigration or spreadsheet load. Store the rows first with Import Rows\n(`ingestFmv1ImportRows`), then follow the job with Get Import Job\n(`getFmv1ImportJob`) and List Import Attempts (`listFmv1ImportAttempts`)\nfiltered by `jobId`. To fix failed rows or change the mapping, queue another\njob; for one record with an immediate result, use Import Entity\n(`createFmv1Import`).\n\nQueues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types.\n\nExpressions read `row` (the first source JSON value) and `rows` (all source JSON values for this result). Mapping starts with an empty target entity. Use `groupBy` to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first.\n\nSelectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with `jobId` to follow progress.\n\nPolicy jobs require `policyMode: whole-policy` or `single-transaction` and refuse `groupBy`. Their transformations produce the corresponding policy command envelope. Both modes support execution and `dryRun: true`. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See [Policy import contracts](/api-reference/imports/overview#policy-import-contracts).\n\n**Required permission:** the target entity type's import permission (`policy.import` for `Policy`, `exposure.import` for `Exposure`, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type's import permission. Permissions and API-key revocation are checked again by the worker.\n","tags":["Imports"],"parameters":["c027f231-a760-48b1-a3e1-e4c56070a0c1"],"requestBody":"33d2fac2-a806-435c-9f7a-dcf65f85ff54","responses":{"202":"1f0cb125-4450-4ec2-a8b9-9a645ef311b0","400":"8fd04023-5da0-417d-a340-bbf7193a9373","401":"142d8157-f457-47f6-bb9b-eedc6d46e276","403":"832c3398-f6d6-47a1-bdfb-e8f0a9ac7d09","500":"8d9b1d9a-486a-4d44-9df0-d80792e3f53d"},"method":"post","type":"path","servers":["b4993f5b-e21e-4dbd-8ace-9c59b5197d8e"],"path":"/api/v1/companies/{companyId}/imports/jobs","baseUrlOptions":["https://go.aiinsurance.io"],"title":"Queue Import Job","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"c027f231-a760-48b1-a3e1-e4c56070a0c1":{"name":"companyId","in":"path","required":true,"schema":{"type":"string","format":"uuid","isRequired":true,"description":"Company identifier","uniqueKey":"","typeLabel":"string\u003cuuid>"},"description":"Company identifier"}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["entityType","source"],"properties":{"entityType":{"type":"string","enum":["Event","Exposure","Quote","Submission","Person","Organization"],"description":"The entity type this job writes, independent of its source rows.","isRequired":true,"uniqueKey":"oneOf.0.entityType","typeLabel":"enum\u003cstring>"},"source":{"type":"object","additionalProperties":false,"description":"At least one selector is required. Selectors combine with AND. Membership is snapshotted when queued; later rows are excluded. Explicit IDs must all exist, be accessible and match the other selectors.","properties":{"importRowIds":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string","format":"uuid","uniqueKey":"oneOf.0.source.importRowIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueKey":"oneOf.0.source.importRowIds","typeLabel":"string\u003cuuid>[]"},"importBatch":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.source.importBatch","typeLabel":"string"},"filter":{"type":"object","additionalProperties":true,"description":"PostgreSQL JSON containment filter on the original data. When used alone it must be non-empty. For example, {\"kind\":\"policy\"} selects objects containing that pair.","uniqueKey":"oneOf.0.source.filter","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.0.source","typeLabel":"object"},"groupBy":{"type":"array","minItems":1,"maxItems":20,"items":{"type":"string","minLength":1,"uniqueKey":"oneOf.0.groupBy.items.[INDEX]","typeLabel":"string"},"description":"Optional JSON path segments. Rows with equal non-null values at this path produce one result together; missing/null values stay separate. Maximum 1000 rows per result. Omitted means one result per row.","uniqueKey":"oneOf.0.groupBy","typeLabel":"string[]"},"quoteMode":{"type":"string","enum":["restore-bound"],"description":"Quote jobs only, without groupBy. Restore an already bound legacy quote from its retained source identity, original bound/applied_to_policy status and existing policy. Existing quotes retain their identity and parent links; conflicting statuses or source evidence are refused. This does not bind a policy or generate invoices, recommended forms or lifecycle packets. See the historical bound quote contract in the import overview.","uniqueKey":"oneOf.0.quoteMode","typeLabel":"enum\u003cstring>"},"transformations":{"type":"object","description":"How `data.\u003centityKey>` becomes an entity in this company's field model: one\nentry per field reference id (camelCase). Each value is either a JEXL\nexpression string that reads the data's top-level keys by name\n(`submission.name`, `broker.email`), or a mapping for a list of child\nobjects:\n`{ \"mapOver\": \"\u003cdata path>\", \"values\": { \"\u003cchildKey>\": \"\u003cexpression>\" } }`.\nInside `values`, bare names and `me` are the current element, `parent` is\nthe object holding the list and `root` is the whole `data`. A child value may\nitself be a mapping; its `mapOver` path reads the current scope (for example\n`me.locations`). A `{ \"values\": { ... } }` constructor without `mapOver` builds\none object in the surrounding scope and can contain mapped lists. At every\ndepth, `root` remains the original data.\n\nEvery field of `data.\u003centityKey>` without a transformation is kept as sent.\nA transformed entity with an `id` updates that entity; otherwise one is\ncreated. Keys the company's field model does not declare are dropped before\nan entity write. Policy jobs instead construct the whole-policy or single-transaction\ncommand envelope; envelope keys are validated by that contract.\n","additionalProperties":{"oneOf":[{"type":"string","description":"A JEXL expression.","uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","required":["mapOver","values"],"properties":{"mapOver":{"type":"string","description":"A dotted path into `data` that resolves to a list, such as\n`submission.locations`; a numeric segment indexes a list.\n","isRequired":true,"uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.1.mapOver","typeLabel":"string"},"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","type":"object","description":"One expression or nested mapping per child object key.","isRequired":true,"uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.1.values","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","required":["values"],"properties":{"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","description":"Construct one object in the surrounding scope, including nested mappings.","isRequired":true,"uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.2.values","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"oneOf.0.transformations.additionalProperties.oneOf.2","typeLabel":"object"}],"uniqueKey":"oneOf.0.transformations.additionalProperties","typeLabel":"string · object · object"},"uniqueKey":"oneOf.0.transformations","typeLabel":"object"},"guards":{"type":"array","description":"Conditions that must hold for the write to proceed, evaluated against the\ntransformed entity, reading its fields by bare name. Only a strict `true`\npasses, and a condition that cannot be evaluated fails. They run in addition\nto the company's own entity invariants.\n","items":{"type":"object","required":["condition","errorMessage"],"additionalProperties":false,"properties":{"condition":{"type":"string","description":"A JEXL condition.","isRequired":true,"uniqueKey":"oneOf.0.guards.items.[INDEX].condition","typeLabel":"string"},"errorMessage":{"type":"string","description":"Reported on the attempt when the condition does not hold.","isRequired":true,"uniqueKey":"oneOf.0.guards.items.[INDEX].errorMessage","typeLabel":"string"}},"uniqueKey":"oneOf.0.guards.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.0.guards","typeLabel":"object[]"},"attemptBatch":{"oneOf":[{"type":"string","minLength":1,"description":"Optional label applied to every attempt created by this job.","uniqueKey":"oneOf.0.attemptBatch.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"description":"Optional label applied to every attempt created by this job.","uniqueKey":"oneOf.0.attemptBatch.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.0.attemptBatch","typeLabel":"string | null"}},"additionalProperties":false,"uniqueKey":"oneOf.0","typeLabel":"object"},{"type":"object","description":"One row is one policy term or one transaction; groupBy is refused. Both modes support execution and dry runs. Single-transaction mode executes one command and returns one transaction receipt.","required":["entityType","source","policyMode"],"properties":{"entityType":{"type":"string","enum":["Policy"],"description":"The entity type this job writes, independent of its source rows.","isRequired":true,"uniqueKey":"oneOf.1.entityType","typeLabel":"enum\u003cstring>"},"source":{"type":"object","additionalProperties":false,"description":"At least one selector is required. Selectors combine with AND. Membership is snapshotted when queued; later rows are excluded. Explicit IDs must all exist, be accessible and match the other selectors.","properties":{"importRowIds":{"type":"array","minItems":1,"maxItems":1000,"items":{"type":"string","format":"uuid","uniqueKey":"oneOf.1.source.importRowIds.items.[INDEX]","typeLabel":"string\u003cuuid>"},"uniqueKey":"oneOf.1.source.importRowIds","typeLabel":"string\u003cuuid>[]"},"importBatch":{"type":"string","minLength":1,"uniqueKey":"oneOf.1.source.importBatch","typeLabel":"string"},"filter":{"type":"object","additionalProperties":true,"description":"PostgreSQL JSON containment filter on the original data. When used alone it must be non-empty. For example, {\"kind\":\"policy\"} selects objects containing that pair.","uniqueKey":"oneOf.1.source.filter","typeLabel":"object"}},"isRequired":true,"uniqueKey":"oneOf.1.source","typeLabel":"object"},"policyMode":{"type":"string","enum":["whole-policy","single-transaction"],"description":"Selects the schema of the transformed policy command: WholePolicyImport or SinglePolicyTransactionImport.","isRequired":true,"uniqueKey":"oneOf.1.policyMode","typeLabel":"enum\u003cstring>"},"transformations":{"type":"object","description":"How `data.\u003centityKey>` becomes an entity in this company's field model: one\nentry per field reference id (camelCase). Each value is either a JEXL\nexpression string that reads the data's top-level keys by name\n(`submission.name`, `broker.email`), or a mapping for a list of child\nobjects:\n`{ \"mapOver\": \"\u003cdata path>\", \"values\": { \"\u003cchildKey>\": \"\u003cexpression>\" } }`.\nInside `values`, bare names and `me` are the current element, `parent` is\nthe object holding the list and `root` is the whole `data`. A child value may\nitself be a mapping; its `mapOver` path reads the current scope (for example\n`me.locations`). A `{ \"values\": { ... } }` constructor without `mapOver` builds\none object in the surrounding scope and can contain mapped lists. At every\ndepth, `root` remains the original data.\n\nEvery field of `data.\u003centityKey>` without a transformation is kept as sent.\nA transformed entity with an `id` updates that entity; otherwise one is\ncreated. Keys the company's field model does not declare are dropped before\nan entity write. Policy jobs instead construct the whole-policy or single-transaction\ncommand envelope; envelope keys are validated by that contract.\n","additionalProperties":{"oneOf":[{"type":"string","description":"A JEXL expression.","uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.0","typeLabel":"string"},{"type":"object","required":["mapOver","values"],"properties":{"mapOver":{"type":"string","description":"A dotted path into `data` that resolves to a list, such as\n`submission.locations`; a numeric segment indexes a list.\n","isRequired":true,"uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.1.mapOver","typeLabel":"string"},"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","type":"object","description":"One expression or nested mapping per child object key.","isRequired":true,"uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.1.values","typeLabel":"object"}},"additionalProperties":false,"uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.1","typeLabel":"object"},{"type":"object","required":["values"],"properties":{"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","description":"Construct one object in the surrounding scope, including nested mappings.","isRequired":true,"uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.2.values","typeLabel":"any"}},"additionalProperties":false,"uniqueKey":"oneOf.1.transformations.additionalProperties.oneOf.2","typeLabel":"object"}],"uniqueKey":"oneOf.1.transformations.additionalProperties","typeLabel":"string · object · object"},"uniqueKey":"oneOf.1.transformations","typeLabel":"object"},"guards":{"type":"array","description":"Conditions that must hold for the write to proceed, evaluated against the\ntransformed entity, reading its fields by bare name. Only a strict `true`\npasses, and a condition that cannot be evaluated fails. They run in addition\nto the company's own entity invariants.\n","items":{"type":"object","required":["condition","errorMessage"],"additionalProperties":false,"properties":{"condition":{"type":"string","description":"A JEXL condition.","isRequired":true,"uniqueKey":"oneOf.1.guards.items.[INDEX].condition","typeLabel":"string"},"errorMessage":{"type":"string","description":"Reported on the attempt when the condition does not hold.","isRequired":true,"uniqueKey":"oneOf.1.guards.items.[INDEX].errorMessage","typeLabel":"string"}},"uniqueKey":"oneOf.1.guards.items.[INDEX]","typeLabel":"object"},"uniqueKey":"oneOf.1.guards","typeLabel":"object[]"},"attemptBatch":{"oneOf":[{"type":"string","minLength":1,"description":"Optional label applied to every attempt created by this job.","uniqueKey":"oneOf.1.attemptBatch.oneOf.0","typeLabel":"string"},{"type":"null","minLength":1,"description":"Optional label applied to every attempt created by this job.","uniqueKey":"oneOf.1.attemptBatch.oneOf.1","typeLabel":"null"}],"uniqueKey":"oneOf.1.attemptBatch","typeLabel":"string | null"},"dryRun":{"type":"boolean","default":false,"description":"Validate every planned policy transaction against the preceding simulated state without persisting policy state; retain the import job and attempt. Both modes validate without domain persistence; save-only calculations and unsupported vendor-tax lifecycle changes are refused.","uniqueKey":"oneOf.1.dryRun","typeLabel":"boolean"}},"additionalProperties":false,"uniqueKey":"oneOf.1","typeLabel":"object"}],"uniqueKey":"","typeLabel":"object"},"examples":{"batchMapping":{"title":"batchMapping","value":{"entityType":"Exposure","source":{"importBatch":"october-load"},"transformations":{"exposureName":"row.name","exposureType":"'company'"},"guards":[{"condition":"exposureName != null","errorMessage":"A name is required"}],"attemptBatch":"mapping-v2"}},"groupedRows":{"title":"groupedRows","value":{"entityType":"Exposure","source":{"importBatch":"october-load"},"groupBy":["accountId"],"transformations":{"exposureName":"rows[0].accountName","exposureType":"'company'"}}},"wholePolicyContract":{"title":"wholePolicyContract","value":{"entityType":"Policy","policyMode":"whole-policy","source":{"importBatch":"policy-terms"},"transformations":{"term":"row.term","segments":"row.segments"},"attemptBatch":"policy-contract-v1"}},"singleTransactionContract":{"title":"singleTransactionContract","value":{"entityType":"Policy","policyMode":"single-transaction","dryRun":true,"source":{"importBatch":"policy-cancellations"},"transformations":{"action":"'CANCEL'","policyId":"row.policyId","cancellationDate":"row.cancellationDate"}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"1f0cb125-4450-4ec2-a8b9-9a645ef311b0":{"description":"Job accepted for background execution.","content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","format":"uuid","isRequired":true,"uniqueKey":"id","typeLabel":"string\u003cuuid>"}},"uniqueKey":"","typeLabel":"object"},"examples":{"accepted":{"title":"accepted","value":{"id":"550e8400-e29b-41d4-a716-446655440003"}}},"exampleType":"examples"}},"exampleType":"examples"},"8fd04023-5da0-417d-a340-bbf7193a9373":{"description":"Invalid job, missing or inaccessible explicit source IDs, or a group larger than 1000 rows. No job is queued.","content":{"application/json":{"schema":{"type":"object","description":"Standard error response for all external API endpoints","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"submissionId: Required field is missing","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"userMessages":{"type":"array","description":"Clean, verbatim-displayable messages — one entry per failure, free of error-code tags, field paths, and internal noise. Suitable for showing to end users as-is.","items":{"type":"string","uniqueKey":"error.userMessages.items.[INDEX]","typeLabel":"string"},"example":["Exposures of type 'company' require an address"],"uniqueKey":"error.userMessages","typeLabel":"string[]"},"details":{"type":"array","description":"Additional details for validation errors (field-level errors)","items":{"type":"object","properties":{"field":{"type":"string","description":"The field that caused the error","example":"submissionId","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Stable problem code for this individual validation failure","example":"BLANK_LIST_ELEMENT","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"reason":{"type":"string","description":"Stable reason the value violates its canonical contract","example":"blank-list-element","uniqueKey":"error.details.items.[INDEX].reason","typeLabel":"string"},"expected":{"type":"string","description":"The expected canonical value contract","example":"nonblank trimmed string","uniqueKey":"error.details.items.[INDEX].expected","typeLabel":"string"},"message":{"type":"string","description":"Description of the field error","example":"Required field is missing","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"Example":{"title":"Example","value":{"error":{"code":"VALIDATION_ERROR","message":"submissionId: Required field is missing","userMessages":["Exposures of type 'company' require an address"],"details":[{"field":"submissionId","code":"BLANK_LIST_ELEMENT","reason":"blank-list-element","expected":"nonblank trimmed string","message":"Required field is missing"}]}}}},"exampleType":"generated"}},"exampleType":"generated"},"142d8157-f457-47f6-bb9b-eedc6d46e276":{"description":"Unauthorized - Invalid or missing API key","content":{"application/json":{"schema":{"type":"object","description":"Standard error response for all external API endpoints","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"submissionId: Required field is missing","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"userMessages":{"type":"array","description":"Clean, verbatim-displayable messages — one entry per failure, free of error-code tags, field paths, and internal noise. Suitable for showing to end users as-is.","items":{"type":"string","uniqueKey":"error.userMessages.items.[INDEX]","typeLabel":"string"},"example":["Exposures of type 'company' require an address"],"uniqueKey":"error.userMessages","typeLabel":"string[]"},"details":{"type":"array","description":"Additional details for validation errors (field-level errors)","items":{"type":"object","properties":{"field":{"type":"string","description":"The field that caused the error","example":"submissionId","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Stable problem code for this individual validation failure","example":"BLANK_LIST_ELEMENT","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"reason":{"type":"string","description":"Stable reason the value violates its canonical contract","example":"blank-list-element","uniqueKey":"error.details.items.[INDEX].reason","typeLabel":"string"},"expected":{"type":"string","description":"The expected canonical value contract","example":"nonblank trimmed string","uniqueKey":"error.details.items.[INDEX].expected","typeLabel":"string"},"message":{"type":"string","description":"Description of the field error","example":"Required field is missing","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"missingApiKey":{"title":"missingApiKey","value":{"error":{"code":"AuthenticationError","message":"API key authentication required","userMessages":["API key authentication required"]}}},"invalidApiKey":{"title":"invalidApiKey","value":{"error":{"code":"AuthenticationError","message":"Invalid API key","userMessages":["Invalid API key"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"832c3398-f6d6-47a1-bdfb-e8f0a9ac7d09":{"description":"Forbidden - Insufficient permissions","content":{"application/json":{"schema":{"type":"object","description":"Standard error response for all external API endpoints","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"submissionId: Required field is missing","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"userMessages":{"type":"array","description":"Clean, verbatim-displayable messages — one entry per failure, free of error-code tags, field paths, and internal noise. Suitable for showing to end users as-is.","items":{"type":"string","uniqueKey":"error.userMessages.items.[INDEX]","typeLabel":"string"},"example":["Exposures of type 'company' require an address"],"uniqueKey":"error.userMessages","typeLabel":"string[]"},"details":{"type":"array","description":"Additional details for validation errors (field-level errors)","items":{"type":"object","properties":{"field":{"type":"string","description":"The field that caused the error","example":"submissionId","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Stable problem code for this individual validation failure","example":"BLANK_LIST_ELEMENT","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"reason":{"type":"string","description":"Stable reason the value violates its canonical contract","example":"blank-list-element","uniqueKey":"error.details.items.[INDEX].reason","typeLabel":"string"},"expected":{"type":"string","description":"The expected canonical value contract","example":"nonblank trimmed string","uniqueKey":"error.details.items.[INDEX].expected","typeLabel":"string"},"message":{"type":"string","description":"Description of the field error","example":"Required field is missing","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"insufficientPermissions":{"title":"insufficientPermissions","value":{"error":{"code":"AuthorizationError","message":"User is not authorized to perform the requested action","userMessages":["User is not authorized to perform the requested action"]}}},"companyMismatch":{"title":"companyMismatch","value":{"error":{"code":"AuthorizationError","message":"API key is not scoped to the requested company","userMessages":["API key is not scoped to the requested company"]}}}},"exampleType":"examples"}},"exampleType":"examples"},"8d9b1d9a-486a-4d44-9df0-d80792e3f53d":{"description":"Internal Server Error - Unexpected error occurred","content":{"application/json":{"schema":{"type":"object","description":"Standard error response for all external API endpoints","required":["error"],"properties":{"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Machine-readable error code","example":"VALIDATION_ERROR","isRequired":true,"uniqueKey":"error.code","typeLabel":"string"},"message":{"type":"string","description":"Human-readable error message","example":"submissionId: Required field is missing","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"},"userMessages":{"type":"array","description":"Clean, verbatim-displayable messages — one entry per failure, free of error-code tags, field paths, and internal noise. Suitable for showing to end users as-is.","items":{"type":"string","uniqueKey":"error.userMessages.items.[INDEX]","typeLabel":"string"},"example":["Exposures of type 'company' require an address"],"uniqueKey":"error.userMessages","typeLabel":"string[]"},"details":{"type":"array","description":"Additional details for validation errors (field-level errors)","items":{"type":"object","properties":{"field":{"type":"string","description":"The field that caused the error","example":"submissionId","uniqueKey":"error.details.items.[INDEX].field","typeLabel":"string"},"code":{"type":"string","description":"Stable problem code for this individual validation failure","example":"BLANK_LIST_ELEMENT","uniqueKey":"error.details.items.[INDEX].code","typeLabel":"string"},"reason":{"type":"string","description":"Stable reason the value violates its canonical contract","example":"blank-list-element","uniqueKey":"error.details.items.[INDEX].reason","typeLabel":"string"},"expected":{"type":"string","description":"The expected canonical value contract","example":"nonblank trimmed string","uniqueKey":"error.details.items.[INDEX].expected","typeLabel":"string"},"message":{"type":"string","description":"Description of the field error","example":"Required field is missing","uniqueKey":"error.details.items.[INDEX].message","typeLabel":"string"}},"uniqueKey":"error.details.items.[INDEX]","typeLabel":"object"},"uniqueKey":"error.details","typeLabel":"object[]"}},"isRequired":true,"uniqueKey":"error","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"examples":{"internalError":{"title":"internalError","value":{"error":{"code":"UncaughtActionError","message":"Uncaught error occurred in \u003cactionName>","userMessages":["An unexpected error occurred. Please try again later."]}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"5172135a-d690-4895-b875-54d83aa85979":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"User-principal OAuth 2.0 Bearer authentication. Send a user-scoped Auth0 access token (audience = the app API audience) as `Authorization: Bearer \u003cjwt>`. The request resolves to the user's identity and is authorized by their Role on the `{companyId}` in the path — the same role-based permissions the web app enforces. This is the path the MCP connector uses to act on a user's behalf; endpoints that accept it list both `BearerAuth` and `ApiKeyAuth`.","scopes":[],"schemeName":"BearerAuth"}},"6407fd47-9b40-4d2d-b02a-d0954fbe794b":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"Authorization","description":"API key authentication. Send your raw API key as the `Authorization` header value with NO scheme prefix — `Authorization: YOUR-API-KEY`. Do NOT prefix it with `Bearer ` or `ApiKey `, and do not use an `X-API-Key` header; those are not accepted.","scopes":[],"schemeName":"ApiKeyAuth"}}},"servers":{"b4993f5b-e21e-4dbd-8ace-9c59b5197d8e":{"url":"https://go.aiinsurance.io","description":"Production"}},"schemas":{"1106134a-9755-4288-9127-c72427f285b1":{"type":"object","description":"How `data.\u003centityKey>` becomes an entity in this company's field model: one\nentry per field reference id (camelCase). Each value is either a JEXL\nexpression string that reads the data's top-level keys by name\n(`submission.name`, `broker.email`), or a mapping for a list of child\nobjects:\n`{ \"mapOver\": \"\u003cdata path>\", \"values\": { \"\u003cchildKey>\": \"\u003cexpression>\" } }`.\nInside `values`, bare names and `me` are the current element, `parent` is\nthe object holding the list and `root` is the whole `data`. A child value may\nitself be a mapping; its `mapOver` path reads the current scope (for example\n`me.locations`). A `{ \"values\": { ... } }` constructor without `mapOver` builds\none object in the surrounding scope and can contain mapped lists. At every\ndepth, `root` remains the original data.\n\nEvery field of `data.\u003centityKey>` without a transformation is kept as sent.\nA transformed entity with an `id` updates that entity; otherwise one is\ncreated. Keys the company's field model does not declare are dropped before\nan entity write. Policy jobs instead construct the whole-policy or single-transaction\ncommand envelope; envelope keys are validated by that contract.\n","additionalProperties":{"oneOf":[{"type":"string","description":"A JEXL expression."},{"type":"object","required":["mapOver","values"],"properties":{"mapOver":{"type":"string","description":"A dotted path into `data` that resolves to a list, such as\n`submission.locations`; a numeric segment indexes a list.\n","isRequired":true},"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","type":"object","description":"One expression or nested mapping per child object key.","isRequired":true}},"additionalProperties":false},{"type":"object","required":["values"],"properties":{"values":{"$circularRef":"1106134a-9755-4288-9127-c72427f285b1","description":"Construct one object in the surrounding scope, including nested mappings.","isRequired":true}},"additionalProperties":false}]}}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","bearerFormat":"JWT","description":"User-principal OAuth 2.0 Bearer authentication. Send a user-scoped Auth0 access token (audience = the app API audience) as `Authorization: Bearer \u003cjwt>`. The request resolves to the user's identity and is authorized by their Role on the `{companyId}` in the path — the same role-based permissions the web app enforces. This is the path the MCP connector uses to act on a user's behalf; endpoints that accept it list both `BearerAuth` and `ApiKeyAuth`.","scopes":[],"schemeName":"BearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"User-principal OAuth 2.0 Bearer authentication. Send a user-scoped Auth0 access token (audience = the app API audience) as `Authorization: Bearer \u003cjwt>`. The request resolves to the user's identity and is authorized by their Role on the `{companyId}` in the path — the same role-based permissions the web app enforces. This is the path the MCP connector uses to act on a user's behalf; endpoints that accept it list both `BearerAuth` and `ApiKeyAuth`.","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"BearerAuth","name":"Authorization"}],"title":"BearerAuth"},{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"Authorization","description":"API key authentication. Send your raw API key as the `Authorization` header value with NO scheme prefix — `Authorization: YOUR-API-KEY`. Do NOT prefix it with `Bearer ` or `ApiKey `, and do not use an `X-API-Key` header; those are not accepted.","scopes":[],"schemeName":"ApiKeyAuth"},"schema":{"title":"Authorization","type":"string","description":"API key authentication. Send your raw API key as the `Authorization` header value with NO scheme prefix — `Authorization: YOUR-API-KEY`. Do NOT prefix it with `Bearer ` or `ApiKey `, and do not use an `X-API-Key` header; those are not accepted.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKeyAuth","name":"Authorization"}],"title":"ApiKeyAuth"}]},"originalFileLocation":"openapi/generated-external-api.yaml"},"subdomain":"ai-insurance-fmv1","siteName":"AI Insurance","title":"Queue Import Job - AI Insurance","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-13T17:32:14.789Z","originalFileLocation":"api-reference/imports/queue-import-job.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Maps stored import rows into records in bulk, in the background, for a migration or spreadsheet load. Store the rows first with Import Rows (ingestFmv1ImportRows), then follow the job with Get Import Job (getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts) filtered by jobId. To fix failed rows or change the mapping, queue another job; for one record with an immediate result, use Import Entity (createFmv1Import). Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types. Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first. Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress. Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts. Required permission: the target entity type\u0026#x27;s import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type\u0026#x27;s import permission. Permissions and API-key revocation are checked again by the worker.\">\u003cmeta data-mint-head name=\"application-name\" content=\"AI Insurance\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"noindex\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Queue Import Job - AI Insurance\">\u003cmeta data-mint-head property=\"og:description\" content=\"Maps stored import rows into records in bulk, in the background, for a migration or spreadsheet load. Store the rows first with Import Rows (ingestFmv1ImportRows), then follow the job with Get Import Job (getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts) filtered by jobId. To fix failed rows or change the mapping, queue another job; for one record with an immediate result, use Import Entity (createFmv1Import). Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types. Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first. Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress. Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts. Required permission: the target entity type\u0026#x27;s import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type\u0026#x27;s import permission. Permissions and API-key revocation are checked again by the worker.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"AI Insurance\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ai-insurance-fmv1.mintlify.site/_mintlify/api/og/v2?division=Imports\u0026amp;title=Queue+Import+Job\u0026amp;description=Maps+stored+import+rows+into+records+in+bulk%2C+in+the+background%2C+for+a%0Amigration+or+spreadsheet+load.+Store+the+rows+first+with+Import+Rows%0A%28%60ingestFmv1ImportRo\u0026amp;theme=0995c531691aeb9df7f9b066\u0026amp;signature=504ee9e4a710630ff415f33785e1cfb9fef831975d5f7af09e8d1da3409fc934\">\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=\"Queue Import Job - AI Insurance\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Maps stored import rows into records in bulk, in the background, for a migration or spreadsheet load. Store the rows first with Import Rows (ingestFmv1ImportRows), then follow the job with Get Import Job (getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts) filtered by jobId. To fix failed rows or change the mapping, queue another job; for one record with an immediate result, use Import Entity (createFmv1Import). Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types. Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first. Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress. Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts. Required permission: the target entity type\u0026#x27;s import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type\u0026#x27;s import permission. Permissions and API-key revocation are checked again by the worker.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ai-insurance-fmv1.mintlify.site/_mintlify/api/og/v2?division=Imports\u0026amp;title=Queue+Import+Job\u0026amp;description=Maps+stored+import+rows+into+records+in+bulk%2C+in+the+background%2C+for+a%0Amigration+or+spreadsheet+load.+Store+the+rows+first+with+Import+Rows%0A%28%60ingestFmv1ImportRo\u0026amp;theme=0995c531691aeb9df7f9b066\u0026amp;signature=504ee9e4a710630ff415f33785e1cfb9fef831975d5f7af09e8d1da3409fc934\">\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/ai-insurance-fmv1/OV-zcpS7BkiQB75q/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"AI Insurance\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#714CC5\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/imports/queue-import-job.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.go.aiinsurance.io/#organization\",\"name\":\"AI Insurance\",\"url\":\"https://docs.go.aiinsurance.io\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ai-insurance-fmv1/HtPQvD-FDA5nbM7L/logo/dark.jpg?fit=max\u0026auto=format\u0026n=HtPQvD-FDA5nbM7L\u0026q=85\u0026s=14ace86d6e87c6eab47960c514760266\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.go.aiinsurance.io#website\",\"name\":\"AI Insurance\",\"url\":\"https://docs.go.aiinsurance.io\",\"publisher\":{\"@id\":\"https://docs.go.aiinsurance.io/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job#webpage\",\"url\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job\",\"name\":\"Queue Import Job\",\"description\":\"Maps stored import rows into records in bulk, in the background, for a migration or spreadsheet load. Store the rows first with Import Rows (ingestFmv1ImportRows), then follow the job with Get Import Job (getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts) filtered by jobId. To fix failed rows or change the mapping, queue another job; for one record with an immediate result, use Import Entity (createFmv1Import). Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types. Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first. Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress. Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts. Required permission: the target entity type's import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type's import permission. Permissions and API-key revocation are checked again by the worker.\",\"dateModified\":\"2026-11-13T17:32:14.789Z\",\"isPartOf\":{\"@id\":\"https://docs.go.aiinsurance.io#website\"},\"breadcrumb\":{\"@id\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Imports\",\"item\":\"https://docs.go.aiinsurance.io/api-reference/imports/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Queue Import Job\",\"item\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job#apireference\",\"headline\":\"Queue Import Job\",\"name\":\"Queue Import Job\",\"description\":\"Maps stored import rows into records in bulk, in the background, for a migration or spreadsheet load. Store the rows first with Import Rows (ingestFmv1ImportRows), then follow the job with Get Import Job (getFmv1ImportJob) and List Import Attempts (listFmv1ImportAttempts) filtered by jobId. To fix failed rows or change the mapping, queue another job; for one record with an immediate result, use Import Entity (createFmv1Import). Queues transformations over stored import rows. The response contains the job ID and returns before mapping or writing. A new job is also how to retry or change a mapping; no re-import is needed. Jobs run in queue order within a company, with one attempt per result. Different jobs can map the same row into different entity types. Expressions read row (the first source JSON value) and rows (all source JSON values for this result). Mapping starts with an empty target entity. Use groupBy to combine related rows. Within a result rows are ordered by storage time, then row ID; do not assume a source record kind is first. Selectors are snapshotted when the job is accepted. Mapping and guard failures are recorded on attempts and processing continues. Queue dispatch failures leave the job queued for automatic recovery. GET the job and list attempts with jobId to follow progress. Policy jobs require policyMode: whole-policy or single-transaction and refuse groupBy. Their transformations produce the corresponding policy command envelope. Both modes support execution and dryRun: true. Single commands return one receipt; whole-policy rows return ordered transaction receipts. See Policy import contracts. Required permission: the target entity type's import permission (policy.import for Policy, exposure.import for Exposure, for example). Selecting rows stored by the synchronous endpoint additionally requires their original entity type's import permission. Permissions and API-key revocation are checked again by the worker.\",\"url\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job\",\"mainEntityOfPage\":{\"@id\":\"https://docs.go.aiinsurance.io/api-reference/imports/queue-import-job#webpage\"},\"dateModified\":\"2026-11-13T17:32:14.789Z\",\"publisher\":{\"@id\":\"https://docs.go.aiinsurance.io/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.go.aiinsurance.io#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"AI Insurance\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"AI Insurance\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/imports/queue-import-job.md","siteName":"AI Insurance","nav":{"global":null,"tabs":[{"tab":"Home","pages":[{"title":"Home","href":"/homepage"}]},{"tab":"App","pages":[{"title":"App","href":"/app/getting-started/overview"}]},{"tab":"Entities","pages":[{"title":"Entities","href":"/entities/overview"}]},{"tab":"Markets","pages":[{"title":"Markets","href":"/markets/overview"}]},{"tab":"Financials","pages":[{"title":"Financials","href":"/financials/overview"}]},{"tab":"API","groups":[{"group":"Getting Started","pages":[{"title":"Overview","href":"/api-reference/overview"},{"title":"Roadmap","href":"/api-reference/roadmap"},{"title":"Generating API Keys","href":"/api-reference/authentication"},{"title":"MCP Connector (Beta)","href":"/api-reference/mcp-connector"}]},{"group":"User","pages":[{"title":"Get my profile","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/me","href":"/api-reference/user/get-my-profile"},{"title":"List my accessible companies","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/me/companies","href":"/api-reference/user/list-my-accessible-companies"}]},{"group":"Companies","pages":[{"title":"Companies","href":"/api-reference/companies/overview"},{"title":"Get Company Metadata","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}","href":"/api-reference/companies/get-company-metadata"},{"title":"List Company Members","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/members","href":"/api-reference/companies/list-company-members"},{"title":"Get Company Lifecycle","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/lifecycle","href":"/api-reference/companies/get-company-lifecycle"},{"title":"Reset Sandbox","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/reset","href":"/api-reference/companies/reset-sandbox"},{"title":"Get Company Email Branding","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/email-branding","href":"/api-reference/companies/get-company-email-branding"},{"title":"Set Company Email Branding","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/email-branding","href":"/api-reference/companies/set-company-email-branding"}]},{"group":"Entities","pages":[{"title":"Overview","href":"/api-reference/entities/overview"},{"title":"List Entity Types","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entity-types","href":"/api-reference/entities/list-entity-types"},{"title":"Get Page Layout","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/pages/{pageKey}/layout","href":"/api-reference/entities/get-page-layout"},{"title":"Get Entity Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/configuration","href":"/api-reference/entities/get-entity-configuration"},{"title":"Create Entity","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}","href":"/api-reference/entities/create-entity"},{"title":"Create Entity Batch","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/batch","href":"/api-reference/entities/create-entity-batch"},{"title":"List Entities","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}","href":"/api-reference/entities/list-entities"},{"title":"Start Entity Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/export-runs","href":"/api-reference/entities/start-entity-export-run"},{"title":"Get Entity Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/export-runs/{runId}","href":"/api-reference/entities/get-entity-export-run"},{"title":"Download Entity Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/export-runs/{runId}/download","href":"/api-reference/entities/download-entity-export-run"},{"title":"List Export Presets For Member","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/export-presets","href":"/api-reference/entities/list-export-presets-for-member"},{"title":"Create Export Preset For Member","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/export-presets","href":"/api-reference/entities/create-export-preset-for-member"},{"title":"Replace Export Preset For Member","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/export-presets/{presetId}","href":"/api-reference/entities/replace-export-preset-for-member"},{"title":"Delete Export Preset For Member","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/export-presets/{presetId}","href":"/api-reference/entities/delete-export-preset-for-member"},{"title":"Get Entity","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}","href":"/api-reference/entities/get-entity"},{"title":"Update Entity","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/entities/{entityType}/{entityId}","href":"/api-reference/entities/update-entity"},{"title":"Delete Entity","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/entities/{entityType}/{entityId}","href":"/api-reference/entities/delete-entity"}]},{"group":"Submission and Quote Lifecycle","pages":[{"title":"Rate, Quote, Bind","href":"/api-reference/rate-quote-bind"},{"title":"Close Submission","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/submissions/{submissionId}/close","href":"/api-reference/submission-and-quote-lifecycle/close-submission"},{"title":"Reopen Submission","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/submissions/{submissionId}/reopen","href":"/api-reference/submission-and-quote-lifecycle/reopen-submission"},{"title":"Cancel Quote","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/{quoteId}/cancel","href":"/api-reference/submission-and-quote-lifecycle/cancel-quote"}]},{"group":"Event Lifecycle","pages":[{"title":"Overview","href":"/api-reference/event-lifecycle/overview"},{"title":"Close Event","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/events/{eventId}/close","href":"/api-reference/event-lifecycle/close-event"},{"title":"Re-open Event","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/events/{eventId}/reopen","href":"/api-reference/event-lifecycle/re-open-event"},{"title":"Replace Event Open/Close History","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/events/{eventId}/open-close-history","href":"/api-reference/event-lifecycle/replace-event-openclose-history"}]},{"group":"Record Emails","pages":[{"title":"Overview","href":"/api-reference/record-emails/overview"},{"title":"List Record Email Conversations","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-conversations","href":"/api-reference/record-emails/list-record-email-conversations"},{"title":"Get Record Email Conversation","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-conversations/{threadId}","href":"/api-reference/record-emails/get-record-email-conversation"},{"title":"Remove Record Email Conversation","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-conversations/{threadId}/remove","href":"/api-reference/record-emails/remove-record-email-conversation"},{"title":"Link Earlier Record Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-people/{personId}/link-earlier","href":"/api-reference/record-emails/link-earlier-record-emails"},{"title":"Unlink Record Person Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-people/{personId}/unlink","href":"/api-reference/record-emails/unlink-record-person-emails"},{"title":"List Record Email Link Events","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-link-events","href":"/api-reference/record-emails/list-record-email-link-events"},{"title":"List Record Sendable Email Templates","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/sendable-email-templates","href":"/api-reference/record-emails/list-record-sendable-email-templates"},{"title":"Preview Record Email","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/emails/preview","href":"/api-reference/record-emails/preview-record-email"},{"title":"Send Record Email","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/emails","href":"/api-reference/record-emails/send-record-email"},{"title":"Retry Record Email Delivery","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/email-deliveries/{deliveryId}/retry","href":"/api-reference/record-emails/retry-record-email-delivery"},{"title":"List Record Packet Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/packet-emails","href":"/api-reference/record-emails/list-record-packet-emails"},{"title":"List Policy Email Conversations","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/email-conversations","href":"/api-reference/record-emails/list-policy-email-conversations"},{"title":"Get Policy Email Conversation","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/email-conversations/{threadId}","href":"/api-reference/record-emails/get-policy-email-conversation"},{"title":"Remove Policy Email Conversation","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/email-conversations/{threadId}/remove","href":"/api-reference/record-emails/remove-policy-email-conversation"},{"title":"Link Earlier Policy Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/email-people/{personId}/link-earlier","href":"/api-reference/record-emails/link-earlier-policy-emails"},{"title":"Unlink Policy Person Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/email-people/{personId}/unlink","href":"/api-reference/record-emails/unlink-policy-person-emails"},{"title":"List Policy Email Link Events","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/email-link-events","href":"/api-reference/record-emails/list-policy-email-link-events"},{"title":"List Policy Sendable Email Templates","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/sendable-email-templates","href":"/api-reference/record-emails/list-policy-sendable-email-templates"},{"title":"Preview Policy Email","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/emails/preview","href":"/api-reference/record-emails/preview-policy-email"},{"title":"Send Policy Email","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/emails","href":"/api-reference/record-emails/send-policy-email"},{"title":"Retry Policy Email Delivery","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/email-deliveries/{deliveryId}/retry","href":"/api-reference/record-emails/retry-policy-email-delivery"},{"title":"List Policy Packet Emails","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/packet-emails","href":"/api-reference/record-emails/list-policy-packet-emails"}]},{"group":"OFAC Screening","pages":[{"title":"Overview","href":"/api-reference/ofac-screening/overview"},{"title":"Screen Exposure For OFAC","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/ofac/screen","href":"/api-reference/ofac-screening/screen-exposure-for-ofac"}]},{"group":"Policy Transactions","pages":[{"title":"Overview","href":"/api-reference/policies/overview"},{"title":"Concepts","href":"/api-reference/policies/concepts"},{"title":"Effective Dates \u0026 the Policy Timeline","href":"/api-reference/policies/effective-dates"},{"title":"Lifecycle Walkthrough","href":"/api-reference/policies/lifecycle-walkthrough"},{"group":"Configuration","pages":[{"title":"Get Policy Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/configuration","href":"/api-reference/field-model-policy-configuration/get-policy-configuration"}]},{"group":"Reset","pages":[{"title":"Delete All Policies","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/deleteAll","href":"/api-reference/policies/delete-all-policies"}]},{"group":"Transactions","pages":[{"title":"New Business Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/transaction/new-business","href":"/api-reference/field-model-policy-transactions/new-business-transaction"},{"title":"Endorse Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/transaction/endorse","href":"/api-reference/field-model-policy-transactions/endorse-policy-transaction"},{"title":"Cancel Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/transaction/cancel","href":"/api-reference/field-model-policy-transactions/cancel-policy-transaction"},{"title":"Reinstate Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/transaction/reinstate","href":"/api-reference/field-model-policy-transactions/reinstate-policy-transaction"},{"title":"Renew Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/transaction/renew","href":"/api-reference/field-model-policy-transactions/renew-policy-transaction"},{"title":"Generate Quote from Policy (Stateless)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/generate","href":"/api-reference/field-model-policies/generate-quote-from-policy-stateless"},{"title":"Bind Quote","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/{quoteId}/bind","href":"/api-reference/field-model-policy-transactions/bind-quote"},{"title":"Bind Quote by Reference or by Value","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/bind","href":"/api-reference/field-model-policy-transactions/bind-quote-by-reference-or-by-value"},{"title":"Delete Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/policies/{policyId}/transactions/{transactionId}","href":"/api-reference/field-model-policy-transactions/delete-policy-transaction"},{"title":"Get Policy Version","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/versions/{version}","href":"/api-reference/field-model-policy-transactions/get-policy-version"},{"title":"List Single Policy Versions","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/versions","href":"/api-reference/field-model-policy-transactions/list-single-policy-versions"},{"title":"List Policy Transactions","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/transactions","href":"/api-reference/field-model-policy-transactions/list-policy-transactions"},{"title":"Get Policy Transaction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/transactions/{transactionId}","href":"/api-reference/field-model-policy-transactions/get-policy-transaction"},{"title":"Update Transaction Display Author","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/policies/{policyId}/transactions/{transactionId}","href":"/api-reference/field-model-policy-transactions/update-transaction-display-author"}]},{"group":"Contacts","pages":[{"title":"List Policy Contacts","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/contacts","href":"/api-reference/field-model-policy-transactions/list-policy-contacts"},{"title":"Add Policy Contact","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/{policyId}/contacts","href":"/api-reference/field-model-policy-transactions/add-policy-contact"},{"title":"Remove Policy Contact","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/policies/{policyId}/contacts/{personId}","href":"/api-reference/field-model-policy-transactions/remove-policy-contact"}]},{"group":"Bordereau","pages":[{"title":"List Bordereau Rows","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/bordereau","href":"/api-reference/field-model-bordereau/list-bordereau-rows"},{"title":"Start Bordereau Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/bordereau/export-runs","href":"/api-reference/field-model-bordereau/start-bordereau-export-run"},{"title":"Get Bordereau Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/bordereau/export-runs/{runId}","href":"/api-reference/field-model-bordereau/get-bordereau-export-run"},{"title":"Download Bordereau Export Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/bordereau/export-runs/{runId}/download","href":"/api-reference/field-model-bordereau/download-bordereau-export-run"},{"title":"Send Bordereau Export Run to Google Drive","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/bordereau/export-runs/{runId}/drive","href":"/api-reference/field-model-bordereau/send-bordereau-export-run-to-google-drive"}]},{"group":"Listing Policies","pages":[{"title":"List Policies","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/list","href":"/api-reference/field-model-policy-transactions/list-policies"},{"title":"List Policy Versions","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/versions","href":"/api-reference/field-model-policy-transactions/list-policy-versions"}]},{"group":"Validation","pages":[{"title":"Check Bind Conditions","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/quotes/{quoteId}/bind-conditions","href":"/api-reference/field-model-policy-validation/check-bind-conditions"},{"title":"Validate Policy","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/{policyId}/validate","href":"/api-reference/field-model-policy-validation/validate-policy"},{"title":"Validate Policies (Batch)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/policies/validate","href":"/api-reference/field-model-policy-validation/validate-policies-batch"},{"title":"Repair Policies","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/policies/repair","href":"/api-reference/field-model-policy-transactions/repair-policies"}]}]},{"group":"Policy Invoicing","pages":[{"title":"Invoicing a policy","href":"/api-reference/invoicing/overview"},{"title":"Invoice plans","href":"/api-reference/invoicing/invoice-plans"},{"title":"Quote Invoicing Overview","sidebarTitle":"Quote Invoicing Overview","href":"/api-reference/invoicing/quote-invoicing"},{"group":"Quote Invoicing","pages":[{"title":"Get Quote Invoicing","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing","href":"/api-reference/policy-invoicing/get-quote-invoicing"},{"title":"Replace Quote Invoice Settings","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/settings","href":"/api-reference/policy-invoicing/replace-quote-invoice-settings"},{"title":"Generate Quote Invoices","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/generate","href":"/api-reference/policy-invoicing/generate-quote-invoices"},{"title":"Attach Quote Invoice Plan","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/plan","href":"/api-reference/policy-invoicing/attach-quote-invoice-plan"},{"title":"Clear Quote Invoice Plan","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/quotes/{quoteId}/invoicing/plan","href":"/api-reference/policy-invoicing/clear-quote-invoice-plan"}]},{"group":"Pricing Stack","pages":[{"title":"The pricing stack","href":"/api-reference/invoicing/pricing-stack"},{"title":"Get Quote Pricing Stack Intended Layer","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/quotes/{quoteId}/pricing-stack-intended-layer","href":"/api-reference/policy-invoicing/get-quote-pricing-stack-intended-layer"},{"title":"Set Quote Pricing Stack Intended Layer","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/quotes/{quoteId}/pricing-stack-intended-layer","href":"/api-reference/policy-invoicing/set-quote-pricing-stack-intended-layer"},{"title":"Clear Quote Rating","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/quotes/{quoteId}/rating","href":"/api-reference/policy-invoicing/clear-quote-rating"}]},{"title":"Update Policy Invoices","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/policies/{policyId}/invoices/batch","href":"/api-reference/financials/update-policy-invoices"}]},{"group":"Financials","pages":[{"title":"Overview","href":"/api-reference/financials/overview"},{"group":"Invoices","pages":[{"title":"List Invoices","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/invoices","href":"/api-reference/financials/list-invoices"},{"title":"Create Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices","href":"/api-reference/financials/create-invoice"},{"title":"Get Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/invoices/{invoiceId}","href":"/api-reference/financials/get-invoice"},{"title":"Update Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/invoices/{invoiceId}","href":"/api-reference/financials/update-invoice"},{"title":"Delete Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/financials/invoices/{invoiceId}","href":"/api-reference/financials/delete-invoice"},{"title":"Re-link Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/relink","href":"/api-reference/financials/re-link-invoice"}]},{"group":"Invoice Lifecycle","pages":[{"title":"Approve Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/approve","href":"/api-reference/financials/approve-invoice"},{"title":"Unapprove Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/unapprove","href":"/api-reference/financials/unapprove-invoice"},{"title":"Finalize Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/finalize","href":"/api-reference/financials/finalize-invoice"},{"title":"Void Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/void","href":"/api-reference/financials/void-invoice"},{"title":"Restore Invoice","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/restore","href":"/api-reference/financials/restore-invoice"}]},{"group":"Bill Review","pages":[{"title":"Start Invoice Bill Review","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/bill-review","href":"/api-reference/financials/start-invoice-bill-review"},{"title":"Get Invoice Bill Review","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/bill-review","href":"/api-reference/financials/get-invoice-bill-review"}]},{"group":"Payments","pages":[{"title":"Record Payment","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/payments","href":"/api-reference/financials/record-payment"},{"title":"Remove Payment","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/payments/{paymentId}","href":"/api-reference/financials/remove-payment"}]},{"group":"Payees","pages":[{"title":"Change Invoice Payee","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/invoices/{invoiceId}/payee","href":"/api-reference/financials/change-invoice-payee"},{"title":"Merge Payee","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/payees/{payeeId}/merge","href":"/api-reference/financials/merge-payee"}]},{"group":"Reserves","pages":[{"title":"Set Reserves","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/events/{eventId}/reserves/{categoryId}","href":"/api-reference/financials/set-reserves"},{"title":"Reset Reserve History","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/events/{eventId}/reserves/{categoryId}/history-reset","href":"/api-reference/financials/reset-reserve-history"},{"title":"List Reserve Updates","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/events/{eventId}/reserve-updates","href":"/api-reference/financials/list-reserve-updates"},{"title":"List Company Reserve Updates","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/reserve-updates","href":"/api-reference/financials/list-company-reserve-updates"}]},{"group":"Balances","pages":[{"title":"Get Balances","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/balances","href":"/api-reference/financials/get-balances"},{"title":"Get Entity Balances","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/entities/{entityType}/{entityId}/balances","href":"/api-reference/financials/get-entity-balances"}]},{"group":"Configuration","pages":[{"title":"Export Financials Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/export","href":"/api-reference/financials/export-financials-configuration"},{"title":"Import Financials Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/import","href":"/api-reference/financials/import-financials-configuration"},{"title":"List Transaction Categories","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/config/categories","href":"/api-reference/financials/list-transaction-categories"},{"title":"Set Transaction Category Money-Out Approval","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/config/categories/{categoryId}/money-out-approval","href":"/api-reference/financials/set-transaction-category-money-out-approval"},{"title":"List Policy Invoice Types","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/config/policy-invoice-types","href":"/api-reference/financials/list-policy-invoice-types"},{"title":"Create Policy Invoice Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-invoice-types","href":"/api-reference/financials/create-policy-invoice-type"},{"title":"List Policy Line Item Types","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/config/policy-line-item-types","href":"/api-reference/financials/list-policy-line-item-types"},{"title":"Create Policy Line Item Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-line-item-types","href":"/api-reference/financials/create-policy-line-item-type"},{"title":"Rename Policy Invoice Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}","href":"/api-reference/financials/rename-policy-invoice-type"},{"title":"Delete Policy Invoice Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}","href":"/api-reference/financials/delete-policy-invoice-type"},{"title":"Deprecate Policy Invoice Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/deprecate","href":"/api-reference/financials/deprecate-policy-invoice-type"},{"title":"Reactivate Policy Invoice Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/reactivate","href":"/api-reference/financials/reactivate-policy-invoice-type"},{"title":"Rename Policy Line Item Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/financials/config/policy-line-item-types/{lineItemTypeId}","href":"/api-reference/financials/rename-policy-line-item-type"},{"title":"Delete Policy Line Item Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/financials/config/policy-line-item-types/{lineItemTypeId}","href":"/api-reference/financials/delete-policy-line-item-type"},{"title":"Deprecate Policy Line Item Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-line-item-types/{lineItemTypeId}/deprecate","href":"/api-reference/financials/deprecate-policy-line-item-type"},{"title":"Reactivate Policy Line Item Type","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-line-item-types/{lineItemTypeId}/reactivate","href":"/api-reference/financials/reactivate-policy-line-item-type"},{"title":"Set Policy Invoice Type Direction","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/expected-direction","href":"/api-reference/financials/set-policy-invoice-type-direction"},{"title":"Set Policy Invoice Type Payee Defaults","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/payee-defaults","href":"/api-reference/financials/set-policy-invoice-type-payee-defaults"},{"title":"Set Policy Invoice Type Presets","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/presets","href":"/api-reference/financials/set-policy-invoice-type-presets"},{"title":"Set Policy Invoice Type Money-Out Approval","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/financials/config/policy-invoice-types/{categoryId}/money-out-approval","href":"/api-reference/financials/set-policy-invoice-type-money-out-approval"},{"title":"Set Policy Line Item Associations","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/config/policy-line-item-types/associations","href":"/api-reference/financials/set-policy-line-item-associations"},{"title":"Reset Approval Config","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/financials/config/approvals","href":"/api-reference/financials/reset-approval-config"}]},{"group":"Maintenance","pages":[{"title":"Import Event Financials","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/events/{eventId}/import","href":"/api-reference/financials/import-event-financials"},{"title":"Check Financials Read-State Consistency","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/financials/validation/check","href":"/api-reference/financials/check-financials-read-state-consistency"},{"title":"Rebuild Financials Read-State","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/validation/sync","href":"/api-reference/financials/rebuild-financials-read-state"},{"title":"Delete All Financial Data","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/financials/deleteAll","href":"/api-reference/financials/delete-all-financial-data"}]}]},{"group":"Rating","pages":[{"title":"Overview","href":"/api-reference/rating/overview"},{"title":"Rate Quote (Read-Only)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/rate","href":"/api-reference/field-model-rating/rate-quote-read-only"},{"title":"Rate Saved Quote by Id","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/quotes/{quoteId}/rate","href":"/api-reference/field-model-rating/rate-saved-quote-by-id"}]},{"group":"Notes","pages":[{"title":"Overview","href":"/api-reference/notes/overview"},{"title":"List Notes","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/notes","href":"/api-reference/field-model-notes/list-notes"},{"title":"Create Note","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/notes","href":"/api-reference/field-model-notes/create-note"},{"title":"Get Note","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/notes/{noteId}","href":"/api-reference/field-model-notes/get-note"},{"title":"Update Note","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/notes/{noteId}","href":"/api-reference/field-model-notes/update-note"},{"title":"Delete Note","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/notes/{noteId}","href":"/api-reference/field-model-notes/delete-note"}]},{"group":"Tasks","pages":[{"title":"Overview","href":"/api-reference/tasks/overview"},{"title":"List Tasks","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/tasks","href":"/api-reference/tasks/list-tasks"},{"title":"Get Task","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/tasks/{taskId}","href":"/api-reference/tasks/get-task"},{"title":"Create Task","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/tasks","href":"/api-reference/tasks/create-task"},{"title":"Update Task","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/tasks/{taskId}","href":"/api-reference/tasks/update-task"},{"title":"Delete Task","description":"Soft-deletes a to-do (task) so it no longer appears in List Tasks\n(`listTasks`) or Get Task (`getTask`).\n\n**Required permission:** `task.delete`\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/tasks/{taskId}","href":"/api-reference/tasks/delete-task"}]},{"group":"Imports","hidden":true,"pages":[{"title":"Overview","description":"Store source rows once, then queue independent transformation jobs","href":"/api-reference/imports/overview"},{"title":"Import Rows","description":"Stores up to 1000 records from a spreadsheet or another system, as JSON\nvalues, without mapping or writing any records yet. It is the first step of\na bulk load or migration; tag the rows with an `importBatch`, then map them\ninto records with Queue Import Job (`queueFmv1ImportJob`). For one record\nwith an immediate result, use Import Entity (`createFmv1Import`).\n\nStores each element of `rows` unchanged as a separate import row. No entity type, mapping, guard or FMV1 configuration is needed. No attempt or entity is created. Returns the IDs in request order. Queue an import job to transform them, now or later.\n\nA request accepts 1 to 1000 arbitrary JSON values; send multiple batches for larger loads. Repeating a request stores additional rows. Storage preserves JSON values, not the original JSON text's whitespace or key order.\n\nFor an indivisible source record too large for an ordinary request, send\n`rowsGzipBase64` instead of `rows`: standard padded base64 of gzip-compressed\nUTF-8 JSON for the whole rows array. The server authenticates before decoding,\naccepts at most 16 MiB compressed and 128 MiB expanded, then validates and\nstores the original values. Never send both alternatives. Encoded source\npayloads are excluded from audit logs.\n\n**Required permission:** any one of `event.import`, `exposure.import`, `quote.import`, `submission.import`, `person.import`, `organization.import` or `policy.import`. Untyped rows are readable by any caller holding one of these permissions in the company.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports/rows","href":"/api-reference/imports/import-rows"},{"title":"Queue Import Job","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports/jobs","href":"/api-reference/imports/queue-import-job"},{"title":"Get Import Job","description":"Returns an import job's definition, status, and result counts. Poll it after\nQueue Import Job (`queueFmv1ImportJob`). A completed job can contain failed\nattempts, so inspect each result and its source row IDs with List Import\nAttempts (`listFmv1ImportAttempts`) filtered by `jobId`.\n\nAn unknown, cross-company or unauthorized job returns 404.\n\n**Required permission:** the job entity type's import permission, for example `exposure.import`.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/imports/jobs/{jobId}","href":"/api-reference/imports/get-import-job"},{"title":"Import Entity","description":"Imports one record from another system, or one spreadsheet row sent as JSON,\nas a claim (`Event`), exposure, quote, submission, person, or organization,\nmapping your source fields with `transformations` and checking them with\n`guards`. Use it to load or migrate records one at a time with an immediate\nresult; for a bulk load, store the rows with Import Rows\n(`ingestFmv1ImportRows`) and map them with Queue Import Job\n(`queueFmv1ImportJob`). The row is stored even when the import fails, so fix\nit with Retry Import (`retryFmv1Import`) rather than sending it again.\n\nImports one record from another system as an FMV1 entity, in the shape you\nhold it rather than the company's field model.\n\n1. **`data` is stored as an import row**, as sent, before anything else can\n fail.\n2. The **transformations** turn `data.\u003centityKey>` into an entity in this\n company's field model.\n3. The **guards** run against the transformed entity.\n4. If both succeeded, the entity is **created**, or **updated** when the\n transformed entity carries an `id`. Keys the field model does not declare\n are dropped first; the write is then held to every rule an ordinary\n entity create or update is, including the company's own invariants.\n\nEvery request that gets past validation stores its row and answers `201`\nwith the **import attempt** recording each step, whether or not the entity\nwas written: check `importAttempt.writeResult`. A refused write is reported\nthere as the error the entity endpoint would have answered with. The attempt\nis the one Get Import Attempt returns; the request's `importBatch` is its\n`attemptBatch`.\n\nThe attempt is recorded before the transformations run, and each step's\nresult is stored on it as the step completes. The entity write and its\n`writeResult` commit together, so if the request fails part-way (a `5xx`\nor a dropped connection), read the row's attempts: one whose guards passed\nand whose `writeResult` is `null` wrote nothing, and retrying it cannot\nleave two entities.\n\nA malformed request is a `400`, and stores nothing.\n\nThere is no `Idempotency-Key`: sending the same request twice stores two\nrows, and may write twice. To try a stored row again, retry it rather than\nsending the request again.\n\n**Required permission:** `\u003centityType>.import` for the request's\n`entityType`, such as `submission.import` to import a Submission. The\npermission is the target entity type's own `import` verb; one type's\npermission does not import another type.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports","href":"/api-reference/imports/import-entity"},{"title":"Retry Import","description":"Fixes a failed import by running a stored row again with corrected\n`transformations` or `guards`, without sending the data again. It applies to\nrows stored by Import Entity (`createFmv1Import`); rows stored by Import\nRows (`ingestFmv1ImportRows`), and attempts made by an import job, are run\nagain by queueing another job with Queue Import Job (`queueFmv1ImportJob`).\nFind the failed row or attempt with List Import Attempts\n(`listFmv1ImportAttempts`).\n\nRetries a stored import row: fixes a failed import with new transformations\nor guards, without sending the data again. Name the row by `importRowId`, to\nretry it with the transformations and guards you send, or by\n`importAttemptId`, to retry that attempt's row with the attempt's own.\n\nThe retry reads the row's `data` and entity type, then runs the steps of\nImport Entity after the row is stored: the **transformations** turn\n`data.\u003centityKey>` into an entity, the **guards** run against it, and the\nentity is **created**, or **updated** when the transformed entity carries an\n`id`. A row that already created its entity creates another unless the\ntransformations set `id`, such as with `LOOKUP`. A row cannot be retried as\nanother entity type.\n\nEvery retry of a row you can import answers `201` with the new **import\nattempt**, linked to the same row, whether or not the entity was written:\ncheck `importAttempt.writeResult`. Its `attemptBatch` is the request's. No\nrow is stored.\n\nA malformed request is a `400`, and records nothing: both ids or neither,\n`transformations` or `guards` sent with an `importAttemptId`, an id that is\nnot a UUID, a blank `attemptBatch`, a body key this endpoint does not take,\nor any query parameter.\n\nThere is no `Idempotency-Key`: sending the same retry twice records two\nattempts, and may write twice.\n\n**Required permission:** `\u003centityType>.import` for the stored row's entity\ntype, such as `submission.import` to retry a Submission row. The row's type\nis known only once it is read, so a caller holding no import permission is\na `403`, and a row or attempt of a type you cannot import is a `404`, the\nsame as an id that exists nowhere.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/imports/retry","href":"/api-reference/imports/retry-import"},{"title":"List Import Rows","description":"Lists the source data stored for imports, newest first, exactly as it\narrived through Import Entity (`createFmv1Import`) or Import Rows\n(`ingestFmv1ImportRows`). Use it to check what a migration or spreadsheet\nload sent, filtered by `importBatch` or `entityType`; to see how each row\nwas mapped and whether it failed, use List Import Attempts\n(`listFmv1ImportAttempts`).\n\nReturns a page of the company's **import rows**, newest first. An import row\nis the data an Import Entity request or an Import Rows request received,\nstored as it arrived, before any\ntransformation.\n\nFilter by `entityType` and by `importBatch`, the batch key the `import`\nrequests carried. `totalCount` counts every matching row, ignoring the\npagination. Continue while `page * pageSize \u003c totalCount`.\n\nAny query parameter not listed here is a `400`.\n\nUntyped rows are visible to any importer in the company. Synchronous rows retain their entity-type permissions: a key holding\n`person.import` alone sees untyped rows and Person rows, and `totalCount` counts only\nthose.\n\n**Required permission:** `\u003centityType>.import` for the `entityType` filter\n(`person.import` for `Person`); without the filter, any one of\n`event.import`, `exposure.import`, `quote.import`, `submission.import`,\n`person.import`, `organization.import` or `policy.import`.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/imports/rows","href":"/api-reference/imports/list-import-rows"},{"title":"Get Import Row","description":"Returns one import row, the source data exactly as it arrived before any\nmapping. Use it to see what was sent for a row an import attempt or job\nresult names; to see how the row was mapped and whether it failed, use Get\nImport Attempt (`getFmv1ImportAttempt`).\n\nA row whose entity type you may not import reads as `404`, exactly as an id\nthat exists nowhere does.\n\n**Required permission:** any one of `event.import`, `exposure.import`,\n`quote.import`, `submission.import`, `person.import` or\n`organization.import` or `policy.import`; the row's own type's `import` to read it.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/imports/rows/{importRowId}","href":"/api-reference/imports/get-import-row"},{"title":"List Import Attempts","description":"Lists import attempts, newest first. Each attempt is one try at mapping an\nimport row into a record and writing it, with what failed if it did. Use it\nto find failed import rows, filtered by `jobId` for an import job or by\n`importBatch` for a batch, and open one with Get Import Attempt\n(`getFmv1ImportAttempt`).\n\nLists the company's **import attempts**, newest first. Each attempt is one\ntransform → guard → write pass over an import row, recorded whether or not\nthe write happened, with the transformations and guards it ran with and what\neach stage produced. Each item is the whole attempt, as\n**`GET /imports/attempts/{importAttemptId}`** returns it.\n\n### Filtering\n\nEvery filter is optional and exact-match; filters combine with AND.\n\n- **`importBatch`** — attempts on import rows sent with that `importBatch`.\n This finds every attempt on a batch's rows, including retries that carry an\n `attemptBatch` of their own.\n- **`attemptBatch`** — attempts recorded with that `attemptBatch`. An\n attempt made by an `import` request takes the request's `importBatch`; a\n retry carries the `attemptBatch` it was sent with.\n- **`jobId`** — attempts made by that import job.\n- **`importRowId`**, **`entityType`**, **`action`** — attempts on one row, of\n one entity type, or that created or updated.\n\nAn unknown query parameter, or a filter value outside its allowed values, is\na `400`, never an unfiltered or empty page.\n\n### Paging\n\n`page` and `pageSize` are the standard 1-based pagination parameters.\n`totalCount` counts every attempt matching the filters, ignoring the paging.\nContinue while `page * pageSize \u003c totalCount`.\n\nOnly attempts whose entity type you may import are listed: a key holding\n`person.import` alone sees only Person attempts, and `totalCount` counts\nonly those.\n\n**Required permission:** `\u003centityType>.import` for the `entityType` filter\n(`person.import` for `Person`); without the filter, any one of\n`event.import`, `exposure.import`, `quote.import`, `submission.import`,\n`person.import`, `organization.import` or `policy.import`.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/imports/attempts","href":"/api-reference/imports/list-import-attempts"},{"title":"Get Import Attempt","description":"Returns one import attempt, showing how an import row was mapped, which\nguards failed, and whether the record was created or updated. Use it to see\nwhy a row failed to import, then fix it with Retry Import\n(`retryFmv1Import`) or, for an attempt made by an import job, queue another\njob with Queue Import Job (`queueFmv1ImportJob`).\n\nReturns one **import attempt**: a single transform → guard → write pass\nover an import row, with the transformations and guards it ran with and what\neach stage produced.\n\nThe attempt is recorded before its first step runs, and each stage's\nresult is stored as that stage completes, so a `null` result is one the\nattempt has not reached, or never reached.\n\n- **`transformationResult`** — the transformed entity, or the fields that\n failed to transform.\n- **`guardResult`** — whether every guard held, and each one that did not.\n `null` when the guards never ran.\n- **`writeResult`** — the outcome of the create or update. `null` when no\n write was attempted, because the transformations or a guard failed. It is\n stored in the same transaction as the write, so on an attempt whose\n guards passed, `null` means no entity was written: the attempt is in\n progress, or it crashed before its write committed.\n\nAttempt ids are scoped to their company: an id belonging to another company\nreturns `404`, exactly as an id that exists nowhere does.\n\nAn attempt whose entity type you may not import reads as `404`, exactly as\nan id that exists nowhere does.\n\n**Required permission:** any one of `event.import`, `exposure.import`,\n`quote.import`, `submission.import`, `person.import` or\n`organization.import` or `policy.import`; the attempt's own type's `import` to read it.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/imports/attempts/{importAttemptId}","href":"/api-reference/imports/get-import-attempt"},{"title":"Replace Record Legacy Activity","description":"Preserves a record's activity from the legacy system. The body carries the\nrecord's whole legacy activity feed, each entry already worded as the\nlegacy system displayed it, and replaces whatever was preserved on the\nrecord before. Repeating the request leaves the same entries, so a\nmigration can be rerun. Send an empty `entries` array to clear the record.\n\nThe entries appear on the record's Activity tab under **Before migration**,\nnewest first, below the activity recorded since. They are read-only and are\nshown as sent.\n\nAn entry is held by one record at a time. When a `sourceId` in the request\nis already preserved on another record, the entry moves to this record, and\n`movedEntryCount` counts such entries.\n\nTo check that every legacy activity row was preserved, add up\n`sourceRowCount` across the migrated records and compare it with the legacy\nsystem's row count.\n\n**Required permission:** `\u003cresource>.import` for the path's `{entityType}`\n(`event.import`, `exposure.import`, `policy.import`, `quote.import`,\n`submission.import`). An entry with `privileged: true` also requires\n`note.view-privileged`.\n","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/entities/{entityType}/{entityId}/legacy-activity","href":"/api-reference/imports/replace-record-legacy-activity"}]},{"group":"Configuration Management","pages":[{"title":"Overview","description":null,"href":"/api-reference/configuration/overview"},{"title":"Conversion Rules","href":"/api-reference/configuration/conversion-rules"},{"title":"Author JEXL expressions","href":"/api-reference/configuration/jexl-authoring"},{"title":"JEXL reference","href":"/api-reference/configuration/jexl-reference"},{"group":"Inspect","pages":[{"title":"Export Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/export","href":"/api-reference/fmv1-configuration/export-configuration"},{"title":"Describe Configuration (run-down)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/describe","href":"/api-reference/fmv1-configuration/describe-configuration-run-down"},{"title":"Describe Configuration Entity (fields of one entity or custom object)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/describe/{entityOrObjectKey}","href":"/api-reference/fmv1-configuration/describe-configuration-entity-fields-of-one-entity-or-custom-object"},{"title":"Get Configuration Metadata","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/metadata","href":"/api-reference/fmv1-configuration/get-configuration-metadata"},{"title":"Get Configuration JSON Schema","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/schema","href":"/api-reference/fmv1-configuration/get-configuration-json-schema"}]},{"group":"Validate \u0026 Compare","pages":[{"title":"Validate Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/validate","href":"/api-reference/fmv1-configuration/validate-configuration"},{"title":"Compare Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/compare","href":"/api-reference/fmv1-configuration/compare-configuration"},{"title":"Start Data Validation Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/data-validation-runs","href":"/api-reference/fmv1-configuration/start-data-validation-run"},{"title":"Get Data Validation Run","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/configuration/data-validation-runs/{runId}","href":"/api-reference/fmv1-configuration/get-data-validation-run"},{"title":"List Data Validation Run Findings","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/configuration/data-validation-runs/{runId}/findings","href":"/api-reference/fmv1-configuration/list-data-validation-run-findings"}]},{"group":"Apply Changes","pages":[{"title":"Import Configuration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/import","href":"/api-reference/fmv1-configuration/import-configuration"},{"title":"Patch Configuration (typed changes)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/configuration/patch","href":"/api-reference/fmv1-configuration/patch-configuration-typed-changes"}]}]},{"group":"Company Files","pages":[{"title":"Overview","href":"/api-reference/company-files/overview"},{"title":"List File Categories","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/categories","href":"/api-reference/company-files/list-file-categories"},{"group":"Uploads","pages":[{"title":"Create Upload Intent","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files","href":"/api-reference/company-files/create-upload-intent"},{"title":"Finalize Upload","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/{fileId}/finalize","href":"/api-reference/company-files/finalize-upload"}]},{"group":"Migrations","pages":[{"title":"Prepare File Migration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/migrations/prepare","href":"/api-reference/company-files/prepare-file-migration"},{"title":"Get File Migration State","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/migrations/state","href":"/api-reference/company-files/get-file-migration-state"},{"title":"Refresh File Migration Upload","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/migrations/refresh","href":"/api-reference/company-files/refresh-file-migration-upload"},{"title":"Finalize File Migration","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/migrations/finalize","href":"/api-reference/company-files/finalize-file-migration"},{"title":"Reconcile File Migration Metadata","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/migrations/reconcile","href":"/api-reference/company-files/reconcile-file-migration-metadata"}]},{"group":"Files","pages":[{"title":"List Files","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files","href":"/api-reference/company-files/list-files"},{"title":"Get File Metadata","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/{fileId}","href":"/api-reference/company-files/get-file-metadata"},{"title":"Rename, Move, or Categorize File","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/files/{fileId}","href":"/api-reference/company-files/rename-move-or-categorize-file"},{"title":"Bulk Move Files","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/bulk-move","href":"/api-reference/company-files/bulk-move-files"},{"title":"Delete File","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/files/{fileId}","href":"/api-reference/company-files/delete-file"}]},{"group":"Downloads","pages":[{"title":"Get Download URL","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/{fileId}/download-url","href":"/api-reference/company-files/get-download-url"},{"title":"Batch Download URLs","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/download-urls","href":"/api-reference/company-files/batch-download-urls"}]},{"group":"Versions","pages":[{"title":"List File Versions","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/{fileId}/versions","href":"/api-reference/company-files/list-file-versions"},{"title":"Create Re-upload Intent","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/{fileId}/versions","href":"/api-reference/company-files/create-re-upload-intent"},{"title":"Restore File Version","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/{fileId}/versions/{versionId}/restore","href":"/api-reference/company-files/restore-file-version"}]},{"group":"Placements","pages":[{"title":"List File Placements","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/{fileId}/placements","href":"/api-reference/company-files/list-file-placements"},{"title":"Add File Placement (Share to Another Entity)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/{fileId}/placements","href":"/api-reference/company-files/add-file-placement-share-to-another-entity"},{"title":"Update File Placement (Move / Categorize per Entity)","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/files/{fileId}/placements/{placementId}","href":"/api-reference/company-files/update-file-placement-move-categorize-per-entity"},{"title":"Remove File Placement","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/files/{fileId}/placements/{placementId}","href":"/api-reference/company-files/remove-file-placement"}]},{"group":"Folders","pages":[{"title":"Create Folder","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/folders","href":"/api-reference/company-files/create-folder"},{"title":"Get Folder Tree","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/folders","href":"/api-reference/company-files/get-folder-tree"},{"title":"List Folder Contents","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/folders/{folderId}","href":"/api-reference/company-files/list-folder-contents"},{"title":"Rename, Move or Categorize Folder","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/folders/{folderId}","href":"/api-reference/company-files/rename-move-or-categorize-folder"},{"title":"Delete Folder","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/folders/{folderId}","href":"/api-reference/company-files/delete-folder"}]}]},{"group":"Forms","pages":[{"title":"Overview","href":"/api-reference/forms/overview"},{"title":"List Forms","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms","href":"/api-reference/forms/list-forms"},{"title":"Download Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/{number}","href":"/api-reference/forms/download-form"},{"title":"Rename Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml patch /api/v1/companies/{companyId}/forms/{number}","href":"/api-reference/forms/rename-form"},{"title":"Delete Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml delete /api/v1/companies/{companyId}/forms/{number}","href":"/api-reference/forms/delete-form"},{"group":"Templates","pages":[{"title":"Upload Form Template","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/template","href":"/api-reference/forms/upload-form-template"},{"title":"Replace Form Template","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/forms/template/{number}","href":"/api-reference/forms/replace-form-template"},{"title":"Touch Form Template","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/template/{number}/touch","href":"/api-reference/forms/touch-form-template"},{"title":"Audit Form Template Smart Tags","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/template/{number}/smart-tag-audit","href":"/api-reference/forms/audit-form-template-smart-tags"}]},{"group":"Static Forms","pages":[{"title":"Upload Static Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/static","href":"/api-reference/forms/upload-static-form"},{"title":"Replace Static Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml put /api/v1/companies/{companyId}/forms/static/{number}","href":"/api-reference/forms/replace-static-form"}]},{"group":"Generated Forms","pages":[{"title":"List Generated Forms","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/generated","href":"/api-reference/forms/list-generated-forms"},{"title":"Upload Event Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/generated","href":"/api-reference/forms/upload-event-form"},{"title":"Touch Generated Form","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/generated/{id}/touch","href":"/api-reference/forms/touch-generated-form"},{"title":"Audit Generated Form Smart Tags","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/generated/{id}/smart-tag-audit","href":"/api-reference/forms/audit-generated-form-smart-tags"}]},{"group":"Packets","pages":[{"title":"List Form Packets","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/packets","href":"/api-reference/forms/list-form-packets"},{"title":"Import Historical Form Packet","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/forms/packets/import","href":"/api-reference/forms/import-historical-form-packet"},{"title":"Get Form Packet Download URL","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/forms/packets/{packetId}/download-url","href":"/api-reference/forms/get-form-packet-download-url"}]}]},{"group":"Document Generation","pages":[{"title":"Overview","href":"/api-reference/documents/overview"}]},{"group":"Submission Parsing","pages":[{"title":"Overview","href":"/api-reference/parsing/overview"},{"title":"Trigger Parse","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml post /api/v1/companies/{companyId}/files/trigger-parse","href":"/api-reference/submission-parsing/trigger-parse"},{"title":"List Parse Runs","deprecated":null,"version":null,"openapi":"/openapi/generated-external-api.yaml get /api/v1/companies/{companyId}/files/parse-runs","href":"/api-reference/submission-parsing/list-parse-runs"}]},{"group":"Reference","pages":[{"title":"Structured Field Values","href":"/api-reference/field-values/overview"},{"title":"Data Models","href":"/api-reference/data-models"},{"title":"API Changelog","href":"/api-reference/changelog"}]}]}]},"basePath":"","title":"Queue Import Job - AI Insurance","buildId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","deploymentId":"dpl_5joLUXmnJgwqjrHAS4dxZrQTdxgh","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-DPDWPCdE.js","utils-DyjUHyLo.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-BWYE1cdS.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-COAzxpEw.js","snippetPresets-DNiD_S52.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","ApiExamples-CjwVt80x.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-ByHQMk7z.js","shallow-CaZuw1AO.js","getApiPlaygroundDisplay-DPVPOknm.js","CodeSnippet-B31CH-Mp.js","CodeSnippets-BxTYZWz6.js","Page-DDHbuAIY.js","getPastedJson-DhoAwiNO.js","icon-Dhq8z75J.js","MethodPill-DLXmKOwr.js","DuplicateIcon-jzdVwyRU.js","createIcon-eD0b3klN.js","DynamicMarkdown-BfddVCX7.js","SectionHeading-2pSCIo17.js","axios-vUo_bRtp.js","Markdown-DsWjhwJ4.js","clsx-B2t_mZQG.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CUljsAY7.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-Cf70306N.js"]}