curl --request POST \
--url https://api.kyckr.com/v2/companies/{kyckrId}/enhanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerReference": "<string>",
"contactEmail": "jsmith@example.com"
}
'import requests
url = "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced"
payload = {
"customerReference": "<string>",
"contactEmail": "jsmith@example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customerReference: '<string>', contactEmail: 'jsmith@example.com'})
};
fetch('https://api.kyckr.com/v2/companies/{kyckrId}/enhanced', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerReference' => '<string>',
'contactEmail' => 'jsmith@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced"
payload := strings.NewReader("{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kyckr.com/v2/companies/{kyckrId}/enhanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kyckr.com/v2/companies/{kyckrId}/enhanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"correlationId": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"data": {
"status": "Pending",
"orderId": 12345,
"cost": {
"type": "credit",
"value": 1
}
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/400",
"title": "Missing Parameter",
"detail": "The `isoCode` parameter is required",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/401",
"title": "Unauthorized",
"detail": "Please authorize before making requests",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/403",
"title": "Forbidden",
"detail": "This feature is not available on this account",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/404",
"title": "Not Found",
"detail": "This resource could not be found",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/429",
"title": "Too Many Requests",
"detail": "This service only allows 50 requests within a 10 minute period",
"errors": []
}
}Request Enhanced Profile
Recommended pattern for production integrations. Creates a request for an enhanced company profile and returns an orderId immediately, with no server-side connection hold. Use GET /orders/ to retrieve the profile when ready. The resulting profile data is identical to that returned by a successful GET 200 on this resource.
Holding connections server-side costs infrastructure capacity at scale. POST + poll avoids that cost: the server acknowledges immediately, and the client polls at its own cadence. This is the preferred pattern for high-volume pipelines and resource-conscious integrations.
GET is also available for ad-hoc or low-volume use (one-off scripts, manual exploration): it returns data directly when available in time and automatically falls back to 202 with an orderId otherwise.
Profile content (where filed in structured form at the registry):
- Registration Information (Lite Profile + expanded details where available)
- Share capital structure
- Company Officials (incl. Directors) – including function, date of birth and address.
- Shareholders (Beneficial owners) – including share count, share percentage and ID information.
- Ultimate Beneficial Owners – where filed in structured form.
curl --request POST \
--url https://api.kyckr.com/v2/companies/{kyckrId}/enhanced \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerReference": "<string>",
"contactEmail": "jsmith@example.com"
}
'import requests
url = "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced"
payload = {
"customerReference": "<string>",
"contactEmail": "jsmith@example.com"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({customerReference: '<string>', contactEmail: 'jsmith@example.com'})
};
fetch('https://api.kyckr.com/v2/companies/{kyckrId}/enhanced', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerReference' => '<string>',
'contactEmail' => 'jsmith@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.kyckr.com/v2/companies/{kyckrId}/enhanced"
payload := strings.NewReader("{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.kyckr.com/v2/companies/{kyckrId}/enhanced")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.kyckr.com/v2/companies/{kyckrId}/enhanced")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerReference\": \"<string>\",\n \"contactEmail\": \"jsmith@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"correlationId": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"data": {
"status": "Pending",
"orderId": 12345,
"cost": {
"type": "credit",
"value": 1
}
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/400",
"title": "Missing Parameter",
"detail": "The `isoCode` parameter is required",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/401",
"title": "Unauthorized",
"detail": "Please authorize before making requests",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/403",
"title": "Forbidden",
"detail": "This feature is not available on this account",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/404",
"title": "Not Found",
"detail": "This resource could not be found",
"errors": []
}
}{
"orderId": 12345,
"correlationId": "string",
"customerReference": "string",
"timeStamp": "2019-08-24T14:15:22Z",
"details": "string",
"cost": {
"type": "credit",
"value": 0
},
"links": {
"self": "../dictionary"
},
"data": {
"type": "https://httpstatuses.com/429",
"title": "Too Many Requests",
"detail": "This service only allows 50 requests within a 10 minute period",
"errors": []
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Kyckr company reference, a shared format, usable across our V2 APIs
Body
Response
Accepted: enhanced profile order created, profile not yet ready
The related orderId.
"12345"
The related correlationId to this request, for support purposes.
A customer provided reference, which appears in the order list.
The UTC time at which the request occurred.
The response status details for the current request.
Cost of an item
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes