curl --request GET \
--url 'https://api.starkfi.io/kyc/status?email=user@example.com' \
--header 'x-api-key: <api_key>'
const params = new URLSearchParams({ email: "user@example.com" });
const response = await fetch(
`https://api.starkfi.io/kyc/status?${params}`,
{ headers: { "x-api-key": "<api_key>" } }
);
const data = await response.json();
import requests
response = requests.get(
"https://api.starkfi.io/kyc/status",
params={"email": "user@example.com"},
headers={"x-api-key": "<api_key>"},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "kyc_status_retrieved",
"message": "KYC status retrieved",
"data": {
"status": "pending",
"approved": false,
"session_id": "string",
"session_status": "string",
"session_url": "https://...",
"ip_info": [],
"is_blocklisted": false
}
}
{
"statusCode": 400,
"success": false,
"status": "missing_params",
"message": "email or wallet is required"
}
{
"statusCode": 404,
"success": false,
"status": "kyc_not_found",
"message": "User KYC not found"
}
{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC status"
}
KYC
Get KYC status
Return verification status, session metadata, IP summaries, and blocklist signal for an email.
GET
/
kyc
/
status
curl --request GET \
--url 'https://api.starkfi.io/kyc/status?email=user@example.com' \
--header 'x-api-key: <api_key>'
const params = new URLSearchParams({ email: "user@example.com" });
const response = await fetch(
`https://api.starkfi.io/kyc/status?${params}`,
{ headers: { "x-api-key": "<api_key>" } }
);
const data = await response.json();
import requests
response = requests.get(
"https://api.starkfi.io/kyc/status",
params={"email": "user@example.com"},
headers={"x-api-key": "<api_key>"},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "kyc_status_retrieved",
"message": "KYC status retrieved",
"data": {
"status": "pending",
"approved": false,
"session_id": "string",
"session_status": "string",
"session_url": "https://...",
"ip_info": [],
"is_blocklisted": false
}
}
{
"statusCode": 400,
"success": false,
"status": "missing_params",
"message": "email or wallet is required"
}
{
"statusCode": 404,
"success": false,
"status": "kyc_not_found",
"message": "User KYC not found"
}
{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC status"
}
string
required
Your StarkFi API key when required by your environment.
string
Email associated with the KYC session. Provide email or wallet.
string
Wallet associated with the KYC session. Provide wallet or email.
curl --request GET \
--url 'https://api.starkfi.io/kyc/status?email=user@example.com' \
--header 'x-api-key: <api_key>'
const params = new URLSearchParams({ email: "user@example.com" });
const response = await fetch(
`https://api.starkfi.io/kyc/status?${params}`,
{ headers: { "x-api-key": "<api_key>" } }
);
const data = await response.json();
import requests
response = requests.get(
"https://api.starkfi.io/kyc/status",
params={"email": "user@example.com"},
headers={"x-api-key": "<api_key>"},
)
data = response.json()
{
"statusCode": 200,
"success": true,
"status": "kyc_status_retrieved",
"message": "KYC status retrieved",
"data": {
"status": "pending",
"approved": false,
"session_id": "string",
"session_status": "string",
"session_url": "https://...",
"ip_info": [],
"is_blocklisted": false
}
}
{
"statusCode": 400,
"success": false,
"status": "missing_params",
"message": "email or wallet is required"
}
{
"statusCode": 404,
"success": false,
"status": "kyc_not_found",
"message": "User KYC not found"
}
The
status value matches the failure reason returned by the server (for example kyc_not_found when no session exists for that email).{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC status"
}
Response
string
required
Stored KYC status for the user.
boolean
required
Whether the user is approved.
string
Current Didit session id when available.
string
Session status from the provider.
string
Hosted verification URL when available.
array
Deduplicated IP / device summaries (country, VPN/Tor, data center flags, etc.).
boolean
true when document or liveness checks include a blocklisted match..png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)