Intro
Voonix API is allows you to do many of the manual task using our URL endpoints instead. You are able to use a few endpoints to create, read, update or delete items.
All API requests must include your API key, which can be created inside your Voonix account. This is done by adding &key to the end the URL endpoints or sending it as a header. The base URL endpoint is your personalised Voonix URL.
See our old API 2.0 here.
Advertisers
Advertisers are your brands within Voonix. With these endpoints you are able to manage your advertisers.
Retrieve advertisers
This endpoint will allow you to retrieve a list of all/some of your advertisers using filters.
Parameters (Filters)
-
id
The unique identifier for the specific advertiser if you wish to only retrieve some or one. For multiple use comma as a separator.
-
name Unique
Retrieve only advertisers with specific name. Use % as wildcard in text
-
affiliate_market
Retrieve only advertisers with the specific affiliate market. E.g. iGaming. Use % as wildcard in text
-
affiliate_system
Retrieve only advertisers with the specific affiliate system. Use % as wildcard in text
-
affiliate_group
Retrieve only advertisers with the specific group. Use % as wildcard in text
-
contact_note
Retrieve only advertisers with the specific note. Use % as wildcard in text
-
limit
Limit the retrieval to set amount of advertisers.
GET/api/?report=advertisers&v3&list
Additional parameters/filters
&id=371
&name=Voonix API testing create POST
&affiliate_market=iGaming
&affiliate_system=Omarsys
&affiliate_group=Voonix
&contact_note=Voonix
&limit=1
&wildcard
Response example
{
"report": "Advertisers",
"http": {
"code": 200,
"status": "OK"
},
"count": 1,
"data": [
{
"id": "371",
"name": "Voonix API testing create POST",
"description": "API call example",
"market": "iGaming",
"affiliate_system": "Omarsys",
"login_url": "https://voonix.net",
"group": "Voonix",
"currency": "EUR",
"brand_id": "1",
"brand_extra": "1",
"contact_name": "Voonix",
"contact_email": "support@voonix.net",
"contact_skype": "Voonix",
"contact_note": "Voonix"
}
]
}
Create advertisers
Using this endpoint you can create an advertiser in Voonix.
To create multiple Advertisers, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
name Required Unique
The name of the advertiser.
-
description
The description of the advertiser.
-
affiliate_market
The affiliate market of the specific advertiser. E.g. iGaming.
Note that this is case sensitive and need to match the name from Voonix. -
affiliate_system Required
The affiliate system of the specific advertiser. E.g. Omarsys.
Note that this is case sensitive and need to match the name from Voonix. -
affiliate_system_currency Required
The currency code for the advertiser. E.g. EUR.
-
affiliate_login_url Required
The exact URL for the affiliate login page.
-
affiliate_system_brand
The brand ID for the specific brand. This is not always a requirement but for some it may be.
For more information
1. See our Help Centers Brand Integration page here or use the affiliate system API (Under construction)
2. If required, see Brand database: here or use the Brands API (Under construction)
2b. If it doesn't exist in the database, but is still supported, please follow instructions from step 1 on how to find the brand ID in the affiliate system. -
affiliate_system_extra
The brand ID extra for the specific brand. This is not a requirement however some advertisers may need it to function.
For more information
1. See our Help Centers Brand Integration page here or use the affiliate system API (Under construction)
2. If required, see Brand database: here or use the Brands API (Under construction)
2b. If it doesn't exist in the database, but is still supported, please follow instructions from step 1 on how to find the brand ID extra in the affiliate system. -
affiliate_group
This can be used to group advertisers to see group earnings.
-
contact_name
The name of a contact person such as an affiliate manager.
-
contact_email
The email of a contact person such as an affiliate manager.
-
contact_skype
The Skype of a contact person such as an affiliate manager.
-
contact_note
A note for a contact person such as an affiliate manager.
POST/api/?report=advertisers&v3&create
POST body
name=Voonix API testing create POST
&description=API call example
&affiliate_market=iGaming
&affiliate_system=Omarsys
&affiliate_system_currency=EUR
&affiliate_login_url=https://voonix.net
&affiliate_system_brand=1
&affiliate_system_extra=1
&affiliate_group=Voonix
&contact_name=Voonix
&contact_email=support@voonix.net
&contact_skype=Voonix
&contact_note=Voonix
POST/api/?report=advertisers&v3&create&JSON
POST body
[
{
"name": "Voonix API JSON test 1",
"description": "API v3",
"affiliate_market": "iGaming",
"affiliate_system": "Omarsys",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
},
{
"name": "Voonix API JSON create test 2",
"description": "Testing out API v3",
"affiliate_market": "iGaming",
"affiliate_system": "Omarsys",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 371,
"name": "Voonix API testing create POST",
"description": "API call example",
"affiliate_system": "Omarsys",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "https://voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "1",
"affiliate_group": "Voonix",
"contact_name": "Voonix",
"contact_email": "support@voonix.net",
"contact_skype": "Voonix",
"contact_note": "Voonix",
"affiliate_market": "iGaming"
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 372,
"name": "Voonix API JSON test 1",
"description": "API v3",
"affiliate_market": "iGaming",
"affiliate_system": "Omarsys",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": 373,
"name": "Voonix API JSON create test 2",
"description": "Testing out API v3",
"affiliate_market": "iGaming",
"affiliate_system": "Omarsys",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
}
]
}
Update advertisers
You are able to update/edit advertisers using this endpoint and the POST method. You only need to add the values you wish to update.
To update multiple Advertisers, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required
The unique ID of the advertiser.
-
name Unique
Name of the advertiser.
-
description
The description of the advertiser.
-
affiliate_market
The affiliate market of the specific advertiser. E.g. iGaming.
Note that this is case sensitive and need to match the name from Voonix. -
affiliate_system
The affiliate system of the specific advertiser. E.g. Omarsys.
Note that this is case sensitive and need to match the name from Voonix. -
affiliate_system_currency
The currency code for the advertiser. E.g. EUR.
-
affiliate_login_url
The exact URL for the affiliate login page.
-
affiliate_system_brand
The brand ID for the specific brand. This is not always a requirement but for some it may be.
For more information
1. See our Help Centers Brand Integration page here or use the affiliate system API (Under construction)
2. If required, see Brand database: here or use the Brands API (Under construction)
2b. If it doesn't exist in the database, but is still supported, please follow instructions from step 1 on how to find the brand ID in the affiliate system. -
affiliate_system_extra
The brand ID extra for the specific brand. This is not a requirement however some advertisers may need it to function.
For more information
1. See our Help Centers Brand Integration page here or use the affiliate system API (Under construction)
2. If required, see Brand database: here or use the Brands API (Under construction)
2b. If it doesn't exist in the database, but is still supported, please follow instructions from step 1 on how to find the brand ID extra in the affiliate system. -
affiliate_group
This can be used to group advertisers to see group earnings.
-
contact_name
The name of a contact person such as an affiliate manager.
-
contact_email
The email of a contact person such as an affiliate manager.
-
contact_skype
The Skype of a contact person such as an affiliate manager.
-
contact_note
A note for a contact person such as an affiliate manager.
POST/api/?report=advertisers&v3&update
POST body
id=371
&name=Voonix API update POST test
&description=Update Advertiser API example
&affiliate_market=iGaming
&affiliate_system=Netrefer
&affiliate_system_currency=EUR
&affiliate_login_url=https://voonix.net
&affiliate_system_brand=2
&affiliate_system_extra=2
&affiliate_group=Voonix2
&contact_name=Voonix2
&contact_email=support2@voonix.net
&contact_skype=Voonix2
&contact_note=Voonix2
POST/api/?report=advertisers&v3&update&JSON
POST body
[
{
"id": "372",
"name": "Voonix API Update JSON update test",
"description": "API v3 example",
"affiliate_market": "iGaming",
"affiliate_system": "Netrefer",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
},
{
"id": "373",
"name": "Voonix API Update JSON update test 2",
"description": "API v3 example",
"affiliate_market": "iGaming",
"affiliate_system": "Netrefer",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "371",
"name": "Voonix API update POST test",
"description": "Update Advertiser API example",
"affiliate_system": "Netrefer",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "https://voonix.net",
"affiliate_system_brand": "2",
"affiliate_system_extra": "2",
"affiliate_group": "Voonix2",
"contact_name": "Voonix2",
"contact_email": "support2@voonix.net",
"contact_skype": "Voonix2",
"contact_note": "Voonix2",
"affiliate_market": "iGaming"
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "372",
"name": "Voonix API Update JSON update test",
"description": "API v3 example",
"affiliate_market": "iGaming",
"affiliate_system": "Netrefer",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": "373",
"name": "Voonix API Update JSON update test 2",
"description": "API v3 example",
"affiliate_market": "iGaming",
"affiliate_system": "Netrefer",
"affiliate_system_currency": "EUR",
"affiliate_login_url": "api.voonix.net",
"affiliate_system_brand": "1",
"affiliate_system_extra": "extra",
"affiliate_group": "group",
"contact_name": "name",
"contact_email": "support@voonix.net",
"contact_skype": "skype",
"contact_note": "note"
}
]
}
Delete advertisers
You are able to delete advertisers using this endpoint and the POST method. You only need to add the id of the advertiser you want to delete
To delete multiple Advertisers, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required
The unique ID of the advertiser.
POST/api/?report=advertisers&v3&delete
POST body
id=371
POST/api/?report=advertisers&v3&delete&JSON
POST body
[
{
"id" : "372"
},
{
"id" : "373"
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"id": "371",
"http": {
"code": 200,
"status": "OK"
}
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "372"
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": "373"
}
]
}
Advertiserlogins
Logins are your affiliate accounts in Voonix, with these endpoints you are able to manage your logins.
Retrieve logins
This endpoint will allow you to retrieve a list of all/some of your logins using filters.
Parameters
-
id
The unique identifier for the specific login if you wish to only retrieve some or one. For multiple use comma as a separator.
-
advertiser
The unique identifier for the specific advertiser if you wish to only retrieve some or one. For multiple use comma as a separator.
-
column
This will sort by the key. Defaults to id.
Keys available:- id
- advertiser
- type
- username
- account_id
- type
- currency
- rev
- cpa
- cpl
- baseline
- note
- created_at
- created_by_id
- updated_at
- updated_by_id
- history_deal
- cosmetic_deal
-
order
Is used to sort the result in either ascending or descending. If none set defaults to ASC
- ASC
- DESC
-
limit
Sets a limit to how many records should be fetched.
-
offset
Allows to specify which row to start from. Limit must be set to use this.
-
errors_only
Limit retrieval to accounts that have errors currently.
GET/api/?report=advertiserlogins&v3&list
Additional parameters/filters
&login=36,38
&advertiser=47,46,45
&column=cpa
&order=DESC
&limit=2
&offset=1
&errors_only
Response example
{
"logins": {
"1": {
"id": "1",
"username": "Voonix",
"group": "Anna",
"key1": "jdk261sjo54dkpsdl91425",
"key2": "",
"currency": null,
"note": "",
"error": "0",
"deal": {
"type": "REV-CPA",
"rev": "100",
"cpa": "150",
"cpl": "0"
},
"history_deal": [
{
"start_month": "2019-01-01",
"type": "CPL",
"cpl": "20"
},
{
"start_month": "2020-04-01",
"type": "CPA",
"cpa": "150"
}
],
"campaign_deals": [
{
"start_month": "2021-08-01",
"campaign_key": "camp_1",
"type": "CPL",
"cpl": "20"
},
{
"start_month": "2021-09-01",
"campaign_key": "camp_2",
"type": "CPL",
"cpl": "25"
}
],
"advertiser_id": "1",
"advertiser_name": "10Bet"
}
}
}
Create login
Using this endpoint you can create logins in Voonix.
To create multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
advertiser_id Required either
The ID of the advertiser in Voonix. Either use this or advertiser_name. For multiple send a json body.
-
advertiser_name Required either
The name of the advertiser in Voonix. Either use this or advertiser_id. For multiple send a json body.
-
username Required
The username of the login.
-
password
The password for the affiliate login.
-
key1
The primary key for the affiliate login.
-
key2
The secondary key for the affiliate login.
-
currency
If currency code is included this will instead of the advertisers currency.
-
note
A note for the login.
-
cosmetic_deal
A purely cosmetic text. That can act as the exact deal.
-
group
The group for the login if you wish to group them.
-
type Required
The deal type of the affiliate login.
- REV
- CPA
- CPL
- REV-CPA
- REV-CPL
- CPA-CPL
-
rev
The revshare percentage for the login if rev or hybrid. Keep in mind this is most often 100, as we take commission.
-
cpa
The CPA value for each CPA for the login. Used for CPA or hybrid accounts.
-
cpl
The cpl value for each CPL for the login. Used for CPL or hybrid accounts.
POST/api/?report=advertiserlogins&v3&create
POST body
advertiser=1
&username=Voonix2
&type=REV
&password=Password
&group=Voonix
&key1=key1
&key2=key2
¤cy=EUR
¬e=Note
&cosmetic_deal=Rev 35%
&rev=100
POST/api/?report=advertiserlogins&v3&create&JSON
POST body
[
{
"advertiser_id": "1",
"username":"voonix",
"password":"voonix123",
"type":"REV",
"rev":"100",
"key1":"123456789",
"key2":"987654321",
"group":"affiliates",
"note":"A note",
"cosmetic_deal":"Revshare 40%"
},
{
"advertiser": "1",
"username":"voonix2",
"type":"CPA",
"cpa":"60"
}
]
Response example
{
"succeeded": [
{
"advertiser": "323",
"login": 486,
"username": "Voonix2",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1,
"report": "Advertiserlogins"
}
Response example
{
"succeeded": [
{
"advertiser": "1",
"login": 487,
"username": "voonix",
"http": {
"code": 200,
"status": "OK"
}
},
{
"advertiser": "1",
"login": 488,
"username": "voonix2",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2,
"report": "Advertiserlogins"
}
Update login
Using this endpoint you can update logins and their deals in Voonix.
To update multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required either
The ID of the login in Voonix. For multiple send a json body.
-
optional_id Required either
To update this, please send an id, to use this to update with, omit the id.
Please be aware that if you include both "id" and "optional_id" the optional ID will be updated. Use with caution.
-
username
The username of the login.
-
password
The password for the affiliate login.
-
key1
The primary key for the affiliate login.
-
key2
The secondary key for the affiliate login.
-
currency
If currency code is included this will instead of the advertisers currency.
-
note
A note for the login.
-
cosmetic_deal
A purely cosmetic text. That can act as the exact deal.
-
group
The group for the login if you wish to group them.
-
type
The deal type of the affiliate login.
- REV
- CPA
- CPL
- REV-CPA
- REV-CPL
- CPA-CPL
-
rev
The revshare percentage for the login if rev or hybrid. Keep in mind this is most often 100, as we take commission.
-
cpa
The CPA value for each CPA for the login. Used for CPA or hybrid accounts.
-
cpl
The cpl value for each CPL for the login. Used for CPL or hybrid accounts.
-
resume_import Warning
With this set to true login errors gets cleared opening up the account to resume importing. You should ONLY use this if you are certain the login credentials are correct, as you could otherwise risk the account getting banned/blocked by the operator.
POST/api/?report=advertiserlogins&v3&update
POST body
id=1,
&username=Voonix
&type=REV
&password=Password
&group=Voonix Core
&key1=key1
&key2=key2
¤cy=EUR
¬e=Note
&cosmetic_deal=Rev 35%
&rev=100
POST/api/?report=advertiserlogins&v3&update&JSON
POST body
[
{
"id": "1",
"username":"Newvoonix",
"password":"123",
"type":"CPA",
"cpa":"60",
"key1":"123456789",
"key2":"987654321",
"group":"affiliates",
"note":"A note",
"cosmetic_deal":"CPA 60"
},
{
"id": "2",
"username":"Newvoonix2"
}
]
Response example
{
"succeeded": [
{
"advertiser": 323,
"login": "1",
"username": "Voonix",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1,
"report": "Advertiserlogins"
}
Response example
{
"succeeded": [
{
"advertiser": 323,
"login": "1",
"username": "Newvoonix",
"http": {
"code": 200,
"status": "OK"
}
},
{
"advertiser": 323,
"login": "2",
"username": "Newvoonix2",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2,
"report": "Advertiserlogins"
}
Delete login
You are able to delete logins using this endpoint and the POST method. You only need to add the id of the login you want to delete
To delete multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required
The unique ID of the login.
POST/api/?report=advertiserlogins&v3&delete
POST body
id=471
POST/api/?report=advertiserlogins&v3&delete&JSON
POST body
[
{
"id" : "476"
},
{
"id" : "470"
}
]
Response example
{
"succeeded": [
{
"advertiser": 323,
"login": "471",
"username": "voonix",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1,
"report": "Advertiserlogins"
}
Response example
{
"succeeded": [
{
"advertiser": 323,
"login": "476",
"username": "voonix1",
"http": {
"code": 200,
"status": "OK"
}
},
{
"advertiser": 323,
"login": "470",
"username": "voonix2",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2,
"report": "Advertiserlogins"
}
Advertiser earnings
Advertiser earnings are your base report in Voonix.
Endpoints
Retrieve advertiser earnings
This endpoint will allow you to retrieve a list of all/some of your advertisers earnings using filters.
Parameters
-
breakdown_period
Set the data's breakdown by period, options available: daily, monthly. Defaults to daily.
-
breakdown_level
Set the data's breakdown by level, options available: campaign, login, advertiser. Defaults to campaign.
-
structure
Set the data's structure to either be nested or flat. Defaults to nested.
-
start Required
The start date for the selected period. The date must be in numeric date format like this: 2024-11-01 (Y-m-d).
-
end Required
The end date for the selected period. The date must be in numeric date format like this: 2024-11-30 (Y-m-d).
-
export
Used to select the desired export format.
- json Default
- csv
GET/api/?report=advertiserearnings&v3&list
Additional parameters/filters
&start=2022-03-01
&end=2022-03-31
&structure=flat
&export=json
Response example
{
"report": "Advertiser earnings",
"http":{
"code":200,
"status":"OK"
}
"start":"2022-03-21",
"end":"2022-03-22",
"breakdown_period":"daily",
"breakdown_level":"campaign",
"structure": "flat",
"data":{
"2022-03":[
{
"advertiser":319,
"advertiser_name": "advertiser",
"advertiserlogin": 416,
"advertiserlogin_username": "username",
"campaignkey": "Voonix",
"campaignname": "Campaign name",
"date":"2022-03-21",
"clicks":1,
"signups":0,
"active_players":0,
"deposits":0,
"FTD":0,
"CPA_count":0,
"unique_clicks":0,
"depositors":0,
"deposit_value":0,
"REV_income":0,
"bonus":0,
"netrevenue":0,
"turnover":0,
"CPA_income":0,
"CPL_income":0,
"Extra_fee":"0"
}
]
},
}
Affiliate systems
All affiliate systems supported by Voonix
Endpoints
Retrieve affiliate systems
This endpoint will allow you to retrieve a list of all affiliate systems.
GET/api/?report=affiliatesystems&v3
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"report": "Affiliate systems",
"count": 111,
"data": {
"2": {
"afsy_id": "2",
"afsy_system": "Omarsys",
"afsy_api": "1",
"afsy_brand_id": "1",
"afsy_brand_id_required": "0",
"afsy_brand_extra": "1",
"afsy_key": "0",
"afsy_key2": "0",
"afsy_whitelist": "0",
"afsy_daily": "1",
"afsy_report_names": "Channels, Customer-New",
"afsy_columns": "{\"columns\":{\"campaign_key\":[\"channelID\"],\"campaign_name\":[\"channel\"],\"date\":[\"date\"],\"clicks\":[\"clicks\"],\"signups\":[\"newCustomers\"],\"active_players\":[\"activeCustomers\"],\"deposits\":[\"depositingCustomers\"],\"deposit_value\":[\"deposits\"],\"depositors\":[\"depositingCustomers\"],\"ftds\":[\"firstTimeDepositingCustomers\"],\"ndcs\":[\"newDepositingCustomers\"],\"cpa\":[\"cpaTriggered\"],\"cpa_commission\":[\"cpaAmount\"],\"turnover\":[\"turnover\"],\"bonus\":[\"bonuses\"],\"netrevenue\":[\"netRevenue\"],\"revshare\":[\"revenueShare\"]}}",
"afsy_client_note": "",
"afsy_igaming": "1",
"afsy_vpn": "0",
"afsy_subaffiliates": "0",
"afsy_subid": "0",
"afsy_cpa_commission": "1",
"afsy_revshare_percentage": "0"
}
}
}
Brands
This endpoint uses our brand database, alternatively you can find it here: https://brands.voonix.net/
Endpoints
Retrieve affiliate systems
This endpoint will allow you to retrieve a list of all brands in our brand database.
GET/api/?report=brands&v3
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"report": "Affiliate systems",
"count": 1869,
"data": {
"3": {
"brand_id": "3",
"adve_name": "1xSLOT",
"adve_affiliate_system": "1xSlotPartners",
"adve_affiliate_programme": "",
"adve_affiliate_login_url": "https://1xslotspartners.com/dk/sign-in",
"adve_affiliate_brand_id": "",
"adve_affiliate_brand_extra": "",
"adve_custom": ""
}
}
}
Campaigns
Campaigns are your primary sources for identifying data. Any data is linked to a campaign. (Also known as sources, tracking links and many more)
Retrieve campaigns
This endpoint will allow you to retrieve a list of all/some of your campaigns using filters.
Parameters (Filters)
-
id Unique
The unique identifier for the specific advertiser if you wish to only retrieve some or one. For multiple use comma as a separator.
-
name
Retrieve campaigns by name. Use % as wildcard in text
-
advertiser_id Unique
Retrieve campaigns by Advertiser id. For multiple use comma as a separator.
-
advertiser_name
Retrieve campaigns by Advertiser name. Use % as wildcard in text
-
advertiser_login Unique
Retrieve campaigns by Advertiser login id. For multiple use comma as a separator.
-
username
Retrieve campaigns by Advertiser login name (Username). Use % as wildcard in text
-
alias
Retrieve only campaigns with a certain alias.
-
site_id Unique
Retrieve sites by Site Id. For multiple use comma as a separator.
-
site_name
Retrieve sites by Site name. Use % as wildcard in text
-
deal_type
Limit campaign deals to type. Types: REV, REV-CPA, CPA, CPA-CPL, CPL.
-
deals_begin
Choose only deals which started after selected date, use format YYYY-MM-DD (2000-12-24).
-
deals_begin_before
Choose only deals which started before selected date, use format YYYY-MM-DD (2000-12-24).
-
group
Limit the retrieval to only campaigns belonging to a selected group. Use % as wildcard in text
-
note
Retrieve only advertisers with the specific note. Use % as wildcard in text
-
deleted
When using deleted you will see campaigns that have been deleted in the system using the in-system campaigns module.
-
limit
Limit the retrieval to set amount of campaigns. Default value is 200.
GET/api/?report=campaigns&v3&list
Additional parameters/filters
&id=custom_3122
&name=test
&advertiser_id=68
&advertiser_name=bwin
&advertiser_login=59
&username=testuser
&alias=alias
&site_id=3
&site=Swedish Meatballs
&deal_type=REV
&deals_begin=2021-08-01
&deals_begin_before=2021-10-01
¬e=note
&group=group
&limit=10
Response example
{
"report": "Campaigns",
"http": {
"code": "200",
"status": "OK"
},
"results": 1,
"data": [
{
"key": "custom_3122",
"name": "test",
"login_id": "59",
"username": "testuser",
"advertiser_id": "68",
"advertiser_name": "bwin",
"sites": {
"site_id": "3",
"site_name": "Swedish Meatballs"
},
"campaign_deals": [
{
"start_date": "2021-09-01",
"type": "REV",
"REV": "100"
}
],
"alias": "alias",
"note": "note",
"group": "group",
}
]
}
Update campaign
Using this endpoint you can update an existing campaign.
To update multiple campaigns, you can use JSON to send multiple rows of data, include &JSON in the URL.
Parameters
-
id Required either
Unique
The ID for the campaign. For multiple send a json body. If using this you do not need the key or the fk_login
-
key
Required either
The key for the campaign. You need both the key and the fk_login if you are not using ID.
-
fk_login
Required either
The login id the campaign is associated with. You need both the fk_login and the key if you are not using ID.
-
alias
The alias for the campaign.
-
group
The group for the campaign.
-
note
Notes for the campaign.
-
deleted
Set to true to delete a campaign and false to undelete it.
POST/api/?report=campaigns&v3&update_deal
POST body
id=241
&alias=TestAlias
&group=TestGroup
¬e=TestNote
POST/api/?report=campaigns&v3&update&JSON
POST body
[
[
{
"key": "416563",
"fk_login": 1340,
"alias": "multiTest12",
"group" : "multiTest12",
"note": "multiTest12",
"deleted": 0
},
{
"key": "custom_5221",
"fk_login": 1341,
"alias": "multiTest3",
"group" : "multiTest3",
"note": "multiTest3",
"deleted": 0
}
]
]
Response example
{
"report": "Campaigns",
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"alias": "TestAlias1",
"group": "TestGroup1",
"note": "TestNote1",
"deleted": "0",
"id": "772"
}
]
}
Response example
{
"report": "Campaigns",
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"key": "416563",
"fk_login": 1340,
"alias": "multiTest12",
"group": "multiTest12",
"note": "multiTest12",
"deleted": 0
},
{
"http": {
"code": 200,
"status": "OK"
},
"key": "custom_5221",
"fk_login": 1341,
"alias": "multiTest3",
"group": "multiTest3",
"note": "multiTest3",
"deleted": 0
}
]
}
Create campaign deal
Using this endpoint you can create a deal for a specific campaign in Voonix.
To create multiple deals, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
fk_ckey Required
The key for the campaign the deal is created for
-
fk_login Required
The login id the campaign is associated with
-
start_month Required
The date from which the deal starts, use format YYYY-MM-DD (2000-12-01).
-
type Required
The type of deal you wanna create. Types: REV, REV-CPA, CPA, CPA-CPL, CPL.
-
CPA
Earnings per CPA. Integer, defaults to 0
-
REV
Revshare percentage used to calculate commission based on 'Net revenue'. Integer, defaults to 0
-
CPL
Earnings per CPL. Integer, defaults to 0
POST/api/?report=campaigns&v3&create_deal
POST body
fk_login=34
&fk_ckey=28698
&start_month=2022-01-01
&type=REV-CPA
&CPA=50
&REV=100
&CPL=0
POST/api/?report=campaigns&v3&create_deal&JSON
POST body
[
{
"fk_login":"34",
"fk_ckey":"28698",
"start_month":"2022-02-01",
"type":"REV-CPA",
"CPA": 100,
"REV": 100,
"CPL": 0
},
{
"fk_login":"34",
"fk_ckey":"28698",
"start_month":"2022-03-01",
"type":"REV-CPA",
"CPA": 150,
"REV": 85,
"CPL": 0
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 241,
"fk_login": "34",
"fk_ckey": "28698",
"start_month": "2022-01-01",
"type": "REV-CPA",
"CPA": "50",
"REV": "100",
"CPL": "0"
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 242,
"fk_login": "34",
"fk_ckey": "28698",
"start_month": "2022-02-01",
"type": "REV-CPA",
"CPA": 100,
"REV": 100,
"CPL": 0
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": 243,
"fk_login": "34",
"fk_ckey": "28698",
"start_month": "2022-03-01",
"type": "REV-CPA",
"CPA": 150,
"REV": 85,
"CPL": 0
}
]
}
Update campaign deal
Using this endpoint you can update an existing campaign deal.
To update multiple deals, you can use JSON to send multiple rows of data, include &JSON in the URL.
Parameters
-
id Required Unique
The ID for the campaign deal. For multiple send a json body.
-
fk_ckey
The key for the campaign the deal is associated with.
-
fk_login
The login id the campaign is associated with.
-
start_month
The date from which the deal starts, use format YYYY-MM-DD (2000-12-01).
-
type
The type of deal you update to. Types: REV, REV-CPA, CPA, CPA-CPL, CPL.
-
CPA
Earnings per CPA. Integer, defaults to 0.
-
REV
Revshare percentage used to calculate commission based on 'Net revenue'. Integer, defaults to 0.
-
CPL
Earnings per CPL. Integer, defaults to 0.
POST/api/?report=campaigns&v3&update_deal
POST body
id=241
&start_month=2021-11-01
&type=REV
&CPA=0
&REV=100
&CPL=0
POST/api/?report=campaigns&v3&update_deal&JSON
POST body
[
{
"id": 242,
"REV": 50,
"CPA" : 50
},
{
"id": 243,
"type":"CPA",
"CPA": 70
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "241",
"start_month": "2021-11-01",
"type": "REV",
"CPA": "0",
"REV": "100",
"CPL": "0"
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 242,
"REV": 50,
"CPA": 50
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": 243,
"type": "CPA",
"CPA": 70
}
]
}
Delete campaign deal
Using this endpoint you can delete a campaign deal.
To delete multiple campaigns, you can use JSON to send multiple rows of data, include &JSON in the URL.
Parameters
-
id Required Unique
The ID of the campaign deal. For multiple send a json body.
POST/api/?report=campaigns&v3&delete_deal
POST body
id=241
POST/api/?report=campaigns&v3&delete_deal&JSON
POST body
[
{
"id": 242
},
{
"id": 243
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"id": "241",
"http": {
"code": 200,
"status": "OK"
}
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "242"
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": "243"
}
]
}
Custom stats
Manually created stats, optionally campaigns that can contain anything from data for systems we don't support to extra fees and more.
Retrieve custom stats
This endpoint will allow you to retrieve a list of all/some of your custom stats using filters.
Parameters (Filters)
-
advertiser_login Unique
The unique identifier for the specific login if you wish to only retrieve some or one. For multiple use comma as a separator.
-
cust_id Unique
The unique identifier of the custom stat(s) to be included with filter. Use , to separate additional campaign keys.
-
fk_ckey Unique
The unique identifier of the campaign(s) to be included with filter. Use , to separate additional campaign keys.
-
start Required
The start date for the selected period. The date must be in numeric date format like this: 2021-01-01 (Y-m-d).
-
end Required
The end date for the selected period. The date must be in numeric date format like this: 2021-01-31 (Y-m-d).
-
breakdown_period
Set the data's breakdown by period, options available: daily, monthly. Defaults to daily.
-
all_columns
Show all columns regardless of data. Boolean
-
breakdown_level
Set the data's breakdown by level, options available: campaign, login, advertiser. Defaults to campaign.
GET/api/?report=customstats&v3&list
Additional parameters/filters
&advertiser_login=99,100
&cust_id=99,100
&fk_ckey=camp_id_1,camp_id_2
&start=2022-07-01
&end=2022-09-01
&breakdown_period=daily
&breakdown_level=campaign
Response example
{
"start": "2022-09-01",
"end": "2022-09-30",
"breakdown_period": "daily",
"breakdown_level": "campaign",
"data": {
"2022-09": [
{
"advertiser": 113,
"advertiser_name": "Betwaypartners raketech",
"advertiserlogin": "116",
"advertiserlogin_username": "Casinofeber_Betway",
"campaignkey": "custom_6748",
"campaignname": "Test campaign creation",
"date": "2022-09-01",
"custom_id": "100",
"clicks": "1",
"signups": "3",
"active_players": "4",
"deposits": "6",
"deposit_value": "7",
"ndc": "9",
"qndc": "10",
"FTD": "11",
"CPA_count": "12",
"unique_clicks": "2",
"depositors": "5",
"REV_income": "18",
"bonus": "8",
"netrevenue": "17",
"turnover": "15",
"gross_revenue": "16",
"CPA_income": "13",
"Extra_fee": "14"
},
{
"advertiser": 113,
"advertiser_name": "Betwaypartners raketech",
"advertiserlogin": "116",
"advertiserlogin_username": "Casinofeber_Betway",
"campaignkey": "custom_4040",
"campaignname": "custom_sitea_data",
"date": "2022-09-01",
"custom_id": "99",
"clicks": "1",
"signups": "3",
"active_players": "4",
"deposits": "6",
"deposit_value": "7",
"ndc": "9",
"qndc": "10",
"FTD": "11",
"CPA_count": "12",
"unique_clicks": "2",
"depositors": "5",
"REV_income": "18",
"bonus": "8",
"netrevenue": "17",
"turnover": "15",
"gross_revenue": "16",
"CPA_income": "13",
"Extra_fee": "14"
}
]
},
"results": 2,
"success": 1
}
Create custom stat
Using this endpoint you can create a deal for a specific campaign in Voonix.
To create multiple deals, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
fk_login Required
The login id the custom stat will be added onto.
fk_ckey Required either
-
date Required
The date from which the deal starts, use format YYYY-MM-DD (2000-12-01).
-
create_campaign Required either
Boolean, create new campaign for custom stat.
-
camp_name Required either
Name of new campaign to be created.
-
clicks
Integer, defaults to 0
-
unique_clicks
Integer, defaults to 0
-
signups
Integer, defaults to 0
-
active_players
Integer, defaults to 0
-
depositors
Integer, defaults to 0
-
deposits
Integer, defaults to 0
-
deposit_value
Float, defaults to 0
-
bonus
Float, defaults to 0
-
ndcs
Integer, defaults to 0
-
qndcs
Integer, defaults to 0
-
ftds
Integer, defaults to 0
-
cpa_commission
Float, defaults to 0
-
fees
Float, defaults to 0
-
turnover
Float, defaults to 0
-
gross_revenue
Float, defaults to 0
-
net_revenue
Float, defaults to 0
-
revshare
Float, defaults to 0
-
custom_columns1
Float, defaults to 0
-
custom_columns2
Float, defaults to 0
-
custom_columns3
Float, defaults to 0
-
custom_columns4
Float, defaults to 0
-
custom_columns5
Float, defaults to 0
-
custom_columns6
Float, defaults to 0
-
custom_columns7
Float, defaults to 0
-
custom_columns8
Float, defaults to 0
-
custom_columns9
Float, defaults to 0
-
custom_columns10
Float, defaults to 0
The campaign key of the campaign the stat will be added onto, unless there's a create_campaign specified.
POST/api/?report=customstats&v3&create
POST body
&fk_login=116
&fk_ckey=custom_4040
&date=2022-09-01
&clicks=3000
&unique_clicks=1123
&signups=120
&active_players=300
&depositors=30
&deposit_value=1000
&bonus=1500
&ndcs=10
&qndcs=6
&ftds=9
&cpas=10
&cpa_commission=150
&fees=70
&turnover=166
&gross_revenue=123
&net_revenue=1122
&revshare=120
&deposits=33
&custom_column1=1
&custom_column2=2
&custom_column3=3
&custom_column4=4
&custom_column5=5
&custom_column6=6
&custom_column7=7
&custom_column8=8
&custom_column9=9
&custom_column10=10
&create_campaign=true
&camp_name=Test campaign
POST/api/?report=customstats&v3&create&JSON
POST body
[
{
"fk_login" : 116,
"fk_ckey" : "custom_4040",
"date" : "2022-09-01",
"create_campaign": true,
"camp_name": "Test campaign creation",
"clicks": 1,
"unique_clicks": 2,
"signups": 3,
"active_players": 4,
"depositors": 5,
"deposits": 6,
"deposit_value": 7,
"bonus": 8,
"ndcs": 9,
"qndcs": 10,
"ftds": 11,
"cpas": 12,
"cpa_commission": 13,
"fees": 14,
"turnover": 15,
"gross_revenue": 16,
"net_revenue": 17,
"revshare": 18,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
}
},{
"fk_login" : 116,
"fk_ckey" : "custom_4040",
"date" : "2022-09-01",
"clicks": 1,
"unique_clicks": 2,
"signups": 3,
"active_players": 4,
"depositors": 5,
"deposits": 6,
"deposit_value": 7,
"bonus": 8,
"ndcs": 9,
"qndcs": 10,
"ftds": 11,
"cpas": 12,
"cpa_commission": 13,
"fees": 14,
"turnover": 15,
"gross_revenue": 16,
"net_revenue": 17,
"revshare": 18,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
}
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": "116",
"fk_ckey": "custom_4267",
"date": "2022-09-01",
"create_campaign": "true",
"camp_name": "Test campaign",
"clicks": "3000",
"unique_clicks": "1123",
"signups": "120",
"active_players": "300",
"depositors": "30",
"deposits": "33",
"deposit_value": "1000",
"bonus": "1500",
"ndcs": "10",
"qndcs": "6",
"ftds": "9",
"cpas": "10",
"cpa_commission": "150",
"fees": "70",
"turnover": "166",
"gross_revenue": "123",
"net_revenue": "1122",
"revshare": "120",
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
},
"cust_id": 102
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": 116,
"fk_ckey": "custom_8464",
"date": "2022-09-01",
"create_campaign": true,
"camp_name": "Test campaign creation",
"clicks": 1,
"unique_clicks": 2,
"signups": 3,
"active_players": 4,
"depositors": 5,
"deposits": 6,
"deposit_value": 7,
"bonus": 8,
"ndcs": 9,
"qndcs": 10,
"ftds": 11,
"cpas": 12,
"cpa_commission": 13,
"fees": 14,
"turnover": 15,
"gross_revenue": 16,
"net_revenue": 17,
"revshare": 18,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
},
"cust_id": 105
},
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": 116,
"fk_ckey": "custom_4040",
"date": "2022-09-01",
"clicks": 1,
"unique_clicks": 2,
"signups": 3,
"active_players": 4,
"depositors": 5,
"deposits": 6,
"deposit_value": 7,
"bonus": 8,
"ndcs": 9,
"qndcs": 10,
"ftds": 11,
"cpas": 12,
"cpa_commission": 13,
"fees": 14,
"turnover": 15,
"gross_revenue": 16,
"net_revenue": 17,
"revshare": 18,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
},
"cust_id": 104
}
]
}
Update custom stat
Using this endpoint you can update an existing campaign deal.
To update multiple deals, you can use JSON to send multiple rows of data, include &JSON in the URL.
Parameters
-
cust_id Required
The custom ID of the stat getting updated.
-
fk_login Required
The login id of the custom stat getting updated.
fk_ckey Required
-
clicks
Integer, defaults to 0
-
unique_clicks
Integer, defaults to 0
-
signups
Integer, defaults to 0
-
active_players
Integer, defaults to 0
-
depositors
Integer, defaults to 0
-
deposits
Integer, defaults to 0
-
deposit_value
Float, defaults to 0
-
bonus
Float, defaults to 0
-
ndcs
Integer, defaults to 0
-
qndcs
Integer, defaults to 0
-
ftds
Integer, defaults to 0
-
cpa_commission
Float, defaults to 0
-
fees
Float, defaults to 0
-
turnover
Float, defaults to 0
-
gross_revenue
Float, defaults to 0
-
net_revenue
Float, defaults to 0
-
revshare
Float, defaults to 0
-
custom_columns1
Float, defaults to 0
-
custom_columns2
Float, defaults to 0
-
custom_columns3
Float, defaults to 0
-
custom_columns4
Float, defaults to 0
-
custom_columns5
Float, defaults to 0
-
custom_columns6
Float, defaults to 0
-
custom_columns7
Float, defaults to 0
-
custom_columns8
Float, defaults to 0
-
custom_columns9
Float, defaults to 0
-
custom_columns10
Float, defaults to 0
The campaign key of the stat getting updated.
POST/api/?report=customstats&v3&update
POST body
fk_login=116
&fk_ckey=custom_4267
&date=2022-09-01
&clicks=5000
&unique_clicks=2123
&signups=220
&active_players=455
&depositors=50
&deposit_value=10005
&bonus=15003
&ndcs=102
&qndcs=63
&ftds=94
&cpas=105
&cpa_commission=1506
&fees=706
&turnover=1667
&gross_revenue=1238
&net_revenue=11221
&revshare=1202
&deposits=333
&custom_column1=13
&custom_column2=24
&custom_column3=35
&custom_column4=46
&custom_column5=54
&custom_column6=65
&custom_column7=75
&custom_column8=83
&custom_column9=94
&custom_column10=57
&cust_id=102
POST/api/?report=customstats&v3&update&JSON
POST body
[
{
"fk_login" : 116,
"cust_id" : 68,
"fk_ckey" : "custom_3540",
"clicks": 12,
"unique_clicks": 23,
"signups": 34,
"active_players": 45,
"depositors": 56,
"deposits": 67,
"deposit_value": 78,
"bonus": 89,
"ndcs": 91,
"qndcs": 101,
"ftds": 112,
"cpas": 123,
"cpa_commission": 134,
"fees": 145,
"turnover": 156,
"gross_revenue": 167,
"net_revenue": 178,
"revshare": 189,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
}
},{
"fk_login" : 116,
"cust_id" : 69,
"fk_ckey" : "custom_4040",
"clicks": 12,
"unique_clicks": 23,
"signups": 34,
"active_players": 45,
"depositors": 56,
"deposits": 67,
"deposit_value": 78,
"bonus": 89,
"ndcs": 91,
"qndcs": 101,
"ftds": 112,
"cpas": 123,
"cpa_commission": 134,
"fees": 145,
"turnover": 156,
"gross_revenue": 167,
"net_revenue": 178,
"revshare": 189,
"custom_columns": {
"custom_column1": "13",
"custom_column2": "22",
"custom_column3": "13",
"custom_column4": "4",
"custom_column5": "52",
"custom_column6": "6",
"custom_column7": "47",
"custom_column8": "83",
"custom_column9": "9",
"custom_column10": "102"
}
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": "116",
"fk_ckey": "custom_4267",
"cust_id": "102",
"date": "2022-09-01",
"clicks": "5000",
"unique_clicks": "2123",
"signups": "220",
"active_players": "455",
"depositors": "50",
"deposits": "333",
"deposit_value": "10005",
"bonus": "15003",
"ndcs": "102",
"qndcs": "63",
"ftds": "94",
"cpas": "105",
"cpa_commission": "1506",
"fees": "706",
"turnover": "1667",
"gross_revenue": "1238",
"net_revenue": "11221",
"revshare": "1202",
"custom_columns": {
"custom_column1": "13",
"custom_column2": "24",
"custom_column3": "35",
"custom_column4": "46",
"custom_column5": "54",
"custom_column6": "65",
"custom_column7": "75",
"custom_column8": "83",
"custom_column9": "94",
"custom_column10": "57"
}
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": 116,
"cust_id": 68,
"fk_ckey": "custom_3540",
"clicks": 12,
"unique_clicks": 23,
"signups": 34,
"active_players": 45,
"depositors": 56,
"deposits": 67,
"deposit_value": 78,
"bonus": 89,
"ndcs": 91,
"qndcs": 101,
"ftds": 112,
"cpas": 123,
"cpa_commission": 134,
"fees": 145,
"turnover": 156,
"gross_revenue": 167,
"net_revenue": 178,
"revshare": 189,
"custom_columns": {
"custom_column1": "1",
"custom_column2": "2",
"custom_column3": "3",
"custom_column4": "4",
"custom_column5": "5",
"custom_column6": "6",
"custom_column7": "7",
"custom_column8": "8",
"custom_column9": "9",
"custom_column10": "10"
}
},
{
"http": {
"code": 200,
"status": "OK"
},
"fk_login": 116,
"cust_id": 69,
"fk_ckey": "custom_4040",
"clicks": 12,
"unique_clicks": 23,
"signups": 34,
"active_players": 45,
"depositors": 56,
"deposits": 67,
"deposit_value": 78,
"bonus": 89,
"ndcs": 91,
"qndcs": 101,
"ftds": 112,
"cpas": 123,
"cpa_commission": 134,
"fees": 145,
"turnover": 156,
"gross_revenue": 167,
"net_revenue": 178,
"revshare": 189,
"custom_columns": {
"custom_column1": "13",
"custom_column2": "22",
"custom_column3": "13",
"custom_column4": "4",
"custom_column5": "52",
"custom_column6": "6",
"custom_column7": "47",
"custom_column8": "83",
"custom_column9": "9",
"custom_column10": "102"
}
}
]
}
Delete custom stat
Using this endpoint you can delete a campaign deal.
To delete multiple campaigns, you can use JSON to send multiple rows of data, include &JSON in the URL.
Parameters
-
cust_id Required Unique
The ID of the custom stat. For multiple send a JSON body.
POST/api/?report=customstats&v3&delete
POST body
cust_id=98
POST/api/?report=customstats&v3&delete&JSON
POST body
[
{
"cust_id": 67
},
{
"cust_id": 99
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"cust_id": "98"
}
]
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"cust_id": 67
},
{
"http": {
"code": 200,
"status": "OK"
},
"cust_id": 99
}
]
}
Earnings
The earnings endpoint will provide a general overview of earnings on accounts for a specific operator.
This is targeted towards being used seeing the actual invoiceable earnings as the regular earnings by campaign/tracker/source can sometimes be different in the affiliate platform itself.
Keep in mind we can never guarantee 100% accuracy as each account can be unique.
Endpoints
Retrieve Earnings
Retrieve a JSON or CSV response with the earnings in the selected period.
Parameters
-
breakdown_level
Set the data's breakdown by level, options available: earnings, user, host. Defaults to earnings.
Warning: Breakdown Level
When selecting a breakdown level other than the default one, we recommend doing it with caution.
The data returned will be processed in Voonix meaning it can cause data to be altered. This is due to the regular breakdown level treating each individual row of earnings as a separate item, whereas other breakdowns will add them together.
When doing so there are a lot of factors such as currencies which can cause a mismatch in the actual data, giving an incorrect result.
-
start
The start date for the selected period. The date must be in numeric date format like this: 2024-11-01 (Y-m-d).
-
end
The end date for the selected period. The date must be in numeric date format like this: 2024-11-30 (Y-m-d).
-
structure
Set the data's structure to either be nested or flat. Defaults to nested.
GET/api/?report=earnings&v3&list
Additional parameters/filters
&start=2023-05-01
&end=2023-05-31
&breakdown_level=earnings
&structure=flat
&export=json
Response example
{
"start":"2023-05-01",
"end":"2023-05-31",
"breakdown_level":"earnings",
"data":{
"2022-05": [
{
"host": "example.com,
"username": "user@example.com",
"brand": "Good Brand",
"campaign": "Summer2023",
"payment_id": 1000,
"currency": {
"code": "USD",
"exchange": 0.92
},
"product": "Bingo",
"reward_plan": "80% Rev",
"date": "2023-05-02",
"base_currency": "EUR",
"deposit_value": 9.2,
"REV_income": 9.2,
"Extra_fee": 9.2,
"bonus": 9.2,
"netrevenue": 9.2,
"gross_revenue": 9.2,
"turnover": 9.2,
"deduction": 9.2,
"total": 9.2,
"CPA_income": 10,
"raw_deposit_value": 10,
"raw_REV_income": 10,
"raw_Extra_fee": 10,
"raw_bonus": 10,
"raw_netrevenue": 10,
"raw_gross_revenue": 10,
"raw_turnover": 10,
"raw_deduction": 10,
"raw_total": 10,
"raw_CPA_income": 10,
},
],
},
"http":{
"code":200,
"status":"OK"
},
"report": "Earnings"
}
History deals
History deals allows you to set a deal with a specific start date for a login
Create deal
Using this endpoint you can create history deals in Voonix.
To create multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required
The ID of the login
-
start_month Required
The month the deal starts in, use format Y-m
-
type Required
The deal type of the affiliate login.
- REV
- CPA
- CPL
- REV-CPA
- REV-CPL
- CPA-CPL
-
rev
The revshare percentage for the login if rev or hybrid. Keep in mind this is most often 100, as we take commission. Defaults to 100
-
cpa
The CPA value for each CPA for the login. Used for CPA or hybrid accounts.
-
cpl
The cpl value for each CPL for the login. Used for CPL or hybrid accounts.
-
keep_original
Default: true, set to false to overwrite login deal if no other history deal is set.
This sets a copy of the login deal in 2000-01-01 if no other deal is set, so that the deal added will first start from the chosen date.
POST/api/?report=historydeals&v3&create
POST body
id=1
&start_month=2023-01
&type=REV
&rev=60
&cpa=0
&cpl=0
POST/api/?report=historydeals&v3&create&JSON
POST body
[
{
"id": "1",
"type":"REV-CPA",
"start_month":"2023-02",
"rev":"70",
"cpa":"200",
},
{
"id": "1",
"type":"REV",
"start_month":"2023-03",
"rev":"90",
}
]
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 1,
"type": "REV",
"rev": 60,
"cpa": 0,
"cpl": 0,
"start_month": "2023-01",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1
}
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 1,
"type": "REV-CPA",
"rev": 70,
"cpa": 200,
"cpl": 0,
"start_month": "2023-02",
"http": {
"code": 200,
"status": "OK"
}
},
{
"id": 1,
"type": "REV",
"rev": 90,
"cpa": 0,
"cpl": 0,
"start_month": "2023-03",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2
}
Update deal
Using this endpoint you can update history deals in Voonix. You need to either provide a deal ID or the login ID combined with the start_month.
To update multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required either
The ID of the deal
-
login Required either
The ID of the login
-
start_month Required either
The month the deal starts in, use format Y-m
-
type Required
The deal type of the affiliate login.
- REV
- CPA
- CPL
- REV-CPA
- REV-CPL
- CPA-CPL
-
rev
The revshare percentage for the login if rev or hybrid.
-
cpa
The CPA value for each CPA for the login. Used for CPA or hybrid accounts.
-
cpl
The cpl value for each CPL for the login. Used for CPL or hybrid accounts.
POST/api/?report=historydeals&v3&update
POST body
id=45
&start_month=2023-01
&type=REV
&rev=60
&cpa=0
&cpl=0
POST/api/?report=historydeals&v3&update&JSON
POST body
[
{
"id": "45",
"type":"REV-CPA",
"rev":"70",
"cpa":"200",
},
{
"login": "211",
"type":"REV",
"start_month":"2023-03",
"rev":"90",
}
]
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 45,
"type": "REV",
"rev": 60,
"cpa": 0,
"cpl": 0,
"start_month": "2023-01",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1
}
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 45,
"type": "REV-CPA",
"rev": 70,
"cpa": 200,
"cpl": 0,
"start_month": "2023-02",
"http": {
"code": 200,
"status": "OK"
}
},
{
"id": 46,
"type": "REV",
"rev": 90,
"cpa": 0,
"cpl": 0,
"start_month": "2023-03",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2
}
Delete deal
Using this endpoint you can delete history deals in Voonix. You need to either provide a deal ID or the login ID combined with the start_month.
To update multiple logins, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required either
The ID of the deal
-
login Required either
The ID of the login
-
start_month Required either
The month the deal starts in, use format Y-m
POST/api/?report=historydeals&v3&delete
POST body
id=45
POST/api/?report=historydeals&v3&delete&JSON
POST body
[
{
"id": "45",
},
{
"login": "211",
"start_month":"2023-03",
}
]
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 45,
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 1
}
Response example
{
"report": "History deals",
"succeeded": [
{
"id": 45,
"http": {
"code": 200,
"status": "OK"
}
},
{
"login": 211,
"start_month": "2023-03",
"http": {
"code": 200,
"status": "OK"
}
}
],
"succeeded_count": 2
}
Sites
Sites are your primary way of splitting campaigns to see alternative data in Voonix.
Endpoints
Retrieve sites
This endpoint will allow you to retrieve a list of all/some of your sites using filters.
Parameters (Filters)
-
id
The unique identifier for the specific site if you wish to only retrieve some or one. For multiple use comma as a separator.
-
limit
Limit the retrieval to set amount of sites.
GET/api/?report=sites&v3&list
Additional parameters/filters
&id=1
&limit=1
Response example
{
"structure": "nested",
"http": {
"code": 200,
"status": "OK"
},
"count": 1,
"data": {
"3": {
"id": "3",
"name": "Casinohat.no",
"group": "Email",
"url": "http://www.casinoviking.dk",
"country": "SE"
}
},
"report": "Sites"
}
Create sites
Using this endpoint you can create a site in Voonix.
To create multiple Sites, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
name Required Unique
The name of the site.
-
group
The group for the site.
-
url
The url for the site.
-
country
The country code for the site, example given DK for Denmark.
POST/api/?report=sites&v3&create
POST body
name=VoonixSiteName
&group=VoonixSiteGroup
&url=https://voonix.net/
&country=DK
POST/api/?report=sites&v3&create&JSON
POST body
[
{
"name": "VoonixSiteName",
"group": "VoonixSiteGroup",
"url": "https://voonix.net/dk",
"country": "DK",
},
{
"name": "VoonixSiteNameSE",
"group": "VoonixSiteGroupSE",
"url": "https://voonix.net/se",
"country": "SE",
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 94,
"name": "VoonixSiteName",
"group": "VoonixSiteGroup",
"url": "https://voonix.net/",
"country": "DK"
}
],
"report": "Sites"
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 2,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": 95,
"name": "VoonixSiteName",
"group": "VoonixSiteGroup",
"url": "https://voonix.net/dk",
"country": "DK"
},
{
"http": {
"code": 200,
"status": "OK"
},
"id": 96,
"name": "VoonixSiteNameSE",
"group": "VoonixSiteGroupSE",
"url": "https://voonix.net/se",
"country": "SE"
}
],
"report": "Sites"
}
Update sites
You are able to update/edit sites using this endpoint and the POST method. You only need to add the values you wish to update.
To update multiple Sites, you can use JSON to send multiple rows of data, include &JSON in the URL
Parameters
-
id Required
The unique ID of the site.
-
name Unique
Name of the site.
-
group
The group for the site.
-
url
The url for the site.
-
country
The country code for the site, example given DK for Denmark.
POST/api/?report=sites&v3&update
POST body
id=87
&name=VoonixSite
&group=Voonix SEO
&url=https://voonix.net/uk/
&country=UK
POST/api/?report=advertisers&update&v3&JSON
POST body
[
{
"id": "87",
"name": "VoonixSite",
"group": "Voonix SEO",
"url": "https://voonix.net/uk/",
"country": "UK",
}
]
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "87",
"name": "VoonixSite",
"group": "Voonix SEO",
"url": "https://voonix.net/uk/",
"country": "UK"
}
],
"report": "Sites"
}
Response example
{
"http": {
"code": 200,
"status": "OK"
},
"succeeded_count": 1,
"failed_count": 0,
"succeeded": [
{
"http": {
"code": 200,
"status": "OK"
},
"id": "87",
"name": "VoonixSite",
"group": "Voonix SEO",
"url": "https://voonix.net/uk/",
"country": "UK"
}
],
"report": "Sites"
}
Site earnings
Site earnings are your base report in Voonix.
Endpoints
Retrieve site earnings
This endpoint will allow you to retrieve a list of all/some of your site earnings using filters.
Parameters
-
breakdown_period
Set the data's breakdown by period, options available: daily, monthly. Defaults to daily.
-
breakdown_level
Set the data's breakdown by level, options available: advertiser, site. Defaults to advertiser.
-
start Required
The start date for the selected period. The date must be in numeric date format like this: 2024-11-01 (Y-m-d).
-
end Required
The end date for the selected period. The date must be in numeric date format like this: 2024-11-30 (Y-m-d).
-
export
Used to select the desired export format.
- json Default
- csv
GET/api/?report=siteearnings&v3&list
Additional parameters/filters
&start=2022-03-01
&end=2022-03-31
&export=json
Response example
{
"start":"2022-03-01",
"end":"2022-03-10",
"breakdown_period":"daily",
"breakdown_level":"advertiser",
"data":{
"2022-03":[
{
"site":123,
"site_name": "Site name",
"site_group": "Group name",
"advertiser": 123,
"advertiser_name": "Advertiser name",
"date":"2022-03-01",
"clicks":52,
"unique_clicks":38,
"signups":12,
"active_players":12,
"depositors":9,
"deposits":8,
"deposit_value":3071.00100000000020372681319713592529296875,
"bonus":266.3346000000000231011654250323772430419921875,
"FTD":20,
"CPA_count":0,
"turnover":4126.374499999999898136593401432037353515625,
"netrevenue":2341.751500000000305590219795703887939453125,
"REV_income":241.875300000000009958966984413564205169677734375,
"CPA_income":0,
"CPL_income":0,
"custom_column1":0,
"custom_column2":0,
"custom_column3":0,
"custom_column4":0,
"custom_column5":0,
"custom_column6":0,
"custom_column7":0,
"custom_column8":0,
"custom_column9":0,
"custom_column10":0,
"Extra_fee":88.778199999999998226485331542789936065673828125
}
]
},
"http":{
"code":200,
"status":"OK"
}
}
Payout BETA
Payout shows the payments/direct earnings retrieved in Voonix.
Endpoints
Retrieve payouts
This endpoint will allow you to retrieve a list of all/some of your payouts using filters.
Parameters
-
breakdown_level
Set the data's breakdown by level, options available: payment, campaign, brand, user, host. Defaults to payment.
-
structure
Set the data's structure to either be nested or flat. Defaults to flat.
-
status
Filter the data to be paid, pending or all payments. Defaults to paid, except for payment breakdown where the default is all
GET/api/?report=payout&v3
Additional parameters/filters
&start=2022-10-01
&end=2022-10-31
&export=json
Response example
{
"start": "2022-10-01",
"end": "2022-10-31",
"breakdown_level": "payment",
"data": {
"2022-10": [
{
"host": "voonix.net",
"username": "user_name",
"brand": "brand_name",
"campaign": "campaign_key",
"currency": "EUR",
"base_currency": "EUR",
"exchange_rate": 1,
"deposit_value": 12,
"REV_income": 23,
"Extra_fee": 45,
"bonus": 67,
"netrevenue": 89,
"turnover": 12,
"deduction": 23,
"total": 456.789,
"CPA_income": 12129,
"raw_deposit_value": 23,
"raw_REV_income": 45,
"raw_Extra_fee": 56,
"raw_bonus": 67,
"raw_netrevenue": 78,
"raw_turnover": 89,
"raw_deduction": 123.4,
"raw_total": 880.28934723,
"raw_CPA_income": 19280.1
}
]
},
"http": {
"code": 200,
"status": "OK"
},
"report": "Payout"
}