Download OpenAPI specification:
URL: https://sixfold.ai
Enhances the case creation endpoint to accept documents to attach to the new case
Add a new endpoint to attach one or more documents to an existing case
Defines a new schema for cases and related entities
Add Life API support for creating cases
For more detailed documentation of this version, refer to our legacy API docs site.
Greetings from Sixfold! We're excited to provide you with documentation for our API that allows you to seamlessly interact with our generative AI solution for insurance underwriters.
Analyze a risk by creating a case with or without documents
Check in on the progress of a case by fetching it
Receive real-time updates on the progress of a case via a webhook
Add one or more documents to an existing case
To get started with the Sixfold API, use the guides, code examples, and reference documentation on this page.
We will coordinate with you to complete the following set-up steps:
Read more about these steps below.
We will provide a base URL for your dedicated environment. This URL will be unique to your tenancy.
We will generate and share an API key for your environment via secure send.
For more details on how to use your API key, refer to the Authorization section below.
If you provide us with a webhook URL, we can send you events about your cases in real time. This is an optional step, but it can be helpful if you need to know quickly when a case changes state.
For more details on how to use webhooks, refer to the Webhooks section below.
To configure an integration with a third-party (such as an external file management service such as FileNet), please refer to this section for additional information.
We currently support integrations with the following services:
We require all API calls to be made over secure connections using HTTPS. We require a minimum of TLS 1.2.
You MUST include the Sixfold API key you were issued in a custom header for each API request.
Example: SIXFOLD-API-KEY: <your key>
| Type | Description | Example |
|---|---|---|
| IDS | Object identifiers are unique opaque strings. Clients should not attach any specific semantic meaning to the format of our IDs. For example, our object IDs are UUIDs today, but clients should not count on that behavior, because we may stop using UUIDs at any time. | c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| STRINGS | Strings are encoded using UTF-8. They do not have character limits. | Diamond West Construction |
| DATES | All dates are represented in ISO 8601 format YYYY-MM-DD. |
2024-01-10 |
| TIMESTAMPS | All object responses will include a createdAt and updatedAt in timestamp format. All timestamps are UTC and represented in ISO 8601 format YYYY-MM-DDThh:mm:ssZ. |
2024-01-10T16:00:30Z |
| BOOLEANS | Boolean values are represented as true or false. |
true |
| NULL | All optional fields are set to null unless a default value is set. |
null |
| Code | Description |
|---|---|
| 200 | OK. Indicates the request was successful. |
| 201 | Created. Indicates that the request was successful and has led to the creation of a resource. |
| Code | Description |
|---|---|
| 400 | Bad Request. Occurs when your request is malformed in some way that does not match a more specific 4xx code. |
| 401 | Unauthorized. Occurs when your request omitted an API key or specified an invalid key. |
| 404 | Not Found. Occurs when you requested a resource which doesn’t exist. This could signify an incorrect API endpoint URL or an incorrect object ID. |
| 413 | Content Too Large. Occurs when the size of the request entity exceeds the limit defined in the request limits section below. |
| 422 | Unprocessable Entity. Occurs when the request is syntactically correct but semantically invalid (e.g., validation errors) or cannot be processed. |
| 429 | Too Many Requests. Occurs when exceeding the request rate limit defined in the request limits section below. |
| 500 | Internal Server Error. Occurs when Sixfold encounters an error serving the request. This is usually a temporary occurrence, so your best bet is to retry again after a short time. |
| 503 | Service Unavailable. Typically occurs when the API is down for maintenance. |
When creating a case or attaching documents to a case, each document must be uploaded as a separate file.
When uploading multiple documents, the API supports partial success: some documents may be accepted while others are rejected in the same request.
| Scenario | HTTP Status | Response |
|---|---|---|
| All documents valid | 201 | data array with all uploaded documents |
| Some documents valid, some invalid | 201 | data array with valid documents, errors array with rejected documents |
| All documents invalid | 422 | errors array only |
Important: Clients should always check for the presence of an errors array even when receiving a 2xx response. A successful status code indicates at least one document was processed, but some documents may have been rejected.
{
"data": [
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "commercialDocuments",
"attributes": {
"filename": "policy.pdf",
"contentType": "application/pdf",
"byteSize": 102400,
"createdAt": "2024-05-01T12:00:00Z",
"updatedAt": "2024-05-01T12:00:00Z"
}
}
],
"errors": [
{
"title": "Invalid document",
"detail": "data.csv failed: Content type is not supported. Check the list of supported content types",
"code": "invalid-document",
"source": {
"document": "data.csv"
},
"status": 422
}
]
}
Documents may be rejected for the following reasons:
text/csv) are not supported.Our API uses URI date-based versioning.
Example: POST /api/2023-12/cases
We will always issue a new version of our API if we need to make changes that would break existing clients. Some examples of breaking changes include:
Removing functionality
Renaming parameters
Changing endpoint requirements
We may include backward-compatible changes in the current version of our API. These changes are designed to improve the API without breaking existing clients. Examples include:
Adding new API endpoints
Adding new optional request parameters to existing API methods
Adding new fields to existing API responses
There are restrictions on what types of documents can be uploaded.
The following content types are accepted for commercial cases:
| Content Type | Extension |
|---|---|
| application/pdf | |
| application/json | .json |
| image/jpeg | .jpeg, .jpg |
| image/tiff | .tiff, .tif |
| image/png | .png |
| text/plain | .txt |
| text/markdown | .md |
| text/html | .html |
| application/msword | .doc |
| application/vnd.openxmlformats-officedocument.wordprocessingml.document | .docx |
| application/vnd.ms-powerpoint | .ppt |
| application/vnd.openxmlformats-officedocument.presentationml.presentation | .pptx |
| application/vnd.ms-excel | .xls |
| application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | .xlsx |
| application/rtf | .rtf |
| image/bmp | .bmp |
| image/gif | .gif |
| message/rfc822 | .eml |
| application/vnd.ms-outlook | .msg |
| application/mbox | .mbox |
The following content types are accepted for life cases:
| Content Type | Extension |
|---|---|
| application/pdf | |
| application/json | .json |
| image/jpeg | .jpeg, .jpg |
| image/tiff | .tiff, .tif |
| image/png | .png |
| text/plain | .txt |
| text/html | .html |
| application/xhtml+xml | .xml |
You may not send more than 300 requests per minute. If you exceed this limit, the server will respond with 429 - Too Many Requests and block further requests for a short time.
No request body may be larger than 50 megabytes. If you exceed this limit, the server will respond with 413 - Content Too Large.
This endpoint requires the Referral Agent feature. If not enabled, it still responds successfully but returns
referralAgentEnabled: falseandactions: []. Please reach out to your account team if this feature is not enabled for your tenant.
Returns recommended actions for a commercial case, along with referral evaluation metadata.
The actions array is populated only when the Referral Agent feature is enabled and evaluation
has determined that a referral is recommended. Use the caseStatus field to determine whether evaluation has
completed:
PENDING — evaluation has not yet completed; poll again after receiving a cases/updated webhook with recommendedActions: "Referral".EVALUATED — evaluation is complete; check the actions array for recommendations.ERROR — the evaluation encountered an error.When referralAgentEnabled is false, the actions array will always be empty even if caseStatus is EVALUATED.
| case_id required | string <uuid> Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 The UUID of the commercial case. |
| action_type | string Value: "REFERRAL" Example: action_type=REFERRAL Filter actions by type. Currently only |
| status | string Value: "RECOMMENDED" Example: status=RECOMMENDED Filter actions by status. Currently only |
{- "data": {
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "caseStatus": "EVALUATED",
- "referralAgentEnabled": true,
- "evaluatedAt": "2026-03-13T17:41:27Z",
- "rulesConfigId": 42,
- "actions": [
- {
- "actionType": "REFERRAL",
- "status": "RECOMMENDED",
- "recommendation": "Refer to Senior Underwriter",
- "rationales": [
- {
- "triggerReason": "Does the business exceed the TIV limit?",
- "explanation": "Total insured value is $8M, exceeding the $5M limit.",
- "citations": [
- {
- "source": "application.pdf",
- "sourceId": "doc-uuid-1",
- "sourceType": "document",
- "pageNumber": "3"
}
]
}
], - "emailContent": {
- "subject": "Approval Required: Diamond West Construction",
- "body": "Hi [Name],\n\nI am referring the case for Diamond West Construction for your review and approval.\n\nSixfold Case: https://tenant.sixfold.app/commercial/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6\n\nReferral Rationale: This case requires referral due to the following reasons:\n• Total insured value is $8M, exceeding the $5M limit.\n\nPlease let me know if you need more information or have any questions.\n\nThanks,\n[Your Name]\n"
}
}
]
}
}If the request omits name or insured information, the endpoint automatically extracts the missing company information from uploaded documents.
Note: Document upload is required when relying on automatic field extraction.
Supported document content types:
application/pdf, application/json, image/jpeg, image/tiff, image/png,
text/plain, text/html, application/msword,
application/vnd.openxmlformats-officedocument.wordprocessingml.document,
application/vnd.ms-powerpoint,
application/vnd.openxmlformats-officedocument.presentationml.presentation,
application/vnd.ms-excel,
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
application/rtf, image/bmp, image/gif,
message/rfc822, application/vnd.ms-outlook, application/mbox, .msg
required | object |
{- "case": {
- "name": "Diamond West Construction Case",
- "insuranceLineId": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
- "insured": {
- "name": "Diamond West Construction",
- "address": {
- "street": "6676 Van Buren Boulevard",
- "city": "Riverside",
- "state": "CA",
- "country": "US",
- "postalCode": "92503"
}
}
}
}{- "data": {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "commercialCases",
- "attributes": {
- "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Diamond West Construction Case",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "General Liability"
}, - "insuredCompany": {
- "name": "Diamond West Construction",
- "businessActivity": "Construction",
- "summary": "Diamond West Development is a general building contractor based in Riverside, CA, with over 30 years of experience in the home improvement industry. They offer a wide range of services, including home remodeling, kitchen and bathroom remodeling, plumbing, electrical, flooring, and framing.",
- "businessClassification": [
- {
- "subjectType": "BusinessClassification",
- "subjectId": "422",
- "system": "naics",
- "code": "236118",
- "title": "Residential Remodelers",
- "explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
- "confidence": 0.79
}
], - "address": {
- "street": "6676 Van Buren Boulevard",
- "city": "Riverside",
- "state": "CA",
- "postalCode": 92503,
- "country": "US"
}
}, - "analysis": {
- "status": "pending",
- "riskEvaluation": {
- "score": null,
- "summary": "No risk overview available",
- "sectionScores": [
- {
- "sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "sectionName": "Cybersecurity",
- "score": 2,
- "signalCount": 5
}
]
}, - "riskSignalDetections": [
- {
- "explanation": "The business is involved in construction activities as evidenced by the various permits for building, plumbing, mechanical, and grading. These permits indicate that the business is engaged in constructing new structures, remodeling existing ones, and installing various systems, which are all activities related to construction.\n",
- "impact": "positive",
- "weight": 1,
- "type": "KeywordSignal",
- "keyword": "Family owned business",
- "fact_id": "422"
}
], - "facts": [ ],
- "narrative": [
- {
- "section_name": "Description of Operations",
- "text": "The company engages in commercial construction initiatives."
}
]
}, - "documents": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "filename": "file 1.pdf",
- "contentType": "application/pdf",
- "byteSize": 123456,
- "processingStatus": "processed",
- "failureReason": "no_text_extracted",
- "createdAt": "2024-05-02T09:30:00Z",
- "updatedAt": "2024-05-02T09:30:00Z",
- "classification": "Loss Run",
- "splitFromWorkbook": true,
- "originalWorkbookFilename": "exposure.xlsx",
- "workbookSheetName": "SOV",
- "splitFromDocumentId": "9f3c1b7e-2d4a-4c8b-b1e6-7a5d0c9e2f41",
}
], - "websites": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "processingStatus": "excluded",
- "failureReason": "processing_failed"
}
], - "quoted": null,
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}, - "warnings": [
- {
- "detail": "string",
- "source": {
- "parameter": "string"
}
}
]
}| external_id | string Example: external_id=bda31907-49ad-4cf2-b76f-7738f359ae5e Filter cases by unique external id |
| insurance_line_id | string <uuid> Example: insurance_line_id=1cfd8bdf-5a20-4dfb-aca0-729df7795e14 Filter cases by insurance line ID |
| created_at[gte] | string <date> Example: created_at[gte]=2025-01-01 Filter cases where created_at is greater than or equal to this date (inclusive, start of day). |
| created_at[lte] | string <date> Example: created_at[lte]=2025-01-31 Filter cases where created_at is less than or equal to this date (inclusive, end of day). |
| updated_at[gte] | string <date> Example: updated_at[gte]=2025-01-01 Filter cases where updated_at is greater than or equal to this date (inclusive, start of day). |
| updated_at[lte] | string <date> Example: updated_at[lte]=2025-01-31 Filter cases where updated_at is less than or equal to this date (inclusive, end of day). |
| sort_by | string Enum: "id" "external_id" "created_at" "updated_at" Example: sort_by=updated_at Sort results by id, external_id, created_at, or updated_at. |
| sort_dir | string Enum: "asc" "desc" Example: sort_dir=desc Sort direction (asc for oldest first, desc for newest first). Defaults to desc when sort_by is provided. |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination (must be >= 1) |
| page_size | integer [ 1 .. 100 ] Default: 100 Example: page_size=100 Number of items per page (1-100, default 100) |
{- "data": [
- {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "commercialCases",
- "attributes": {
- "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Diamond West Construction Case",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "General Liability"
}, - "insuredCompany": {
- "name": "Diamond West Construction",
- "businessActivity": "Construction",
- "summary": "Diamond West Development is a general building contractor based in Riverside, CA, with over 30 years of experience in the home improvement industry. They offer a wide range of services, including home remodeling, kitchen and bathroom remodeling, plumbing, electrical, flooring, and framing.",
- "businessClassification": [
- {
- "subjectType": "BusinessClassification",
- "subjectId": "422",
- "system": "naics",
- "code": "236118",
- "title": "Residential Remodelers",
- "explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
- "confidence": 0.79
}
], - "address": {
- "street": "6676 Van Buren Boulevard",
- "city": "Riverside",
- "state": "CA",
- "postalCode": 92503,
- "country": "US"
}
}, - "analysis": {
- "status": "error",
- "errors": [
- {
- "title": "Processing Error",
- "code": null,
- "detail": "We could not complete processing for this case. Please try again later.",
- "source": { }
}
], - "riskEvaluation": {
- "score": 4,
- "summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
- "sectionScores": [
- {
- "sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "sectionName": "Cybersecurity",
- "score": 2,
- "signalCount": 5
}
]
}, - "riskSignalDetections": [
- {
- "explanation": "The business is involved in construction activities as evidenced by the various permits for building, plumbing, mechanical, and grading. These permits indicate that the business is engaged in constructing new structures, remodeling existing ones, and installing various systems, which are all activities related to construction.\n",
- "impact": "positive",
- "weight": 1,
- "type": "KeywordSignal",
- "keyword": "Family owned business",
- "fact_id": "422"
}
], - "facts": [
- {
- "section_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
- "section": "Health",
- "section_summary": "The patient has a history of hypertension and diabetes. The patient is currently taking medication for hypertension and diabetes.\n",
- "questions": [
- {
- "type": "questionAnswer",
- "fact_id": "422",
- "question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
- "answer": "Is PCI Compliance Applicable to Mondelez International Inc.?\\nMondelez International Inc. is a multinational confectionery, food, and beverage company that manufactures and markets food products and beverages. The company operates in approximately 160 countries and has an annual revenue of about $26.5 billion.\\n\\nThe Payment Card Industry Data Security Standard (PCI DSS) is a set of security standards that ensure companies that accept, process, store, or transmit credit card information maintain a secure environment. PCI DSS is administered and managed by the PCI Security Standards Council (PCI SSC), an independent body created by major payment card brands such as Visa, MasterCard, and American Express. \\n\\nPCI DSS applies to any organization, regardless of size or the number of transactions, that accepts, transmits, or stores cardholder data. This includes companies that process credit card information and merchants that accept payment cards as payment for goods and services. \\n\\nGiven that Mondelez International Inc. operates on a global scale and deals with financial transactions, it would need to comply with PCI DSS. \\n\\n## Is Mondelez International Inc. PCI Compliant?\\nMondelez International Inc. has a global Ethics & Compliance program that guides its employees to adhere to applicable laws and regulations while conducting business worldwide. The company also has a dedicated Compliance team that works with senior management to implement the program and ensures employees understand what is expected of them. \\n\\nHowever, it is unclear from the available information whether Mondelez International Inc. is PCI compliant regarding the specific requirements of PCI DSS. This would require further investigation and analysis of the company's data security measures and practices.\n",
- "sources": [
- null
], - "source_constraints": {
- "permitted_actions": [ ],
- "document_type_filter": [ ],
- "domain_allowlist": [ ],
- "domain_blocklist": [ ]
}, - "impact": "positive"
}
]
}
], - "narrative": [
- {
- "section_name": "Description of Operations",
- "text": "The company engages in commercial construction initiatives."
}
], - "loss": [
- {
- "lineOfBusiness": "Auto",
- "lineOfBusinessId": "8ad649d8-b15c-4a3a-a08c-dfebfa9a5bf0",
- "summary": "string",
- "claims": [
- {
- "claimDateWhenAccidentHappens": "2024-01-15",
- "lossDescription": "Water damage to property",
- "totalIncurred": 25000.5,
- "status": "Open",
- "openLosses": 15000,
- "paidLosses": 10000,
- "lineOfBusiness": "Property",
- "lineOfBusinessId": "8ad649d8-b15c-4a3a-a08c-dfebfa9a5bf0",
- "policyStartDate": "2024-01-01",
- "policyExpiryDate": "2025-01-01",
- "insurer": "ABC Insurance Company"
}
]
}
], - "lossCoveragePeriods": [
- {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "coveragePeriodStart": "2014-03-01",
- "coveragePeriodEnd": "2015-03-01"
}
]
}, - "documents": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "filename": "file 1.pdf",
- "contentType": "application/pdf",
- "byteSize": 123456,
- "processingStatus": "processed",
- "failureReason": "no_text_extracted"
}
], - "websites": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "processingStatus": "excluded",
- "failureReason": "processing_failed"
}
], - "quoted": true,
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}
], - "meta": {
- "page": 1,
- "pageSize": 100,
- "totalItems": 250,
- "totalPages": 3
}, - "links": {
- "self": "/api/2024-05/commercial/cases?page=2&page_size=100",
- "first": "/api/2024-05/commercial/cases?page=1&page_size=100",
- "last": "/api/2024-05/commercial/cases?page=3&page_size=100",
- "prev": "/api/2024-05/commercial/cases?page=1&page_size=100",
- "next": "/api/2024-05/commercial/cases?page=3&page_size=100"
}
}| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| lineOfBusinessId | string Example: lineOfBusinessId=b5f0a313-66f9-47dd-9dc0-808ff971cc64 The uuid for a line of business for loss run analysis |
{- "data": {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "commercialCases",
- "attributes": {
- "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Diamond West Construction Case",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "General Liability"
}, - "insuredCompany": {
- "name": "Diamond West Construction",
- "businessActivity": "Construction",
- "summary": "Diamond West Development is a general building contractor based in Riverside, CA, with over 30 years of experience in the home improvement industry. They offer a wide range of services, including home remodeling, kitchen and bathroom remodeling, plumbing, electrical, flooring, and framing.",
- "businessClassification": [
- {
- "subjectType": "BusinessClassification",
- "subjectId": "422",
- "system": "naics",
- "code": "236118",
- "title": "Residential Remodelers",
- "explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
- "confidence": 0.79
}
], - "address": {
- "street": "6676 Van Buren Boulevard",
- "city": "Riverside",
- "state": "CA",
- "postalCode": 92503,
- "country": "US"
}
}, - "analysis": {
- "status": "error",
- "errors": [
- {
- "title": "Processing Error",
- "code": null,
- "detail": "We could not complete processing for this case. Please try again later.",
- "source": { }
}
], - "riskEvaluation": {
- "score": 4,
- "summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
- "sectionScores": [
- {
- "sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
- "sectionName": "Cybersecurity",
- "score": 2,
- "signalCount": 5
}
]
}, - "riskSignalDetections": [
- {
- "explanation": "The business is involved in construction activities as evidenced by the various permits for building, plumbing, mechanical, and grading. These permits indicate that the business is engaged in constructing new structures, remodeling existing ones, and installing various systems, which are all activities related to construction.\n",
- "impact": "positive",
- "weight": 1,
- "type": "KeywordSignal",
- "keyword": "Family owned business",
- "fact_id": "422"
}
], - "facts": [
- {
- "section_id": "a1b2c3d4-e5f6-7g8h-9i0j-k1l2m3n4o5p6",
- "section": "Health",
- "section_summary": "The patient has a history of hypertension and diabetes. The patient is currently taking medication for hypertension and diabetes.\n",
- "questions": [
- {
- "type": "questionAnswer",
- "fact_id": "422",
- "question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
- "answer": "Is PCI Compliance Applicable to Mondelez International Inc.?\\nMondelez International Inc. is a multinational confectionery, food, and beverage company that manufactures and markets food products and beverages. The company operates in approximately 160 countries and has an annual revenue of about $26.5 billion.\\n\\nThe Payment Card Industry Data Security Standard (PCI DSS) is a set of security standards that ensure companies that accept, process, store, or transmit credit card information maintain a secure environment. PCI DSS is administered and managed by the PCI Security Standards Council (PCI SSC), an independent body created by major payment card brands such as Visa, MasterCard, and American Express. \\n\\nPCI DSS applies to any organization, regardless of size or the number of transactions, that accepts, transmits, or stores cardholder data. This includes companies that process credit card information and merchants that accept payment cards as payment for goods and services. \\n\\nGiven that Mondelez International Inc. operates on a global scale and deals with financial transactions, it would need to comply with PCI DSS. \\n\\n## Is Mondelez International Inc. PCI Compliant?\\nMondelez International Inc. has a global Ethics & Compliance program that guides its employees to adhere to applicable laws and regulations while conducting business worldwide. The company also has a dedicated Compliance team that works with senior management to implement the program and ensures employees understand what is expected of them. \\n\\nHowever, it is unclear from the available information whether Mondelez International Inc. is PCI compliant regarding the specific requirements of PCI DSS. This would require further investigation and analysis of the company's data security measures and practices.\n",
- "sources": [
- {
- "type": null,
- "url": null,
- "sourceType": null
}
], - "source_constraints": {
- "permitted_actions": [
- "Case Knowledge Base",
- "Web Search"
], - "document_type_filter": [
- "SOV",
- "Insurance Policy"
], - "domain_allowlist": [
- "wsj.com",
- "reuters.com"
], - "domain_blocklist": [
- "example.com"
]
}, - "impact": "positive"
}
]
}
], - "narrative": [
- {
- "section_name": "Description of Operations",
- "text": "The company engages in commercial construction initiatives."
}
], - "loss": [
- {
- "lineOfBusiness": "Auto",
- "lineOfBusinessId": "8ad649d8-b15c-4a3a-a08c-dfebfa9a5bf0",
- "summary": "string",
- "claims": [
- {
- "claimDateWhenAccidentHappens": "2024-01-15",
- "lossDescription": "Water damage to property",
- "totalIncurred": 25000.5,
- "status": "Open",
- "openLosses": 15000,
- "paidLosses": 10000,
- "lineOfBusiness": "Property",
- "lineOfBusinessId": "8ad649d8-b15c-4a3a-a08c-dfebfa9a5bf0",
- "policyStartDate": "2024-01-01",
- "policyExpiryDate": "2025-01-01",
- "insurer": "ABC Insurance Company"
}
]
}
], - "lossCoveragePeriods": [
- {
- "documentId": "4704590c-004e-410d-adf7-acb7ca0a7052",
- "coveragePeriodStart": "2014-03-01",
- "coveragePeriodEnd": "2015-03-01"
}
]
}, - "documents": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "filename": "file 1.pdf",
- "contentType": "application/pdf",
- "byteSize": 123456,
- "processingStatus": "processed",
- "failureReason": "no_text_extracted",
- "createdAt": "2024-05-02T09:30:00Z",
- "updatedAt": "2024-05-02T09:30:00Z",
- "classification": "Loss Run",
- "splitFromWorkbook": true,
- "originalWorkbookFilename": "exposure.xlsx",
- "workbookSheetName": "SOV",
- "splitFromDocumentId": "9f3c1b7e-2d4a-4c8b-b1e6-7a5d0c9e2f41",
}
], - "websites": [
- {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "processingStatus": "excluded",
- "failureReason": "processing_failed"
}
], - "quoted": true,
- "recommendedActions": "Referral",
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}
}Permanently deletes a commercial case and all associated data (documents, facts, workflows). This action is irreversible.
Requires the case:delete permission on the API key. This permission is not granted by default
and must be explicitly requested. Existing API keys will not have this permission retroactively added.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Export the underwriting narrative for a commercial case as a Microsoft Word document (.docx).
The narrative contains AI-generated sections summarizing key aspects of the case analysis, including risk assessment, business classification, and underwriting recommendations.
Note: This endpoint will return a 409 Conflict error if the case is still being processed.
Wait for the case analysis to complete before requesting the narrative export.
| case_id required | string <uuid> Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 The unique identifier of the commercial case |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Export the underwriting narrative for a commercial case as a PDF document.
The narrative contains AI-generated sections summarizing key aspects of the case analysis, including risk assessment, business classification, and underwriting recommendations.
Note: This endpoint will return a 409 Conflict error if the case is still being processed.
Wait for the case analysis to complete before requesting the narrative export.
| case_id required | string <uuid> Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 The unique identifier of the commercial case |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Submit many commercial cases as one batch. Cases are paced into analysis so a large submission does not overwhelm the pipeline, submissions resume safely after an interruption, and progress is tracked against a single batch handle.
Opens a batch that cases are then appended to one at a time. Use this when submitting many cases at once: the batch paces them into analysis so a large submission does not overwhelm the pipeline, and gives you one handle to track progress against.
You supply the batch id, not us. It must be a UUID that you generate.
That is what makes the submission resumable — if a response is lost you
already know the id, so you can simply call this again. Creating a batch that
already exists returns 200 with its current state rather than an error, so
a retry is always safe.
Nothing waits for you to finish. Cases begin processing as they arrive; sealing is bookkeeping, not a gate.
Typical flow:
POST /2024-05/commercial/cases/batch — open the batch (this endpoint)POST /2024-05/commercial/cases/batch/{batch_id}/cases — once per casePOST /2024-05/commercial/cases/batch/{batch_id}/seal — optionalGET /2024-05/commercial/cases/batch/{batch_id} — progress and case IDs| batchId required | string <uuid> A UUID you generate. Reuse it to resume; reusing it never errors. |
| idleSealHours | integer >= 1 Default: 24 Hours of inactivity after which the batch seals itself, so a forgotten batch does not stay open indefinitely. Must be less than the batch lifetime (96 hours). An idle seal is soft: if you append again afterwards the batch simply reopens. |
{- "batchId": "8f14e45f-ceea-467a-9575-3b4a3c0f8f2b"
}{- "data": {
- "batchId": "8f14e45f-ceea-467a-9575-3b4a3c0f8f2b",
- "state": "open",
- "sealed": false,
- "sealedReason": null,
- "sealedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "idleSealHours": 24,
- "totalCount": 250,
- "counts": {
- "staged": 180,
- "claimed": 0,
- "promoted": 10,
- "succeeded": 58,
- "failed": 1,
- "rejected": 1,
- "expired": 0
}, - "items": [
- {
- "itemKey": "row-17",
- "status": "promoted",
- "caseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
- "errors": [
- { }
]
}
], - "itemsPage": {
- "limit": 100,
- "offset": 0,
- "total": 250
}
}
}Returns the batch's state, case counts by status, and the id of each created case once it has been released into analysis.
For "how far along am I?", counts is usually all you need and is never
paged. The per-case items list is paged — a batch can hold thousands of
cases, and this endpoint is meant to be polled.
| batch_id required | string <uuid> |
| limit | integer <= 500 Default: 100 Cases per page. Values above the maximum are clamped rather than rejected. |
| offset | integer Default: 0 |
{- "data": {
- "batchId": "8f14e45f-ceea-467a-9575-3b4a3c0f8f2b",
- "state": "open",
- "sealed": false,
- "sealedReason": null,
- "sealedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "idleSealHours": 24,
- "totalCount": 250,
- "counts": {
- "staged": 180,
- "claimed": 0,
- "promoted": 10,
- "succeeded": 58,
- "failed": 1,
- "rejected": 1,
- "expired": 0
}, - "items": [
- {
- "itemKey": "row-17",
- "status": "promoted",
- "caseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
- "errors": [
- { }
]
}
], - "itemsPage": {
- "limit": 100,
- "offset": 0,
- "total": 250
}
}
}Adds one case to an open batch.
The request body is identical to POST /2024-05/commercial/cases. If you
already integrate with that endpoint, the only changes are the URL and the
Sixfold-Item-Key header — the payload itself does not move. Documents are
uploaded here exactly as they are there.
Call this once per case, in a loop. One case per request is deliberate: it keeps each upload short, so a dropped connection costs you one case rather than the whole submission, and it lets you run the loop several ways at once if you want more throughput.
Retrying is always safe. Sixfold-Item-Key identifies the case within
the batch, so re-sending anything you are unsure about is a no-op that
reports the case's current status — it will not create a duplicate or
re-upload documents. This is how you resume after an interruption: keep
appending, and let the server discard what it already has.
A rejected case does not fail the request. Validation problems come back
as 202 with status: "rejected" and the reason, leaving the batch usable.
Append a corrected case under a new item key.
| batch_id required | string <uuid> The batch id you supplied when opening the batch. |
| Sixfold-Item-Key | string Example: row-17 Your stable identifier for this case within the batch — typically your
own row id. Required unless the payload carries |
required | object |
{- "case": {
- "name": "Diamond West Construction Case",
- "insuranceLineId": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
- "insured": {
- "name": "Diamond West Construction",
- "address": {
- "street": "6676 Van Buren Boulevard",
- "city": "Riverside",
- "state": "CA",
- "country": "US",
- "postalCode": "92503"
}
}
}
}{- "data": {
- "batchId": "5579c111-9c50-47e2-af92-f16d52e63189",
- "itemKey": "row-17",
- "status": "staged",
- "errors": [
- { }
], - "batchState": "open",
- "counts": { }
}
}Declares the submission complete. The batch stops accepting appends and can
then be reported as completed once every case has finished.
Optional. Cases are processed as they arrive, so sealing does not start
or speed up anything — it only tells us you are done. A batch you never seal
will seal itself after idleSealHours of inactivity, so a client that
crashes mid-submission still converges.
Sealing is binding, unlike the automatic idle seal: appending after this
returns 409. Calling it twice is harmless.
| batch_id required | string <uuid> |
{- "data": {
- "batchId": "8f14e45f-ceea-467a-9575-3b4a3c0f8f2b",
- "state": "open",
- "sealed": false,
- "sealedReason": null,
- "sealedAt": "2019-08-24T14:15:22Z",
- "expiresAt": "2019-08-24T14:15:22Z",
- "idleSealHours": 24,
- "totalCount": 250,
- "counts": {
- "staged": 180,
- "claimed": 0,
- "promoted": 10,
- "succeeded": 58,
- "failed": 1,
- "rejected": 1,
- "expired": 0
}, - "items": [
- {
- "itemKey": "row-17",
- "status": "promoted",
- "caseId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
- "errors": [
- { }
]
}
], - "itemsPage": {
- "limit": 100,
- "offset": 0,
- "total": 250
}
}
}Returns a paginated list of the customer-visible documents attached to the case. Documents produced by Sixfold's own web research are excluded, matching the documents array on GET /2024-05/commercial/cases/{case_id}.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
- "type": "commercialDocuments",
- "attributes": {
- "filename": "loss_run.pdf",
- "contentType": "application/pdf",
- "byteSize": 204800,
- "classification": "Loss Run",
- "createdAt": "2024-05-02T09:30:00Z",
- "updatedAt": "2024-05-02T09:30:00Z"
}
}, - {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "type": "commercialDocuments",
- "attributes": {
- "filename": "policy.pdf",
- "contentType": "application/pdf",
- "byteSize": 102400,
- "createdAt": "2024-05-01T12:00:00Z",
- "updatedAt": "2024-05-01T12:00:00Z"
}
}
], - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 2,
- "totalPages": 1
}, - "links": {
- "prev": null,
- "next": null
}
}Upload one or more documents to an existing commercial case.
Supported content types: application/pdf, application/json, image/jpeg, image/tiff, image/png, text/plain, text/html, application/msword, application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/vnd.ms-powerpoint, application/vnd.openxmlformats-officedocument.presentationml.presentation, application/vnd.ms-excel, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/rtf, image/bmp, image/gif, message/rfc822, application/vnd.ms-outlook, application/mbox
Files with unsupported content types (e.g., ZIP archives) will be rejected. When some files in a batch are rejected, the response includes both a data array (accepted documents) and an errors array (rejected documents with supported types listed).
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| documents required | Array of strings <binary> [ items <binary > ] Array of documents to be uploaded. |
{- "data": [
- {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "commercialDocuments",
- "attributes": {
- "filename": "policy.pdf",
- "contentType": "application/pdf",
- "byteSize": 102400,
- "createdAt": "2024-05-01T12:00:00Z",
- "updatedAt": "2024-05-01T12:00:00Z"
}
}
]
}Retrieves document metadata and a downloadUrl for the document binary. To download the file, make a GET request to the downloadUrl with your Sixfold-Api-Key header.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| document_id required | string <uuid> Example: 0544e627-5c81-49da-99bc-a2822ead6b99 The unique identifier of the document |
{- "data": {
- "id": "0544e627-5c81-49da-99bc-a2822ead6b99",
- "type": "commercialDocuments",
- "attributes": {
- "filename": "policy.pdf",
- "contentType": "application/pdf",
- "byteSize": 102400,
- "classification": "Loss Run",
- "createdAt": "2024-05-01T12:00:00Z",
- "updatedAt": "2024-05-01T12:00:00Z",
}
}
}Removes the document record and deletes the associated file from storage. This action is irreversible.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| document_id required | string <uuid> Example: 0544e627-5c81-49da-99bc-a2822ead6b99 The unique identifier of the document |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Streams the document's bytes. This is the target of the downloadUrl property on a commercial document. It is an authenticated proxy, not a pre-signed URL: authenticate with your Sixfold-Api-Key header exactly as for any other endpoint. There is no expiring link and no unauthenticated access path.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| document_id required | string <uuid> Example: 0544e627-5c81-49da-99bc-a2822ead6b99 The unique identifier of the document |
| Range | string Example: bytes=0-1023 Optional single byte range, in the form |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Creates or updates the quote status for a commercial case. Use the status parameter (recommended) with one of
quoted, not_quoted, bound, not_taken_up, or declined. Send status: null to clear the quote status.
The quoted boolean is deprecated; use status instead. Requests that send only quoted will succeed but
return Deprecation: true and X-Deprecation-Warning response headers.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
required | object or object Quote status payload. Provide status (recommended) or the deprecated quoted boolean.
Send |
{- "case_quote": {
- "status": "bound"
}
}{ }Deletes the quote record for the case. Returns 204 even if the case had no quote. Requires case delete permission.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
{ }Retrieve facts extracted from commercial case documents, including question answers and keyword matches
Retrieves QuestionAnswer and KeywordMatch facts for a commercial case with pagination. Other internal fact types (e.g. loss run, property) are not returned.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "422",
- "type": "commercialCaseFacts",
- "attributes": {
- "factType": "QuestionAnswer",
- "name": "What is the primary business activity?",
- "answer": "The primary business activity is commercial construction and steel fabrication.",
- "explanation": null,
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [
- {
- "filename": "submission.pdf",
- "category": "sixfold",
- "sourceType": "document"
},
], - "relatedConditions": [ ]
}
}, - {
- "id": "423",
- "type": "commercialCaseFacts",
- "attributes": {
- "factType": "KeywordMatch",
- "name": "explosives",
- "answer": null,
- "explanation": "Explosives were referenced in the loss run documents.",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [ ],
- "relatedConditions": [ ]
}
}
], - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 2,
- "totalPages": 1
}, - "links": {
- "prev": null,
- "next": null
}
}Retrieves a single QuestionAnswer or KeywordMatch fact by its unique identifier. Returns 404 for other fact types. Use the facts list endpoint to discover valid fact IDs.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| fact_id required | string <uuid> Example: f8e3c4a0-5b2e-4220-90d2-96d94337e8e6 The unique identifier of the fact |
{- "data": {
- "id": "422",
- "type": "commercialCaseFacts",
- "attributes": {
- "factType": "QuestionAnswer",
- "name": "What is the primary business activity?",
- "answer": "The primary business activity is commercial construction and steel fabrication.",
- "explanation": null,
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [
- {
- "filename": "submission.pdf",
- "category": "sixfold",
- "sourceType": "document"
}
], - "relatedConditions": [ ]
}
}
}Returns underwriter feedback across every commercial case in the tenant, newest first, including feedback entered in the Sixfold UI.
Each record carries subject, the question title or keyword the feedback
was left on. It matches title on a Q&ASignal and keyword on a
KeywordSignal in the case payload, so feedback can be attributed to the
risk signal that produced it. subjectType and subjectId identify the
feedback target. factId remains populated only for question answers and
keyword matches.
Requires the case:read permission.
| case_id | string <uuid> Example: case_id=c4fb4c10-5b2e-4220-90d2-96d94337e8e6 Restrict results to a single case. |
| insurance_line_id | string <uuid> Example: insurance_line_id=1cfd8bdf-5a20-4dfb-aca0-729df7795e14 Filter feedback to cases on a single insurance line. |
| sentiment | string Enum: "positive" "negative" Example: sentiment=negative Filter by thumbs-up or thumbs-down. |
| created_at[gte] | string <date> Example: created_at[gte]=2026-08-01 Only feedback created on or after this date (inclusive, start of day). |
| created_at[lte] | string <date> Example: created_at[lte]=2026-08-31 Only feedback created on or before this date (inclusive, end of day). |
| updated_at[gte] | string <date> Example: updated_at[gte]=2026-08-01 Only feedback updated on or after this date (inclusive, start of day). |
| updated_at[lte] | string <date> Example: updated_at[lte]=2026-08-31 Only feedback updated on or before this date (inclusive, end of day). |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "94",
- "type": "commercialCaseFeedback",
- "attributes": {
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "caseName": "Boys & Girls Clubs of Wichita Falls",
- "insuranceLineId": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "factId": "422",
- "subjectType": "QuestionAnswer",
- "subjectId": "422",
- "outputType": "v2_commercial_question_answer_fact",
- "subject": "Primary business hazards?",
- "sentiment": "negative",
- "reasons": [
- "missing_data"
], - "comment": "The loss runs are in the file.",
- "reportedByType": "user",
- "createdAt": "2026-08-28T14:40:50Z",
- "updatedAt": "2026-08-28T14:40:50Z"
}
}
], - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 1,
- "totalPages": 1
}, - "links": {
- "prev": null,
- "next": null
}
}Retrieves all feedback submitted by the authenticated API key for the given case. Feedback from other API keys are not visible.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "1",
- "type": "commercialCaseFeedback",
- "attributes": {
- "factId": "422",
- "subjectType": "QuestionAnswer",
- "subjectId": "422",
- "sentiment": "positive",
- "comment": "The answer looks accurate.",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z"
}
}
], - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 1,
- "totalPages": 1
}, - "links": {
- "prev": null,
- "next": null
}
}Submits thumbs-up/down feedback on a question answer, keyword match, or business classification. Multiple feedback entries per output are allowed when multiple underwriters share an API key.
Send either the legacy factId for a question answer or keyword match, or the typed pair subjectType and subjectId. Do not send both forms. BusinessClassification is supported only through the typed pair. Subject IDs are scoped to the current analysis and may change after the case is re-analyzed.
Positive feedback: only reportedBy is accepted. reasons and comment are not allowed.
Negative feedback: reasons is required (one or more from the accepted enum). comment is optional. reportedBy is optional.
The reportedBy field accepts a free-form identifier (name or email) for the underwriter submitting the feedback. It is stored as-is and is not linked to a Sixfold user account.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| sentiment required | string Enum: "positive" "negative" Thumbs up (positive) or thumbs down (negative). |
| reasons | Array of strings Items Enum: "false_data" "missing_data" "cant_verify" "unclear" "bad_formatting" "wrong_assumption" "other" Required when sentiment is negative. Not allowed when sentiment is positive. One or more reasons explaining why the output was incorrect. Multiple values are allowed. |
| comment | string or null Optional. Only allowed for negative feedback. Free-text comment explaining the feedback. |
| reportedBy | string or null Optional identifier (name or email) of the underwriter submitting feedback. |
| factId required | integer Legacy ID of a question answer or keyword match fact. |
{- "sentiment": "positive",
- "reasons": [
- "false_data",
- "unclear"
], - "comment": "The answer is missing key details.",
- "subjectType": "BusinessClassification",
- "subjectId": "422"
}{- "data": {
- "id": "1",
- "type": "commercialCaseFeedback",
- "attributes": {
- "factId": "422",
- "subjectType": "QuestionAnswer",
- "subjectId": "422",
- "sentiment": "positive",
- "comment": "The answer looks accurate.",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z"
}
}
}Updates existing feedback. Only the API key that created the feedback may update it. All fields are optional — omitted fields are left unchanged.
Switching to positive: reasons and comment are automatically cleared — no need to pass them explicitly.
Switching to negative: reasons is required. comment is optional.
Positive feedback: passing reasons or comment explicitly returns 422.
Negative feedback: reasons is required (if not already set). comment is optional.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| feedback_id required | integer Example: 1 The ID of the feedback to update. |
| sentiment | string Enum: "positive" "negative" Optional. Updated sentiment. Omit to leave unchanged. |
| reasons | Array of strings Items Enum: "false_data" "missing_data" "cant_verify" "unclear" "bad_formatting" "wrong_assumption" "other" Optional. Updated reasons. Required if sentiment is (or becomes) negative. Not allowed if sentiment is (or remains) positive. Omit to leave unchanged. |
| comment | string or null Optional. Only allowed for negative feedback. Updated comment. Omit to leave unchanged. |
| reportedBy | string or null Optional. Updated reporter identifier. Omit to leave unchanged. |
{- "sentiment": "negative",
- "reasons": [
- "wrong_assumption"
], - "comment": "On reflection, the answer is wrong.",
- "reportedBy": "[email protected]"
}{- "data": {
- "id": "1",
- "type": "commercialCaseFeedback",
- "attributes": {
- "factId": "422",
- "subjectType": "QuestionAnswer",
- "subjectId": "422",
- "sentiment": "negative",
- "comment": "On reflection, the answer is wrong.",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T13:00:00Z"
}
}
}Deletes feedback. Only the API key that created the feedback may delete it.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| feedback_id required | integer Example: 1 The ID of the feedback to delete. |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Run the Smart Retrieval Research Agent on a case with caller-supplied questions and retrieve the answers
Runs the Smart Retrieval Research Agent (SRRA) against the case's documents with caller-supplied question prompts, and returns a run you can poll for answers.
The run is asynchronous: an SRRA batch can take several minutes, so this
endpoint returns 202 Accepted with a run UUID immediately. Poll
GET /2024-05/commercial/cases/{case_id}/research-runs/{run_uuid} until the
run reaches done (or error).
A run is read-only with respect to the case: it never creates analyses or writes case facts, so runs are repeatable and safe to re-issue.
Availability: this endpoint is gated by a per-tenant feature flag and is
enabled on test tenants only. When it is disabled, the endpoint responds
404 Not Found. The API key must carry the research:run permission.
system_promptsoverrides are not accepted yet — question prompt text is taken solely from each question'stext. Reserved for a future release.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
required | Array of objects [ 1 .. 100 ] items The questions to research. Each is answered independently. |
object or null Optional batching overrides. |
{- "questions": [
- {
- "question_id": "q1",
- "text": "What is the insured's primary business operation?"
}, - {
- "question_id": "q2",
- "text": "Summarize the loss history documented in the file."
}
]
}{- "data": {
- "id": "2249683a-ce2e-4818-af66-be0b7a3f5770",
- "type": "commercialResearchRun",
- "attributes": {
- "status": "pending",
- "questionCount": 2,
- "results": null,
- "error": null,
- "createdAt": "2026-07-31T19:19:35Z",
- "startedAt": null,
- "completedAt": null
}
}
}Returns the status and, once complete, the results of a research run started
via POST /2024-05/commercial/cases/{case_id}/research-runs.
Poll this endpoint until status is done (results available) or error.
Only the API key that created the run can retrieve it.
Availability: gated by a per-tenant feature flag (test tenants only);
responds 404 Not Found when disabled. Requires the research:run permission.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| run_uuid required | string <uuid> Example: 2249683a-ce2e-4818-af66-be0b7a3f5770 The run UUID returned when the run was created. |
{- "data": {
- "id": "2249683a-ce2e-4818-af66-be0b7a3f5770",
- "type": "commercialResearchRun",
- "attributes": {
- "status": "done",
- "questionCount": 2,
- "results": [
- {
- "questionId": "q1",
- "status": "ok",
- "answer": "Verdict: N/A. The insured's primary business operation is operating an adult medical day care center…",
- "citations": [
- {
- "citationId": "1",
- "url": "df9b5ff4-5d82-454b-bfb4-485f8ad20814",
- "sourceType": "document",
- "sourceCategory": "sixfold"
}
], - "error": null
}
], - "error": null,
- "createdAt": "2026-07-31T19:19:35Z",
- "startedAt": "2026-07-31T19:19:35Z",
- "completedAt": "2026-07-31T19:20:38Z"
}
}
}Read a commercial insurance line's current question configs (the questions used to analyze cases on the line)
Returns the current question configs for a commercial insurance line — the
questions used to analyze cases on this line: the prompt text, its
category, the model and researchAssistant flags, and any
sourceConstraints.
This is a read-only view of live line configuration — it never triggers analysis, a re-run, or any workflow. Use it to fetch a line's current questions instead of relying on a baked-in copy of the prompt text.
Availability: gated by a per-tenant feature flag (test tenants only);
responds 404 Not Found when disabled. Requires the case:read permission.
| line_id required | string <uuid> Example: f350e2bf-f801-48bd-8a9a-74dfde0ff174 The commercial insurance line id (UUID). |
{- "data": [
- {
- "questionId": 101,
- "type": "commercialLineQuestion",
- "attributes": {
- "text": "What is the insured's primary business operation?",
- "category": "General",
- "researchAssistant": true,
- "model": "summary",
- "sourceConstraints": {
- "permitted_actions": [
- "case_kb",
- "web_search"
]
}
}
}, - {
- "questionId": 102,
- "type": "commercialLineQuestion",
- "attributes": {
- "text": "Summarize the loss history for the account.",
- "category": "Loss Analysis",
- "researchAssistant": false,
- "model": "reasoning",
- "sourceConstraints": null
}
}
]
}Create a new life case with insured person details and optional documents.
Supported document content types:
application/pdf, application/json, application/xhtml+xml, image/jpeg, image/tiff,
image/png, text/html, text/plain
required | object |
{- "case": {
- "insuranceLineId": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "externalId": "client-custom-identifier",
- "insured": {
- "name": "Jane Doe",
- "bornOn": "1949-12-31",
- "occupation": "Software Engineer",
- "sex": "female"
}, - "integrations": [
- {
- "id": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
- "files": [
- {
- "id": "filenet-unique-identifier",
- "category": "Medical Record"
}, - {
- "id": "filenet-unique-identifier-2",
- "category": "Application"
}
]
}
]
}
}{- "data": {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "lifeCases",
- "attributes": {
- "externalId": "client-custom-identifier",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Jane Doe",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "Life"
}, - "integrations": [
- {
- "id": "integration-id-unique-identifier",
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "files": [
- {
- "id": "sixfold-internal-unique-identifier",
- "fileNetId": "filenet-unique-identifier",
- "category": "Medical Record"
}
]
}
], - "insuredPerson": {
- "name": "Jane Doe",
- "bornOn": "1949-12-31",
- "occupation": "Software Engineer",
- "sex": "female"
}, - "analysis": {
- "status": "pending",
- "riskSignalDetections": [
- {
- "type": "KeywordSignal",
- "keyword": "Cancer",
- "explanation": "The fact 'Concerning for malignancy' matches the keyword signal 'Cancer' with a negative impact based on the risk appetite provided.",
- "impact": "positive",
- "sources": [
- {
- "filename": "Medical_report.pdf",
- "pages": [
- 1,
- 2,
- 3
]
}
]
}
], - "factsCount": 1,
- "riskOverview": null,
- "fullHealthSummary": null
}, - "documentsCount": 0,
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}
}| external_id | string Example: external_id=bda31907-49ad-4cf2-b76f-7738f359ae5e Filter cases by unique external id |
| created_at[gte] | string <date> Example: created_at[gte]=2025-01-01 Filter cases where created_at is greater than or equal to this date (inclusive, start of day). |
| created_at[lte] | string <date> Example: created_at[lte]=2025-01-31 Filter cases where created_at is less than or equal to this date (inclusive, end of day). |
| updated_at[gte] | string <date> Example: updated_at[gte]=2025-01-01 Filter cases where updated_at is greater than or equal to this date (inclusive, start of day). |
| updated_at[lte] | string <date> Example: updated_at[lte]=2025-01-31 Filter cases where updated_at is less than or equal to this date (inclusive, end of day). |
| sort_by | string Enum: "id" "external_id" "created_at" "updated_at" Example: sort_by=updated_at Sort results by id, external_id, created_at, or updated_at. |
| sort_dir | string Enum: "asc" "desc" Example: sort_dir=desc Sort direction (asc for oldest first, desc for newest first). Defaults to desc when sort_by is provided. |
| page | integer >= 1 Default: 1 Example: page=1 Page number for pagination (must be >= 1) |
| page_size | integer [ 1 .. 100 ] Default: 100 Example: page_size=100 Number of items per page (1-100, default 100) |
{- "data": [
- {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "lifeCases",
- "attributes": {
- "externalId": "client-custom-identifier",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Jane Doe",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "Life"
}, - "insuredPerson": {
- "name": "Jane Doe",
- "bornOn": "1949-12-31",
- "occupation": "Software Engineer",
- "sex": "female"
}, - "integrations": [
- {
- "id": "integration-id-unique-identifier",
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "files": [
- {
- "id": "sixfold-internal-unique-identifier",
- "fileNetId": "filenet-unique-identifier",
- "category": "Medical Record"
}
]
}
], - "analysis": {
- "status": "error",
- "errors": [
- {
- "code": 401,
- "detail": "Invalid API key"
}
], - "riskSignalDetections": [
- {
- "explanation": "The business is involved in construction activities as evidenced by the various permits for building, plumbing, mechanical, and grading. These permits indicate that the business is engaged in constructing new structures, remodeling existing ones, and installing various systems, which are all activities related to construction.\n",
- "impact": "positive",
- "weight": 1,
- "type": "KeywordSignal",
- "keyword": "Family owned business",
- "fact_id": "422"
}
], - "factsCount": 123,
- "riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
- "fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n"
}, - "documentsCount": 123,
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}
], - "meta": {
- "page": 1,
- "pageSize": 100,
- "totalItems": 250,
- "totalPages": 3
}, - "links": {
- "self": "/api/2024-05/commercial/cases?page=2&page_size=100",
- "first": "/api/2024-05/commercial/cases?page=1&page_size=100",
- "last": "/api/2024-05/commercial/cases?page=3&page_size=100",
- "prev": "/api/2024-05/commercial/cases?page=1&page_size=100",
- "next": "/api/2024-05/commercial/cases?page=3&page_size=100"
}
}| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
{- "data": {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "lifeCases",
- "attributes": {
- "externalId": "client-custom-identifier",
- "metadata": {
- "zurichCaseId": "UM-PERF-12345",
- "environment": "production"
}, - "name": "Jane Doe",
- "insuranceLine": {
- "id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
- "name": "Life"
}, - "insuredPerson": {
- "name": "Jane Doe",
- "bornOn": "1949-12-31",
- "occupation": "Software Engineer",
- "sex": "female"
}, - "integrations": [
- {
- "id": "integration-id-unique-identifier",
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "files": [
- {
- "id": "sixfold-internal-unique-identifier",
- "fileNetId": "filenet-unique-identifier",
- "category": "Medical Record"
}
]
}
], - "analysis": {
- "status": "error",
- "errors": [
- {
- "code": 401,
- "detail": "Invalid API key"
}
], - "riskSignalDetections": [
- {
- "explanation": "The business is involved in construction activities as evidenced by the various permits for building, plumbing, mechanical, and grading. These permits indicate that the business is engaged in constructing new structures, remodeling existing ones, and installing various systems, which are all activities related to construction.\n",
- "impact": "positive",
- "weight": 1,
- "type": "KeywordSignal",
- "keyword": "Family owned business",
- "fact_id": "422"
}
], - "factsCount": 123,
- "riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
- "fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n"
}, - "documentsCount": 123,
- "createdAt": "2024-01-10T16:00:30Z",
- "updatedAt": "2024-01-10T16:05:30Z"
}
}
}Permanently deletes a life case and all associated data (documents, facts, workflows). This action is irreversible.
Requires the case:delete permission on the API key. This permission is not granted by default
and must be explicitly requested. Existing API keys will not have this permission retroactively added.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
{- "errors": [
- {
- "title": "Unauthorized",
- "status": 401,
- "source": {
- "parameter": "Invalid Sixfold API key"
}, - "code": "authorization error"
}
]
}Add documents to a life case by providing an array of documents to be uploaded. When submitting via multipart/form-data, use indexed notation (documents[0][file], documents[0][category], etc.).
Supported content types: application/pdf, application/json, application/xhtml+xml, image/jpeg, image/tiff, image/png, text/html, text/plain
Files with unsupported content types will be rejected. When some files in a batch are rejected, the response includes both a data array (accepted documents) and an errors array (rejected documents with supported types listed).
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
required | Array of objects (DocumentUpload) Array of documents to be uploaded. When submitting via multipart/form-data, use indexed notation (documents[0][file], documents[0][category], etc.). |
| documents[] | Array of strings <binary> [ items <binary > ] Deprecated |
{ "documents[0][file]": "@path/to/file1.pdf", "documents[0][category]": "Medical Record", "documents[1][file]": "@path/to/file2.pdf", "documents[1][category]": "Application" }
{- "data": [
- {
- "id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "type": "lifeDocuments",
- "attributes": {
- "filename": "medical_record.pdf",
- "contentType": "application/pdf",
- "byteSize": 204800,
- "createdAt": "2024-05-01T12:00:00Z",
- "updatedAt": "2024-05-01T12:00:00Z",
- "category": "Medical Record"
}
}
]
}Retrieves all facts for a case with pagination. Facts include medications, diagnoses, procedures, clinical data, family history, and lifestyle information. Conditions are accessed via the /conditions endpoints.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "Medication",
- "name": "Metformin",
- "shortSummary": "Metformin 500mg twice daily",
- "longSummary": "Patient prescribed Metformin 1000mg twice daily for diabetes management. Medication compliance reported as good with no significant side effects",
- "occurredAt": "2024-01-10T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedConditions": [
- {
- "id": "c7d8e9f0-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
- "name": "Type 2 Diabetes Mellitus"
}
], - "sources": [
- {
- "filename": "prescription_history.pdf",
- "page": 2,
- "category": "Medical Record"
}
]
}
}, - {
- "id": "a3e5c8b9-2f4d-4c7a-8e1f-9d6b3c4a5b2e",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "ClinicalData",
- "name": "Blood Pressure",
- "shortSummary": "Elevated blood pressure reading",
- "longSummary": "Blood pressure measured at 145/92 mmHg, above normal reference range.",
- "occurredAt": "2024-01-10T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedConditions": [
- {
- "id": "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
- "name": "Hypertension Stage 2"
}
], - "sources": [
- {
- "filename": "lab_results_2024.pdf",
- "page": 1,
- "category": "RX/DX Report"
}
]
}
}, - {
- "id": "e8f9a0b1-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "Procedure",
- "name": "Echocardiogram",
- "shortSummary": "Cardiac ultrasound examination",
- "longSummary": "Patient underwent echocardiogram to assess cardiac function related to hypertension management.",
- "occurredAt": "2023-06-15T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedConditions": [
- {
- "id": "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
- "name": "Hypertension Stage 2"
}
], - "sources": [
- {
- "filename": "medical_records_2024.pdf",
- "page": 5,
- "category": "Medical Record"
}
]
}
}
], - "links": {
}, - "meta": {
- "page": 3,
- "pageSize": 20,
- "totalItems": 1247,
- "totalPages": 63
}
}Retrieves a single fact by its unique identifier
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| fact_id required | string <uuid> Example: f8e3c4a0-5b2e-4220-90d2-96d94337e8e6 The unique identifier of the fact |
{- "data": {
- "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "Medication",
- "name": "Lisinopril",
- "shortSummary": "Lisinopril 10mg daily",
- "longSummary": "Patient prescribed Lisinopril 10mg once daily for hypertension management. Started in January 2023 with good tolerance.",
- "occurredAt": "2023-01-20T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedConditions": [
- {
- "id": "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
- "name": "Hypertension Stage 2"
}
], - "sources": [
- {
- "filename": "prescription_history.pdf",
- "page": 1,
- "category": "Medical Record"
}
]
}
}
}Retrieves all conditions for a case with pagination. Each condition includes an array of related facts that support or provide evidence for the condition.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
- "type": "lifeCaseConditions",
- "attributes": {
- "factType": "Condition",
- "name": "Hypertension Stage 2",
- "shortSummary": "History of hypertension",
- "longSummary": "Patient diagnosed with Stage 2 hypertension in January 2023. Condition is currently managed with medication and lifestyle modifications.",
- "occurredAt": "2023-01-15T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedFacts": [
- {
- "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "name": "Lisinopril",
- "factType": "Medication"
}, - {
- "id": "a3e5c8b9-2f4d-4c7a-8e1f-9d6b3c4a5b2e",
- "name": "Blood Pressure",
- "factType": "ClinicalData"
}, - {
- "id": "e8f9a0b1-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
- "name": "Echocardiogram",
- "factType": "Procedure"
}
], - "sources": [
- {
- "filename": "medical_records_2024.pdf",
- "page": 1,
- "category": "Medical Record"
}
]
}
}, - {
- "id": "c7d8e9f0-1a2b-3c4d-5e6f-7a8b9c0d1e2f",
- "type": "lifeCaseConditions",
- "attributes": {
- "factType": "Condition",
- "name": "Type 2 Diabetes Mellitus",
- "shortSummary": "Type 2 Diabetes diagnosis",
- "longSummary": "Patient diagnosed with Type 2 Diabetes Mellitus requiring ongoing blood sugar monitoring and medication management.",
- "occurredAt": "2024-01-15T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedFacts": [
- {
- "id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
- "name": "Metformin",
- "factType": "Medication"
}
], - "sources": [
- {
- "filename": "medical_records_2024.pdf",
- "page": 3,
- "category": "Medical Record"
}
]
}
}
], - "links": {
- "prev": null,
}, - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 87,
- "totalPages": 5
}
}Retrieves a single condition by its unique identifier, including an array of related facts that support or provide evidence for the condition.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| condition_id required | string <uuid> Example: a3b7d1e0-6c4f-4330-81e3-a8e05448f9f7 The unique identifier of the condition |
{- "data": {
- "id": "b1c2d3e4-5f6a-7b8c-9d0e-1f2a3b4c5d6e",
- "type": "lifeCaseConditions",
- "attributes": {
- "factType": "Condition",
- "name": "Hypertension Stage 2",
- "shortSummary": "History of hypertension",
- "longSummary": "Patient diagnosed with Stage 2 hypertension in January 2023. Condition is currently managed with medication and lifestyle modifications. Blood pressure readings have been consistently elevated above 140/90 mmHg.",
- "occurredAt": "2023-01-15T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "relatedFacts": [
- {
- "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "name": "Lisinopril",
- "factType": "Medication"
}, - {
- "id": "a3e5c8b9-2f4d-4c7a-8e1f-9d6b3c4a5b2e",
- "name": "Blood Pressure",
- "factType": "ClinicalData"
}, - {
- "id": "e8f9a0b1-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
- "name": "Echocardiogram",
- "factType": "Procedure"
}
], - "sources": [
- {
- "filename": "medical_records_2024.pdf",
- "page": 1,
- "category": "Medical Record"
}
]
}
}
}Retrieves a paginated list of facts that provide supporting evidence for the condition (medications, diagnoses, procedures, clinical data, etc.). Note that relatedConditions is not included in the response for this endpoint since the relationship to the condition is already implied.
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 |
| condition_id required | string <uuid> Example: a3b7d1e0-6c4f-4330-81e3-a8e05448f9f7 The unique identifier of the condition |
| page | integer >= 1 Default: 1 The page number to fetch |
| page_size | integer [ 1 .. 100 ] Default: 20 Number of items per page |
{- "data": [
- {
- "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "Medication",
- "name": "Lisinopril",
- "shortSummary": "Lisinopril 10mg daily",
- "longSummary": "Patient prescribed Lisinopril 10mg once daily for hypertension management. Started in January 2023 with good tolerance.",
- "occurredAt": "2023-01-20T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [
- {
- "filename": "prescription_history.pdf",
- "page": 1,
- "category": "Medical Record"
}
]
}
}, - {
- "id": "a3e5c8b9-2f4d-4c7a-8e1f-9d6b3c4a5b2e",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "ClinicalData",
- "name": "Blood Pressure",
- "shortSummary": "Elevated blood pressure reading",
- "longSummary": "Blood pressure measured at 145/92 mmHg, above normal reference range.",
- "occurredAt": "2024-01-10T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [
- {
- "filename": "lab_results_2024.pdf",
- "page": 1,
- "category": "RX/DX Report"
}
]
}
}, - {
- "id": "e8f9a0b1-2c3d-4e5f-6a7b-8c9d0e1f2a3b",
- "type": "lifeCaseFacts",
- "attributes": {
- "factType": "Procedure",
- "name": "Echocardiogram",
- "shortSummary": "Cardiac ultrasound examination",
- "longSummary": "Patient underwent echocardiogram to assess cardiac function related to hypertension management. Results showed normal left ventricular function.",
- "occurredAt": "2023-06-15T00:00:00Z",
- "createdAt": "2024-01-10T12:00:00Z",
- "updatedAt": "2024-01-10T12:00:00Z",
- "sources": [
- {
- "filename": "procedure_reports.pdf",
- "page": 3,
- "category": "Medical Record"
}
]
}
}
], - "links": {
- "prev": null,
}, - "meta": {
- "page": 1,
- "pageSize": 20,
- "totalItems": 47,
- "totalPages": 3
}
}Add to an integration by providing metadata to the integration spec
| case_id required | string Example: c4fb4c10-5b2e-4220-90d2-96d94337e8e6 Unique identifier for the case |
| integration_id required | string Example: 78ea09d0-55f7-407a-9fc9-d625cfd84085 Unique identifier for the integration (provided by Sixfold) |
| op required | string Value: "add" The operation to be done for adding the FileNet file, the value must be "add" |
| path required | string Value: "/files/-" The path for adding the FileNet file, the value must be "/files/-" |
required | object (CreateFileNetIntegrationMetadataRequest) Object containing the id of the file on FileNet to be retrieved |
[- {
- "op": "add",
- "path": "/files/-",
- "value": {
- "id": "filenet-unique-identifier",
- "category": "Medical Record"
}
}, - {
- "op": "add",
- "path": "/files/-",
- "value": {
- "id": "another-filenet-unique-identifier",
- "category": "Application"
}
}
]{- "data": [
- {
- "id": "integration-id-unique-identifier",
- "caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
- "files": [
- {
- "id": "sixfold-internal-unique-identifier",
- "fileNetId": "filenet-unique-identifier",
- "category": "Medical Record"
}
]
}
]
}Webhooks allow us to send important events about a case to you in real-time.
Your webhook resource MUST accept requests with content type application/json
Your webhook resource MUST return a response with a 200 status to indicate that the request was processed successfully
You can optionally specify custom headers for us to send in webhook requests. This is useful when, for example, your webhook resource requires us to provide an authentication token in a header. Custom headers are defined at the webhook level and are included in all requests sent to the webhook callback URL. Please reach out to your Sixfold representative to set up custom headers for your webhook.
A webhook's topic indicates the type of event that triggered the webhook. The topic is included in the request body sent to your webhook URL.
Supported webhook topics include:
| Topic | Description |
| --- | --- |
| cases/created | a case was successfully created |
| cases/updated | a case was successfully updated |
| cases/finished | a case has completed the analysis |
| cases/errored | a case encountered an error during analysis, or a case could not be created because required fields could not be extracted from submitted documents (Easy Case Creation) |
| integrations/finished | an integration has finished its operation |
| integrations/errored | an integration encountered an error during its operation |
The
recommendedActionsfield and the Actions API require the Referral Agent feature. When not enabled,recommendedActionswill benulland the Actions API will returnreferralAgentEnabled: falseandactions: []. Please reach out to your account team if this feature is not enabled for your tenant.
When the Referral Agent evaluates a case and determines that a referral is recommended, the case is updated with the referral recommendation. This triggers a cases/updated webhook (and cases/finished if the referral completes after case analysis).
The webhook payload will include recommendedActions: "Referral" in the case attributes. When you receive this value, call GET /api/2026-01/commercial/cases/{case_id}/actions to retrieve the full referral details including rationales, citations, and a pre-generated email template.
Below is an example of a webhook request sent when a commercial case is updated:
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "commercialCases",
"attributes": {
"externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
"name": "Diamond West Construction Case",
"insuranceLine": {
"id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
"name": "General Liability"
},
"insuredCompany": {
"name": "Diamond West Construction",
"businessActivity": "Construction",
"summary": "A general building contractor that offers home remodeling and design-build services.",
"webPresence": {
"urls": [
"https://diamondwestdevelopment.com/about-us/",
"https://diamondwestdevelopment.com/",
"http://diamondwestconstruction.mobi/",
"https://diamondwestdevelopment.com/gallery/",
"https://diamondwestdevelopment.com/services/"
]
},
"businessClassification": [
{
"subjectType": "BusinessClassification",
"subjectId": "159",
"system": "naics",
"code": "236118",
"title": "Commercial and Institutional Building Construction",
"explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
"confidence": 0.79
}
],
"address": {
"street": "6676 Van Buren Boulevard",
"city": "Riverside",
"state": "CA",
"postalCode": "92503",
"country": "US"
}
},
"analysis": {
"status": "done",
"riskEvaluation": {
"score": 4,
"summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
"sectionScores": [
{
"sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"sectionName": "Cybersecurity",
"score": 4,
"signalCount": 3
}
]
},
"riskSignalDetections": [
{
"type": "KeywordSignal",
"keyword": "Construction",
"explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects. Additionally, Diamond West Development provides diversified construction services such as concrete work, block walls, pools, and outdoor kitchens. This indicates that the business likely engages in construction activities.",
"impact": "positive",
"weight": 1.0,
"fact_id": "423"
},
{
"type": "KeywordSignal",
"keyword": "Remodeling",
"explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling. It highlights customer testimonials praising their work on remodeling projects and mentions their services in home remodeling, room additions, and custom homes. This indicates that the business likely engages in remodeling activities.",
"impact": "negative",
"weight": 3.0,
"fact_id": "424"
},
{
"type": "QuestionAnswerSignal",
"title": "PCI Compliance",
"explanation": "The answer does not establish that the insured is PCI compliant, which is a negative signal for a business handling cardholder data.",
"impact": "negative",
"weight": 2.0,
"fact_id": "422"
},
{
"type": "NaicsSignal",
"code": "236118",
"title": "Residential Remodelers",
"explanation": "The insured's operations align with residential remodeling.",
"impact": "negative",
"weight": 5.0,
"fact_id": null
}
],
"facts": [
{
"section_id": "8f2c1a44-9d3e-4b71-8a56-2e7d0c9b4f13",
"section": "Cyber Controls",
"questions": [
{
"fact_id": "422",
"question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
"answer": "Diamond West Construction Services accepts card payments for residential remodeling work, so PCI DSS applies. The submission does not state whether a Self-Assessment Questionnaire has been completed, so current compliance could not be established from the documents provided.",
"impact": "negative",
"sources": [
{
"type": "document",
"filename": "cyber-application.pdf"
}
]
}
]
},
{
"type": "keywordMatch",
"fact_id": "423",
"keyword": "Construction",
"explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects.",
"impact": "positive"
},
{
"type": "keywordMatch",
"fact_id": "424",
"keyword": "Remodeling",
"explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling.",
"impact": "negative"
}
]
},
"documents": [
{
"id": "0544e627-5c81-49da-99bc-a2822ead6b99",
"filename": "file 1.pdf",
"contentType": "application/pdf",
"byteSize": 123456,
"processingStatus": "failed",
"failureReason": "no_text_extracted"
}
],
"websites": [
{
"id": "ea8077ce-2d58-422f-9ce2-e2f95744fb89",
"url": "https://diamondwest.example.com/careers",
"processingStatus": "excluded"
}
],
"quoted": true,
"recommendedActions": "Referral",
"alternateUrl": "https://{tenant}.sixfold.app/commercial/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"createdAt": "2023-01-10T16:00:30+0:00",
"updatedAt": "2023-01-10T16:05:30+0:00"
}
}
}
}
Linking a risk signal to its underlying fact: each entry in
riskSignalDetectionscarries afact_id. The key is always present; where it is non-null it matches a fact in the same payload. Note that the two fact kinds sit at different depths inanalysis.facts:
Signal type Where its fact lives QuestionAnswerSignalanalysis.facts[].questions[].fact_id— nested inside its sectionKeywordSignalanalysis.facts[].fact_idon a top-level entry with"type": "keywordMatch"In the example above the
QuestionAnswerSignalcarries"422", which is thefact_idof the question inside theCyber Controlssection, while theKeywordSignals carry"423"and"424", which are top-levelkeywordMatchentries. Use that value to render the signal alongside the answer and sources that produced it, and to target the Feedback API, instead of matching ontitleor any other display string.
fact_idisnullfor business classification signals (NaicsSignal,SicSignal,IbcSignal,EicSignal), which have no underlying case fact. The null is expected, not an error.
fact_ididentifies the fact for the current analysis. Facts are deleted and recreated when a case is re-analyzed, so read the value from the latest callback rather than storing it as a long-lived key.Business classifications in
insuredCompany.businessClassification[]exposesubjectType: "BusinessClassification"andsubjectId. Submit feedback with this typed pair, notfactId. Like facts, classification IDs are recreated on re-analysis.
Every commercial case payload includes processingStatus on each documents[] entry and a websites[] array. The values are processed, processing, failed, and excluded. failureReason is absent unless the source failed, and it is always a safe code (no_text_extracted or processing_failed), never an internal workflow error.
excluded means that a website was successfully read but did not pass relevance filtering; it is distinct from a processing failure. Status reflects the moment the payload is generated, so newly-created cases commonly contain processing sources; use cases/finished for terminal outcomes.
Only URLs that became case-scoped document records appear in websites[]. A URL that could not be fetched or was rejected before a document was created is not represented. Likewise, a failed document can be identified by filename but is not reliably classified into an insurance document class because classification is written only on the success path. Unsupported files are rejected synchronously by POST /cases/{case_id}/documents and do not appear in either source array.
When a case is submitted via the Easy Case Creation API (POST /api/2024-05/commercial/case-from-documents) and the system cannot extract the required insured name, address, or US state from the submitted documents, a cases/errored webhook fires. The case was never created — the id in the payload matches the case_uuid returned by the original API call.
The analysis.errors[0].detail message names the specific fields that could not be extracted. To recover, use the standard case creation endpoint (POST /api/2024-05/commercial/cases) and provide the missing fields (name, insured.address) explicitly in the request body — the case-from-documents endpoint does not accept these fields directly.
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/errored",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "commercialCases",
"attributes": {
"state": "errored",
"externalId": "your-reference-id",
"analysis": {
"status": "error",
"errors": [
{
"title": "Case creation failed",
"code": "extraction_failed",
"detail": "Could not extract insured name and insured address from the submitted documents. Please use the POST /api/2024-05/commercial/cases endpoint and explicitly provide insured name and insured address in the request body."
}
]
},
"createdAt": "2024-01-10T16:00:30Z",
"updatedAt": "2024-01-10T16:05:30Z"
}
}
}
}
Note: The payload shape for this error scenario is intentionally simpler than a standard
cases/erroredpayload — it contains noname,documents, orinsuredCompanyfields, since the case was never fully created. Theanalysisobject contains onlystatusanderrors; the richer analysis fields present in a standard case payload (riskEvaluation,riskSignalDetections,facts, etc.) are absent. Clients should handle both shapes when processingcases/erroredevents.
Below is an example of a webhook request sent when a life & disability case is updated:
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "lifeCases",
"attributes": {
"name": "Jane Doe",
"insuranceLine": {
"id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
"name": "Life"
},
"documentsCount": 123,
"externalId": "client-custom-identifier",
"alternateUrl": "https://{tenant}.sixfold.app/life/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"insuredPerson": {
"name": "Jane Doe",
"bornOn": "1949-12-31",
"occupation": "Software Engineer",
"sex": "female"
},
"analysis": {
"status": "done",
"errors": [],
"riskSignalDetections": [
{
"type": "KeywordSignal",
"keyword": "Cancer",
"explanation": "The fact 'Concerning for malignancy' matches the keyword signal 'Cancer' with a negative impact based on the risk appetite provided.",
"impact": "negative",
"sources": [
{
"filename": "medial_report.pdf",
"pages": [1,2,3]
}
]
}
],
"riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
"fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n",
"factsCount": 321
},
"createdAt": "2024-01-10T16:00:30Z",
"updatedAt": "2024-01-10T16:00:30Z"
}
}
}
}
Below is an example of a webhook request sent when a FileNet integration has successfully downloaded the files:
{
"id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
"topic": "integrations/finished",
"body": {
"data": {
"caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
"files": [
{
"id": "filenet-unique-identifier",
"category": "Medical Record"
},
{
"id": "filenet-unique-identifier-2"
}
]
}
}
}
Below is an example of a webhook request sent when a FileNet integration failed to download the file:
{
"id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
"topic": "integrations/errored",
"body": {
"data": {
"caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
"files": [
{
"id": "filenet-unique-identifier",
"category": "Medical Record"
},
{
"id": "filenet-unique-identifier-2"
}
],
"errors": [
{
"status": "500",
"title": "FileNet server error",
"detail": "File 'filenet-unique-identifier' failed due to a FileNet server error",
"meta": {
"fileId": "filenet-unique-identifier"
}
}
]
}
}
}
Below is an example of a webhook request that includes a custom Auth-Token header for authentication:
POST /webhooks HTTP/1.1
Host: foo.example
Accept: application/json
Content-Type: application/json
Auth-Token: secret-custom-header
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
...
}
}
}
Your webhook resource MUST accept requests with content type application/json
200 status to indicate that the request was processed successfullyYou can optionally specify custom headers for us to send in webhook requests. This is useful when, for example, your webhook resource requires us to provide an authentication token in a header. Custom headers are defined at the webhook level and are included in all requests sent to the webhook callback URL. Please reach out to your Sixfold representative to set up custom headers for your webhook.
A webhook's topic indicates the type of event that triggered the webhook. The topic is included in the request body sent to your webhook URL.
Supported webhook topics include:
| Topic | Description |
| --- | --- |
| cases/created | a case was successfully created |
| cases/updated | a case was successfully updated |
| cases/finished | a case has completed the analysis |
| cases/errored | a case encountered an error during analysis, or a case could not be created because required fields could not be extracted from submitted documents (Easy Case Creation) |
| integrations/finished | an integration has finished its operation |
| integrations/errored | an integration encountered an error during its operation |
The
recommendedActionsfield and the Actions API require the Referral Agent feature. When not enabled,recommendedActionswill benulland the Actions API will returnreferralAgentEnabled: falseandactions: []. Please reach out to your account team if this feature is not enabled for your tenant.
When the Referral Agent evaluates a case and determines that a referral is recommended, the case is updated with the referral recommendation. This triggers a cases/updated webhook (and cases/finished if the referral completes after case analysis).
The webhook payload will include recommendedActions: "Referral" in the case attributes. When you receive this value, call GET /api/2026-01/commercial/cases/{case_id}/actions to retrieve the full referral details including rationales, citations, and a pre-generated email template.
Below is an example of a webhook request sent when a commercial case is updated:
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "commercialCases",
"attributes": {
"externalId": "bda31907-49ad-4cf2-b76f-7738f359ae5e",
"name": "Diamond West Construction Case",
"insuranceLine": {
"id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
"name": "General Liability"
},
"insuredCompany": {
"name": "Diamond West Construction",
"businessActivity": "Construction",
"summary": "A general building contractor that offers home remodeling and design-build services.",
"webPresence": {
"urls": [
"https://diamondwestdevelopment.com/about-us/",
"https://diamondwestdevelopment.com/",
"http://diamondwestconstruction.mobi/",
"https://diamondwestdevelopment.com/gallery/",
"https://diamondwestdevelopment.com/services/"
]
},
"businessClassification": [
{
"subjectType": "BusinessClassification",
"subjectId": "159",
"system": "naics",
"code": "236118",
"title": "Commercial and Institutional Building Construction",
"explanation": "236118 - Residential Remodelers The business summary indicates that this is a general building contractor that offers home remodeling and design-build services. This aligns directly with the NAICS code 236118, which is designated for businesses primarily responsible for remodeling construction of houses and other residential buildings. The services offered by the business, such as home remodeling and design-build, are specifically mentioned in the NAICS context as activities included in this industry. The business is likely to serve customers who own residential properties, including single-family and multifamily homes, who are looking to remodel or renovate their properties. This is why the NAICS code 236118 - Residential Remodelers is assigned with high confidence.",
"confidence": 0.79
}
],
"address": {
"street": "6676 Van Buren Boulevard",
"city": "Riverside",
"state": "CA",
"postalCode": "92503",
"country": "US"
}
},
"analysis": {
"status": "done",
"riskEvaluation": {
"score": 4,
"summary": "We have determined a risk score of 4 given the lack of negative risk signals detected.",
"sectionScores": [
{
"sectionId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"sectionName": "Cybersecurity",
"score": 4,
"signalCount": 3
}
]
},
"riskSignalDetections": [
{
"type": "KeywordSignal",
"keyword": "Construction",
"explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects. Additionally, Diamond West Development provides diversified construction services such as concrete work, block walls, pools, and outdoor kitchens. This indicates that the business likely engages in construction activities.",
"impact": "positive",
"weight": 1.0,
"fact_id": "423"
},
{
"type": "KeywordSignal",
"keyword": "Remodeling",
"explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling. It highlights customer testimonials praising their work on remodeling projects and mentions their services in home remodeling, room additions, and custom homes. This indicates that the business likely engages in remodeling activities.",
"impact": "negative",
"weight": 3.0,
"fact_id": "424"
},
{
"type": "QuestionAnswerSignal",
"title": "PCI Compliance",
"explanation": "The answer does not establish that the insured is PCI compliant, which is a negative signal for a business handling cardholder data.",
"impact": "negative",
"weight": 2.0,
"fact_id": "422"
},
{
"type": "NaicsSignal",
"code": "236118",
"title": "Residential Remodelers",
"explanation": "The insured's operations align with residential remodeling.",
"impact": "negative",
"weight": 5.0,
"fact_id": null
}
],
"facts": [
{
"section_id": "8f2c1a44-9d3e-4b71-8a56-2e7d0c9b4f13",
"section": "Cyber Controls",
"questions": [
{
"fact_id": "422",
"question": "Does PCI Compliance applicable to this company? If so, is the company PCI Compliant?",
"answer": "Diamond West Construction Services accepts card payments for residential remodeling work, so PCI DSS applies. The submission does not state whether a Self-Assessment Questionnaire has been completed, so current compliance could not be established from the documents provided.",
"impact": "negative",
"sources": [
{
"type": "document",
"filename": "cyber-application.pdf"
}
]
}
]
},
{
"type": "keywordMatch",
"fact_id": "423",
"keyword": "Construction",
"explanation": "The content mentions Diamond West Construction Services, which offers a range of construction services including residential, commercial, and communications projects.",
"impact": "positive"
},
{
"type": "keywordMatch",
"fact_id": "424",
"keyword": "Remodeling",
"explanation": "The content extensively discusses Diamond West Development's involvement in remodeling projects, including kitchen and bathroom remodeling.",
"impact": "negative"
}
]
},
"documents": [
{
"id": "0544e627-5c81-49da-99bc-a2822ead6b99",
"filename": "file 1.pdf",
"contentType": "application/pdf",
"byteSize": 123456,
"processingStatus": "failed",
"failureReason": "no_text_extracted"
}
],
"websites": [
{
"id": "ea8077ce-2d58-422f-9ce2-e2f95744fb89",
"url": "https://diamondwest.example.com/careers",
"processingStatus": "excluded"
}
],
"quoted": true,
"recommendedActions": "Referral",
"alternateUrl": "https://{tenant}.sixfold.app/commercial/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"createdAt": "2023-01-10T16:00:30+0:00",
"updatedAt": "2023-01-10T16:05:30+0:00"
}
}
}
}
Linking a risk signal to its underlying fact: each entry in
riskSignalDetectionscarries afact_id. The key is always present; where it is non-null it matches a fact in the same payload. Note that the two fact kinds sit at different depths inanalysis.facts:
Signal type Where its fact lives QuestionAnswerSignalanalysis.facts[].questions[].fact_id— nested inside its sectionKeywordSignalanalysis.facts[].fact_idon a top-level entry with"type": "keywordMatch"In the example above the
QuestionAnswerSignalcarries"422", which is thefact_idof the question inside theCyber Controlssection, while theKeywordSignals carry"423"and"424", which are top-levelkeywordMatchentries. Use that value to render the signal alongside the answer and sources that produced it, and to target the Feedback API, instead of matching ontitleor any other display string.
fact_idisnullfor business classification signals (NaicsSignal,SicSignal,IbcSignal,EicSignal), which have no underlying case fact. The null is expected, not an error.
fact_ididentifies the fact for the current analysis. Facts are deleted and recreated when a case is re-analyzed, so read the value from the latest callback rather than storing it as a long-lived key.Business classifications in
insuredCompany.businessClassification[]exposesubjectType: "BusinessClassification"andsubjectId. Submit feedback with this typed pair, notfactId. Like facts, classification IDs are recreated on re-analysis.
Every commercial case payload includes processingStatus on each documents[] entry and a websites[] array. The values are processed, processing, failed, and excluded. failureReason is absent unless the source failed, and it is always a safe code (no_text_extracted or processing_failed), never an internal workflow error.
excluded means that a website was successfully read but did not pass relevance filtering; it is distinct from a processing failure. Status reflects the moment the payload is generated, so newly-created cases commonly contain processing sources; use cases/finished for terminal outcomes.
Only URLs that became case-scoped document records appear in websites[]. A URL that could not be fetched or was rejected before a document was created is not represented. Likewise, a failed document can be identified by filename but is not reliably classified into an insurance document class because classification is written only on the success path. Unsupported files are rejected synchronously by POST /cases/{case_id}/documents and do not appear in either source array.
When a case is submitted via the Easy Case Creation API (POST /api/2024-05/commercial/case-from-documents) and the system cannot extract the required insured name, address, or US state from the submitted documents, a cases/errored webhook fires. The case was never created — the id in the payload matches the case_uuid returned by the original API call.
The analysis.errors[0].detail message names the specific fields that could not be extracted. To recover, use the standard case creation endpoint (POST /api/2024-05/commercial/cases) and provide the missing fields (name, insured.address) explicitly in the request body — the case-from-documents endpoint does not accept these fields directly.
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/errored",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "commercialCases",
"attributes": {
"state": "errored",
"externalId": "your-reference-id",
"analysis": {
"status": "error",
"errors": [
{
"title": "Case creation failed",
"code": "extraction_failed",
"detail": "Could not extract insured name and insured address from the submitted documents. Please use the POST /api/2024-05/commercial/cases endpoint and explicitly provide insured name and insured address in the request body."
}
]
},
"createdAt": "2024-01-10T16:00:30Z",
"updatedAt": "2024-01-10T16:05:30Z"
}
}
}
}
Note: The payload shape for this error scenario is intentionally simpler than a standard
cases/erroredpayload — it contains noname,documents, orinsuredCompanyfields, since the case was never fully created. Theanalysisobject contains onlystatusanderrors; the richer analysis fields present in a standard case payload (riskEvaluation,riskSignalDetections,facts, etc.) are absent. Clients should handle both shapes when processingcases/erroredevents.
Below is an example of a webhook request sent when a life & disability case is updated:
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"type": "lifeCases",
"attributes": {
"name": "Jane Doe",
"insuranceLine": {
"id": "1cfd8bdf-5a20-4dfb-aca0-729df7795e14",
"name": "Life"
},
"documentsCount": 123,
"externalId": "client-custom-identifier",
"alternateUrl": "https://{tenant}.sixfold.app/life/cases/c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"insuredPerson": {
"name": "Jane Doe",
"bornOn": "1949-12-31",
"occupation": "Software Engineer",
"sex": "female"
},
"analysis": {
"status": "done",
"errors": [],
"riskSignalDetections": [
{
"type": "KeywordSignal",
"keyword": "Cancer",
"explanation": "The fact 'Concerning for malignancy' matches the keyword signal 'Cancer' with a negative impact based on the risk appetite provided.",
"impact": "negative",
"sources": [
{
"filename": "medial_report.pdf",
"pages": [1,2,3]
}
]
}
],
"riskOverview": "Jane Doe, a 74-year-old female who smokes, has a history of several significant medical conditions and treatments. She has been diagnosed with strep pharyngitis, appendicitis, migraines with aura, atypical chest pain concerning for angina, community-acquired pneumonia,\n",
"fullHealthSummary": "Jane Doe's medical history is extensive, beginning with diagnoses of strep pharyngitis in 1980 treated with clindamycin due to penicillin allergy, and appendicitis in 1987, both of which were treated accordingly. In 1993, she was diagnosed with migraines with aura and began treatment with metoclopramide and sumatriptan. By 2000, she experienced atypical chest pain, which raised concerns for angina, leading to a cardiology referral and the initiation of ASA. In 2006, she was diagnosed with community-acquired pneumonia and subsequently with chronic myeloid leukemia (CML) in 2013, which is currently in remission with ongoing imatinib treatment. Her history also includes a COPD exacerbation in 2016 treated with albuterol and Advair, and orthostatic hypotension diagnosed in 2018, with a treatment plan including fludrocortisone. Throughout her medical journey, Jennifer has been prescribed various medications, including ASA for atypical chest pain and post-myocardial infarction, atenolol and atorvastatin for coronary artery disease post-myocardial infarction, and imatinib specifically targeting her CML. The presence of atenolol and atorvastatin suggests a focus on heart health and cholesterol, while imatinib specifically targets her CML. Notably, there is an absence of direct treatment for high blood pressure, despite the presence of medications that could indirectly affect it, and no mention of medications for mental health conditions or sleep apnea, which are not listed among her diagnosed conditions.\n",
"factsCount": 321
},
"createdAt": "2024-01-10T16:00:30Z",
"updatedAt": "2024-01-10T16:00:30Z"
}
}
}
}
Below is an example of a webhook request sent when a FileNet integration has successfully downloaded the files:
{
"id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
"topic": "integrations/finished",
"body": {
"data": {
"caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
"files": [
{
"id": "filenet-unique-identifier",
"category": "Medical Record"
},
{
"id": "filenet-unique-identifier-2"
}
]
}
}
}
Below is an example of a webhook request sent when a FileNet integration failed to download the file:
{
"id": "94b4fd8d-3500-49a4-a3cb-0e7f59c9b1ac",
"topic": "integrations/errored",
"body": {
"data": {
"caseId": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"integrationId": "78ea09d0-55f7-407a-9fc9-d625cfd84085",
"files": [
{
"id": "filenet-unique-identifier",
"category": "Medical Record"
},
{
"id": "filenet-unique-identifier-2"
}
],
"errors": [
{
"status": "500",
"title": "FileNet server error",
"detail": "File 'filenet-unique-identifier' failed due to a FileNet server error",
"meta": {
"fileId": "filenet-unique-identifier"
}
}
]
}
}
}
Below is an example of a webhook request that includes a custom Auth-Token header for authentication:
POST /webhooks HTTP/1.1
Host: foo.example
Accept: application/json
Content-Type: application/json
Auth-Token: secret-custom-header
{
"id": "c4fb4c10-5b2e-4220-90d2-96d94337e8e6",
"topic": "cases/updated",
"body": {
"data": {
...
}
}
}
At Sixfold, we streamline customer workflows by supporting integrations that automate the process of pulling in documents from external sources and seamlessly adding them to a case’s knowledge base. This supplements the documents that customers can manually upload, allowing teams to focus on analysis and decision-making while ensuring that all relevant documents are accurately captured and organized within the system. Through our integration options, we enable efficient document management that adapts to your specific needs.
Before leveraging one of the existing integrations, you will need to work with Sixfold's operations team to configure the necessary settings for your tenant. Each integration requires specific configurations and credentials.
For each integration, you will receive a:
The integrationId is a unique identifier for your configured integration, provided to you by Sixfold, that you will use in API calls to manage the integration for a particular case.
Example Integration Id
integrationId: "a908bbed-319d-46fa-925d-67298721fa5c"Example Usage
See the documentation for this API endpoint for example usage.
The integration metadata schema is a integration-specific data structure that you leverage when structuring the request bodies for API calls to manage the integration for a particular case.
Example Integration Metadata Schema
The data structure below is an example of the metadata schema for an integration with an external document management system. Here, the files key references an array of ids that represent the id of file/documents in the external system that a customer would want to associate with a particular case.
{
"id": "integrationId", // provided by sixfold
"files": [
{
"id": "id-of-file-in-external-system",
},
]
}
Example Usage
See the documentation for this API endpoint for example usage.
Currently, Sixfold supports integrations with the following:
If you'd like to integrate with a third-party service that is not currently in the list above, please reach out to us via email to inquire.
This integration allows Sixfold to interact with this external document and content storage service. This integration enables seamless management and attachment of files to cases within Sixfold’s system.
Before Sixfold can begin adding files to cases using the FileNet integration, Sixfold’s operations team will need to configure the integration within your tenant. The configuration process will require the following information:
The metadata schema for the FileNet integration is as follows:
{
"id": "integrationId",
"files": [
{
"id": "id-of-file-in-filenet",
"category": "Medical Record"
},
{ "id": "another-id-of-file-in-filenet" }
]
}
After setting up the FileNet integration, you will need to include the integration ID in all API requests that involve FileNet-related actions, such as creating a case while specifying files to be pulled in from FileNet, or updating a case to specify additional files to be pulled in from FileNet.
See example below, or the documentation for this endpoint
PATCH /life/cases/john-doe-case-id/integrations/file-net-integration-id HTTP/1.1
Content-Type: application/json-patch+json
[
{
"op": "add",
"path": "/files/-",
"value": {
"id": "id-of-file-in-filenet",
"category": "Medical Record"
}
}
]
Documents can be classified into certain top-level categories.
These document-level metadata can in turn be used to improve case level analysis of the relevant case information found in those documents, as well as give more contextual information to users in the UI.
Sixfold's API allows its consumers to specify the top-level category / classification of a document when they:
The sections below detail the supported top-level categories per product line.
| Category | Description |
|---|---|
| Application | The main insurance application, capturing personal info, desired coverage, beneficiaries, and declarations around existing insurance. |
| Part II | Any supplemental questionnaires or self-reported medical/lifestyle information (e.g., health history, lifestyle/hobbies, family history, etc.). |
| Lab | Reports from examiners who measure vitals (blood pressure, height, weight), collect fluid samples, and summarize basic health indicators. Includes laboratory test results (blood/urine/saliva), including flagged abnormal values and reference ranges. |
| EKG | Electrocardiogram reports and waveforms showing heart rate, rhythm, and electrical activity; used to assess cardiac function. |
| RX/DX Report | Prescription histories from external databases, detailing medication usage and fill history. |
| Medical Record | Physician summaries, detailed medical records from clinics, hospital discharge summaries, specialist reports, etc. This category should also be used if you have multiple Medical Records of different types contained within a single file. |
| Financial | Pay stubs, tax returns, W-2 forms, profit-and-loss statements, personal or business financial statements, net-worth summaries. |
| Diagnostic Report | Imaging, or reports for any diagnostic procedures or therapies. This category should also be used if you have multiple Diagnostic Reports of different types contained within a single file. |
| Background Report | MIB codes, Motor Vehicle Records, credit checks, or other non-prescription third-party data used to validate applicant information. |