Read API
Base path: /api/v1/credit_applications
List credit applications
GET /api/v1/credit_applications?account_id=acct_1a2b3c4d5e6f&approval_status=approved&decided_since=2026-01-01T00:00:00Z&page=1
Authorization: token <token>
Query parameters:
| Param | Required | Description |
|---|---|---|
account_id |
yes | The account to fetch applications for. |
approval_status |
no | Exact-match filter on decision status, e.g. approved, denied, withdrawn, pending, flagged. |
decided_since |
no | ISO 8601 timestamp. Returns only applications whose decision (approval_decided_at) is on or after this time. Useful for incremental polling/backfill. |
page |
no | Page number (results are paginated, 50 per page). |
Results are ordered by created_at descending.
Example curl:
curl -G "https://credlab.app/api/v1/credit_applications" \
-H "Authorization: token <token>" \
--data-urlencode "account_id=acct_1a2b3c4d5e6f" \
--data-urlencode "approval_status=approved" \
--data-urlencode "decided_since=2026-01-01T00:00:00Z" \
--data-urlencode "page=1"
Example response (200 OK):
{
"data": [
{
"id": "ca_sample000000",
"account": {"id": "acct_sample000000", "name": "Sample Account"},
"status": "completed",
"source": "online_application",
"submitted_by": "Sample Submitter",
"credit_requested": "10000",
"language_submitted_in": "en",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-02T00:00:00Z",
"decision": {
"approval_status": "approved",
"approval_decided_at": "2026-01-02T00:00:00Z",
"approval_amount": "5000",
"credit_to_offer": "5000"
},
"applicant": {
"name": "Sample Business Ltd",
"operating_as": "Sample Business",
"email": "accounts@sample.example",
"phone": "555-555-0100",
"fax": null,
"website": "https://sample.example",
"business_structure": "Corporation",
"line_of_business": "Wholesale",
"years_in_business": "12",
"year_current_owner_took_over": "2015",
"employs": "25",
"annual_sales_volume": "2500000",
"federal_tax_number": null,
"provincial_or_state_tax_number": null,
"business_under_a_different_name": null,
"other_business_name": null,
"locations": [
{"address": "1 Sample St", "unit": null, "city": "Toronto", "province_or_state": "ON", "zip_or_postal": "M1M 1M1", "country": "Canada"}
],
"contacts": [
{"full_name": "Sam Sample", "title": "Controller", "email": "sam@sample.example", "phone": "555-555-0101"}
]
},
"references": [
{
"name": "Supplier Co",
"contact_name": "Bob Buyer",
"person_contacted": null,
"person_contacted_title": null,
"email": "ap@supplier.example",
"phone": "555-555-0102",
"fax": null,
"terms": "Net 30",
"credit_limit": "20000",
"current_owing": "1500",
"highest_credit": "18000",
"account_age": "5 years",
"last_sale": "2025-12-01",
"status": null,
"verified": true,
"comments": null
}
],
"signators": [
{"name": "Sam Sample", "title": "Controller", "email": "sam@sample.example", "address": null, "city": null, "province_or_state": null, "zip_or_postal": null, "is_personal_guarantor": false}
],
"personal_guarantors": [],
"additional_fields": {"mobile_phone": "555-555-0103"}
}
],
"pagination": {"page": 1, "pages": 1, "count": 1}
}
Field notes:
idis the credit application’s prefixed id (ca_...) — use this as your external key.additional_fieldsis an allowlisted subset of account-specific custom fields; only known keys are included, and it may be{}.- Sensitive data (banking details, signature images, attachments, internal analysis fields) is intentionally never included in this payload.
Error responses:
| Status | Cause | Body |
|---|---|---|
401 Unauthorized |
missing/invalid token | empty body |
403 Forbidden |
the account has been deactivated | {"error": "Account is deactivated"} |
422 Unprocessable Content |
missing/invalid account_id |
{"error": "account_id is required and must be an account you belong to"} |
422 Unprocessable Content |
decided_since is not a valid ISO 8601 timestamp |
{"error": "decided_since must be an ISO8601 timestamp"} |
Fetch a single credit application
GET /api/v1/credit_applications/ca_1a2b3c4d5e6f?account_id=acct_1a2b3c4d5e6f
Authorization: token <token>
Example curl:
curl -G "https://credlab.app/api/v1/credit_applications/ca_1a2b3c4d5e6f" \
-H "Authorization: token <token>" \
--data-urlencode "account_id=acct_1a2b3c4d5e6f"
Example response (200 OK) — the same object shape as one entry of data above
(not wrapped in an envelope):
{
"id": "ca_sample000000",
"account": {"id": "acct_sample000000", "name": "Sample Account"},
"status": "completed",
"source": "online_application",
"submitted_by": "Sample Submitter",
"credit_requested": "10000",
"language_submitted_in": "en",
"created_at": "2026-01-01T00:00:00Z",
"updated_at": "2026-01-02T00:00:00Z",
"decision": {
"approval_status": "approved",
"approval_decided_at": "2026-01-02T00:00:00Z",
"approval_amount": "5000",
"credit_to_offer": "5000"
},
"applicant": {
"name": "Sample Business Ltd",
"operating_as": "Sample Business",
"email": "accounts@sample.example",
"phone": "555-555-0100",
"fax": null,
"website": "https://sample.example",
"business_structure": "Corporation",
"line_of_business": "Wholesale",
"years_in_business": "12",
"year_current_owner_took_over": "2015",
"employs": "25",
"annual_sales_volume": "2500000",
"federal_tax_number": null,
"provincial_or_state_tax_number": null,
"business_under_a_different_name": null,
"other_business_name": null,
"locations": [
{"address": "1 Sample St", "unit": null, "city": "Toronto", "province_or_state": "ON", "zip_or_postal": "M1M 1M1", "country": "Canada"}
],
"contacts": [
{"full_name": "Sam Sample", "title": "Controller", "email": "sam@sample.example", "phone": "555-555-0101"}
]
},
"references": [
{
"name": "Supplier Co",
"contact_name": "Bob Buyer",
"person_contacted": null,
"person_contacted_title": null,
"email": "ap@supplier.example",
"phone": "555-555-0102",
"fax": null,
"terms": "Net 30",
"credit_limit": "20000",
"current_owing": "1500",
"highest_credit": "18000",
"account_age": "5 years",
"last_sale": "2025-12-01",
"status": null,
"verified": true,
"comments": null
}
],
"signators": [
{"name": "Sam Sample", "title": "Controller", "email": "sam@sample.example", "address": null, "city": null, "province_or_state": null, "zip_or_postal": null, "is_personal_guarantor": false}
],
"personal_guarantors": [],
"additional_fields": {"mobile_phone": "555-555-0103"}
}
Error responses:
| Status | Cause | Body |
|---|---|---|
401 Unauthorized |
missing/invalid token | empty body |
403 Forbidden |
the account has been deactivated | {"error": "Account is deactivated"} |
422 Unprocessable Content |
missing/invalid account_id |
{"error": "account_id is required and must be an account you belong to"} |
404 Not Found |
no application with that id in the given account (including one that belongs to a different account) | {"error": "Credit application not found"} |