curl --request POST \
--url https://api.starkfi.io/kyc/create/verify_public_kyc \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{"email":"user@example.com"}'
const response = await fetch(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({ email: "user@example.com" }),
}
);
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={"email": "user@example.com"},
)
data = response.json()
{
"statusCode": 201,
"success": true,
"status": "kyc_session_created",
"message": "KYC session created",
"data": {
"success": true,
"message": "didit_create_kyc_session",
"session": {
"session_id": "string",
"session_url": "https://..."
}
}
}
{
"statusCode": 403,
"success": false,
"status": "identity_not_verified",
"message": "You must verify your email or wallet before starting KYC"
}
{
"statusCode": 403,
"success": false,
"status": "user_not_prepared",
"message": "Complete KYC prepare and verify your email or wallet before starting a session"
}
{
"statusCode": 429,
"success": false,
"status": "verify_quota_exceeded",
"message": "Monthly verify quota exceeded"
}
{
"statusCode": 404,
"success": false,
"status": "method_not_found",
"message": "Method provided not found"
}
{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC"
}
KYC
Create KYC session
Create or resume a Didit verification session after the user email is verified.
POST
/
kyc
/
create
/
{kyc_type}
curl --request POST \
--url https://api.starkfi.io/kyc/create/verify_public_kyc \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{"email":"user@example.com"}'
const response = await fetch(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({ email: "user@example.com" }),
}
);
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={"email": "user@example.com"},
)
data = response.json()
{
"statusCode": 201,
"success": true,
"status": "kyc_session_created",
"message": "KYC session created",
"data": {
"success": true,
"message": "didit_create_kyc_session",
"session": {
"session_id": "string",
"session_url": "https://..."
}
}
}
{
"statusCode": 403,
"success": false,
"status": "identity_not_verified",
"message": "You must verify your email or wallet before starting KYC"
}
{
"statusCode": 403,
"success": false,
"status": "user_not_prepared",
"message": "Complete KYC prepare and verify your email or wallet before starting a session"
}
{
"statusCode": 429,
"success": false,
"status": "verify_quota_exceeded",
"message": "Monthly verify quota exceeded"
}
{
"statusCode": 404,
"success": false,
"status": "method_not_found",
"message": "Method provided not found"
}
{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC"
}
string
required
Your StarkFi API key when required by your environment.
string
required
Verification flow. Use
verify_public_kyc for the public Didit integration.string
Same email used in prepare and OTP. Provide email or wallet (not both required, but at least one).
string
Same wallet used in prepare-wallet. Provide wallet or email.
curl --request POST \
--url https://api.starkfi.io/kyc/create/verify_public_kyc \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api_key>' \
--data '{"email":"user@example.com"}'
const response = await fetch(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"x-api-key": "<api_key>",
},
body: JSON.stringify({ email: "user@example.com" }),
}
);
const data = await response.json();
import requests
response = requests.post(
"https://api.starkfi.io/kyc/create/verify_public_kyc",
headers={"Content-Type": "application/json", "x-api-key": "<api_key>"},
json={"email": "user@example.com"},
)
data = response.json()
{
"statusCode": 201,
"success": true,
"status": "kyc_session_created",
"message": "KYC session created",
"data": {
"success": true,
"message": "didit_create_kyc_session",
"session": {
"session_id": "string",
"session_url": "https://..."
}
}
}
{
"statusCode": 403,
"success": false,
"status": "identity_not_verified",
"message": "You must verify your email or wallet before starting KYC"
}
{
"statusCode": 403,
"success": false,
"status": "user_not_prepared",
"message": "Complete KYC prepare and verify your email or wallet before starting a session"
}
{
"statusCode": 429,
"success": false,
"status": "verify_quota_exceeded",
"message": "Monthly verify quota exceeded"
}
{
"statusCode": 404,
"success": false,
"status": "method_not_found",
"message": "Method provided not found"
}
{
"statusCode": 500,
"success": false,
"status": "server_failed",
"message": "Server failed on KYC"
}
Response
object
Payload returned by the KYC session builder. Commonly includes
session with identifiers and a hosted session_url when a new flow is issued. Exact fields may vary when a session already exists or the user is already approved.⌘I
.png?fit=max&auto=format&n=I_v6ul4JDafNKFQP&q=85&s=f0ad25536f8a3ca42331fcff88ab2b26)