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
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

StepCallYou get
1GET /a4a/3.0/api/token/{project_code}access_token
2GET /a4a/3.0/api/search/cy/reg_no/{reg_no}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
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.

Did this page help you?