cURL
curl --request GET \
--url https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"policyNumber": "POL-2025-001",
"currentStatus": "active",
"riskStateCode": "CA",
"entityMatchStatus": "auto matched",
"productMatchStatus": "unmatched",
"transactionCount": 3,
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:31:45.000Z",
"insuredEntityName": "Example Corp",
"agencyName": "Premier Insurance Agency",
"agencyNpn": "12345678",
"agencyFein": "12-3456789",
"agencyLicenseNumber": "ABC-123456",
"agencyLicensedStateCode": "CA",
"agentName": "John Smith",
"agentNpn": "87654321",
"agentLicenseNumber": "LIC-789012",
"agentLicensedState": "TX",
"carrierName": "National Insurance Co",
"lineOfBusiness": "Commercial Lines",
"producerName": "Jon Doe",
"producerCode": "PROD-001",
"productName": "General Liability",
"productCode": "GL-100",
"effectiveDate": "2025-01-15T00:00:00.000Z",
"expiryDate": "2026-01-15T00:00:00.000Z",
"premiumAmountInUSD": 5000,
"aggregateCoverageInUSD": 1000000,
"coveragePerClaimInUSD": 500000,
"filingNumber": "FIL-2025-001",
"slaNumber": "SLA-2025-001",
"externalBillingId": "BILL-2025-001",
"licenseNumber": "LIC-001",
"npn": "11223344",
"uploadSource": "upstream entity"
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Policy Ingestion
Policy
Retrieve a single policy by ID
GET
/
v2
/
upstream
/
policies
/
{policyId}
cURL
curl --request GET \
--url https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId} \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://public.api.live.turrisfi.com/v2/upstream/policies/{policyId}"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"data": {
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"policyNumber": "POL-2025-001",
"currentStatus": "active",
"riskStateCode": "CA",
"entityMatchStatus": "auto matched",
"productMatchStatus": "unmatched",
"transactionCount": 3,
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:31:45.000Z",
"insuredEntityName": "Example Corp",
"agencyName": "Premier Insurance Agency",
"agencyNpn": "12345678",
"agencyFein": "12-3456789",
"agencyLicenseNumber": "ABC-123456",
"agencyLicensedStateCode": "CA",
"agentName": "John Smith",
"agentNpn": "87654321",
"agentLicenseNumber": "LIC-789012",
"agentLicensedState": "TX",
"carrierName": "National Insurance Co",
"lineOfBusiness": "Commercial Lines",
"producerName": "Jon Doe",
"producerCode": "PROD-001",
"productName": "General Liability",
"productCode": "GL-100",
"effectiveDate": "2025-01-15T00:00:00.000Z",
"expiryDate": "2026-01-15T00:00:00.000Z",
"premiumAmountInUSD": 5000,
"aggregateCoverageInUSD": 1000000,
"coveragePerClaimInUSD": 500000,
"filingNumber": "FIL-2025-001",
"slaNumber": "SLA-2025-001",
"externalBillingId": "BILL-2025-001",
"licenseNumber": "LIC-001",
"npn": "11223344",
"uploadSource": "upstream entity"
},
"requestId": "dev-2c5e7cf2-9acf-4c8c-ab2f-b81f39d775a8",
"timestamp": "2025-11-12T20:49:03.293Z"
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}{
"statusCode": 123,
"requestId": "<string>",
"errorType": "validation_error",
"errorMessage": [
"<string>"
],
"timestamp": "<string>",
"details": {}
}Returns a single policy by its unique identifier. The policy must belong to the authenticated upstream entity.
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
policyId | string | Yes | Unique identifier of the policy (MongoDB ObjectId) |
Response Shape
All successful responses are wrapped in the standard response envelope. See Request/Response Conventions.
{
"statusCode": 200,
"data": {
"_id": "6650a1b2c3d4e5f6a7b8c9d0",
"policyNumber": "POL-2025-001",
"currentStatus": "active",
"riskStateCode": "CA",
"agencyName": "Premier Insurance Agency",
"agencyNpn": "12345678",
"agencyFein": "12-3456789",
"agentName": "John Smith",
"agentNpn": "87654321",
"carrierName": "National Insurance Co",
"lineOfBusiness": "Commercial Lines",
"producerName": "Jon Doe",
"productName": "General Liability",
"insuredEntityName": "Example Corp",
"effectiveDate": "2025-01-15T00:00:00.000Z",
"expiryDate": "2026-01-15T00:00:00.000Z",
"premiumAmountInUSD": 5000,
"aggregateCoverageInUSD": 1000000,
"coveragePerClaimInUSD": 500000,
"entityMatchStatus": "auto matched",
"productMatchStatus": "unmatched",
"transactionCount": 3,
"createdAt": "2025-01-15T10:30:00.000Z",
"updatedAt": "2025-01-15T10:31:45.000Z"
},
"timestamp": "2025-01-15T10:31:50.000Z"
}
Response Fields
The response object contains the same fields as each item in List Policies. See that page for the full field reference, including matching status values.Error Scenarios
Bad Request (400)
Returned whenpolicyId is not a valid MongoDB ObjectId format.
{
"statusCode": 400,
"errorType": "validation_error",
"errorMessage": ["policyId must be a mongodb id"],
"requestId": "dev-abc123",
"timestamp": "2025-01-15T10:30:00.000Z"
}
Policy Not Found (404)
Returned whenpolicyId doesnβt exist or belongs to a different upstream entity.
{
"statusCode": 404,
"errorType": "not_found",
"errorMessage": ["Policy not found"],
"requestId": "dev-abc123",
"timestamp": "2025-01-15T10:30:00.000Z"
}
Unauthorized (401)
Missing or invalid authentication token. See Authentication.Authorizations
bearerrestricted-access-token
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Unique identifier of the policy
Example:
"6650a1b2c3d4e5f6a7b8c9d0"
Was this page helpful?