CargoLabs Docs
Bundles

Create a bundle

Creates a bundle and optionally links products to it. The first id in product_ids becomes the primary product. When product_ids is non-empty, at least one of root_insurer_db_id, root_mga_db_id or root_seller_db_id is required. Unknown fields are rejected.

POST
/bundles

Creates a bundle and optionally links products to it. The first id in product_ids becomes the primary product. When product_ids is non-empty, at least one of root_insurer_db_id, root_mga_db_id or root_seller_db_id is required. Unknown fields are rejected.

Authorization

ApiKeyAuth
x-api-key<token>

API key from the CoverPort developer portal.

In: header

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/bundles" \  -H "Content-Type: application/json" \  -d '{    "bundle_name": "PD + NTL Monthly",    "customer_facing_name": "Physical Damage + Non-Trucking Liability",    "internally_facing_name": "PD_NTL_MONTHLY_2026",    "bundle_description": "Monthly physical damage and non-trucking liability coverage for owner-operators, billed on the 1st.",    "is_recurring": true,    "is_test_mode": true,    "root_insurer_db_id": 4,    "question_set_id": 11,    "product_ids": [      301,      302    ]  }'
{  "success": true,  "data": {    "id": 42,    "bundle_name": "PD + NTL Monthly",    "customer_facing_name": "Physical Damage + Non-Trucking Liability",    "internally_facing_name": "PD_NTL_MONTHLY_2026",    "bundle_description": "Monthly physical damage and non-trucking liability coverage for owner-operators, billed on the 1st.",    "is_recurring": true,    "is_test_mode": true,    "product_line_count": 2,    "root_insurer_db_id": 4,    "root_mga_db_id": null,    "root_seller_db_id": null,    "question_set_id": 11,    "youtube_link": null,    "creation_datetime": "2026-09-21T18:04:11.000Z",    "last_updated_datetime": "2026-09-21T18:04:11.000Z",    "linked_products": [      {        "id": 301,        "product_name": "Physical Damage",        "default_price": 189,        "is_primary": true,        "link_created_at": "2026-09-21T18:04:11.000Z"      },      {        "id": 302,        "product_name": "Non-Trucking Liability",        "default_price": 74,        "is_primary": false,        "link_created_at": "2026-09-21T18:04:11.000Z"      }    ],    "primary_product": {      "id": 301,      "product_name": "Physical Damage",      "default_price": 189,      "is_primary": true    }  },  "message": "Bundle retrieved successfully"}