Skip to content

i2 group API (2.0.0)

Summary

API for searching companies and people, retrieving full details, and exploring their network connections.

Quota

Each API key is limited based on credits. If you run out of credits, you will receive a 429 Too Many Requests response.

Authentication

You must provide an API key in the i2-api-key header to access the API. If you do not provide a valid API key, you will receive a 401 Unauthorized response.

Download OpenAPI description
Overview
License
Languages
Servers
Mock server
https://i2-group-docs.mnai.tech/_mock/openapi/
https://dev-api-gateway.mnai.tech/i2-group/
https://prod-api-gateway.mnai.tech/i2-group/

Search companies

Request

The ability to search for a company by company name or company number.

Results can be filtered by status (Active, In distress, Closed).

Results are ordered by matching relevance.

Security
ApiKeyAuth
Query
searchTextstring

Company name or number. Not case-sensitive. You can provide either a company name or a company number here.

Default "mnai"
statusstring

company status one of Active, In distress, Closed.

Default "Active"
Enum"Active""In distress""Closed"
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/search?searchText=mnai&status=Active' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idCompanyintegerrequired
profileLinkstringrequired
namestringrequired
numberstringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
companyStatusstringrequired
registerStatusstringrequired
registeredAddressobject
historicalNamesArray of objects
scorenumber(float)required
]
Response
application/json
[ { "idCompany": 123, "profileLink": "https://platform.mnai.tech/company/123/summary", "name": "ABC Holdings Ltd", "number": "12345678", "incorporatedDate": "2010-05-20", "companyStatus": "Active", "registerStatus": "Active", "registeredAddress": { … }, "historicalNames": [ … ], "score": 99.1 } ]

Search people

Request

The ability to search for a person by name, company name or company number.

Results can be filtered by birthDate (format must be YYYY-MM).

Results are ordered by matching relevance.

Security
ApiKeyAuth
Query
searchTextstringrequired

Not case-sensitive.

birthDatestring

format must be YYYY-MM

curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/search?searchText=string&birthDate=string' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idPersonintegerrequired
profileLinkstringrequired
namestringrequired
birthDatestring or null^\d{4}-\d{2}$
activeRolesArray of objects
addressesArray of objects
scorenumber(float)
]
Response
application/json
[ { "idPerson": 987, "profileLink": "https://platform.mnai.tech/person/987/summary", "name": "John Doe", "birthDate": "1980-06", "addresses": [ … ], "score": 99.1 } ]

Company details

Request

Retrieve full details of a company by idCompany.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idCompanyintegerrequired
profileLinkstringrequired
namestringrequired
numberstringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$required
companyStatusstringrequired
registerStatusstringrequired
descriptionstringrequired
registeredAddressobject
vatNumbersArray of strings
websitesArray of strings
socialsArray of objects
historicalNamesArray of objects
historicalAddressesArray of objects
accountsobject
sicCodesArray of strings
keywordsArray of strings
tagsArray of strings
impactobject
Response
application/json
{ "idCompany": 123, "profileLink": "https://platform.mnai.tech/company/123/summary", "name": "ABC Holdings Ltd", "number": "12345678", "incorporatedDate": "2010-05-20", "companyStatus": "Active", "registerStatus": "Active", "description": "Holding company for ABC Group.", "registeredAddress": { "line1": "Flat 4", "line2": "123 Main St", "line3": null, "line4": null, "town": "London", "postcode": "W1A 1AA" }, "vatNumbers": [ "GB123456789", "GB987654321" ], "websites": [ "https://www.abcholdings.com", "https://www.abcgroup.com" ], "socials": [ { … }, { … }, { … }, { … }, { … } ], "historicalNames": [ { … } ], "historicalAddresses": [ { … } ], "accounts": { "latestAccountsDate": "2021-12-31", "latestTurnover": 1234567, "latestNetAssets": 987654, "latestEmployees": 100, "estimatedTurnover": "£1m-£2m" }, "sicCodes": [ "12345", "54321" ], "keywords": [ "Holding Company", "Investment" ], "tags": [ "Innovative company", "Has VC investment", "VAT registered" ], "impact": { "overallScore": 600, "governanceScore": 75, "emissionsScore": 100, "diversityScore": 91, "financialRiskScore": 60, "sectorScore": 66 } }

Person details

Request

Retrieve full details of a person by idPerson.

Security
ApiKeyAuth
Path
idPersonintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/{idPerson}' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
idPersonintegerrequired
profileLinkstringrequired
namestringrequired
birthDatestring or null^\d{4}-\d{2}$
nationalitystring or null
linkedinArray of strings or null
impactobject
Response
application/json
{ "idPerson": 789, "profileLink": "https://platform.mnai.tech/person/789/summary", "name": "John Doe", "birthDate": "1980-06", "nationality": "British", "linkedin": [ "https://www.linkedin.com/in/johndoe" ], "impact": { "overallScore": 600, "governanceScore": 75, "emissionsScore": 100, "diversityScore": 91, "financialRiskScore": 60, "sectorScore": 66 } }

Person addresses

Request

Retrieve addresses of a person by idPerson.

Results are ordered by companyStatus.

Security
ApiKeyAuth
Path
idPersonintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/{idPerson}/addresses' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idCompanyintegerrequired
profileLinkstringrequired
companyNamestringrequired
companyNumberstringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
registerStatusstringrequired
companyStatusstringrequired
line1string or null
line2string or null
line3string or null
line4string or null
townstring or null
postcodestring or null
]
Response
application/json
[ { "idCompany": 123, "profileLink": "https://platform.mnai.tech/company/123/summary", "companyName": "ABC Holdings Ltd", "companyNumber": "12345678", "incorporatedDate": "2020-01-01", "registerStatus": "Active", "companyStatus": "Active", "line1": "456 Another Rd", "line2": null, "line3": null, "line4": null, "town": "Manchester", "postcode": "M1 2AB" } ]

Person roles

Request

Retrieve role details of a person by idPerson.

Results are ordered by appointedDate DESC.

Security
ApiKeyAuth
Path
idPersonintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/{idPerson}/roles' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idCompanyintegerrequired
profileLinkstringrequired
numberstringrequired
namestringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
companyStatusstringrequired
registerStatusstringrequired
rolestringrequired
appointedDatestring(date)^\d{4}-\d{2}-\d{2}$required
resignedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
]
Response
application/json
[ { "idCompany": 123, "profileLink": "https://platform.mnai.tech/company/123/summary", "number": "12345678", "name": "ABC Holdings Ltd", "incorporatedDate": "2010-05-20", "companyStatus": "Active", "registerStatus": "Active", "role": "Director", "appointedDate": "2010-05-20", "resignedDate": null } ]

Person shareholdings

Request

Retrieve shareholdings of a person by idPerson.

Results are ordered by sharesSince DESC.

Security
ApiKeyAuth
Path
idPersonintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/{idPerson}/shareholdings' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/jsonArray [
idCompanyintegerrequired
profileLinkstringrequired
numberstringrequired
namestringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
companyStatusstringrequired
registerStatusstringrequired
sharesintegerrequired
sharesSincestring or null(date)^\d{4}-\d{2}-\d{2}$
sharesUntilstring or null(date)^\d{4}-\d{2}-\d{2}$
percentagenumber(float)[ 0 .. 100 ]required
Example: 25.5
]
Response
application/json
[ { "idCompany": 123, "profileLink": "https://platform.mnai.tech/company/123/summary", "number": "12345678", "name": "ABC Holdings Ltd", "incorporatedDate": "2010-05-20", "companyStatus": "Active", "registerStatus": "Active", "sharesSince": "2020-01-01", "sharesUntil": null, "shares": 100, "percentage": 12.34 } ]

Company network

Request

Retrieve any linked connections of a company by idCompany.

This can be used to explore or extend the network of a company.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/network' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
nodesArray of objectsrequired
nodes[].​idNodeintegerrequired
nodes[].​entityTypestringrequired
nodes[].​idPersoninteger or null
nodes[].​idCompanyinteger or null
nodes[].​idOtherEntityinteger or null
nodes[].​profileLinkstring or null
nodes[].​namestringrequired
nodes[].​numberstring or null
relationshipsArray of objectsrequired
relationships[].​sourceNodeintegerrequired
relationships[].​targetNodeintegerrequired
relationships[].​typestringrequired
Response
application/json
{ "nodes": [ { … }, { … }, { … } ], "relationships": [ { … }, { … }, { … } ] }

Person network

Request

Retrieve any linked connections of a person by idPerson.

This can be used to explore or extend the network of a person.

Security
ApiKeyAuth
Path
idPersonintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/person/{idPerson}/network' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

OK

Bodyapplication/json
nodesArray of objectsrequired
nodes[].​idNodeintegerrequired
nodes[].​entityTypestringrequired
nodes[].​idPersoninteger or null
nodes[].​idCompanyinteger or null
nodes[].​idOtherEntityinteger or null
nodes[].​profileLinkstring or null
nodes[].​namestringrequired
nodes[].​numberstring or null
relationshipsArray of objectsrequired
relationships[].​sourceNodeintegerrequired
relationships[].​targetNodeintegerrequired
relationships[].​typestringrequired
Response
application/json
{ "nodes": [ { … }, { … }, { … } ], "relationships": [ { … }, { … }, { … } ] }

Company trading addresses

Request

Retrieve trading addresses of a company by idCompany.

Results are ordered by address line 1.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/trading-addresses' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
line1string or null
line2string or null
line3string or null
line4string or null
townstring or null
postcodestring or null
]
Response
application/json
[ { "line1": "789 Officer St", "line2": null, "line3": null, "line4": null, "town": "London", "postcode": "W1B 2BB" } ]

Company officers

Request

Retrieve officers of a company by idCompany.

Results are ordered by appointedDate DESC.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/officers' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
entityTypestringrequired
profileLinkstring or null
idLinkedUkCompanyinteger or null
idPersoninteger or null
idOtherEntityinteger or null
namestringrequired
birthDatestring or null^\d{4}-\d{2}$
rolestring
appointedDatestring(date)^\d{4}-\d{2}-\d{2}$
resignedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
addressobject
]
Response
application/json
[ { "entityType": "Person", "idPerson": 456, "profileLink": "https://platform.mnai.tech/person/456/summary", "name": "Jane Smith", "birthDate": "1970-01", "role": "Director", "appointedDate": "2010-05-20", "resignedDate": null, "address": { … } } ]

Company shareholders

Request

Retrieve shareholders of a company by idCompany.

Results are ordered by sharesSince DESC.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/shareholders' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
entityTypestringrequired
profileLinkstring or null
idLinkedUkCompanyinteger or null
idPersoninteger or null
idOtherEntityinteger or null
namestringrequired
sharesintegerrequired
sharesSincestring or null(date)^\d{4}-\d{2}-\d{2}$required
sharesUntilstring or null(date)^\d{4}-\d{2}-\d{2}$required
percentagenumber(float)[ 0 .. 100 ]required
Example: 25.5
]
Response
application/json
[ { "entityType": "UK Company", "profileLink": "https://platform.mnai.tech/company/456/summary", "idPerson": null, "idLinkedUkCompany": 456, "idOtherEntity": null, "name": "XYZ Holdings Ltd", "shares": 100, "sharesSince": "2015-06-30", "sharesUntil": null, "percentage": 12.34 } ]

Company shareholdings

Request

Retrieve shareholdings of a company by idCompany.

Results are ordered by incorporatedDate DESC.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/shareholdings' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
idLinkedUkCompanyintegerrequired
profileLinkstringrequired
companyNamestringrequired
companyNumberstringrequired
incorporatedDatestring or null(date)^\d{4}-\d{2}-\d{2}$required
companyStatusstringrequired
registerStatusstringrequired
sharesintegerrequired
sharesSincestring or null(date)^\d{4}-\d{2}-\d{2}$
sharesUntilstring or null(date)^\d{4}-\d{2}-\d{2}$
percentagenumber(float)decimal places <= 2[ 0 .. 100 ]required
Example: 25.5
]
Response
application/json
[ { "idLinkedUkCompany": 456, "profileLink": "https://platform.mnai.tech/company/456/summary", "companyName": "XYZ Holdings Ltd", "companyNumber": "12345678", "incorporatedDate": "2015-06-30", "companyStatus": "Active", "registerStatus": "Registered", "shares": 100, "sharesSince": "2015-06-30", "sharesUntil": null, "percentage": 12.34 } ]

Company charges

Request

Retrieve charges of a company by idCompany.

Results are ordered by createdDate DESC.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/charges' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
idChargeintegerrequired
chargeCodestring or nullrequired
descriptionstring or nullrequired
chargeStatusstringrequired
createdDatestring or null(date)^\d{4}-\d{2}-\d{2}$required
satisfiedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
chargeHolderArray of strings
]
Response
application/json
[ { "idCharge": 987, "chargeCode": "ABC123", "description": "Charge on property", "chargeStatus": "Satisfied", "createdDate": "2010-05-20", "satisfiedDate": null, "chargeHolder": [ … ] } ]

Company judgments

Request

Retrieve judgments of a company by idCompany.

Results are ordered by judgmentDate DESC.

Security
ApiKeyAuth
Path
idCompanyintegerrequired
curl -i -X GET \
  'https://i2-group-docs.mnai.tech/_mock/openapi/company/{idCompany}/judgments' \
  -H 'i2-api-key: YOUR_API_KEY_HERE'

Responses

ok

Bodyapplication/jsonArray [
idJudgmentstringrequired
caseNumberstringrequired
categoryCodestringrequired
categoryNamestringrequired
judgmentDatestring(date)^\d{4}-\d{2}-\d{2}$required
amountnumber(float)required
courtNamestringrequired
judgmentStatusstringrequired
satisfiedDatestring or null(date)^\d{4}-\d{2}-\d{2}$
]
Response
application/json
[ { "idJudgment": "3cc1cb31-fcac-4a67-998b-ec675084994e", "caseNumber": "G25YX983", "categoryCode": "CCJ", "categoryName": "County Court Judgements", "judgmentDate": "2010-05-20", "amount": 1234.99, "courtName": "London County Court", "judgmentStatus": "Satisfied", "satisfiedDate": "2015-06-30" } ]