Pre-Approval Score
Run PGI's credit scoring engine against a borrower's financial data. Returns a numeric score and a decision in under 3 seconds.
POST
/api/v2/score/
This is a score-only endpoint. It does not create an application or generate a premium quote. Use it to pre-qualify borrowers before collecting a full application.
Request body
All 11 fields are required.
| Field | Type | Description |
|---|---|---|
| countryrequired | string | ISO 3166-1 alpha-2 country code. Supported: CA, US. |
| naics_coderequired | string | 6-digit NAICS industry code for the borrower's business. |
| formation_daterequired | string | Business formation date in YYYY-MM-DD format. |
| loan_amountrequired | number | Total loan amount in local currency (CAD or USD). Must be positive. |
| pgi_limitrequired | number | Requested PGI coverage limit. Must be <= loan_amount. |
| annual_revenuerequired | number | Most recent 12-month revenue. Must be positive. |
| ebitdarequired | number | Most recent 12-month EBITDA. Can be negative. |
| total_debtrequired | number | Total outstanding debt including the new loan. |
| monthly_debt_servicerequired | number | Total monthly debt payments (principal + interest). |
| collateral_valuerequired | number | Appraised value of collateral securing the loan. |
| enterprise_valuerequired | number | Estimated enterprise value of the business. |
| q_business_provinceoptional | string | Canadian province or territory code (e.g. "ON", "BC"). Only relevant for Canadian deals. When provided, triggers a hard block if the province is Quebec (QC). |
Response shapes
Approve
Score meets the threshold for automatic approval. You'll get a numeric score and can proceed to submit a full application.
200 Approve
{
"score_id": "A1B2C3D4E5F6789012345678AB",
"score": 83,
"decision": "approve",
"country": "CA",
"naics_code": "541511",
"created_at": "2026-04-03T14:22:31Z"
}
Decline
The borrower does not meet eligibility requirements. The numeric score is omitted and a reason string is returned instead.
200 Decline
{
"score_id": "C3D4E5F6A1B2789012345678CD",
"decision": "decline",
"reason": "NAICS code not approved for coverage.",
"country": "CA",
"naics_code": "721110",
"created_at": "2026-04-03T14:24:02Z"
}
Important
Decline responses do not include a
score field. Always check the decision field before reading the score.
Quebec applications blocked
PGI does not currently write business in Quebec. If you submit a Canadian deal with q_business_province="QC" or a Quebec address, the score endpoint will decline with reason "PGI does not currently write business in Quebec."
Code examples
curl -X POST https://api.pgicover.com/api/v2/score/ \
-H "Authorization: Bearer pk_test_abc123def456ghi789jkl012mno345" \
-H "Content-Type: application/json" \
-d '{
"country": "CA",
"naics_code": "541511",
"formation_date": "2019-03-15",
"loan_amount": 500000,
"pgi_limit": 250000,
"annual_revenue": 2000000,
"ebitda": 400000,
"total_debt": 300000,
"monthly_debt_service": 8000,
"collateral_value": 600000,
"enterprise_value": 3000000
}'
import requests
API_KEY = "pk_test_abc123def456ghi789jkl012mno345"
resp = requests.post(
"https://api.pgicover.com/api/v2/score/",
headers={"Authorization": f"Bearer {API_KEY}"},
json={
"country": "CA",
"naics_code": "541511",
"formation_date": "2019-03-15",
"loan_amount": 500000,
"pgi_limit": 250000,
"annual_revenue": 2000000,
"ebitda": 400000,
"total_debt": 300000,
"monthly_debt_service": 8000,
"collateral_value": 600000,
"enterprise_value": 3000000,
},
)
data = resp.json()
if data["decision"] == "approve":
print(f"Approved with score {data['score']}")
else:
print(f"Declined: {data['reason']}")
const API_KEY = "pk_test_abc123def456ghi789jkl012mno345";
const resp = await fetch("https://api.pgicover.com/api/v2/score/", {
method: "POST",
headers: {
"Authorization": `Bearer ${API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
country: "CA",
naics_code: "541511",
formation_date: "2019-03-15",
loan_amount: 500000,
pgi_limit: 250000,
annual_revenue: 2000000,
ebitda: 400000,
total_debt: 300000,
monthly_debt_service: 8000,
collateral_value: 600000,
enterprise_value: 3000000,
}),
});
const data = await resp.json();
if (data.decision === "approve") {
console.log(`Approved with score ${data.score}`);
} else {
console.log(`Declined: ${data.reason}`);
}
Error responses
400 Validation Error
{
"error": {
"code": "invalid_request",
"message": "Validation failed.",
"details": {
"pgi_limit": ["PGI limit cannot exceed loan amount."],
"formation_date": ["Date must be in YYYY-MM-DD format."]
}
}
}
Sandbox test fixtures
Use these combinations in sandbox mode to test each outcome:
| Expected Outcome | NAICS Code | Key Values |
|---|---|---|
| approve | 541511 | Strong financials, no adverse history. Use the example payload above. |
| approve | 236220 | Set ebitda to 80000 and total_debt to 450000. Near-threshold approval. |
| decline | 721110 | Use NAICS code 721110 (accommodation). Eligibility gate rejects based on industry. |