Making Your First Request
This walkthrough takes you from credentials to a finished report. It uses the sandbox host and Infocredit Group's own company record as the example throughout.
What you'll need before you start: your project code, username, and password. See Authentication if you don't have a token yet.
Step 1: Get an access token
GET https://sandbox-v3.api4all.io/a4a/3.0/api/token/YOUR_PROJECT_CODE
Authorization: Basic {Base64(username:password)}
Keep the access_token from the response. Every call below uses it as a Bearer token:
Authorization: Bearer {access_token}
Step 2: Find the company
Search by registration number if you have it, or by name if you don't.
By registration number
GET https://sandbox-v3.api4all.io/a4a/3.0/api/search/cy/reg_no/C4404
Authorization: Bearer {access_token}
Cyprus registration numbers take a prefix. UseCfor Limited Liability Companies (ΗΕ),Pfor Partnerships (Σ),Ofor Overseas (ΑΕ), andBfor Business Names (ΕΕ). Infocredit Group's ΗΕ4404 is searched asC4404.
By name
GET https://sandbox-v3.api4all.io/a4a/3.0/api/search/cy/name/INFOCREDIT
Authorization: Bearer {access_token}
Either way, the response returns matching companies. The field you need is the company's unique code:
{
"messages": [],
"searchdate": "2025-12-01 16:05:11.837",
"searchtype": "reg_no",
"searchterm": "C4404",
"countrycode": "CY",
"records": 1,
"results": [
{
"id": "3458188",
"code": "CY00001234406861",
"country": "cy",
"name": "INFOCREDIT GROUP LIMITED",
"reg_no": "C4404",
"vat_no": "CY 10004404T",
"status": "Active"
}
]
}Thiscode (Infocredit's internal ICG ID) is what identifies the company in every later call. Hold onto it.
Step 3: Check what's available (optional)
Before ordering, you can see which reports exist for the company and when each was last updated:
GET https://sandbox-v3.api4all.io/a4a/3.0/api/reports/dates/CY00001234406861
Authorization: Bearer {access_token}
{
"messages": [],
"searchdate": "2026-11-02 12:54:37.523",
"searchtype": "code",
"searchterm": "CY00001234406861",
"records": 5,
"reports": [
{
"country": "CY",
"date": "2026-10-13 09:59:02",
"code": "2100",
"name": "API4ALL - KYB Report"
},
{
"country": "CY",
"date": "2026-10-13 09:59:02",
"code": "2200",
"name": "API4ALL - Structure Report"
},
{
"country": "CY",
"date": "2026-10-13 09:59:02",
"code": "2300",
"name": "API4ALL - Credit Report",
"LastFinancialYearAvailable": "2023"
},
{
"country": "CY",
"date": "",
"code": "2700",
"name": "API4ALL - Structure Report Enhanced"
},
{
"country": "CY",
"date": "2026-10-13 09:59:02",
"code": "2800",
"name": "API4ALL - Corporate Insight Report",
"LastFinancialYearAvailable": "2023"
}
]
}Use this to decide whether the data on file is recent enough, or whether you want to request a fresh investigation when you order.
Step 4: Create the order
POST https://sandbox-v3.api4all.io/a4a/3.0/api/orders/create/
Authorization: Bearer {access_token}
Content-Type: application/json
{
"reference": "123456",
"items": [
{
"code": "CY00001234406861",
"reference": "123456",
"language": "EN",
"product": "2200",
"format": "JSON",
"speed": "Normal",
"freshinvestigation": 0,
"comments": ""
}
]
}product is 2100 for KYB Report, 2200 for Structure Report, 2300 for Credit Report, 2700 for Structure Report Enhanced, and 2800 for Corporate Insight Report. See Product Codes for the full option set.
Response
{
"messages": [],
"searchdate": "2025-12-01 17:36:57.057",
"searchtype": "id",
"searchterm": "299",
"records": 1,
"orders": [
{
"id": "299",
"code": "HFUEBSFQJGSRELUH",
"reference": "123456",
"dateplaced": "2025-12-01 17:36:46",
"items": "1",
"status": "Received",
"details": [
{
"id": "1327",
"code": "HOXYBHRLCUWXYGYY",
"reference": "123456",
"icgid": "CY00001234406861",
"name": "INFOCREDIT GROUP LIMITED",
"reg_no": "C4404",
"country": "CY",
"product": "API4ALL - Structure Report",
"format": "JSON",
"speed": "Normal",
"investigation": "0",
"report": null,
"dateplaced": "2025-12-01 17:36:56",
"status": "Received"
}
]
}
]
}Note the three identifiers in play here: Order id (299), order code (HFUEBSFQJGSRELUH), and the company icgid (CY00001234406861). They are not interchangeable. Orders Workflow explains which goes where.
Step 5: Check the order
Poll the order using either the order ID or the order code:
GET https://sandbox-v3.api4all.io/a4a/3.0/api/orders/id/299
GET https://sandbox-v3.api4all.io/a4a/3.0/api/orders/code/HFUEBSFQJGSRELUH
While the report is still being produced, report is null. Once the order completes, the report is delivered in the report field of the order detail.
Step 6: Retrieve the report
You can also fetch the report directly by company code, using the endpoint that matches the product you ordered:
GET https://sandbox-v3.api4all.io/a4a/3.0/api/report/kyb/code/CY00001234406861
GET https://sandbox-v3.api4all.io/a4a/3.0/api/report/structure/code/CY00001234406861
GET https://sandbox-v3.api4all.io/a4a/3.0/api/report/credit/code/CY00001234406861
GET https://sandbox-v3.api4all.io/a4a/3.0/api/report/cmp/code/CY00001234406861
Response (KYB)
{
"GeneratedAt": "2026-07-16T09:08:03.113",
"ICGId": "CY00001234406861",
"Company": [
{
"GeneralInfo": [
{
"RegistrationNumber": "C4404",
"Name": "INFOCREDIT GROUP LIMITED",
"NameInLatinCharacters": "INFOCREDIT GROUP LIMITED",
"VATNumber": "10004404T",
"Status": "Active",
"DateStart": "1972-05-26",
"LegalType": "Limited Company",
"DateRegistered": "1972-05-26",
"Address": "Hadjigeorgiou Filippou, 5A",
"City": "Akropoli",
"PostalCode": "2006",
"Country": "Cyprus",
"CountryCode": "CY",
"DateUpdated": "2026-07-03 12:34:48"
}
]
}
]
}That's the full loop. See Report Types for what each report contains, and Data Definition for field-level meanings.
Recap
| Step | Call | You get |
|---|---|---|
| 1 | GET /a4a/3.0/api/token/{project_code} | access_token |
| 2 | GET /a4a/3.0/api/search/cy/reg_no/{reg_no} | code |
| 3 | GET /a4a/3.0/api/reports/dates/{code} | Availability |
| 4 | POST /a4a/3.0/api/orders/create/ | Order id + code |
| 5 | GET /a4a/3.0/api/orders/id/{id} | Order status |
| 6 | GET /a4a/3.0/api/report/{type}/code/{code} | The report |
Structure Report Enhanced uses GET /a4a/3.0/api/report/enhanced/code/{code}; inspect its supplied response sample in the API Reference. It is not functional in Sandbox. |
Updated 4 days ago
