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
&currency=EUR
&note=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
&currency=EUR
&note=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.

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-10-01 (Y-m-d).

  • end Required

    The end date for the selected period. The date must be in numeric date format like this: 2024-10-31 (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

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
&note=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
&note=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

    The campaign key of the campaign the stat will be added onto, unless there's a create_campaign specified.

  • 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

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

    The campaign key of the stat getting updated.

  • 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

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.

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-10-01 (Y-m-d).

  • end

    The end date for the selected period. The date must be in numeric date format like this: 2024-10-31 (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.

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.

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-10-01 (Y-m-d).

  • end Required

    The end date for the selected period. The date must be in numeric date format like this: 2024-10-31 (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"
}