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. Use C for Limited Liability Companies (ΗΕ), P for Partnerships (Σ), O for Overseas (ΑΕ), and B for Business Names (ΕΕ). Infocredit Group's ΗΕ4404 is searched as C4404.

By name

GET https://sandbox-v3.api4all.io/a4a/3.0/api/search/cy/name/INFOCREDIT%20GROUP%20LIMITED
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"
    }
  ]
}

This company_code (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-07-16 14:05:51.640",
   "searchtype": "code",
   "searchterm": "CY00001234406861",
   "records": 3,
   "reports": [
	{
           "country": "CY",
           "date": "2026-07-03 12:34:48",
           "code": "2100",
           "name": "API4ALL - KYB Report"
       },
       {
           "country": "CY",
           "date": "2026-07-03 12:34:48",
           "code": "2200",
           "name": "API4ALL - Structure Report"
       },
       {
           "country": "CY",
           "date": "2026-07-03 12:34:48",
           "code": "2300",
           "name": "API4ALL - Credit Report"
       }
   ]
}
 

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, 2200 for Structure, 2300 for Credit, 2700 Enhanced Structure, 2800 Comprehensive. 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

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

StepCallYou get
1GET /a4a/3.0/api/token/{project_code}access_token
2GET /a4a/3.0/api/search/cy/reg_no/{reg_no}company_code
3GET /a4a/3.0/api/reports/dates/{code}Availability
4POST /a4a/3.0/api/orders/create/Order id + code
5GET /a4a/3.0/api/orders/id/{id}Order status
6GET /a4a/3.0/api/report/{type}/code/{code}The report

Did this page help you?