Tax Calculations

Get instant surplus lines tax calculations and state-specific documents using JSON request.

Pull real-time surplus lines tax rates

Instant, current and accurate Surplus Lines tax rate retrieval.

Reporting Form generation

Streamline form generation and data transformation.

Compliance and Error Reduction

Mitigate compliance risks and ensure precise tax reporting.

Seamless Data Integration

Straightforward quote-to-bind data integration for efficient policy workflow.

Introduction

The Tax Calculator API enables real-time calculation of surplus lines tax rates and fees across all 50 states (plus DC, Puerto Rico, Guam, and the Virgin Islands) as well as admitted rates in the state of Kentucky through a single POST endpoint.

Submit policy details via JSON to /api/tax-calculator/calculate-general-taxes and receive comprehensive tax calculations, including state-specific requirements, stamping fees, and municipal taxes. The API supports both single and multiple lines of business calculations, making it ideal for integrating accurate surplus lines tax compliance into your insurance management system.

Necessary datasheets to reference

InsCipher utilizes certain data tables outside of the documentation for every request to provide the most up to date requirements for your integration.

Depending on your configuration, you may need to reference the following tables, which will be mentioned further down in the documentation.

Feel free to open these in a new window or bookmark for future use:

Generic Lines of Business List

Document Requirements: Tax Calc API

Unique State Tax Titles

State Stamp Wording

Transaction Types List

Identify Line of Business model

Single Line of Business Tax Calculation

When your policy covers just one type of risk, use the single line of business method. This requires:

  • One line of business code (e.g., "GEN-1001")
  • Total premium amount for that line
  • All required location and policy information

Multiple Lines of Business Tax Calculation

For policies covering multiple types of risks, use the multiple lines method. Key differences:

  • Uses pipe-separated (|) values for multiple lines
  • Requires matching premium amounts for each line
  • Total premium must equal sum of all coverage amounts

Formulating your API calls

Before integrating with InsCipher's Tax Calculator API, click into the section specific to your Lines of Business method below and review the required fields carefully as they vary based on this calculation type and state-specific requirements, with some fields being mandatory (✓) while others depend on factors like location or transaction type.

For both non-admitted and admitted rates for the state of Kentucky, utilize the following URL (HTTP POST): https://surpluslines.inscipher.com/api/v2/tax-calculator/calculate-general-taxes

In the sections below, you'll find specific information related to required and supplemental data necessary to retrieve accurate tax rate information from InsCipher, along with JSON request and response examples.

Request / Response Examples

The following are example requests and responses to give the most complete view of how the API works and what fields are generally apart of the payload bodies. Please note that dependent upon the state, certain fields may be required for accurate tax rates where others may be omitted. Please read the Request Field Detail - Table below as well as utilizing the datasheet links at the top of this page to understand which fields apply explicitly for each state.

All US States / covered territories (not including Kentucky): Non-Admitted Rates

{
  "physical_state": "CA",
  "line_of_business": "GEN-1001",
  "rpg": 0,
  "transaction_type": "PN",
  "premium": 7000.32,
  "agency_fee": 600,
  "inspection_fee": 400,
  "tax_exempt": 0,
  "policy_effective_date": "2019-04-01",
  "transaction_effective_date": "2019-05-01",
  "ecp": 1,
  "account_written_as": "DC",
  "commission_received": 0,
  "mailing_entity_type": "",
  "mailing_insured_email": "",
  "mailing_insured_phone": null,
  "layered_risk": 0,
  "risk_retention_group": 0,
  "broker_of_record_change": 0
}
{
	"line_of_business_id": 43436,
	"fm_tax_percentage": null,
	"line_of_business_list": [
		{
			"generic_code": "GEN-1001",
			"code": "7000",
			"fm_tax_title": null,
			"empa_tax_title": null
		}
	],
	"state_properties": {
		"state_stamp_wording_text": null,
		"state_stamp_wording_instructions": null,
		"state_stamp_wording_font_size": null,
		"state_stamp_wording_font_bold": null,
		"state_stamp_wording_font_italics": null,
		"state_stamp_wording_font_color": null,
		"state_stamp_wording_type": null,
		"state_stamp_wording_updated_at": null
	},
	"mailing_state_properties": null,
	"account_written_as": "DC",
	"line_of_business": "GEN-1001",
	"transaction_type": "PN",
	"premium": 7000.32,
	"agency_fee": 600,
	"inspection_fee": 400,
	"sl_tax": 222.01,
	"stamping_fee": 14.8,
	"sl_service_charge": 0,
	"municipal_fee": null,
	"county_fee": null,
	"fm_tax": 0,
	"empa_tax": 0,
	"rpg": 0,
	"tax_rule": {
		"is_sl_tax_active": true,
		"sl_tax_amount_type": 1,
		"sl_tax_amount": 3,
		"is_sl_tax_input_manual": false,
		"is_stamping_fee_active": true,
		"stamping_fee_amount_type": 1,
		"stamping_fee_amount": 0.2,
		"is_stamping_fee_input_manual": false,
		"exclude_stamping_fee_when_negative_premium": false,
		"is_sl_service_charge_active": false,
		"sl_service_charge_amount_type": 1,
		"sl_service_charge_amount": 0,
		"is_sl_service_charge_input_manual": false,
		"is_municipal_fee_active": false,
		"municipal_fee_amount_type": 1,
		"municipal_fee_amount": 0,
		"is_municipal_fee_input_manual": false,
		"fee_restrictions": false,
		"fee_restriction_amount_fixed_active": false,
		"fee_restriction_amount_fixed": null,
		"fee_restriction_amount_percentage_active": false,
		"fee_restriction_amount_percentage": null,
		"max_fee": false,
		"max_fee_amount_type": 1,
		"max_fee_amount": null,
		"fee_restriction_apply_to": [
			0
		],
		"fee_restriction_apply_from": [
			0
		],
		"both_fees_allowed": true,
		"ask_if_commission_received": false,
		"zero_agency_fee_if_commission_received": false,
		"round_up_taxes_to_the_nearest_dollar": false,
		"round_up_premium_to_the_nearest_dollar": false,
		"sl_tax_title": "Surplus Lines Tax",
		"sl_service_charge_title": null,
		"stamping_fee_title": "Stamping Fee",
		"municipal_fee_title": null,
		"state_notes": [
			{
				"note_type_data": {
					"id": 10,
					"label": "Document Notes"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 10,
				"note": "<p>Signed/Completed D-1 disclosure must be signed before bind of new & policy.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 10,
					"label": "Document Notes"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 10,
				"note": "<p>All premium bearing policy documents (declarations page, endorsements, etc.) must have the transaction&#039;s premium, all fees, and taxes individually broken out.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": false,
				"italic": false
			},
			{
				"note_type_data": {
					"id": 8,
					"label": "Premium and Fees"
				},
				"notification_type_data": {
					"id": 3,
					"label": "Warning"
				},
				"note_type": 8,
				"note": "<p>Carrier fees are taxable in CA. Broker fees negotiated between the broker and insured are generally not considered taxable. There may be instances in which a broker fee is considered taxable. Please refer to Bulletins #628, #806 and #997 for further information, or contact the state of CA directly for specific direction. If you determine through your research that a broker fee is taxable, you will need to enter this fee in the Carrier Fee field in order for the Tax Calculator to apply the tax.<br/><a target=\"_blank\" href=\"https://www.slacal.com/docs/default-source/bulletins/997.pdf?sfvrsn=2\">Click here to learn more.</a></p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 7,
					"label": "Other Policy Information"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 7,
				"note": "<p>Filings are not required if the policy is considered tax-exempt.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 7,
					"label": "Other Policy Information"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 7,
				"note": "<p>Tax Exempt status varies by state. To help determine whether or not a policy qualifies as Tax Exempt, please review the article found  here: <br/><a target=\"_blank\" href=\"https://support.inscipher.com/knowledge/tax-exempt-status-by-state\">Click here to learn more.</a></p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 5,
					"label": "Policy Detail"
				},
				"notification_type_data": {
					"id": 3,
					"label": "Warning"
				},
				"note_type": 5,
				"note": "<p>If your Extension Endorsement extends the policy period more than 90 days in the aggregate (&#61;91 days and on), please enter into the portal as a Renewal transaction type as an SL-1 and SL-2 (if applicable) is required. Please submit the Extension Endorsement document in place of the Policy document. A new SL-1 and SL-2 (if applicable) is required anytime an extension extends the policy past 90 days from the expiration date when the last SL-1 and SL-2 were provided.<br />\n<br />\nIf your Extension Endorsement extends the policy period less than 90 days in the aggregate (&#61; 90 days and less), please enter into the portal as an Extension Endorsement transaction type.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": false,
				"italic": false
			},
			{
				"note_type_data": {
					"id": 5,
					"label": "Policy Detail"
				},
				"notification_type_data": {
					"id": 3,
					"label": "Warning"
				},
				"note_type": 5,
				"note": "<p>If you have an endorsement on an open ended policy, please enter the filing into the portal as an extension endorsement filing type to calculate the stamping fee correctly.  Please add a note \"This is not an extension endorsement, rather an endorsement on an open ended policy and will need to be manually filed in CA\".</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": false,
				"italic": false
			}
		],
		"state_documents": [
			{
				"upload_required": false,
				"name": "D-1 Disclosure",
				"code": "D1DISC",
				"document_note": "To be signed by the insured prior to binding the policy. To be kept on file for new policies only.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": "https://surpluslines.inscipher.com/doc/link/43e7f1988fab83a8d110a8b4596f360f/260552",
				"last_edited_at": "2024-11-15",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Affidavit or Acknowledgement",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": true,
				"required_for_binding": true,
				"include_with_policy": true,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "Insured"
			},
			{
				"upload_required": false,
				"name": "Diligent Search Report (SL-2 Form, Pre-2024)",
				"code": "SL2",
				"document_note": "For policies before 2024, you can upload your original SL-2 document using the old form, as this is preferred by SLACAL. If not uploaded, you should have this document on hand, and InsCipher will complete the filing using the new SL-2 programmatically. SLACAL may ask for the original SL-2 in this scenario.\r\n*California will no longer accept this document past 01/01/26.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2025-01-24",
				"date_active_from": null,
				"date_active_to": "2023-12-31",
				"document_group": "Diligent Effort Documents",
				"rpg": 2,
				"ecp": 0,
				"exempt": 2,
				"export_list": 0,
				"required_for_filing": true,
				"required_for_binding": true,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "Producing Agent"
			},
			{
				"upload_required": false,
				"name": "Coverage Codes",
				"code": "COVEC",
				"document_note": "CA Coverage Code info to be used on SL-2 form.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": "https://surpluslines.inscipher.com/doc/link/66adf736b9036b1f95c5a6762e90a406/2679765",
				"last_edited_at": "2024-11-15",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Miscellaneous",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": false,
				"required_for_binding": false,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "None"
			},
			{
				"upload_required": true,
				"name": "Policy",
				"code": "POLIC",
				"document_note": "Attach full policy including D-2 Notice in PDF Format.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2025-02-10",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Policy Documents",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": true,
				"required_for_binding": false,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "None"
			},
			{
				"upload_required": false,
				"name": "D-2 Notice",
				"code": "D2NOT",
				"document_note": "To be attached to all policies, prior to policy being issued to insured.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": "https://surpluslines.inscipher.com/doc/link/d5f724e60889e77a20e6b210ff50cb08/260551",
				"last_edited_at": "2024-11-15",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "State Stamp Templates",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": true,
				"required_for_binding": false,
				"include_with_policy": true,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "None"
			},
			{
				"upload_required": false,
				"name": "Confidential Report of Surplus Line Placement (SL-1 Form)",
				"code": "SL1",
				"document_note": "To be completed by Surplus Lines Broker filing policy.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": "https://surpluslines.inscipher.com/doc/link/023ab511a98e56745c2424897d8d417d/9305",
				"last_edited_at": "2025-05-30",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Affidavit or Acknowledgement",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": true,
				"required_for_binding": true,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "Broker"
			},
			{
				"upload_required": false,
				"name": "Diligent Search Report (SL-2 Form, 2024 Version)",
				"code": "SL2",
				"document_note": "For policies before 2024, you can upload your original SL-2 document using the old form, as this is preferred by SLACAL. If not uploaded, you should have this document on hand, and InsCipher will complete the filing using the new SL-2 programmatically. SLACAL may ask for the original SL-2 in this scenario.\r\n*California will no longer accept older versions of this document effective 01/01/26.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2025-07-24",
				"date_active_from": "2024-01-01",
				"date_active_to": null,
				"document_group": "Diligent Effort Documents",
				"rpg": 2,
				"ecp": 0,
				"exempt": 2,
				"export_list": 0,
				"required_for_filing": true,
				"required_for_binding": true,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "Producing Agent"
			},
			{
				"upload_required": false,
				"name": "SL-2 (2024) Instructions",
				"code": "SL-2INST",
				"document_note": "Instructions on how to complete the new SL-2 Form, available 1/1/2024",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2024-11-15",
				"date_active_from": "2024-01-01",
				"date_active_to": null,
				"document_group": "Miscellaneous",
				"rpg": 2,
				"ecp": 0,
				"exempt": 2,
				"export_list": 0,
				"required_for_filing": false,
				"required_for_binding": false,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": false,
				"signature_requirements": "None"
			},
			{
				"upload_required": false,
				"name": "Diligent Search Report (SL-2 Form) Addendum",
				"code": "SL2-ADD",
				"document_note": "**As of 01/01/24 if the new SL-2 is completed, this addendum is now required for policies of Private Auto Liability or Health Insurance Coverages.  This is to be completed by the producing Broker.",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2024-11-15",
				"date_active_from": "2024-01-01",
				"date_active_to": null,
				"document_group": "Diligent Effort Documents",
				"rpg": 2,
				"ecp": 0,
				"exempt": 2,
				"export_list": 0,
				"required_for_filing": true,
				"required_for_binding": true,
				"include_with_policy": false,
				"include_in_diligent_effort": true,
				"keep_on_hand": false,
				"signature_requirements": "None"
			},
			{
				"upload_required": false,
				"name": "CA Commercial Insured/Exempt Commercial Purchaser checklist",
				"code": "MISC",
				"document_note": null,
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					},
					{
						"name": "Binder",
						"short_code": "BD"
					}
				],
				"document_download_link": "https://surpluslines.inscipher.com/doc/link/df398e5a376a9d84b4b02d55851e2b83/5743389",
				"last_edited_at": null,
				"date_active_from": "2025-01-01",
				"date_active_to": null,
				"document_group": "Miscellaneous",
				"rpg": 2,
				"ecp": 1,
				"exempt": 1,
				"export_list": 2,
				"required_for_filing": false,
				"required_for_binding": false,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": true,
				"signature_requirements": "None"
			}
		],
		"round_up_fees_to_the_nearest_dollar": false,
		"round_taxes_to_the_nearest_dollar": false,
		"round_premium_to_the_nearest_dollar": false,
		"round_fees_to_the_nearest_dollar": false
	},
	"commission_received": false,
	"tax_exempt": 0,
	"export_list": 0,
	"municipal_tax_settings": null,
	"county_tax_settings": null,
	"collection_fee": 0,
	"continuous_coverage": 0,
	"physical_address": null,
	"physical_city": null,
	"physical_zip_code": null,
	"physical_state": "CA"
}

State of Kentucky: Non-Admitted Rates

{
  "physical_state": "KY",
  "line_of_business": "GEN-1001",
  "rpg": 0,
  "transaction_type": "PN",
  "premium": 1000.55,
  "agency_fee": 100,
  "inspection_fee": 200,
  "tax_exempt": 0,
  "policy_effective_date": "2019-04-01",
  "transaction_effective_date": "2019-05-01",
  "ecp": 1,
  "account_written_as": "DC",
  "physical_address": "450 E New Circle Rd",
  "physical_zip_code": "40509",
  "physical_city": "Lexington",
  "commission_received": 0,
  "mailing_entity_type": "",
  "mailing_insured_email": "",
  "mailing_insured_phone": null,
  "layered_risk": 0,
  "risk_retention_group": 0,
  "broker_of_record_change": 0
}
{
	"line_of_business_id": null,
	"fm_tax_percentage": null,
	"line_of_business_list": [
		{
			"generic_code": "GEN-1092",
			"code": "1022",
			"fm_tax_title": null,
			"empa_tax_title": null
		},
		{
			"generic_code": "GEN-1093",
			"code": "1020",
			"fm_tax_title": null,
			"empa_tax_title": null
		}
	],
	"state_properties": {
		"state_stamp_wording_text": "<p>&#34;This insurance has been placed with an insurer not licensed to transact business in the Commonwealth of Kentucky but eligible as a surplus lines insurer. The insurer is not a member of the Kentucky Insurance Guaranty Association. Should the insurer become insolvent, the protection and benefits of the Kentucky Insurance Guaranty Association are not available.&#34;</p>",
		"state_stamp_wording_instructions": "Every insurance contract procured and delivered as a surplus lines coverage shall have conspicuously stamped on the face page of the policy, initialed by or bearing the name of the surplus lines broker who procured it.",
		"state_stamp_wording_font_size": 12,
		"state_stamp_wording_font_bold": 0,
		"state_stamp_wording_font_italics": 0,
		"state_stamp_wording_font_color": "black",
		"state_stamp_wording_type": "wording",
		"state_stamp_wording_updated_at": "2024-04-01 00:04:00"
	},
	"mailing_state_properties": null,
	"account_written_as": "B",
	"line_of_business": "GEN-1001",
	"transaction_type": "PN",
	"premium": 401.98,
	"agency_fee": 0,
	"inspection_fee": 200,
	"sl_tax": 18.06,
	"stamping_fee": 10.84,
	"sl_service_charge": 0,
	"municipal_fee": 30.1,
	"county_fee": null,
	"fm_tax": 0,
	"empa_tax": 0,
	"rpg": 0,
	"tax_rule": {
		"is_sl_tax_active": true,
		"sl_tax_amount_type": 1,
		"sl_tax_amount": 3,
		"is_sl_tax_input_manual": false,
		"is_stamping_fee_active": true,
		"stamping_fee_amount_type": 1,
		"stamping_fee_amount": 1.8,
		"is_stamping_fee_input_manual": false,
		"exclude_stamping_fee_when_negative_premium": false,
		"is_sl_service_charge_active": false,
		"sl_service_charge_amount_type": 1,
		"sl_service_charge_amount": 0,
		"is_sl_service_charge_input_manual": false,
		"is_municipal_fee_active": true,
		"municipal_fee_amount_type": 2,
		"municipal_fee_amount": 0,
		"is_municipal_fee_input_manual": false,
		"fee_restrictions": true,
		"fee_restriction_amount_fixed_active": false,
		"fee_restriction_amount_fixed": null,
		"fee_restriction_amount_percentage_active": false,
		"fee_restriction_amount_percentage": null,
		"max_fee": false,
		"max_fee_amount_type": 1,
		"max_fee_amount": null,
		"fee_restriction_apply_to": [
			4
		],
		"fee_restriction_apply_from": [
			1,
			2,
			3
		],
		"both_fees_allowed": true,
		"ask_if_commission_received": false,
		"zero_agency_fee_if_commission_received": false,
		"round_up_taxes_to_the_nearest_dollar": false,
		"round_up_premium_to_the_nearest_dollar": false,
		"sl_tax_title": "Surplus Lines Tax",
		"sl_service_charge_title": null,
		"stamping_fee_title": "Surcharge",
		"municipal_fee_title": "Municipal Tax",
		"state_notes": [
			{
				"note_type_data": {
					"id": 10,
					"label": "Document Notes"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 10,
				"note": "<p>All premium bearing policy documents (declarations page, endorsements, etc.) must have the transaction's premium, all fees, and taxes individually broken out.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 10,
					"label": "Document Notes"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 10,
				"note": "<p>Signed/Completed disclosure must be attached to policy before issuance.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 7,
					"label": "Other Policy Information"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 7,
				"note": "<p>Tax Exempt status varies by state. To help determine whether or not a policy qualifies as Tax Exempt:<br />\n<a href=\"https://support.inscipher.com/knowledge/tax-exempt-status-by-state\" target=\"_blank\">Click here to learn more.</a></p>\n\n<p>For non-profit organizations where the KY surcharge is waived, mark &#34;Yes&#34; for Tax Exempt, otherwise, leave as &#34;No&#34;.</p>\n\n<p>The Municipal Tax, also known as the Local Government Premium Tax (LGPT), will be calculated after the insured address is added on Step 2 of the tax calculator.  Then select the &#34;Check Municipality&#34; button, doing so will return the municipality name and also the associated Municipal Tax.  The InsCipher Calculator helps you determine the municipality name by using ArcGIS &amp; KY Geonet Maps.  It is still the user&#039;s responsibility to ensure that the municipality is correct which can be manually adjusted.</p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": false,
				"italic": false
			},
			{
				"note_type_data": {
					"id": 8,
					"label": "Premium and Fees"
				},
				"notification_type_data": {
					"id": 3,
					"label": "Warning"
				},
				"note_type": 8,
				"note": "<p>Pursuant to KRS 91A.080(4) and 806 KAR 2:150, a reasonable collection fee may be charged and retained by the insurance company or its agent. The collection fee shall not be more than fifteen percent (15%) of the LGPT collected and remitted to the local government, or two percent (2%) of the taxable premium, whichever is less. This fee is in addition to the LGPT payable.<br/><br/>Note: InsCipher does not have Fee Restrictions in place at this time for the collection fee. Please make sure your collection fee abides by the above statute.<br/><a target=\"_blank\" href=\"https://apps.legislature.ky.gov/law/statutes/statute.aspx?id=43399\">K.R.S 91A.08(4)\">Click here to learn more.</a></p>",
				"instructions": null,
				"font_size": null,
				"color": null,
				"bold": null,
				"italic": null
			},
			{
				"note_type_data": {
					"id": 3,
					"label": "State Stamp Wording"
				},
				"notification_type_data": {
					"id": 1,
					"label": "Info"
				},
				"note_type": 3,
				"note": "<p>&#34;This insurance has been placed with an insurer not licensed to transact business in the Commonwealth of Kentucky but eligible as a surplus lines insurer. The insurer is not a member of the Kentucky Insurance Guaranty Association. Should the insurer become insolvent, the protection and benefits of the Kentucky Insurance Guaranty Association are not available.&#34;</p>",
				"instructions": "Every insurance contract procured and delivered as a surplus lines coverage shall have conspicuously stamped on the face page of the policy, initialed by or bearing the name of the surplus lines broker who procured it.",
				"font_size": 12,
				"color": "black",
				"bold": false,
				"italic": false
			}
		],
		"state_documents": [
			{
				"upload_required": true,
				"name": "Policy or Binder/Dec page",
				"code": "POLIC",
				"document_note": null,
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2025-05-30",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Policy Documents",
				"rpg": 2,
				"ecp": 2,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": false,
				"required_for_binding": false,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": true,
				"signature_requirements": "None"
			},
			{
				"upload_required": false,
				"name": "Diligent Search Form",
				"code": "DSF",
				"document_note": "To be filled out by producing agent confirming diligent effort - To be kept on File",
				"transaction_types": [
					{
						"name": "New Policy",
						"short_code": "PN"
					},
					{
						"name": "Renewal Policy",
						"short_code": "PR"
					},
					{
						"name": "Extension Endorsement",
						"short_code": "XE"
					}
				],
				"document_download_link": null,
				"last_edited_at": "2025-03-04",
				"date_active_from": null,
				"date_active_to": null,
				"document_group": "Diligent Effort Documents",
				"rpg": 2,
				"ecp": 0,
				"exempt": 2,
				"export_list": 2,
				"required_for_filing": false,
				"required_for_binding": true,
				"include_with_policy": false,
				"include_in_diligent_effort": false,
				"keep_on_hand": true,
				"signature_requirements": "Producing Agent"
			}
		],
		"round_up_fees_to_the_nearest_dollar": false,
		"round_taxes_to_the_nearest_dollar": false,
		"round_premium_to_the_nearest_dollar": false,
		"round_fees_to_the_nearest_dollar": false
	},
	"commission_received": false,
	"tax_exempt": 0,
	"export_list": 0,
	"municipal_tax_settings": [
		{
			"municipal_tax_setting": {
				"municipality_name": "Lexington-Fayette",
				"line_category": "casualty_liability_only"
			}
		}
	],
	"county_tax_settings": null,
	"collection_fee": 0,
	"continuous_coverage": 0,
	"physical_address": "450 E New Circle Rd",
	"physical_city": "Lexington",
	"physical_zip_code": "40509",
	"physical_state": "KY"
}

State of Kentucky: Admitted rates

{
"admitted": 1,
"physical_state" : "KY",
"physical_address": "1110 Sparks Rd",
"physical_city" : "Lexington",
"physical_zip_code": "40505",
"line_of_business" : "1014",
"policy_effective_date" : "2025-01-01", 
"transaction_type" : "PN",
"premium" : 1000.55,
"agency_fee" : 100,
"inspection_fee" : 200, 
"rpg": 0,
"tax_exempt": 0,
"policy_effective_date": "2025-08-19",
"transaction_effective_date": "2025-08-19",
"ecp": 1,
"account_written_as": "DC",
"commission_received": 0,
"mailing_entity_type": "",
"mailing_insured_phone": null,
"layered_risk": 0,
"risk_retention_group": 0,
"broker_of_record_change": 0
}
{
  "state": "KY",
  "admitted": 1,
  "policy_effective_date": "2025-08-19",
  "premium": 1000.55,
  "inspection_fee": 200,
  "agency_fee": 100,
  "premium_tax": 26.01,
  "premium_tax_life": 19.51,
  "municipal_fee": 65.03,
  "municipal_tax_settings": {
    "municipality_name": "Lexington-Fayette",
    "line_category": "fire_and_allied_perils"
  },
  "county_fee": 0,
  "county_tax_settings": {
    "county_name": "*No County Found",
    "line_category": null
  },
  "stamping_fee": 23.41
}

Request Field Data - Table

The following data consists of fields that comprise all 3 scenarios above. Please check the field details to understand for which use case it applies. Unless otherwise noted, fields with no special callout are for non-admitted rates for all US states.

NOTE: The fields that show Required Y/N = YES. These are mandatory for a successful request.

Field Name

Description

Field Type, Required Y/N

admitted

Admitted taxes? 0 (or omitted) - No, 1 - (non-admitted or E&S) - Yes

If 1 or Yes, returns back only values related to admitted taxes. Leaving blank defaults to 1 or Yes.

String, YES if requesting admitted rates (KY)

physical_state

Physical state 2-letter code where the risk is located (e.g., KY).

String, YES

line_of_business

OR

transaction_line_of_business_list

For Single Line of Business requests: Use single generic line of business code (e.g., GEN-1001). State-specific codes can also be used.

For Multiple Line of Business requests / package policies: Generic line of business codes or state specific codes in string form, as a pipe-separated list - ie, "GEN-1010\|GEN-2000"

NOTE: For multiple LOB, this list is in 1:1 relation with the transaction_line_of_business_coverage premium amounts.

String, YES

rpg

Risk Purchasing Group indicator: 0 = No, 1 = Yes. Defaults to 0 or No.

Integer

transaction_type

Transaction type code (e.g., PN = New Policy, PR = Renewal).

String, YES

premium

OR

transaction_line_of_business_coverage

Policy premium amount.

For Single Line of Business requests: Utilize the premium field. Input as a single number, ie 200.27

For Multiple Line of Business requests / package policies: Input as the generic line of business premium breakdown in string form, pipe-separated list -ie "300\|1250.50\|500"

NOTE: For multiple LOB, this list is in 1:1 relation with the transaction_line_of_business_list coverage codes.

String, YES

agency_fee

Total of all non-carrier underwriting fees (e.g., broker or agency fees).

Number, YES

inspection_fee

Fees from the carrier or underwriting process (e.g., inspections, protection lookup).

Number, YES

tax_exempt

Tax Exempt indicator: 0 = No, 1 = Yes. Defaults to 0 or No.

Integer

policy_effective_date

Policy effective date (YYYY-MM-DD). Used by calculator logic to determine active tax/fee rules. If not provided, falls back to TED (Transaction Effective Date) or today's date.

String (Date), YES

transaction_effective_date

Transaction effective date (YYYY-MM-DD). Defines when the transaction takes effect. Defaults to same as the PED (Policy Effective Date) if missing.

String (Date)

ecp

Exempt Commercial Purchaser indicator: 0 = No, 1 = Yes. Defaults to 0 or No.

Integer

account_written_as

Indicates whether the policy is written: B = Brokerage or DC = Direct to Client.

String

physical_address

Only required for Kentucky. Street address of insured/risk location. No PO Boxes unless specifically allowed by the configuration.

String, YES in State of KY - both non-admitted & admitted rates

physical_zip_code

Only required for Kentucky. ZIP code of insured/risk location.

String, YES in State of KY - both non-admitted & admitted rates

physical_city

Only required for Kentucky. City of insured/risk location.

String, Yes in State of KY - both non-admitted & admitted rates

commission_received

Indicator if commission was received: 0 = No, 1 = Yes. Only applicable in the state of New Hampshire.

Integer

mailing_entity_type

Entity type of insured: individual, commercial (default), governmental, federal, tribal, hospital_alliance, state_approved_tax_exempt. Only applies to SC, NC, TN & FL (future expansion possible).

String

mailing_insured_email

Email address of the insured.

Integer

mailing_insured_phone

Phone number of the insured.

Integer

mailing_county

County of mailing address.

String

layered_risk

Indicator for layered risk: 0 = No, 1 = Yes. Defaults to 0.

Integer

risk_retention_group

Indicator for risk retention group. 0 = No, 1 = Yes. Defaults to 0.

Integer

broker_of_record_change

Broker of record change: 0 = No, 1 = Yes. Defaults to 0.

Integer


Response Field Data - Table

Field Name

Description

Field Type

line_of_business_id

Unique identifier for the line of business. (Inferred)

Integer / Null

fm_tax_percentage

Fire Marshal tax percentage (if applicable).

Number / Null

line_of_business_list

Array of LOB objects: id, fm_tax_percentage, generic_code, code, fm_tax_title, empa_tax_title.

Array of Objects

├─ line_of_business_list[].generic_code

Generic LOB code (InsCipher standard).

String

├─ line_of_business_list[].code

State/filing-specific LOB code.

String

├─ line_of_business_list[].fm_tax_title

Label for state specific or generic FM tax title (if any).

String / Null

├─ line_of_business_list[].empa_tax_title

Label for EMPA tax title (if any).

String / Null

state_properties

Object containing state-specific surplus lines requirements, including stamp wording, font rules, and rounding options.

Object

├─ state_stamp_wording_text

Surplus lines disclosure wording required by the state.

String / Null

├─ state_stamp_wording_instructions

Instructions for how wording must be applied to the policy.

String / Null

├─ state_stamp_wording_font_size

Font size requirement for the state stamp wording.

Number / Null

├─ state_stamp_wording_font_bold

Bold formatting flag.

Boolean / Integer (0/1) / Null

├─ state_stamp_wording_font_italics

Italics formatting flag.

Boolean / Integer (0/1) / Null

├─ state_stamp_wording_font_color

Font color for state stamp wording.

String / Null

├─ state_stamp_wording_type

Type of wording (e.g., “wording”, “template”).

String / Null

├─ state_stamp_wording_updated_at

Timestamp of last update for wording rules.

String (Datetime) / Null

mailing_state_properties

State-specific rules for mailing address (if different from risk state). (Inferred)

Object / Null

account_written_as

Brokerage = B or Direct to Client = DC.

String

line_of_business

General line of business import codes. State-specific codes available upon request.

String

transaction_type

Transaction type code (e.g., PN = New Policy, PR = Renewal).

String

premium

Policy premium amount.

Number

agency_fee

Agency Fee: all non-carrier underwriting fees (Broker, Agency, etc.).

Number

inspection_fee

Carrier/underwriting related fees (e.g., inspection).

Number

sl_tax

Surplus Lines tax amount. (Inferred)

Number

stamping_fee

Stamping fee amount. (Inferred)

Number

sl_service_charge

Surplus Lines service charge fee amount. (Inferred)

Number

municipal_fee

Local government premium tax (LGPT). Applicable to KY only.

Number / Null

county_fee

County tax fee (if applicable). KY only.

Number / Null

fm_tax

Foreign Market tax. (Inferred)

Number

empa_tax

EMPA tax (Emergency Management Preparedness Act tax, state-specific). (Inferred)

Number

rpg

Risk Purchasing Group indicator: 0 = No, 1 = Yes.

Integer

tax_rule

Object describing all tax/fee rules and restrictions.

Object

├─ is_sl_tax_active

Whether Surplus Lines Tax is active.

Boolean

├─ sl_tax_amount_type

Surplus Lines Tax type: 1 = Percentage, 2 = Fixed.

Integer

├─ sl_tax_amount

Surplus Lines Tax rate or fixed amount.

Number

├─ is_sl_tax_input_manual

Can SL tax be manually entered?

Boolean

├─ is_stamping_fee_active

Whether stamping fee is active.

Boolean

├─ stamping_fee_amount_type

Stamping Fee type: 1 = Percentage, 2 = Fixed.

Integer

├─ stamping_fee_amount

Stamping Fee rate or fixed amount.

Number

├─ is_stamping_fee_input_manual

Can stamping fee be manually entered?

Boolean

├─ exclude_stamping_fee_when_negative_premium

Exclude stamping fee if premium is negative. (Inferred)

Boolean

├─ is_sl_service_charge_active

Whether Service Charge is active.

Boolean

├─ sl_service_charge_amount_type

Service Charge type: 1 = Percentage, 2 = Fixed.

Integer

├─ sl_service_charge_amount

Service Charge rate or fixed amount.

Number

├─ is_sl_service_charge_input_manual

Can Service Charge be manually entered?

Boolean

├─ is_municipal_fee_active

Whether municipal fee is active.

Boolean

├─ municipal_fee_amount_type

Municipal Fee type: 1 = Percentage, 2 = Fixed.

Integer

├─ municipal_fee_amount

Municipal fee rate or fixed amount.

Number

├─ is_municipal_fee_input_manual

Can municipal fee be manually entered?

Boolean

├─ fee_restrictions

Are there fee restrictions?

Boolean

├─ fee_restriction_amount_fixed_active

Is a fixed fee restriction active?

Boolean

├─ fee_restriction_amount_fixed

Fixed fee restriction value (if active).

Number / Null

├─ fee_restriction_amount_percentage_active

Is a percentage fee restriction active?

Boolean

├─ fee_restriction_amount_percentage

Percentage restriction value (if active).

Number / Null

├─ max_fee

Is there a max fee rule?

Boolean

├─ max_fee_amount_type

Max Fee Type: 1 = Percentage, 2 = Fixed.

Integer

├─ max_fee_amount

Max fee value (depending on type).

Number / Null

├─ fee_restriction_apply_to

Fee restriction applies to (array of fee codes).

Array of Integers

├─ fee_restriction_apply_from

Fee restriction applies from (array of fee codes).

Array of Integers

├─ both_fees_allowed

Whether multiple fees are allowed.

Boolean

├─ ask_if_commission_received

Whether to ask if commission is received.

Boolean

├─ zero_agency_fee_if_commission_received

Force agency fee = 0 if commission is received. (Inferred)

Boolean

├─ round_up_taxes_to_the_nearest_dollar

Round up taxes to nearest dollar.

Boolean

├─ round_up_premium_to_the_nearest_dollar

Round up premium to nearest dollar.

Boolean

├─ sl_tax_title

Surplus Lines Tax label (UI title).

String / Null

├─ sl_service_charge_title

Service Charge Fee label (UI title).

String / Null

├─ stamping_fee_title

Stamping Fee label (UI title).

String / Null

├─ municipal_fee_title

Municipal Fee label (UI title).

String / Null

├─ state_notes

State-specific notes to assist in quoting/binding.

Array of Objects

├─ state_notes[].note_type_data

Object describing the note’s type.

Object

├─ state_notes[].note_type_data.id

ID of the note type.

Integer

├─ state_notes[].note_type_data.label

Label of the note type.

String

├─ state_notes[].notification_type_data

Object describing notification severity.

Object

├─ state_notes[].notification_type_data.id

ID of the notification type.

Integer

├─ state_notes[].notification_type_data.label

Label of the notification type (e.g., Info, Warning).

String

├─ state_notes[].note_type

Numeric code of the note type.

Integer

├─ state_notes[].note

The note body (often HTML).

String

├─ state_notes[].instructions

Extra instructions (optional).

String / Null

├─ state_notes[].font_size

Suggested font size (optional).

Number / Null

├─ state_notes[].color

Suggested font color (optional).

String / Null

├─ state_notes[].bold

Bold flag.

Boolean / Integer(0/1) / Null

├─ state_notes[].italic

Italic flag.

Boolean / Integer(0/1) / Null

├─ state_documents

State-required documents. Each entry defines name, code, notes, etc.

Array of Objects

├─ state_documents[].name

Document name.

String

├─ state_documents[].code

Document code.

String

├─ state_documents[].document_note

Document-specific notes.

String / Null

├─ state_documents[].document_download_link

One-time URL to download document.

String / Null

├─ state_documents[].upload_required

Whether upload is required.

Boolean

├─ state_documents[].transaction_types

Array of applicable transaction types.

Array of Objects

├─ state_documents[].transaction_types[].name

Transaction type name.

String

├─ state_documents[].transaction_types[].short_code

Transaction type code.

String

├─ state_documents[].last_edited_at

Last edited date.

String (Datetime) / Null

├─ state_documents[].date_active_from

Start date active.

String (Date) / Null

├─ state_documents[].date_active_to

End date active.

String (Date) / Null

├─ state_documents[].document_group

Document group/category.

String

├─ state_documents[].rpg

RPG applicability: 0 = No, 1 = Yes, 2 = Both.

Integer

├─ state_documents[].ecp

ECP applicability: 0 = No, 1 = Yes, 2 = Both.

Integer

├─ state_documents[].exempt

Tax Exempt applicability: 0 = No, 1 = Yes, 2 = Both.

Integer

├─ state_documents[].export_list

Export List applicability: 0 = No, 1 = Yes, 2 = Both.

Integer

├─ state_documents[].required_for_filing

Whether required for filing.

Boolean

├─ state_documents[].required_for_binding

Whether required for binding.

Boolean

├─ state_documents[].include_with_policy

Should be included with policy.

Boolean

├─ state_documents[].include_in_diligent_effort

Should be included in diligent effort docs.

Boolean

├─ state_documents[].keep_on_hand

Should be kept on file.

Boolean

├─ state_documents[].signature_requirements

Who must sign (e.g., Insured, Broker, Agent).

String

commission_received

Whether commission is received. (Inferred)

Boolean

tax_exempt

Tax Exempt status: 0 = No, 1 = Yes.

Integer

export_list

Export list: 0 = No, 1 = Yes.

Integer

municipal_tax_settings

Collection of municipal tax settings (KY only).

Array of Objects / Null

├─ municipal_tax_settings[].municipal_tax_setting

Wrapper for municipal tax setting.

Object

├─ municipal_tax_settings[].municipal_tax_setting.municipality_name

Municipality name.

String

├─ municipal_tax_settings[].municipal_tax_setting.line_category

Municipal level Line category (Fire, Casualty, Vehicle, etc.). (KY only).

String

county_tax_settings

County tax settings (KY only).

Array / Null

├─ county_name

Name of the county (KY only).

String

├─ line_category

County level Line category (Fire, Casualty, Vehicle, etc.). (KY only).

String.

collection_fee

Collection fee amount.

Number

continuous_coverage

Continuous coverage indicator.

Boolean / Integer (0/1)

physical_address

Risk location address.

String / Null

physical_city

Risk location city.

String / Null

physical_zip_code

Risk location zip code.

String / Null

Non-admitted rates: physical_state

Admitted rates (KY only) : state

Physical state / state (2-letter code).

String

premium_tax

Insurance premiums tax levied on insurance companies for privilege of doing business in the state. (KY only)

Number

premium_tax_life

Insurance premiums tax levied on insurance companies for privilege of doing business in the state. Specific to life insurance companies doing business in the state. (KY only)

Number


Errors

InsCipher uses conventional HTTP response codes to indicate the success or failure of an API request. In general, 2xx codes indicate success, 4xx codes indicate a failure due to invalid information provided or issues with authorization, and 5xx codes indicate server errors.

For example - unauthorized usage of the Tax Calculator API will result in the following error:

{
  "error": {
    "code": "Unauthorized access",
    "status": 401,
    "message": "Insufficient permissions to access this API endpoint"
  }
}

FAQ's ❓

Transactions

Can I future date policy transactions?

The Compliance Team at InsCipher adds state by state tax rates at the cadence of one year in advance - because there isn't a consistent way of knowing what new rates are going to be if they change for the subsequent year. These rates are generally known and implemented by this team as they are updated by the state - and finalized in InsCipher towards the end of September or beginning of October timeframe, but no sooner. Thus, best practice is

How do I submit endorsements?

In the case of endorsements, send over the difference between the original premium amount and the premium endorsement amount in the premium field, and set the transaction type to APE for an Additional Premium Endorsement or RPE for Return Premium Endorsement. For example, if the original policy had a premium of $500 and required an APE 6 months into the policy term, bringing the premium to $650, the premium amount sent in the request to retrieve tax rates for this transaction type would be the difference in original and new premium, or the change, - so $150. The same is true of an RPE when an amount is required to be credited back to the insured. Simply return the difference. You do not need to submit a negative value in this case - InsCipher will recognize the transaction type is RPE and apply that amount as a negative value.

Documents

How are Documents returned via this endpoint?

Documents returned using this method will be returned in one of two ways:

  1. Blank document templates: These will be returned as links where blank state forms can be downloaded
  2. Required documents for submission: This will not be a downloadable file, but rather this is informational in nature letting the user know if this document is required or not for submission with the rest of the policy detail. For a quick summary of document requirements, you can refer to the Document Requirements datasheet.

Generic Lines of Business

How do Generic Lines of Business Import Codes work?

InsCipher maintains a list of active coverage lists by state. To simplify the import process, we do not expect you to determine what these codes are on import. Instead, we have created Generic Import codes for you to use which can be found on the Generic Lines of Business List datasheet.

On the sheet, the generic codes (GEN-XXXX) are listed with the orange headers on the left side of the sheet. To the right, you will see state-specific codes listed with blue headers. If you import using the generic codes, then our system will automatically associate the transaction to the proper state-specific line of business upon import according to the mapping. It is your responsibility to review the mapping and to determine if there are additional generic codes that need to be mapped or altered.

InsCipher will accommodate adding generic codes for you as part of the implementation process. These need to be requested via email and in one single request for all adjustments needed. If changes to this mapping are requested after implementation, clients will be charged an hourly rate to add these codes as it can be a time-consuming process.

Tax Titles

How should I be understanding tax titles?

There are some states where field names are repurposed for state-specific definitions of taxes and/or state fees. For a summary of these tax titles, refer to the Unique State Tax Titles datasheet.

Taxable Fees

How do I determine taxable fees by state?

InsCipher's Tax Calculator API is designed to identify and calculate taxable agency, broker and carrier fees as apart of surplus lines tax filings. Our helpful Taxable Fees Guide is helpful in reviewing taxable fees by state - specific to transaction type.

To export this data table to CSV, CSV(Excel), or to Google Sheets - first simply choose the view specific to state or another filter, then hover over the orange bar to the very far right of the column header, where you'll notice three ellipsis appear. Click 'Export' to review your options and download the data: