Integration Reference • June 2026
Base URL: https://api.willistudio.io
YOUR_API_KEY_HERE⚠️ All requests must include a Bearer Token in the Authorization header. For enhanced security, you can request IP whitelisting for all API actions — contact support to configure this.
All API requests require a Bearer token in the Authorization header:
Authorization: Bearer YOUR_API_KEY
Missing Token
{"success": false, "message": "API key gerekli"}Invalid Token
{"success": false, "message": "Geçersiz API key"}Get a paginated, filterable list of clients associated with your affiliate account.
https://api.willistudio.io/api/v1/affiliates/clients| Parameter | Type | Default | Description |
|---|---|---|---|
page | integer | 0 | Records to skip (pagination offset) |
limit | integer | 100 | Max records returned (max 500) |
search | string | — | Search by ID, name, email, phone, or status |
created_at_start | date | — | Registered on or after this date (YYYY-MM-DD) |
created_at_end | date | — | Registered on or before this date (YYYY-MM-DD) |
ftd_date_start | date | — | First deposit on or after (YYYY-MM-DD) |
ftd_date_end | date | — | First deposit on or before (YYYY-MM-DD) |
country_ids | UUID | — | Filter by country UUID |
customer_status_ids | UUID | — | Filter by customer status UUID |
brand_ids | UUID | — | Filter by brand UUID |
sort_by | string | created_at | Sort field: created_at, first_name, last_name, email |
sort_order | string | desc | Sort direction: asc or desc |
curl -X GET "https://api.willistudio.io/api/v1/affiliates/clients?page=0&limit=100" \ -H "Authorization: Bearer YOUR_API_KEY"
{
"total": 100,
"page": 0,
"limit": 100,
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+905551234567",
"country_name": "Turkey",
"country_code": "TR",
"registration_ip": "192.168.1.1",
"status": "New",
"brand_name": "Default Brand",
"created_at": "2026-06-15T10:30:00.000Z",
"ftd_date": null,
"balance_currency": "USD",
"balance_currency_value": "0"
}
]
}Register a new client lead. Provide a valid brand_id and country_id.
https://api.willistudio.io/api/v1/affiliates/leads| Field | Type | Description |
|---|---|---|
brand_id | UUID | Brand to assign the lead (use /by-brands to list) |
first_name | string | Client first name |
last_name | string | Client last name |
email | string | Client email address (must be unique) |
phone | string | Client phone number |
country_id | UUID | Country UUID (use /countries to list) |
| Field | Type | Description |
|---|---|---|
password | string | Optional. Omit or leave empty to auto-generate |
country_code | string | ISO country code (alternative to country_id) |
source_id | integer | Business source ID |
marketing_metadata | string | Additional marketing metadata |
registration_ip | string | Client IP at point of registration |
balance_currency | string | Base currency (e.g. USD, EUR) |
curl -X POST "https://api.willistudio.io/api/v1/affiliates/leads" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"brand_id": "BRAND_UUID",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+905551234567",
"country_id": "COUNTRY_UUID",
"registration_ip": "192.168.1.1",
"marketing_metadata": "Campaign-Front-1"
}'{
"success": true,
"data": {
"id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"affiliate_id": "YOUR_AFFILIATE_UUID",
"brand_id": "BRAND_UUID",
"first_name": "John",
"last_name": "Doe",
"email": "john.doe@example.com",
"phone": "+905551234567",
"country_id": "COUNTRY_UUID",
"created_at": "2026-06-24T14:30:00.000Z"
}
}Missing Required Fields
{"success": false, "message": "Zorunlu alanlar: brand_id, first_name, last_name, email, phone, country_id"}Duplicate Email
{"success": false, "message": "Bu email adresi zaten kayıtlı"}Reference endpoints for populating integration parameters.
https://api.willistudio.io/api/v1/affiliates/by-brandscurl -X GET "https://api.willistudio.io/api/v1/affiliates/by-brands" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "data": [{ "id": "uuid-...", "name": "Default Brand" }] }https://api.willistudio.io/api/v1/affiliates/countriescurl -X GET "https://api.willistudio.io/api/v1/affiliates/countries" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "data": [{ "id": "uuid-...", "name": "Turkey", "code": "TR" }] }https://api.willistudio.io/api/v1/affiliates/customer-statusescurl -X GET "https://api.willistudio.io/api/v1/affiliates/customer-statuses" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "data": [{ "id": "uuid-...", "name": "New" }, { "id": "uuid-...", "name": "Converted" }] }https://api.willistudio.io/api/v1/affiliates/available-currenciescurl -X GET "https://api.willistudio.io/api/v1/affiliates/available-currencies" \ -H "Authorization: Bearer YOUR_API_KEY"
{ "data": [{ "id": "uuid-...", "code": "USD", "name": "US Dollar" }] }| Code | Meaning |
|---|---|
200 | Success |
201 | Lead created successfully |
400 | Bad request (missing/invalid fields) |
401 | Unauthorized (invalid or missing API key) |
403 | Forbidden (IP not whitelisted) |
409 | Conflict (duplicate email) |
500 | Internal server error |
For integration support, IP whitelisting requests, or API key issues, please contact your account manager.
© 2026 WilliStudio • Affiliate API Documentation • Confidential