MENU navbar-image

Introduction

This documentation aims to provide all the information you need to work with our API.

As you scroll, you'll see code examples for working with the API in different programming languages in the dark area to the right (or as part of the content on mobile).
You can switch the language used with the tabs at the top right (or from the nav menu at the top left on mobile).

Authenticating requests

To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".

You can retrieve your token by visiting your profile and clicking Generate API token.

Customer endpoints

Create application

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "url=http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"\
    --form "apple_id_package=i"\
    --form "package_name=k"\
    --form "package_description=architecto"\
    --form "timezone=Asia/Ulaanbaatar"\
    --form "app_status=architecto"\
    --form "currency=architecto"\
    --form "name=n"\
    --form "icon=architecto"\
    --form "client_url=http://bailey.com/"\
    --form "apk=@/tmp/phpPgKdOm" 
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('url', 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html');
body.append('apple_id_package', 'i');
body.append('package_name', 'k');
body.append('package_description', 'architecto');
body.append('timezone', 'Asia/Ulaanbaatar');
body.append('app_status', 'architecto');
body.append('currency', 'architecto');
body.append('name', 'n');
body.append('icon', 'architecto');
body.append('client_url', 'http://bailey.com/');
body.append('apk', document.querySelector('input[name="apk"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'url',
                'contents' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
            ],
            [
                'name' => 'apple_id_package',
                'contents' => 'i'
            ],
            [
                'name' => 'package_name',
                'contents' => 'k'
            ],
            [
                'name' => 'package_description',
                'contents' => 'architecto'
            ],
            [
                'name' => 'timezone',
                'contents' => 'Asia/Ulaanbaatar'
            ],
            [
                'name' => 'app_status',
                'contents' => 'architecto'
            ],
            [
                'name' => 'currency',
                'contents' => 'architecto'
            ],
            [
                'name' => 'name',
                'contents' => 'n'
            ],
            [
                'name' => 'icon',
                'contents' => 'architecto'
            ],
            [
                'name' => 'client_url',
                'contents' => 'http://bailey.com/'
            ],
            [
                'name' => 'apk',
                'contents' => fopen('/tmp/phpPgKdOm', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 73,
        "status": "active",
        "store": "telegram",
        "url": "https://t.me/+G-SOmeChaNNeluRl",
        "client_id": 1,
        "package_name": "Velit et.",
        "package_description": "SAID was, 'Why is a very interesting dance to watch,' said Alice, as she spoke; 'either you or your head must be on the floor, as it left no mark on.",
        "timezone": "America/Lima",
        "app_status": "at_store",
        "currency": "DOP",
        "currency_iso": "DOP",
        "name": "architecto eius et",
        "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
        "is_default": false,
        "secret_key": "4b764e67-4468-4652-98c7-1d4f59472746",
        "api_secret_key": null,
        "token": "ES17FD8IRTJ8L",
        "agency_invite_token": "UZXR3B31GQ5GV",
        "is_active": true,
        "decryption_key": null,
        "fb_app_id": null,
        "fb_meta_pixel_id": null,
        "fb_access_token": null,
        "fb_pixel_access_token": null,
        "fbc_api_enabled": null,
        "fbc_api_events": null,
        "fbc_api_events_mapping": null,
        "fb_marketing_events_mapping": null,
        "fb_pixel_events_mapping": null,
        "fbc_api_value": null,
        "fbc_api_send_organic": null,
        "use_pixel_api": null,
        "fb_send_organic": false,
        "fb_send_googleads": false,
        "fcm_key": null,
        "created_at": "2026-01-23T10:24:16.000000Z",
        "updated_at": "2026-01-23T10:24:15Z",
        "probabilistic": true,
        "apple_s2s_tracking_url_v1": null,
        "apple_s2s_tracking_url_v2": null,
        "cross_postback_url": null,
        "default_postback_url": null,
        "postback_url": null,
        "send_organic": false,
        "cross_postback_for_all_conversions": false,
        "secure_code": null,
        "fingerprint_available": null,
        "device_id_available": null,
        "re_attribution": null,
        "unity_ads_setting": null,
        "is_google_adwords_enabled": false,
        "sdk_callback": null,
        "anti_fraud_settings": {
            "social_traffic": null,
            "emulators": null,
            "ctit_sec": null,
            "session_count": null,
            "session_sec": null,
            "proxy": null,
            "24metrics_enabled": null,
            "24metrics_level": null
        },
        "tiktok_attribution": {
            "access_token": null,
            "pixel_code": null,
            "tiktok_app_id": null,
            "offline_event_set_id": null,
            "api_events_mapping": null
        },
        "google_ads_attribution": {
            "events_mapping": null,
            "api_events_mapping": null,
            "link_id": null
        },
        "google_firebase_attribution": {
            "project_id": null
        },
        "bigo_attributes": {
            "events_mapping": null
        },
        "subscriptions": {
            "saved": null,
            "urls": null,
            "secure_code": "h5S8tS"
        },
        "settings": [],
        "signature_name": null
    }
}
 

Request   

POST api/v2/client/applications

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

store   string  optional  
url   string  optional  

This field is required unless app_status is in apk or not_published. Must be a valid URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

apple_id_package   string  optional  

This field is required when store is apple. Must not be greater than 128 characters. Example: i

package_name   string   

Must not be greater than 128 characters. Example: k

package_description   string  optional  

Example: architecto

timezone   string   

Must not be greater than 32 characters. Example: Asia/Ulaanbaatar

Must be one of:
  • Africa/Abidjan
  • Africa/Accra
  • Africa/Addis_Ababa
  • Africa/Algiers
  • Africa/Asmara
  • Africa/Bamako
  • Africa/Bangui
  • Africa/Banjul
  • Africa/Bissau
  • Africa/Blantyre
  • Africa/Brazzaville
  • Africa/Bujumbura
  • Africa/Cairo
  • Africa/Casablanca
  • Africa/Ceuta
  • Africa/Conakry
  • Africa/Dakar
  • Africa/Dar_es_Salaam
  • Africa/Djibouti
  • Africa/Douala
  • Africa/El_Aaiun
  • Africa/Freetown
  • Africa/Gaborone
  • Africa/Harare
  • Africa/Johannesburg
  • Africa/Juba
  • Africa/Kampala
  • Africa/Khartoum
  • Africa/Kigali
  • Africa/Kinshasa
  • Africa/Lagos
  • Africa/Libreville
  • Africa/Lome
  • Africa/Luanda
  • Africa/Lubumbashi
  • Africa/Lusaka
  • Africa/Malabo
  • Africa/Maputo
  • Africa/Maseru
  • Africa/Mbabane
  • Africa/Mogadishu
  • Africa/Monrovia
  • Africa/Nairobi
  • Africa/Ndjamena
  • Africa/Niamey
  • Africa/Nouakchott
  • Africa/Ouagadougou
  • Africa/Porto-Novo
  • Africa/Sao_Tome
  • Africa/Tripoli
  • Africa/Tunis
  • Africa/Windhoek
  • America/Adak
  • America/Anchorage
  • America/Anguilla
  • America/Antigua
  • America/Araguaina
  • America/Argentina/Buenos_Aires
  • America/Argentina/Catamarca
  • America/Argentina/Cordoba
  • America/Argentina/Jujuy
  • America/Argentina/La_Rioja
  • America/Argentina/Mendoza
  • America/Argentina/Rio_Gallegos
  • America/Argentina/Salta
  • America/Argentina/San_Juan
  • America/Argentina/San_Luis
  • America/Argentina/Tucuman
  • America/Argentina/Ushuaia
  • America/Aruba
  • America/Asuncion
  • America/Atikokan
  • America/Bahia
  • America/Bahia_Banderas
  • America/Barbados
  • America/Belem
  • America/Belize
  • America/Blanc-Sablon
  • America/Boa_Vista
  • America/Bogota
  • America/Boise
  • America/Cambridge_Bay
  • America/Campo_Grande
  • America/Cancun
  • America/Caracas
  • America/Cayenne
  • America/Cayman
  • America/Chicago
  • America/Chihuahua
  • America/Ciudad_Juarez
  • America/Costa_Rica
  • America/Creston
  • America/Cuiaba
  • America/Curacao
  • America/Danmarkshavn
  • America/Dawson
  • America/Dawson_Creek
  • America/Denver
  • America/Detroit
  • America/Dominica
  • America/Edmonton
  • America/Eirunepe
  • America/El_Salvador
  • America/Fort_Nelson
  • America/Fortaleza
  • America/Glace_Bay
  • America/Goose_Bay
  • America/Grand_Turk
  • America/Grenada
  • America/Guadeloupe
  • America/Guatemala
  • America/Guayaquil
  • America/Guyana
  • America/Halifax
  • America/Havana
  • America/Hermosillo
  • America/Indiana/Indianapolis
  • America/Indiana/Knox
  • America/Indiana/Marengo
  • America/Indiana/Petersburg
  • America/Indiana/Tell_City
  • America/Indiana/Vevay
  • America/Indiana/Vincennes
  • America/Indiana/Winamac
  • America/Inuvik
  • America/Iqaluit
  • America/Jamaica
  • America/Juneau
  • America/Kentucky/Louisville
  • America/Kentucky/Monticello
  • America/Kralendijk
  • America/La_Paz
  • America/Lima
  • America/Los_Angeles
  • America/Lower_Princes
  • America/Maceio
  • America/Managua
  • America/Manaus
  • America/Marigot
  • America/Martinique
  • America/Matamoros
  • America/Mazatlan
  • America/Menominee
  • America/Merida
  • America/Metlakatla
  • America/Mexico_City
  • America/Miquelon
  • America/Moncton
  • America/Monterrey
  • America/Montevideo
  • America/Montserrat
  • America/Nassau
  • America/New_York
  • America/Nome
  • America/Noronha
  • America/North_Dakota/Beulah
  • America/North_Dakota/Center
  • America/North_Dakota/New_Salem
  • America/Nuuk
  • America/Ojinaga
  • America/Panama
  • America/Paramaribo
  • America/Phoenix
  • America/Port-au-Prince
  • America/Port_of_Spain
  • America/Porto_Velho
  • America/Puerto_Rico
  • America/Punta_Arenas
  • America/Rankin_Inlet
  • America/Recife
  • America/Regina
  • America/Resolute
  • America/Rio_Branco
  • America/Santarem
  • America/Santiago
  • America/Santo_Domingo
  • America/Sao_Paulo
  • America/Scoresbysund
  • America/Sitka
  • America/St_Barthelemy
  • America/St_Johns
  • America/St_Kitts
  • America/St_Lucia
  • America/St_Thomas
  • America/St_Vincent
  • America/Swift_Current
  • America/Tegucigalpa
  • America/Thule
  • America/Tijuana
  • America/Toronto
  • America/Tortola
  • America/Vancouver
  • America/Whitehorse
  • America/Winnipeg
  • America/Yakutat
  • Antarctica/Casey
  • Antarctica/Davis
  • Antarctica/DumontDUrville
  • Antarctica/Macquarie
  • Antarctica/Mawson
  • Antarctica/McMurdo
  • Antarctica/Palmer
  • Antarctica/Rothera
  • Antarctica/Syowa
  • Antarctica/Troll
  • Antarctica/Vostok
  • Arctic/Longyearbyen
  • Asia/Aden
  • Asia/Almaty
  • Asia/Amman
  • Asia/Anadyr
  • Asia/Aqtau
  • Asia/Aqtobe
  • Asia/Ashgabat
  • Asia/Atyrau
  • Asia/Baghdad
  • Asia/Bahrain
  • Asia/Baku
  • Asia/Bangkok
  • Asia/Barnaul
  • Asia/Beirut
  • Asia/Bishkek
  • Asia/Brunei
  • Asia/Chita
  • Asia/Choibalsan
  • Asia/Colombo
  • Asia/Damascus
  • Asia/Dhaka
  • Asia/Dili
  • Asia/Dubai
  • Asia/Dushanbe
  • Asia/Famagusta
  • Asia/Gaza
  • Asia/Hebron
  • Asia/Ho_Chi_Minh
  • Asia/Hong_Kong
  • Asia/Hovd
  • Asia/Irkutsk
  • Asia/Jakarta
  • Asia/Jayapura
  • Asia/Jerusalem
  • Asia/Kabul
  • Asia/Kamchatka
  • Asia/Karachi
  • Asia/Kathmandu
  • Asia/Khandyga
  • Asia/Kolkata
  • Asia/Krasnoyarsk
  • Asia/Kuala_Lumpur
  • Asia/Kuching
  • Asia/Kuwait
  • Asia/Macau
  • Asia/Magadan
  • Asia/Makassar
  • Asia/Manila
  • Asia/Muscat
  • Asia/Nicosia
  • Asia/Novokuznetsk
  • Asia/Novosibirsk
  • Asia/Omsk
  • Asia/Oral
  • Asia/Phnom_Penh
  • Asia/Pontianak
  • Asia/Pyongyang
  • Asia/Qatar
  • Asia/Qostanay
  • Asia/Qyzylorda
  • Asia/Riyadh
  • Asia/Sakhalin
  • Asia/Samarkand
  • Asia/Seoul
  • Asia/Shanghai
  • Asia/Singapore
  • Asia/Srednekolymsk
  • Asia/Taipei
  • Asia/Tashkent
  • Asia/Tbilisi
  • Asia/Tehran
  • Asia/Thimphu
  • Asia/Tokyo
  • Asia/Tomsk
  • Asia/Ulaanbaatar
  • Asia/Urumqi
  • Asia/Ust-Nera
  • Asia/Vientiane
  • Asia/Vladivostok
  • Asia/Yakutsk
  • Asia/Yangon
  • Asia/Yekaterinburg
  • Asia/Yerevan
  • Atlantic/Azores
  • Atlantic/Bermuda
  • Atlantic/Canary
  • Atlantic/Cape_Verde
  • Atlantic/Faroe
  • Atlantic/Madeira
  • Atlantic/Reykjavik
  • Atlantic/South_Georgia
  • Atlantic/St_Helena
  • Atlantic/Stanley
  • Australia/Adelaide
  • Australia/Brisbane
  • Australia/Broken_Hill
  • Australia/Darwin
  • Australia/Eucla
  • Australia/Hobart
  • Australia/Lindeman
  • Australia/Lord_Howe
  • Australia/Melbourne
  • Australia/Perth
  • Australia/Sydney
  • Europe/Amsterdam
  • Europe/Andorra
  • Europe/Astrakhan
  • Europe/Athens
  • Europe/Belgrade
  • Europe/Berlin
  • Europe/Bratislava
  • Europe/Brussels
  • Europe/Bucharest
  • Europe/Budapest
  • Europe/Busingen
  • Europe/Chisinau
  • Europe/Copenhagen
  • Europe/Dublin
  • Europe/Gibraltar
  • Europe/Guernsey
  • Europe/Helsinki
  • Europe/Isle_of_Man
  • Europe/Istanbul
  • Europe/Jersey
  • Europe/Kaliningrad
  • Europe/Kirov
  • Europe/Kyiv
  • Europe/Lisbon
  • Europe/Ljubljana
  • Europe/London
  • Europe/Luxembourg
  • Europe/Madrid
  • Europe/Malta
  • Europe/Mariehamn
  • Europe/Minsk
  • Europe/Monaco
  • Europe/Moscow
  • Europe/Oslo
  • Europe/Paris
  • Europe/Podgorica
  • Europe/Prague
  • Europe/Riga
  • Europe/Rome
  • Europe/Samara
  • Europe/San_Marino
  • Europe/Sarajevo
  • Europe/Saratov
  • Europe/Simferopol
  • Europe/Skopje
  • Europe/Sofia
  • Europe/Stockholm
  • Europe/Tallinn
  • Europe/Tirane
  • Europe/Ulyanovsk
  • Europe/Vaduz
  • Europe/Vatican
  • Europe/Vienna
  • Europe/Vilnius
  • Europe/Volgograd
  • Europe/Warsaw
  • Europe/Zagreb
  • Europe/Zurich
  • Indian/Antananarivo
  • Indian/Chagos
  • Indian/Christmas
  • Indian/Cocos
  • Indian/Comoro
  • Indian/Kerguelen
  • Indian/Mahe
  • Indian/Maldives
  • Indian/Mauritius
  • Indian/Mayotte
  • Indian/Reunion
  • Pacific/Apia
  • Pacific/Auckland
  • Pacific/Bougainville
  • Pacific/Chatham
  • Pacific/Chuuk
  • Pacific/Easter
  • Pacific/Efate
  • Pacific/Fakaofo
  • Pacific/Fiji
  • Pacific/Funafuti
  • Pacific/Galapagos
  • Pacific/Gambier
  • Pacific/Guadalcanal
  • Pacific/Guam
  • Pacific/Honolulu
  • Pacific/Kanton
  • Pacific/Kiritimati
  • Pacific/Kosrae
  • Pacific/Kwajalein
  • Pacific/Majuro
  • Pacific/Marquesas
  • Pacific/Midway
  • Pacific/Nauru
  • Pacific/Niue
  • Pacific/Norfolk
  • Pacific/Noumea
  • Pacific/Pago_Pago
  • Pacific/Palau
  • Pacific/Pitcairn
  • Pacific/Pohnpei
  • Pacific/Port_Moresby
  • Pacific/Rarotonga
  • Pacific/Saipan
  • Pacific/Tahiti
  • Pacific/Tarawa
  • Pacific/Tongatapu
  • Pacific/Wake
  • Pacific/Wallis
  • UTC
app_status   string   

Example: architecto

currency   string   

The iso of an existing record in the currencies table. Example: architecto

name   string   

Must not be greater than 255 characters. Example: n

icon   string   

Example: architecto

client_url   string  optional  

Must be a valid URL. Example: http://bailey.com/

apk   file   

Must be a file. Example: /tmp/phpPgKdOm

List applications

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"view\": \"compact\",
    \"filter\": {
        \"query\": \"architecto\"
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "view": "compact",
    "filter": {
        "query": "architecto"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'view' => 'compact',
            'filter' => [
                'query' => 'architecto',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 74,
            "status": "active",
            "store": "telegram",
            "url": "https://t.me/+G-SOmeChaNNeluRl",
            "client_id": 1,
            "package_name": "Et fugiat.",
            "package_description": "Dormouse said--' the Hatter instead!' CHAPTER VII. A Mad Tea-Party There was a large kitchen, which was the first position in which case it would.",
            "timezone": "America/Monterrey",
            "app_status": "at_store",
            "currency": "PHP",
            "currency_iso": "PHP",
            "name": "eius et animi",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
            "is_default": false,
            "secret_key": "89a5d6ad-d9e9-4e6a-827d-352da84864cc",
            "api_secret_key": null,
            "token": "V9PP8ULGYAUSH",
            "agency_invite_token": "FQSLQ6KTD7C1J",
            "is_active": true,
            "decryption_key": null,
            "fb_app_id": null,
            "fb_meta_pixel_id": null,
            "fb_access_token": null,
            "fb_pixel_access_token": null,
            "fbc_api_enabled": null,
            "fbc_api_events": null,
            "fbc_api_events_mapping": null,
            "fb_marketing_events_mapping": null,
            "fb_pixel_events_mapping": null,
            "fbc_api_value": null,
            "fbc_api_send_organic": null,
            "use_pixel_api": null,
            "fb_send_organic": false,
            "fb_send_googleads": false,
            "fcm_key": null,
            "created_at": "2026-01-23T10:24:16.000000Z",
            "updated_at": "2026-01-23T10:24:15Z",
            "probabilistic": true,
            "apple_s2s_tracking_url_v1": null,
            "apple_s2s_tracking_url_v2": null,
            "cross_postback_url": null,
            "default_postback_url": null,
            "postback_url": null,
            "send_organic": false,
            "cross_postback_for_all_conversions": false,
            "secure_code": null,
            "fingerprint_available": null,
            "device_id_available": null,
            "re_attribution": null,
            "unity_ads_setting": null,
            "is_google_adwords_enabled": false,
            "sdk_callback": null,
            "anti_fraud_settings": {
                "social_traffic": null,
                "emulators": null,
                "ctit_sec": null,
                "session_count": null,
                "session_sec": null,
                "proxy": null,
                "24metrics_enabled": null,
                "24metrics_level": null
            },
            "tiktok_attribution": {
                "access_token": null,
                "pixel_code": null,
                "tiktok_app_id": null,
                "offline_event_set_id": null,
                "api_events_mapping": null
            },
            "google_ads_attribution": {
                "events_mapping": null,
                "api_events_mapping": null,
                "link_id": null
            },
            "google_firebase_attribution": {
                "project_id": null
            },
            "bigo_attributes": {
                "events_mapping": null
            },
            "subscriptions": {
                "saved": null,
                "urls": null,
                "secure_code": "GZRkcL"
            },
            "settings": [],
            "signature_name": null
        },
        {
            "id": 75,
            "status": "active",
            "store": "telegram",
            "url": "https://t.me/+G-SOmeChaNNeluRl",
            "client_id": 1,
            "package_name": "Quis.",
            "package_description": "Hatter, 'when the Queen was close behind her, listening: so she tried the effect of lying down on one side, to look over their heads. She felt that.",
            "timezone": "America/Matamoros",
            "app_status": "at_store",
            "currency": "CLP",
            "currency_iso": "CLP",
            "name": "enim non facere",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
            "is_default": false,
            "secret_key": "af056617-7769-421a-9f17-fcffc3974e72",
            "api_secret_key": null,
            "token": "DFNNGWT105S60",
            "agency_invite_token": "1C8S3MLHB8FM9",
            "is_active": true,
            "decryption_key": null,
            "fb_app_id": null,
            "fb_meta_pixel_id": null,
            "fb_access_token": null,
            "fb_pixel_access_token": null,
            "fbc_api_enabled": null,
            "fbc_api_events": null,
            "fbc_api_events_mapping": null,
            "fb_marketing_events_mapping": null,
            "fb_pixel_events_mapping": null,
            "fbc_api_value": null,
            "fbc_api_send_organic": null,
            "use_pixel_api": null,
            "fb_send_organic": false,
            "fb_send_googleads": false,
            "fcm_key": null,
            "created_at": "2026-01-23T10:24:16.000000Z",
            "updated_at": "2026-01-23T10:24:15Z",
            "probabilistic": true,
            "apple_s2s_tracking_url_v1": null,
            "apple_s2s_tracking_url_v2": null,
            "cross_postback_url": null,
            "default_postback_url": null,
            "postback_url": null,
            "send_organic": false,
            "cross_postback_for_all_conversions": false,
            "secure_code": null,
            "fingerprint_available": null,
            "device_id_available": null,
            "re_attribution": null,
            "unity_ads_setting": null,
            "is_google_adwords_enabled": false,
            "sdk_callback": null,
            "anti_fraud_settings": {
                "social_traffic": null,
                "emulators": null,
                "ctit_sec": null,
                "session_count": null,
                "session_sec": null,
                "proxy": null,
                "24metrics_enabled": null,
                "24metrics_level": null
            },
            "tiktok_attribution": {
                "access_token": null,
                "pixel_code": null,
                "tiktok_app_id": null,
                "offline_event_set_id": null,
                "api_events_mapping": null
            },
            "google_ads_attribution": {
                "events_mapping": null,
                "api_events_mapping": null,
                "link_id": null
            },
            "google_firebase_attribution": {
                "project_id": null
            },
            "bigo_attributes": {
                "events_mapping": null
            },
            "subscriptions": {
                "saved": null,
                "urls": null,
                "secure_code": "eRlq7z"
            },
            "settings": [],
            "signature_name": null
        }
    ]
}
 

Request   

GET api/v2/client/applications

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

view   string  optional  

Example: compact

Must be one of:
  • compact
filter   object  optional  
query   string  optional  

Example: architecto

status   string  optional  

Get application

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 76,
        "status": "active",
        "store": "apple",
        "url": "https://apps.apple.com/us/app/aut-adipisci-quidem/id387771637",
        "client_id": 1,
        "package_name": "Commodi.",
        "package_description": "King, looking round the refreshments!' But there seemed to be a lesson to you to leave it behind?' She said this last word with such a long hookah.",
        "timezone": "America/Miquelon",
        "app_status": "at_store",
        "currency": "CZK",
        "currency_iso": "CZK",
        "name": "aut adipisci quidem",
        "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
        "is_default": false,
        "secret_key": "1b6cee82-c501-4b28-9f51-b4e61389ac72",
        "api_secret_key": null,
        "token": "6SGDPP05ONI3D",
        "agency_invite_token": "62F9T5G6UMVDI",
        "is_active": true,
        "decryption_key": null,
        "fb_app_id": null,
        "fb_meta_pixel_id": null,
        "fb_access_token": null,
        "fb_pixel_access_token": null,
        "fbc_api_enabled": null,
        "fbc_api_events": null,
        "fbc_api_events_mapping": null,
        "fb_marketing_events_mapping": null,
        "fb_pixel_events_mapping": null,
        "fbc_api_value": null,
        "fbc_api_send_organic": null,
        "use_pixel_api": null,
        "fb_send_organic": false,
        "fb_send_googleads": false,
        "fcm_key": null,
        "created_at": "2026-01-23T10:24:17.000000Z",
        "updated_at": "2026-01-23T10:24:16Z",
        "probabilistic": true,
        "apple_s2s_tracking_url_v1": null,
        "apple_s2s_tracking_url_v2": null,
        "cross_postback_url": null,
        "default_postback_url": null,
        "postback_url": null,
        "send_organic": false,
        "cross_postback_for_all_conversions": false,
        "secure_code": null,
        "fingerprint_available": null,
        "device_id_available": null,
        "re_attribution": null,
        "unity_ads_setting": null,
        "is_google_adwords_enabled": false,
        "apple_id_package": null,
        "sdk_callback": null,
        "anti_fraud_settings": {
            "social_traffic": null,
            "emulators": null,
            "ctit_sec": null,
            "session_count": null,
            "session_sec": null,
            "proxy": null,
            "24metrics_enabled": null,
            "24metrics_level": null
        },
        "tiktok_attribution": {
            "access_token": null,
            "pixel_code": null,
            "tiktok_app_id": null,
            "offline_event_set_id": null,
            "api_events_mapping": null
        },
        "google_ads_attribution": {
            "events_mapping": null,
            "api_events_mapping": null,
            "link_id": null
        },
        "google_firebase_attribution": {
            "project_id": null
        },
        "bigo_attributes": {
            "events_mapping": null
        },
        "subscriptions": {
            "saved": null,
            "urls": null,
            "secure_code": "gBnBlO"
        },
        "settings": [],
        "signature_name": null
    }
}
 

Request   

GET api/v2/client/applications/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the application. Example: 1

Delete application

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/applications/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/client/applications/{application_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Partially update application

Example request:
curl --request PATCH \
    "https://app.affisemmp.com/api/v2/client/applications/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"sdk_callback\": \"n\",
    \"package_name\": \"g\",
    \"package_description\": \"architecto\",
    \"fcm_key\": \"n\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "sdk_callback": "n",
    "package_name": "g",
    "package_description": "architecto",
    "fcm_key": "n"
};

fetch(url, {
    method: "PATCH",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1';
$response = $client->patch(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'sdk_callback' => 'n',
            'package_name' => 'g',
            'package_description' => 'architecto',
            'fcm_key' => 'n',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PATCH api/v2/client/applications/{application_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

name   string  optional  

Must not be greater than 255 characters. Example: b

status   string  optional  
sdk_callback   string  optional  

Must not be greater than 255 characters. Example: n

package_name   string  optional  

Must not be greater than 128 characters. Example: g

package_description   string  optional  

Example: architecto

fcm_key   string  optional  

Must not be greater than 255 characters. Example: n

Update application general settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/general" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"timezone\": \"Asia\\/Yekaterinburg\",
    \"currency_iso\": \"architecto\",
    \"probabilistic\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/general"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "timezone": "Asia\/Yekaterinburg",
    "currency_iso": "architecto",
    "probabilistic": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/general';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'timezone' => 'Asia/Yekaterinburg',
            'currency_iso' => 'architecto',
            'probabilistic' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/general

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

timezone   string   

Must not be greater than 32 characters. Example: Asia/Yekaterinburg

Must be one of:
  • Africa/Abidjan
  • Africa/Accra
  • Africa/Addis_Ababa
  • Africa/Algiers
  • Africa/Asmara
  • Africa/Bamako
  • Africa/Bangui
  • Africa/Banjul
  • Africa/Bissau
  • Africa/Blantyre
  • Africa/Brazzaville
  • Africa/Bujumbura
  • Africa/Cairo
  • Africa/Casablanca
  • Africa/Ceuta
  • Africa/Conakry
  • Africa/Dakar
  • Africa/Dar_es_Salaam
  • Africa/Djibouti
  • Africa/Douala
  • Africa/El_Aaiun
  • Africa/Freetown
  • Africa/Gaborone
  • Africa/Harare
  • Africa/Johannesburg
  • Africa/Juba
  • Africa/Kampala
  • Africa/Khartoum
  • Africa/Kigali
  • Africa/Kinshasa
  • Africa/Lagos
  • Africa/Libreville
  • Africa/Lome
  • Africa/Luanda
  • Africa/Lubumbashi
  • Africa/Lusaka
  • Africa/Malabo
  • Africa/Maputo
  • Africa/Maseru
  • Africa/Mbabane
  • Africa/Mogadishu
  • Africa/Monrovia
  • Africa/Nairobi
  • Africa/Ndjamena
  • Africa/Niamey
  • Africa/Nouakchott
  • Africa/Ouagadougou
  • Africa/Porto-Novo
  • Africa/Sao_Tome
  • Africa/Tripoli
  • Africa/Tunis
  • Africa/Windhoek
  • America/Adak
  • America/Anchorage
  • America/Anguilla
  • America/Antigua
  • America/Araguaina
  • America/Argentina/Buenos_Aires
  • America/Argentina/Catamarca
  • America/Argentina/Cordoba
  • America/Argentina/Jujuy
  • America/Argentina/La_Rioja
  • America/Argentina/Mendoza
  • America/Argentina/Rio_Gallegos
  • America/Argentina/Salta
  • America/Argentina/San_Juan
  • America/Argentina/San_Luis
  • America/Argentina/Tucuman
  • America/Argentina/Ushuaia
  • America/Aruba
  • America/Asuncion
  • America/Atikokan
  • America/Bahia
  • America/Bahia_Banderas
  • America/Barbados
  • America/Belem
  • America/Belize
  • America/Blanc-Sablon
  • America/Boa_Vista
  • America/Bogota
  • America/Boise
  • America/Cambridge_Bay
  • America/Campo_Grande
  • America/Cancun
  • America/Caracas
  • America/Cayenne
  • America/Cayman
  • America/Chicago
  • America/Chihuahua
  • America/Ciudad_Juarez
  • America/Costa_Rica
  • America/Creston
  • America/Cuiaba
  • America/Curacao
  • America/Danmarkshavn
  • America/Dawson
  • America/Dawson_Creek
  • America/Denver
  • America/Detroit
  • America/Dominica
  • America/Edmonton
  • America/Eirunepe
  • America/El_Salvador
  • America/Fort_Nelson
  • America/Fortaleza
  • America/Glace_Bay
  • America/Goose_Bay
  • America/Grand_Turk
  • America/Grenada
  • America/Guadeloupe
  • America/Guatemala
  • America/Guayaquil
  • America/Guyana
  • America/Halifax
  • America/Havana
  • America/Hermosillo
  • America/Indiana/Indianapolis
  • America/Indiana/Knox
  • America/Indiana/Marengo
  • America/Indiana/Petersburg
  • America/Indiana/Tell_City
  • America/Indiana/Vevay
  • America/Indiana/Vincennes
  • America/Indiana/Winamac
  • America/Inuvik
  • America/Iqaluit
  • America/Jamaica
  • America/Juneau
  • America/Kentucky/Louisville
  • America/Kentucky/Monticello
  • America/Kralendijk
  • America/La_Paz
  • America/Lima
  • America/Los_Angeles
  • America/Lower_Princes
  • America/Maceio
  • America/Managua
  • America/Manaus
  • America/Marigot
  • America/Martinique
  • America/Matamoros
  • America/Mazatlan
  • America/Menominee
  • America/Merida
  • America/Metlakatla
  • America/Mexico_City
  • America/Miquelon
  • America/Moncton
  • America/Monterrey
  • America/Montevideo
  • America/Montserrat
  • America/Nassau
  • America/New_York
  • America/Nome
  • America/Noronha
  • America/North_Dakota/Beulah
  • America/North_Dakota/Center
  • America/North_Dakota/New_Salem
  • America/Nuuk
  • America/Ojinaga
  • America/Panama
  • America/Paramaribo
  • America/Phoenix
  • America/Port-au-Prince
  • America/Port_of_Spain
  • America/Porto_Velho
  • America/Puerto_Rico
  • America/Punta_Arenas
  • America/Rankin_Inlet
  • America/Recife
  • America/Regina
  • America/Resolute
  • America/Rio_Branco
  • America/Santarem
  • America/Santiago
  • America/Santo_Domingo
  • America/Sao_Paulo
  • America/Scoresbysund
  • America/Sitka
  • America/St_Barthelemy
  • America/St_Johns
  • America/St_Kitts
  • America/St_Lucia
  • America/St_Thomas
  • America/St_Vincent
  • America/Swift_Current
  • America/Tegucigalpa
  • America/Thule
  • America/Tijuana
  • America/Toronto
  • America/Tortola
  • America/Vancouver
  • America/Whitehorse
  • America/Winnipeg
  • America/Yakutat
  • Antarctica/Casey
  • Antarctica/Davis
  • Antarctica/DumontDUrville
  • Antarctica/Macquarie
  • Antarctica/Mawson
  • Antarctica/McMurdo
  • Antarctica/Palmer
  • Antarctica/Rothera
  • Antarctica/Syowa
  • Antarctica/Troll
  • Antarctica/Vostok
  • Arctic/Longyearbyen
  • Asia/Aden
  • Asia/Almaty
  • Asia/Amman
  • Asia/Anadyr
  • Asia/Aqtau
  • Asia/Aqtobe
  • Asia/Ashgabat
  • Asia/Atyrau
  • Asia/Baghdad
  • Asia/Bahrain
  • Asia/Baku
  • Asia/Bangkok
  • Asia/Barnaul
  • Asia/Beirut
  • Asia/Bishkek
  • Asia/Brunei
  • Asia/Chita
  • Asia/Choibalsan
  • Asia/Colombo
  • Asia/Damascus
  • Asia/Dhaka
  • Asia/Dili
  • Asia/Dubai
  • Asia/Dushanbe
  • Asia/Famagusta
  • Asia/Gaza
  • Asia/Hebron
  • Asia/Ho_Chi_Minh
  • Asia/Hong_Kong
  • Asia/Hovd
  • Asia/Irkutsk
  • Asia/Jakarta
  • Asia/Jayapura
  • Asia/Jerusalem
  • Asia/Kabul
  • Asia/Kamchatka
  • Asia/Karachi
  • Asia/Kathmandu
  • Asia/Khandyga
  • Asia/Kolkata
  • Asia/Krasnoyarsk
  • Asia/Kuala_Lumpur
  • Asia/Kuching
  • Asia/Kuwait
  • Asia/Macau
  • Asia/Magadan
  • Asia/Makassar
  • Asia/Manila
  • Asia/Muscat
  • Asia/Nicosia
  • Asia/Novokuznetsk
  • Asia/Novosibirsk
  • Asia/Omsk
  • Asia/Oral
  • Asia/Phnom_Penh
  • Asia/Pontianak
  • Asia/Pyongyang
  • Asia/Qatar
  • Asia/Qostanay
  • Asia/Qyzylorda
  • Asia/Riyadh
  • Asia/Sakhalin
  • Asia/Samarkand
  • Asia/Seoul
  • Asia/Shanghai
  • Asia/Singapore
  • Asia/Srednekolymsk
  • Asia/Taipei
  • Asia/Tashkent
  • Asia/Tbilisi
  • Asia/Tehran
  • Asia/Thimphu
  • Asia/Tokyo
  • Asia/Tomsk
  • Asia/Ulaanbaatar
  • Asia/Urumqi
  • Asia/Ust-Nera
  • Asia/Vientiane
  • Asia/Vladivostok
  • Asia/Yakutsk
  • Asia/Yangon
  • Asia/Yekaterinburg
  • Asia/Yerevan
  • Atlantic/Azores
  • Atlantic/Bermuda
  • Atlantic/Canary
  • Atlantic/Cape_Verde
  • Atlantic/Faroe
  • Atlantic/Madeira
  • Atlantic/Reykjavik
  • Atlantic/South_Georgia
  • Atlantic/St_Helena
  • Atlantic/Stanley
  • Australia/Adelaide
  • Australia/Brisbane
  • Australia/Broken_Hill
  • Australia/Darwin
  • Australia/Eucla
  • Australia/Hobart
  • Australia/Lindeman
  • Australia/Lord_Howe
  • Australia/Melbourne
  • Australia/Perth
  • Australia/Sydney
  • Europe/Amsterdam
  • Europe/Andorra
  • Europe/Astrakhan
  • Europe/Athens
  • Europe/Belgrade
  • Europe/Berlin
  • Europe/Bratislava
  • Europe/Brussels
  • Europe/Bucharest
  • Europe/Budapest
  • Europe/Busingen
  • Europe/Chisinau
  • Europe/Copenhagen
  • Europe/Dublin
  • Europe/Gibraltar
  • Europe/Guernsey
  • Europe/Helsinki
  • Europe/Isle_of_Man
  • Europe/Istanbul
  • Europe/Jersey
  • Europe/Kaliningrad
  • Europe/Kirov
  • Europe/Kyiv
  • Europe/Lisbon
  • Europe/Ljubljana
  • Europe/London
  • Europe/Luxembourg
  • Europe/Madrid
  • Europe/Malta
  • Europe/Mariehamn
  • Europe/Minsk
  • Europe/Monaco
  • Europe/Moscow
  • Europe/Oslo
  • Europe/Paris
  • Europe/Podgorica
  • Europe/Prague
  • Europe/Riga
  • Europe/Rome
  • Europe/Samara
  • Europe/San_Marino
  • Europe/Sarajevo
  • Europe/Saratov
  • Europe/Simferopol
  • Europe/Skopje
  • Europe/Sofia
  • Europe/Stockholm
  • Europe/Tallinn
  • Europe/Tirane
  • Europe/Ulyanovsk
  • Europe/Vaduz
  • Europe/Vatican
  • Europe/Vienna
  • Europe/Vilnius
  • Europe/Volgograd
  • Europe/Warsaw
  • Europe/Zagreb
  • Europe/Zurich
  • Indian/Antananarivo
  • Indian/Chagos
  • Indian/Christmas
  • Indian/Cocos
  • Indian/Comoro
  • Indian/Kerguelen
  • Indian/Mahe
  • Indian/Maldives
  • Indian/Mauritius
  • Indian/Mayotte
  • Indian/Reunion
  • Pacific/Apia
  • Pacific/Auckland
  • Pacific/Bougainville
  • Pacific/Chatham
  • Pacific/Chuuk
  • Pacific/Easter
  • Pacific/Efate
  • Pacific/Fakaofo
  • Pacific/Fiji
  • Pacific/Funafuti
  • Pacific/Galapagos
  • Pacific/Gambier
  • Pacific/Guadalcanal
  • Pacific/Guam
  • Pacific/Honolulu
  • Pacific/Kanton
  • Pacific/Kiritimati
  • Pacific/Kosrae
  • Pacific/Kwajalein
  • Pacific/Majuro
  • Pacific/Marquesas
  • Pacific/Midway
  • Pacific/Nauru
  • Pacific/Niue
  • Pacific/Norfolk
  • Pacific/Noumea
  • Pacific/Pago_Pago
  • Pacific/Palau
  • Pacific/Pitcairn
  • Pacific/Pohnpei
  • Pacific/Port_Moresby
  • Pacific/Rarotonga
  • Pacific/Saipan
  • Pacific/Tahiti
  • Pacific/Tarawa
  • Pacific/Tongatapu
  • Pacific/Wake
  • Pacific/Wallis
  • UTC
currency_iso   string   

The iso of an existing record in the currencies table. Example: architecto

probabilistic   boolean   

Example: false

is_default   string  optional  

Update application settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"cross_postback_url\": \"http:\\/\\/www.bailey.biz\\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html\",
    \"default_postback_url\": \"https:\\/\\/www.runte.com\\/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci\",
    \"send_organic\": false,
    \"cross_postback_for_all_conversions\": true,
    \"secure_code\": \"lvqwrsitcpscqldz\",
    \"fingerprint_available\": 8,
    \"device_id_available\": 3601,
    \"re_attribution\": false,
    \"client_url\": \"https:\\/\\/www.feeney.com\\/praesentium-quis-adipisci-molestias-fugit\",
    \"conversion_postbacks\": [
        {
            \"conversion_type\": \"architecto\",
            \"postback_urls\": [
                \"n\"
            ],
            \"click_filter\": [
                {
                    \"param\": \"g\",
                    \"values\": []
                }
            ],
            \"cost\": 1,
            \"send_organic\": false
        }
    ],
    \"settings\": {
        \"tracking_block_list\": [
            {
                \"param\": \"g\",
                \"values\": [
                    \"architecto\"
                ]
            }
        ]
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "cross_postback_url": "http:\/\/www.bailey.biz\/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html",
    "default_postback_url": "https:\/\/www.runte.com\/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci",
    "send_organic": false,
    "cross_postback_for_all_conversions": true,
    "secure_code": "lvqwrsitcpscqldz",
    "fingerprint_available": 8,
    "device_id_available": 3601,
    "re_attribution": false,
    "client_url": "https:\/\/www.feeney.com\/praesentium-quis-adipisci-molestias-fugit",
    "conversion_postbacks": [
        {
            "conversion_type": "architecto",
            "postback_urls": [
                "n"
            ],
            "click_filter": [
                {
                    "param": "g",
                    "values": []
                }
            ],
            "cost": 1,
            "send_organic": false
        }
    ],
    "settings": {
        "tracking_block_list": [
            {
                "param": "g",
                "values": [
                    "architecto"
                ]
            }
        ]
    }
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'cross_postback_url' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html',
            'default_postback_url' => 'https://www.runte.com/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci',
            'send_organic' => false,
            'cross_postback_for_all_conversions' => true,
            'secure_code' => 'lvqwrsitcpscqldz',
            'fingerprint_available' => 8,
            'device_id_available' => 3601,
            're_attribution' => false,
            'client_url' => 'https://www.feeney.com/praesentium-quis-adipisci-molestias-fugit',
            'conversion_postbacks' => [
                [
                    'conversion_type' => 'architecto',
                    'postback_urls' => [
                        'n',
                    ],
                    'click_filter' => [
                        [
                            'param' => 'g',
                            'values' => [],
                        ],
                    ],
                    'cost' => 1,
                    'send_organic' => false,
                ],
            ],
            'settings' => [
                'tracking_block_list' => [
                    [
                        'param' => 'g',
                        'values' => [
                            'architecto',
                        ],
                    ],
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

conversion_postbacks   object[]  optional  
conversion_type   string   

Example: architecto

postback_urls   string[]  optional  

Must not be greater than 4000 characters.

click_filter   object[]  optional  
param   string   

Must not be greater than 256 characters. Example: g

values   object   

Must have at least 1 items.

cost   number   

Must not be greater than 99999.99. Example: 1

send_organic   boolean  optional  

Example: false

cross_postback_url   string  optional  

Must not be greater than 4000 characters. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

default_postback_url   string  optional  

Must not be greater than 4000 characters. Example: https://www.runte.com/ab-provident-perspiciatis-quo-omnis-nostrum-aut-adipisci

send_organic   boolean  optional  

Example: false

cross_postback_for_all_conversions   boolean  optional  

Example: true

secure_code   string  optional  

Must be at least 2 characters. Must not be greater than 20 characters. Example: lvqwrsitcpscqldz

fingerprint_available   integer   

Must be at least 3600. Must not be greater than 604800. Example: 8

device_id_available   integer   

Must be between 3600 and 604800. Example: 3601

re_attribution   boolean   

Example: false

client_url   string  optional  

Must be a valid URL. Example: https://www.feeney.com/praesentium-quis-adipisci-molestias-fugit

settings   object  optional  
tracking_block_list   object[]  optional  
param   string   

Must not be greater than 256 characters. Example: g

values   string[]  optional  
sdk_events   object  optional  
api_events   object  optional  

Publish application

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/publish" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"icon\": \"architecto\",
    \"package_description\": \"architecto\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/publish"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "icon": "architecto",
    "package_description": "architecto"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/publish';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'icon' => 'architecto',
            'package_description' => 'architecto',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 77,
        "status": "active",
        "store": "telegram",
        "url": "https://t.me/+G-SOmeChaNNeluRl",
        "client_id": 1,
        "package_name": "Et fugiat.",
        "package_description": "Dormouse said--' the Hatter instead!' CHAPTER VII. A Mad Tea-Party There was a large kitchen, which was the first position in which case it would.",
        "timezone": "America/Monterrey",
        "app_status": "at_store",
        "currency": "LTL",
        "currency_iso": "LTL",
        "name": "eius et animi",
        "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
        "is_default": false,
        "secret_key": "878a7333-8e02-48c3-a527-336519e37acf",
        "api_secret_key": null,
        "token": "ECA9MWZCF9T9Y",
        "agency_invite_token": "RLDAWQAHFA88K",
        "is_active": true,
        "decryption_key": null,
        "fb_app_id": null,
        "fb_meta_pixel_id": null,
        "fb_access_token": null,
        "fb_pixel_access_token": null,
        "fbc_api_enabled": null,
        "fbc_api_events": null,
        "fbc_api_events_mapping": null,
        "fb_marketing_events_mapping": null,
        "fb_pixel_events_mapping": null,
        "fbc_api_value": null,
        "fbc_api_send_organic": null,
        "use_pixel_api": null,
        "fb_send_organic": false,
        "fb_send_googleads": false,
        "fcm_key": null,
        "created_at": "2026-01-23T10:24:17.000000Z",
        "updated_at": "2026-01-23T10:24:16Z",
        "probabilistic": true,
        "apple_s2s_tracking_url_v1": null,
        "apple_s2s_tracking_url_v2": null,
        "cross_postback_url": null,
        "default_postback_url": null,
        "postback_url": null,
        "send_organic": false,
        "cross_postback_for_all_conversions": false,
        "secure_code": null,
        "fingerprint_available": null,
        "device_id_available": null,
        "re_attribution": null,
        "unity_ads_setting": null,
        "is_google_adwords_enabled": false,
        "sdk_callback": null,
        "anti_fraud_settings": {
            "social_traffic": null,
            "emulators": null,
            "ctit_sec": null,
            "session_count": null,
            "session_sec": null,
            "proxy": null,
            "24metrics_enabled": null,
            "24metrics_level": null
        },
        "tiktok_attribution": {
            "access_token": null,
            "pixel_code": null,
            "tiktok_app_id": null,
            "offline_event_set_id": null,
            "api_events_mapping": null
        },
        "google_ads_attribution": {
            "events_mapping": null,
            "api_events_mapping": null,
            "link_id": null
        },
        "google_firebase_attribution": {
            "project_id": null
        },
        "bigo_attributes": {
            "events_mapping": null
        },
        "subscriptions": {
            "saved": null,
            "urls": null,
            "secure_code": "453Sh9"
        },
        "settings": [],
        "signature_name": null
    }
}
 

Request   

POST api/v2/client/applications/{application_id}/publish

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

name   string   

Must not be greater than 255 characters. Example: b

url   string   

Must be a valid URL. Example: http://bailey.com/

store   string  optional  
icon   string   

Example: architecto

package_description   string  optional  

Example: architecto

Update application apk version

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/update-apk" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "apk=@/tmp/phpEEaNhD" 
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/update-apk"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('apk', document.querySelector('input[name="apk"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/update-apk';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'apk',
                'contents' => fopen('/tmp/phpEEaNhD', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/update-apk

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

apk   file   

Must be a file. Example: /tmp/phpEEaNhD

Update application anti fraud settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/anti-fraud-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"social_traffic\": false,
    \"emulators\": false,
    \"ctit_sec\": 7,
    \"session_count\": 16,
    \"session_sec\": 17,
    \"proxy\": true,
    \"24metrics_enabled\": true
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/anti-fraud-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "social_traffic": false,
    "emulators": false,
    "ctit_sec": 7,
    "session_count": 16,
    "session_sec": 17,
    "proxy": true,
    "24metrics_enabled": true
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/anti-fraud-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'social_traffic' => false,
            'emulators' => false,
            'ctit_sec' => 7,
            'session_count' => 16,
            'session_sec' => 17,
            'proxy' => true,
            '24metrics_enabled' => true,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/anti-fraud-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

social_traffic   boolean  optional  

Example: false

emulators   boolean  optional  

Example: false

ctit_sec   integer  optional  

Must be at least 1. Must not be greater than 999. Example: 7

session_count   integer  optional  

Must be at least 1. Must not be greater than 999. Example: 16

session_sec   integer  optional  

Must be at least 1. Must not be greater than 999. Example: 17

proxy   boolean  optional  

Example: true

24metrics_enabled   boolean  optional  

Example: true

24metrics_level   string  optional  

Update application subscriptions

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/subscriptions" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/subscriptions"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "POST",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/subscriptions';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/subscriptions

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

subscriptions   string[]  optional  

Delete application signature

Removes the APK signing configuration for an application. After deletion, the default signature will be used.

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/applications/1/signature" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/signature"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/signature';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Application signature successfully deleted"
}
 

Request   

DELETE api/v2/client/applications/{application_id}/signature

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Get store metadata

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/application/store-data" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"store\": \"architecto\",
    \"url\": \"http:\\/\\/bailey.com\\/\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/application/store-data"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "store": "architecto",
    "url": "http:\/\/bailey.com\/"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/application/store-data';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'store' => 'architecto',
            'url' => 'http://bailey.com/',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
set-cookie: attribution_api_local_session=eyJpdiI6IjVzemhhWHk0VHpaeFNxbVk3ejZCU2c9PSIsInZhbHVlIjoib2Y5Wm9LdS96YUVXN3RuSFZzSkUyMW5sV2ptVWhxa3pGcTBDMnJZdmpuRzBDVXAyc3N2Ym5GbHFER0FEN3phZXI4NUJzdmJwK25MWUwwd0taZWxsbkUrSTEvTE9tejNLQng5a0hyNE1rMWtXSTNCaHUweENMVEF0S3NxdEVBVHEiLCJtYWMiOiI1OWFjYWI4OGM2NDI0NGUzODkyN2FhMzBmZmFiN2JjNTUwMmJlMmQwZjdkNzRiNzRhMGY4ZDIxN2UzNTlmMTk3IiwidGFnIjoiIn0%3D; expires=Fri, 30 Jan 2026 10:24:17 GMT; Max-Age=604800; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/v2/client/application/store-data

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

store   string   

Example: architecto

url   string   

Must be a valid URL. Example: http://bailey.com/

Update application facebook settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/fb-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"decryption_key\": \"b\",
    \"fb_app_id\": \"n\",
    \"fb_meta_pixel_id\": \"g\",
    \"fb_access_token\": \"z\",
    \"fb_pixel_access_token\": \"m\",
    \"fbc_api_enabled\": true,
    \"fbc_api_value\": \"y\",
    \"fbc_api_send_organic\": false,
    \"use_pixel_api\": false,
    \"fb_send_organic\": false,
    \"fb_send_googleads\": false,
    \"fbc_api_events_mapping\": [
        []
    ],
    \"fb_marketing_events_mapping\": [
        {
            \"affise_event\": \"architecto\",
            \"adapty_subs_event\": \"architecto\",
            \"apphud_subs_event\": \"architecto\",
            \"revenuecat_subs_event\": \"architecto\",
            \"facebook_marketing_event\": \"fb_mobile_rate\"
        }
    ],
    \"fb_pixel_events_mapping\": [
        {
            \"affise_event\": \"architecto\",
            \"adapty_subs_event\": \"architecto\",
            \"apphud_subs_event\": \"architecto\",
            \"revenuecat_subs_event\": \"architecto\",
            \"facebook_pixel_event\": \"AddToWishlist\"
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/fb-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "decryption_key": "b",
    "fb_app_id": "n",
    "fb_meta_pixel_id": "g",
    "fb_access_token": "z",
    "fb_pixel_access_token": "m",
    "fbc_api_enabled": true,
    "fbc_api_value": "y",
    "fbc_api_send_organic": false,
    "use_pixel_api": false,
    "fb_send_organic": false,
    "fb_send_googleads": false,
    "fbc_api_events_mapping": [
        []
    ],
    "fb_marketing_events_mapping": [
        {
            "affise_event": "architecto",
            "adapty_subs_event": "architecto",
            "apphud_subs_event": "architecto",
            "revenuecat_subs_event": "architecto",
            "facebook_marketing_event": "fb_mobile_rate"
        }
    ],
    "fb_pixel_events_mapping": [
        {
            "affise_event": "architecto",
            "adapty_subs_event": "architecto",
            "apphud_subs_event": "architecto",
            "revenuecat_subs_event": "architecto",
            "facebook_pixel_event": "AddToWishlist"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/fb-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'decryption_key' => 'b',
            'fb_app_id' => 'n',
            'fb_meta_pixel_id' => 'g',
            'fb_access_token' => 'z',
            'fb_pixel_access_token' => 'm',
            'fbc_api_enabled' => true,
            'fbc_api_value' => 'y',
            'fbc_api_send_organic' => false,
            'use_pixel_api' => false,
            'fb_send_organic' => false,
            'fb_send_googleads' => false,
            'fbc_api_events_mapping' => [
                [],
            ],
            'fb_marketing_events_mapping' => [
                [
                    'affise_event' => 'architecto',
                    'adapty_subs_event' => 'architecto',
                    'apphud_subs_event' => 'architecto',
                    'revenuecat_subs_event' => 'architecto',
                    'facebook_marketing_event' => 'fb_mobile_rate',
                ],
            ],
            'fb_pixel_events_mapping' => [
                [
                    'affise_event' => 'architecto',
                    'adapty_subs_event' => 'architecto',
                    'apphud_subs_event' => 'architecto',
                    'revenuecat_subs_event' => 'architecto',
                    'facebook_pixel_event' => 'AddToWishlist',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/fb-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

decryption_key   string  optional  

Must not be greater than 128 characters. Example: b

fb_app_id   string  optional  

Must not be greater than 128 characters. Example: n

fb_meta_pixel_id   string  optional  

Must not be greater than 128 characters. Example: g

fb_access_token   string  optional  

Must not be greater than 255 characters. Example: z

fb_pixel_access_token   string  optional  

Must not be greater than 255 characters. Example: m

fbc_api_enabled   boolean  optional  

Example: true

fbc_api_events   string[]  optional  
fbc_api_events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

0   object  optional  
0   string  optional  
1   string  optional  
fb_marketing_events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

affise_event   string  optional  

Example: architecto

adapty_subs_event   string  optional  

Example: architecto

apphud_subs_event   string  optional  

Example: architecto

revenuecat_subs_event   string  optional  

Example: architecto

facebook_marketing_event   string  optional  

Example: fb_mobile_rate

Must be one of:
  • MOBILE_APP_INSTALL
  • StartTrial
  • SubmitApplication
  • Subscribe
  • FindLocation
  • Schedule
  • Contact
  • CustomizeProduct
  • Donate
  • AdClick
  • AdImpression
  • fb_mobile_achievement_unlocked
  • fb_mobile_activate_app
  • fb_mobile_add_payment_info
  • fb_mobile_add_to_cart
  • fb_mobile_add_to_wishlist
  • fb_mobile_complete_registration
  • fb_mobile_content_view
  • fb_mobile_initiated_checkout
  • fb_mobile_level_achieved
  • fb_mobile_purchase
  • fb_mobile_rate
  • fb_mobile_search
  • fb_mobile_spent_credits
  • fb_mobile_tutorial_completion
fb_pixel_events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

affise_event   string  optional  

Example: architecto

adapty_subs_event   string  optional  

Example: architecto

apphud_subs_event   string  optional  

Example: architecto

revenuecat_subs_event   string  optional  

Example: architecto

facebook_pixel_event   string  optional  

Example: AddToWishlist

Must be one of:
  • mobile_app_install
  • AddPaymentInfo
  • AddToCart
  • AddToWishlist
  • CompleteRegistration
  • Contact
  • CustomizeProduct
  • Donate
  • FindLocation
  • InitiateCheckout
  • Lead
  • Purchase
  • Schedule
  • Search
  • StartTrial
  • SubmitApplication
  • Subscribe
  • ViewContent
fbc_api_value   string  optional  

Must not be greater than 128 characters. Example: y

fbc_api_send_organic   boolean  optional  

Example: false

use_pixel_api   boolean  optional  

Example: false

fb_send_organic   boolean  optional  

Example: false

fb_send_googleads   boolean  optional  

Example: false

Update application tiktok settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/tiktok-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"access_token\": \"b\",
    \"pixel_code\": \"n\",
    \"tiktok_app_id\": \"g\",
    \"offline_event_set_id\": \"z\",
    \"api_events_mapping\": [
        {
            \"affise_event\": \"architecto\",
            \"tiktok_event\": \"SubmitForm\"
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/tiktok-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "access_token": "b",
    "pixel_code": "n",
    "tiktok_app_id": "g",
    "offline_event_set_id": "z",
    "api_events_mapping": [
        {
            "affise_event": "architecto",
            "tiktok_event": "SubmitForm"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/tiktok-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'access_token' => 'b',
            'pixel_code' => 'n',
            'tiktok_app_id' => 'g',
            'offline_event_set_id' => 'z',
            'api_events_mapping' => [
                [
                    'affise_event' => 'architecto',
                    'tiktok_event' => 'SubmitForm',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/tiktok-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

access_token   string  optional  

Must not be greater than 255 characters. Example: b

pixel_code   string  optional  

Must not be greater than 255 characters. Example: n

tiktok_app_id   string  optional  

Must not be greater than 255 characters. Example: g

offline_event_set_id   string  optional  

Must not be greater than 255 characters. Example: z

api_events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

affise_event   string  optional  

Example: architecto

tiktok_event   string  optional  

Example: SubmitForm

Must be one of:
  • AddPaymentInfo
  • AddToCart
  • AddToWishlist
  • ClickButton
  • CompletePayment
  • CompleteRegistration
  • Contact
  • Download
  • InitiateCheckout
  • PlaceAnOrder
  • Search
  • SubmitForm
  • Subscribe
  • ViewContent

Update application bigo settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/bigo-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"events_mapping\": [
        {
            \"affise_event\": \"ViewAdv\",
            \"bigo_event\": \"loan_issued\"
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/bigo-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "events_mapping": [
        {
            "affise_event": "ViewAdv",
            "bigo_event": "loan_issued"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/bigo-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'events_mapping' => [
                [
                    'affise_event' => 'ViewAdv',
                    'bigo_event' => 'loan_issued',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/bigo-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

affise_event   string  optional  

Example: ViewAdv

Must be one of:
  • Install
  • AchieveLevel
  • AddPaymentInfo
  • AddToCart
  • AddToWishlist
  • AdRevenue
  • AdWatch
  • Application
  • Checkout
  • ClickAdv
  • CompleteRegistration
  • CompleteStream
  • CompleteTrial
  • CompleteTutorial
  • Contact
  • ContentItemsView
  • CreditGranting
  • CustomId01
  • CustomId02
  • CustomId03
  • CustomId04
  • CustomId05
  • CustomId06
  • CustomId07
  • CustomId08
  • CustomId09
  • CustomId10
  • CustomizeProduct
  • D2Retention
  • DeepLinked
  • Donate
  • FindLocation
  • InitiateCheckout
  • InitiatePurchase
  • InitiateStream
  • Invite
  • LastAttributedTouch
  • Lead
  • ListView
  • Loan
  • Login
  • LaunchApp
  • OpenedFromPushNotification
  • Order
  • OrderItemAdded
  • OrderItemRemove
  • OrderCancel
  • OrderReturnRequest
  • OrderReturnRequestCancel
  • PreCreditGranting
  • Purchase
  • Rate
  • ReEngage
  • RepeatLoan
  • Reserve
  • Sales
  • Schedule
  • Search
  • Share
  • SpendCredits
  • StartRegistration
  • StartTrial
  • StartTutorial
  • SubmitApplication
  • Subscribe
  • TravelBooking
  • UnlockAchievement
  • Unsubscribe
  • Update
  • ViewAdv
  • ViewCart
  • ViewContent
  • ViewItem
  • ViewItems
  • generated.TrialCheck
  • adapty_subs_event.access_level_updated
  • adapty_subs_event.billing_issue_detected
  • adapty_subs_event.entered_grace_period
  • adapty_subs_event.subscription_expired
  • adapty_subs_event.subscription_refunded
  • adapty_subs_event.subscription_renewal_cancelled
  • adapty_subs_event.subscription_renewal_reactivated
  • adapty_subs_event.subscription_renewed
  • adapty_subs_event.trial_converted
  • adapty_subs_event.trial_expired
  • adapty_subs_event.trial_renewal_cancelled
  • adapty_subs_event.trial_renewal_reactivated
  • adapty_subs_event.trial_started
  • apphud_subs_event.autorenew_disabled
  • apphud_subs_event.autorenew_enabled
  • apphud_subs_event.billing_issue
  • apphud_subs_event.billing_issue_resolved
  • apphud_subs_event.paywall_checkout_initiated
  • apphud_subs_event.paywall_payment_cancelled
  • apphud_subs_event.revenue
  • apphud_subs_event.subscription_canceled
  • apphud_subs_event.subscription_changed
  • apphud_subs_event.subscription_expired
  • apphud_subs_event.subscription_refunded
  • apphud_subs_event.subscription_renewed
  • apphud_subs_event.subscription_started
  • apphud_subs_event.trial_active
  • apphud_subs_event.trial_canceled
  • apphud_subs_event.trial_converted
  • apphud_subs_event.trial_expired
  • apphud_subs_event.trial_started
  • apphud_subs_event.user_created
  • revenuecat_subs_event.INTRO_INITIAL_PURCHASE
  • revenuecat_subs_event.NORMAL_BILLING_ISSUE
  • revenuecat_subs_event.NORMAL_CANCELLATION
  • revenuecat_subs_event.NORMAL_EXPIRATION
  • revenuecat_subs_event.NORMAL_INITIAL_PURCHASE
  • revenuecat_subs_event.NORMAL_NON_RENEWING_PURCHASE
  • revenuecat_subs_event.NORMAL_PRODUCT_CHANGE
  • revenuecat_subs_event.NORMAL_RENEWAL
  • revenuecat_subs_event.NORMAL_SUBSCRIPTION_EXTENDED
  • revenuecat_subs_event.NORMAL_UNCANCELLATION
  • revenuecat_subs_event.PROMOTIONAL_EXPIRATION
  • revenuecat_subs_event.PROMOTIONAL_NON_RENEWING_PURCHASE
  • revenuecat_subs_event.TRIAL_BILLING_ISSUE
  • revenuecat_subs_event.TRIAL_CANCELLATION
  • revenuecat_subs_event.TRIAL_EXPIRATION
  • revenuecat_subs_event.TRIAL_INITIAL_PURCHASE
  • revenuecat_subs_event.TRIAL_PRODUCT_CHANGE
  • revenuecat_subs_event.TRIAL_SUBSCRIPTION_EXTENDED
  • revenuecat_subs_event.TRIAL_UNCANCELLATION
bigo_event   string  optional  

Example: loan_issued

Must be one of:
  • app_install
  • view_content
  • achieve_level
  • launch_app
  • login
  • subscribe
  • checkout
  • purchase
  • spend_credits
  • add_to_cart
  • add_to_wishlist
  • unlock_achievement
  • start_trial
  • rate
  • pre_credit_granting
  • credit_granting
  • search
  • add_payment_info
  • complete_tutorial
  • registration
  • d2_retention
  • loan_issued
  • contact
  • schedule
  • ad_watch

Get application bigo partners

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/bigo-partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"view\": \"compact\",
    \"filter\": {
        \"query\": \"architecto\"
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/bigo-partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "view": "compact",
    "filter": {
        "query": "architecto"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/bigo-partners';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'view' => 'compact',
            'filter' => [
                'query' => 'architecto',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 49,
            "name": "Ms. Elisabeth Okuneva",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:18.000000Z",
            "updated_at": "2026-01-23T10:24:18.000000Z"
        },
        {
            "id": 50,
            "name": "Mr. Adriel Romaguera",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:18.000000Z",
            "updated_at": "2026-01-23T10:24:18.000000Z"
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/bigo-partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

view   string  optional  

Example: compact

Must be one of:
  • compact
filter   object  optional  
query   string  optional  

Example: architecto

Get application appnext partners

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/appnext-partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"view\": \"compact\",
    \"filter\": {
        \"query\": \"architecto\"
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/appnext-partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "view": "compact",
    "filter": {
        "query": "architecto"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/appnext-partners';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'view' => 'compact',
            'filter' => [
                'query' => 'architecto',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 51,
            "name": "Ms. Elisabeth Okuneva",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:18.000000Z",
            "updated_at": "2026-01-23T10:24:18.000000Z"
        },
        {
            "id": 52,
            "name": "Mr. Adriel Romaguera",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:18.000000Z",
            "updated_at": "2026-01-23T10:24:18.000000Z"
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/appnext-partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

view   string  optional  

Example: compact

Must be one of:
  • compact
filter   object  optional  
query   string  optional  

Example: architecto

Get application google accounts

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/google/accounts" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/google/accounts"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/google/accounts';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "partner_id": null,
            "email": "[email protected]",
            "connected_at": "2026-01-23 10:24:18",
            "last_error": "Nihil.",
            "data_last_update_at": "2026-01-23 10:24:18",
            "status": "{\"some_key\":\"some value\"}",
            "created_at": "2026-01-23T10:24:18Z",
            "updated_at": "2026-01-23T10:24:18Z"
        },
        {
            "id": 8,
            "partner_id": null,
            "email": "[email protected]",
            "connected_at": "2026-01-23 10:24:18",
            "last_error": "Quo omnis.",
            "data_last_update_at": "2026-01-23 10:24:18",
            "status": "{\"some_key\":\"some value\"}",
            "created_at": "2026-01-23T10:24:18Z",
            "updated_at": "2026-01-23T10:24:18Z"
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/google/accounts

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

page   integer  optional  

Example: 16

limit   integer  optional  

Example: 16

Delete application google account

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/applications/1/google/accounts/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/google/accounts/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/google/accounts/16';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/client/applications/{application_id}/google/accounts/{integrationGoogleAdsAccount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

integrationGoogleAdsAccount_id   integer   

The ID of the integrationGoogleAdsAccount. Example: 16

Update application google settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/google-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"link_id\": \"b\",
    \"events_mapping\": [
        []
    ],
    \"api_events_mapping\": [
        {
            \"affise_event\": \"architecto\",
            \"adapty_subs_event\": \"architecto\",
            \"apphud_subs_event\": \"architecto\",
            \"revenuecat_subs_event\": \"architecto\",
            \"google_ads_event\": \"view_item_list\"
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/google-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "link_id": "b",
    "events_mapping": [
        []
    ],
    "api_events_mapping": [
        {
            "affise_event": "architecto",
            "adapty_subs_event": "architecto",
            "apphud_subs_event": "architecto",
            "revenuecat_subs_event": "architecto",
            "google_ads_event": "view_item_list"
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/google-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'link_id' => 'b',
            'events_mapping' => [
                [],
            ],
            'api_events_mapping' => [
                [
                    'affise_event' => 'architecto',
                    'adapty_subs_event' => 'architecto',
                    'apphud_subs_event' => 'architecto',
                    'revenuecat_subs_event' => 'architecto',
                    'google_ads_event' => 'view_item_list',
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/google-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

0   object  optional  
0   string  optional  
1   string  optional  
api_events_mapping   object[]  optional  

Must have at least 2 items. Must not have more than 2 items.

affise_event   string  optional  

Example: architecto

adapty_subs_event   string  optional  

Example: architecto

apphud_subs_event   string  optional  

Example: architecto

revenuecat_subs_event   string  optional  

Example: architecto

google_ads_event   string  optional  

Example: view_item_list

Must be one of:
  • first_open
  • session_start
  • in_app_purchase
  • view_item_list
  • view_item
  • view_search_results
  • add_to_cart
  • ecommerce_purchase
  • custom
link_id   string  optional  

Must not be greater than 255 characters. Example: b

Update application google firebase settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/google-firebase-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"project_id\": \"b\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/google-firebase-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "project_id": "b"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/google-firebase-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'project_id' => 'b',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 78,
        "status": "active",
        "store": "telegram",
        "url": "https://t.me/+G-SOmeChaNNeluRl",
        "client_id": 1,
        "package_name": "Et fugiat.",
        "package_description": "Dormouse said--' the Hatter instead!' CHAPTER VII. A Mad Tea-Party There was a large kitchen, which was the first position in which case it would.",
        "timezone": "America/Monterrey",
        "app_status": "at_store",
        "currency": "BSD",
        "currency_iso": "BSD",
        "name": "eius et animi",
        "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
        "is_default": false,
        "secret_key": "27d878ec-47bd-4f82-bd99-40f4bf03d11e",
        "api_secret_key": null,
        "token": "366B35GZEMF0Y",
        "agency_invite_token": "DW91SVAWS9KBR",
        "is_active": true,
        "decryption_key": null,
        "fb_app_id": null,
        "fb_meta_pixel_id": null,
        "fb_access_token": null,
        "fb_pixel_access_token": null,
        "fbc_api_enabled": null,
        "fbc_api_events": null,
        "fbc_api_events_mapping": null,
        "fb_marketing_events_mapping": null,
        "fb_pixel_events_mapping": null,
        "fbc_api_value": null,
        "fbc_api_send_organic": null,
        "use_pixel_api": null,
        "fcm_key": null,
        "created_at": "2026-01-23T10:24:18.000000Z",
        "updated_at": "2026-01-23T10:24:17Z",
        "probabilistic": true,
        "apple_s2s_tracking_url_v1": "http://tracking.affattr.loc/notification/apple/s2s/v1/0GldIz",
        "apple_s2s_tracking_url_v2": "http://tracking.affattr.loc/notification/apple/s2s/v2/0GldIz",
        "cross_postback_url": null,
        "default_postback_url": null,
        "postback_url": null,
        "send_organic": false,
        "cross_postback_for_all_conversions": false,
        "secure_code": null,
        "fingerprint_available": 86400,
        "device_id_available": 86400,
        "re_attribution": true,
        "unity_ads_setting": null,
        "is_google_adwords_enabled": false,
        "sdk_callback": null,
        "anti_fraud_settings": {
            "social_traffic": null,
            "emulators": null,
            "ctit_sec": null,
            "session_count": null,
            "session_sec": null,
            "proxy": null
        },
        "tiktok_attribution": {
            "access_token": null,
            "pixel_code": null,
            "tiktok_app_id": null,
            "offline_event_set_id": null,
            "api_events_mapping": null
        },
        "google_ads_attribution": {
            "events_mapping": null,
            "api_events_mapping": null,
            "link_id": null
        },
        "google_firebase_attribution": {
            "project_id": null
        },
        "subscriptions": {
            "saved": null,
            "urls": {
                "apple": [
                    "http://tracking.affattr.loc/notification/apple/s2s/v1/0GldIz",
                    "http://tracking.affattr.loc/notification/apple/s2s/v2/0GldIz"
                ],
                "app_hud": [
                    "http://tracking.affattr.loc/notification/apphud/s2s"
                ],
                "revenue_cat": [
                    "http://tracking.affattr.loc/notification/revenuecat/s2s/0GldIz"
                ],
                "google": [
                    "http://tracking.affattr.loc/notification/google/s2s/0GldIz"
                ],
                "adapty": [
                    "http://tracking.affattr.loc/notification/adapty/s2s/0GldIz"
                ]
            },
            "secure_code": "0GldIz"
        }
    }
}
 

Request   

POST api/v2/client/applications/{application_id}/google-firebase-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

project_id   string  optional  

Must not be greater than 255 characters. Example: b

Update application unity ads settings

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/unity-ads-settings" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"game_id\": \"b\",
    \"api_key\": \"n\",
    \"organization_id\": \"g\",
    \"advertiser_name\": \"z\",
    \"partner_ids\": [
        16
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/unity-ads-settings"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "game_id": "b",
    "api_key": "n",
    "organization_id": "g",
    "advertiser_name": "z",
    "partner_ids": [
        16
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/unity-ads-settings';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'game_id' => 'b',
            'api_key' => 'n',
            'organization_id' => 'g',
            'advertiser_name' => 'z',
            'partner_ids' => [
                16,
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 4,
        "game_id": "a4855dc5-0acb-33c3-b921-f4291f719ca0",
        "api_key": "46a4ed44298ebae0f425ce192685f8022c9e483477edc4356e98152e1e0a370e",
        "organization_id": "7",
        "advertiser_name": "Adidas",
        "created_at": "2026-01-23T10:24:18Z",
        "updated_at": "2026-01-23T10:24:18Z",
        "partner": null,
        "click_tracking_link": null,
        "impression_tracking_link": null
    }
}
 

Request   

POST api/v2/client/applications/{application_id}/unity-ads-settings

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

game_id   string   

Must be at least 3 characters. Must not be greater than 100 characters. Example: b

api_key   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: n

organization_id   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: g

advertiser_name   string  optional  

Must be at least 3 characters. Must not be greater than 100 characters. Example: z

partner_ids   integer[]  optional  

The id of an existing record in the partners table.

List application partners

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"view\": \"compact\",
    \"filter\": {
        \"query\": \"architecto\"
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "view": "compact",
    "filter": {
        "query": "architecto"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/partners';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'view' => 'compact',
            'filter' => [
                'query' => 'architecto',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
set-cookie: attribution_api_local_session=eyJpdiI6IjZCUE5WeVVGSm5ZSGVnNXJUZE5oUnc9PSIsInZhbHVlIjoieWs5UFB3Qm03MzFMZGpFZjBZdUFNbWJBYy9XSEdLSTUzSnpLWEpMbHROODJOWXI4MFl5aTUwMTIxcE5WckxxZnB2M3NRRUwydUh1dGRlMmFPKzZhKzdQcXEvVlFRWjNGWnJhb2s1MnJOYzNQN1NzTXJPNk5wekczM1ZkMUxMbk8iLCJtYWMiOiIyZDNjYTJmZmIzZjdiNDQ5OGQxMDgwZmQ2ODgzNWQyOTRjYWU3ZmQzNWFkNDAzYjI0YjkzNTNmMTc3OTlkZDQ4IiwidGFnIjoiIn0%3D; expires=Fri, 30 Jan 2026 10:24:18 GMT; Max-Age=604800; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/v2/client/applications/{application_id}/partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

view   string  optional  

Example: compact

Must be one of:
  • compact
filter   object  optional  
query   string  optional  

Example: architecto

Get application partner

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/application/1/partner/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/application/1/partner/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/application/1/partner/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (401):

Show headers
cache-control: no-cache, private
content-type: application/json
vary: Origin
set-cookie: attribution_api_local_session=eyJpdiI6Ii9BTlcwcmpGU2ZDcVRSSXZ4ZmV1QVE9PSIsInZhbHVlIjoiMElCYStlMnA4M1JVeVVxUGUvQ2Q0blkwajVZK3BJVW40WFdJKzVocWlKUHV2OEY1N2w0dnV3QmFJWkc4U2RIT1Vkd3p0Uko3eExTeVM5a3BzNExhSEsyNkhDN24xNVZ5QlRsZFF2L2hCVFF6aFNYblFlWDc4aWJVOVA2RHNwWjciLCJtYWMiOiJjOTY5NWM3MGQxZmU4YmExNWE0OTg2NzUxYzI1ZDQ3NmU3NTU2NTI3ZWVlNzU0Mjc3NTNhYWMxYjFjZTlkMzMwIiwidGFnIjoiIn0%3D; expires=Fri, 30 Jan 2026 10:24:18 GMT; Max-Age=604800; path=/; httponly; samesite=lax
 

{
    "message": "Unauthenticated."
}
 

Request   

GET api/v2/client/application/{application_id}/partner/{partner_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

partner_id   integer   

The ID of the partner. Example: 1

Update application partner

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/applications/1/partners/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"link_settings\": {
        \"traffic_source\": \"architecto\",
        \"fingerprint_available\": 3601,
        \"device_id_available\": 3600,
        \"re_attribution\": false
    },
    \"postback_url\": \"http:\\/\\/rempel.com\\/sunt-nihil-accusantium-harum-mollitia\",
    \"tracking_url_params\": \"k\",
    \"conversion_postbacks\": [
        {
            \"conversion_type\": \"architecto\",
            \"postback_urls\": [
                \"n\"
            ],
            \"click_filter\": [
                {
                    \"param\": \"g\",
                    \"values\": []
                }
            ],
            \"cost\": 1,
            \"send_organic\": false
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/partners/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "link_settings": {
        "traffic_source": "architecto",
        "fingerprint_available": 3601,
        "device_id_available": 3600,
        "re_attribution": false
    },
    "postback_url": "http:\/\/rempel.com\/sunt-nihil-accusantium-harum-mollitia",
    "tracking_url_params": "k",
    "conversion_postbacks": [
        {
            "conversion_type": "architecto",
            "postback_urls": [
                "n"
            ],
            "click_filter": [
                {
                    "param": "g",
                    "values": []
                }
            ],
            "cost": 1,
            "send_organic": false
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/partners/1';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'link_settings' => [
                'traffic_source' => 'architecto',
                'fingerprint_available' => 3601,
                'device_id_available' => 3600,
                're_attribution' => false,
            ],
            'postback_url' => 'http://rempel.com/sunt-nihil-accusantium-harum-mollitia',
            'tracking_url_params' => 'k',
            'conversion_postbacks' => [
                [
                    'conversion_type' => 'architecto',
                    'postback_urls' => [
                        'n',
                    ],
                    'click_filter' => [
                        [
                            'param' => 'g',
                            'values' => [],
                        ],
                    ],
                    'cost' => 1,
                    'send_organic' => false,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/applications/{application_id}/partners/{partner_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

partner_id   integer   

The ID of the partner. Example: 1

Body Parameters

conversion_postbacks   object[]  optional  
conversion_type   string   

Example: architecto

postback_urls   string[]  optional  

Must not be greater than 4000 characters.

click_filter   object[]  optional  
param   string   

Must not be greater than 256 characters. Example: g

values   object   

Must have at least 1 items.

cost   number   

Must not be greater than 99999.99. Example: 1

send_organic   boolean  optional  

Example: false

link_settings   object  optional  
traffic_source   string   

The name of an existing record in the traffic_sources table. Example: architecto

fingerprint_available   integer   

Must be between 3600 and 604800. Example: 3601

device_id_available   integer   

Must be between 3600 and 604800. Example: 3600

re_attribution   boolean   

Example: false

postback_url   string  optional  

Must not be greater than 4000 characters. Example: http://rempel.com/sunt-nihil-accusantium-harum-mollitia

tracking_url_params   string  optional  

Must not be greater than 4000 characters. Example: k

Get application facebook partners

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/partners/facebook" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/partners/facebook"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/partners/facebook';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "application_id": 80,
            "partner_id": 53,
            "partner_name": "Hank Batz",
            "fb_account_id": null,
            "fb_pixel_access_token": null
        },
        {
            "id": 8,
            "application_id": 81,
            "partner_id": 54,
            "partner_name": "Dr. Lucie Bauch",
            "fb_account_id": null,
            "fb_pixel_access_token": null
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/partners/facebook

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

List partners

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16,
    \"filter\": {
        \"query\": \"architecto\"
    }
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16,
    "filter": {
        "query": "architecto"
    }
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
            'filter' => [
                'query' => 'architecto',
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 55,
            "name": "Ms. Elisabeth Okuneva",
            "url": "https://www.gulgowski.com/nihil-accusantium-harum-mollitia-modi-deserunt",
            "applications": [],
            "traffic_source": null,
            "attribution_settings": null,
            "postback_url": null,
            "affiliate_id": 8143,
            "is_external": true
        },
        {
            "id": 56,
            "name": "Mr. Adriel Romaguera",
            "url": "http://swift.com/quidem-nostrum-qui-commodi-incidunt-iure-odit.html",
            "applications": [],
            "traffic_source": null,
            "attribution_settings": null,
            "postback_url": null,
            "affiliate_id": 35,
            "is_external": true
        }
    ]
}
 

Request   

GET api/v2/client/partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

page   integer  optional  

Example: 16

limit   integer  optional  

Example: 16

filter   object  optional  
query   string  optional  

Example: architecto

Get available parent partners

Returns a list of internal partners (those connected to agencies) that can be used as parent partners when converting external partners to sub-partners.

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/partners/available-parent-partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/available-parent-partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/available-parent-partners';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 57,
            "name": "Morgan Hirthe",
            "url": "http://www.dare.org/iure-odit-et-et-modi-ipsum-nostrum-omnis",
            "applications": [],
            "traffic_source": null,
            "attribution_settings": null,
            "postback_url": null,
            "affiliate_id": 9607,
            "is_external": true
        },
        {
            "id": 58,
            "name": "Myrtis Tromp",
            "url": "http://www.stokes.com/tempora-ex-voluptatem-laboriosam-praesentium-quis.html",
            "applications": [],
            "traffic_source": null,
            "attribution_settings": null,
            "postback_url": null,
            "affiliate_id": 9724,
            "is_external": true
        }
    ]
}
 

Request   

GET api/v2/client/partners/available-parent-partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Create partner

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/partners" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"postback_url\": \"http:\\/\\/rempel.com\\/sunt-nihil-accusantium-harum-mollitia\",
    \"traffic_source\": \"architecto\",
    \"fingerprint_available\": 3601,
    \"device_id_available\": 3600,
    \"re_attribution\": false,
    \"affiliate_id\": 16,
    \"conversion_postbacks\": [
        {
            \"conversion_type\": \"architecto\",
            \"postback_urls\": [
                \"n\"
            ],
            \"click_filter\": [
                {
                    \"param\": \"g\",
                    \"values\": []
                }
            ],
            \"cost\": 1,
            \"send_organic\": false
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "postback_url": "http:\/\/rempel.com\/sunt-nihil-accusantium-harum-mollitia",
    "traffic_source": "architecto",
    "fingerprint_available": 3601,
    "device_id_available": 3600,
    "re_attribution": false,
    "affiliate_id": 16,
    "conversion_postbacks": [
        {
            "conversion_type": "architecto",
            "postback_urls": [
                "n"
            ],
            "click_filter": [
                {
                    "param": "g",
                    "values": []
                }
            ],
            "cost": 1,
            "send_organic": false
        }
    ]
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'postback_url' => 'http://rempel.com/sunt-nihil-accusantium-harum-mollitia',
            'traffic_source' => 'architecto',
            'fingerprint_available' => 3601,
            'device_id_available' => 3600,
            're_attribution' => false,
            'affiliate_id' => 16,
            'conversion_postbacks' => [
                [
                    'conversion_type' => 'architecto',
                    'postback_urls' => [
                        'n',
                    ],
                    'click_filter' => [
                        [
                            'param' => 'g',
                            'values' => [],
                        ],
                    ],
                    'cost' => 1,
                    'send_organic' => false,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 59,
        "name": "Ramiro Okuneva",
        "url": "https://www.gulgowski.com/nihil-accusantium-harum-mollitia-modi-deserunt",
        "applications": [],
        "traffic_source": null,
        "attribution_settings": null,
        "postback_url": null,
        "affiliate_id": 8143,
        "is_external": true
    }
}
 

Request   

POST api/v2/client/partners

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

conversion_postbacks   object[]  optional  
conversion_type   string   

Example: architecto

postback_urls   string[]  optional  

Must not be greater than 4000 characters.

click_filter   object[]  optional  
param   string   

Must not be greater than 256 characters. Example: g

values   object   

Must have at least 1 items.

cost   number   

Must not be greater than 99999.99. Example: 1

send_organic   boolean  optional  

Example: false

name   string   

Must not be greater than 128 characters. Example: b

url   string  optional  

Must be a valid URL. Example: http://bailey.com/

postback_url   string  optional  

Must not be greater than 4000 characters. Example: http://rempel.com/sunt-nihil-accusantium-harum-mollitia

traffic_source   string   

The name of an existing record in the traffic_sources table. Example: architecto

fingerprint_available   integer   

Must be between 3600 and 604800. Example: 3601

device_id_available   integer   

Must be between 3600 and 604800. Example: 3600

re_attribution   boolean   

Example: false

affiliate_id   integer  optional  

Example: 16

Get partner

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/partners/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 60,
        "name": "Morgan Hirthe",
        "url": "http://www.dare.org/iure-odit-et-et-modi-ipsum-nostrum-omnis",
        "applications": [],
        "traffic_source": null,
        "attribution_settings": null,
        "postback_url": null,
        "affiliate_id": 9607,
        "is_external": true
    }
}
 

Request   

GET api/v2/client/partners/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the partner. Example: 1

Update partner

Example request:
curl --request PUT \
    "https://app.affisemmp.com/api/v2/client/partners/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"url\": \"http:\\/\\/bailey.com\\/\",
    \"postback_url\": \"http:\\/\\/rempel.com\\/sunt-nihil-accusantium-harum-mollitia\",
    \"traffic_source\": \"architecto\",
    \"fingerprint_available\": 3601,
    \"device_id_available\": 3600,
    \"re_attribution\": false,
    \"affiliate_id\": 16,
    \"conversion_postbacks\": [
        {
            \"conversion_type\": \"architecto\",
            \"postback_urls\": [
                \"n\"
            ],
            \"click_filter\": [
                {
                    \"param\": \"g\",
                    \"values\": []
                }
            ],
            \"cost\": 1,
            \"send_organic\": false
        }
    ]
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "url": "http:\/\/bailey.com\/",
    "postback_url": "http:\/\/rempel.com\/sunt-nihil-accusantium-harum-mollitia",
    "traffic_source": "architecto",
    "fingerprint_available": 3601,
    "device_id_available": 3600,
    "re_attribution": false,
    "affiliate_id": 16,
    "conversion_postbacks": [
        {
            "conversion_type": "architecto",
            "postback_urls": [
                "n"
            ],
            "click_filter": [
                {
                    "param": "g",
                    "values": []
                }
            ],
            "cost": 1,
            "send_organic": false
        }
    ]
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'url' => 'http://bailey.com/',
            'postback_url' => 'http://rempel.com/sunt-nihil-accusantium-harum-mollitia',
            'traffic_source' => 'architecto',
            'fingerprint_available' => 3601,
            'device_id_available' => 3600,
            're_attribution' => false,
            'affiliate_id' => 16,
            'conversion_postbacks' => [
                [
                    'conversion_type' => 'architecto',
                    'postback_urls' => [
                        'n',
                    ],
                    'click_filter' => [
                        [
                            'param' => 'g',
                            'values' => [],
                        ],
                    ],
                    'cost' => 1,
                    'send_organic' => false,
                ],
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PUT api/v2/client/partners/{id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

id   integer   

The ID of the partner. Example: 1

Body Parameters

conversion_postbacks   object[]  optional  
conversion_type   string   

Example: architecto

postback_urls   string[]  optional  

Must not be greater than 4000 characters.

click_filter   object[]  optional  
param   string   

Must not be greater than 256 characters. Example: g

values   object   

Must have at least 1 items.

cost   number   

Must not be greater than 99999.99. Example: 1

send_organic   boolean  optional  

Example: false

name   string   

Must not be greater than 128 characters. Example: b

url   string  optional  

Must be a valid URL. Example: http://bailey.com/

postback_url   string  optional  

Must not be greater than 4000 characters. Example: http://rempel.com/sunt-nihil-accusantium-harum-mollitia

traffic_source   string   

The name of an existing record in the traffic_sources table. Example: architecto

fingerprint_available   integer   

Must be between 3600 and 604800. Example: 3601

device_id_available   integer   

Must be between 3600 and 604800. Example: 3600

re_attribution   boolean   

Example: false

affiliate_id   integer  optional  

Example: 16

Make partner a sub-partner

Converts an external partner (without agency) into a sub-partner by connecting it to a parent partner's agency. If the agency is not yet connected to the partner's applications, connections will be created automatically.

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/partners/1/make-sub-partner" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"parent_partner_id\": 15
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/1/make-sub-partner"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "parent_partner_id": 15
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/1/make-sub-partner';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'parent_partner_id' => 15,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "message": "Partner has been successfully made a sub-partner."
}
 

Example response (403):


{
    "message": "Access denied"
}
 

Example response (422):


{
    "message": "Partner is already connected to an agency as sub-partner"
}
 

Request   

POST api/v2/client/partners/{partner_id}/make-sub-partner

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

partner_id   integer   

The ID of the partner. Example: 1

partner   integer   

The ID of the partner to convert. Example: 42

Body Parameters

parent_partner_id   integer   

The ID of the internal partner (representing an agency) to use as parent. Example: 15

Create application facebook partner

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/partners/facebook" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"application_id\": 16,
    \"partner_id\": 16,
    \"fb_account_id\": \"137449171671936806\",
    \"fb_pixel_access_token\": \"z\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/facebook"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "application_id": 16,
    "partner_id": 16,
    "fb_account_id": "137449171671936806",
    "fb_pixel_access_token": "z"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/facebook';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'application_id' => 16,
            'partner_id' => 16,
            'fb_account_id' => '137449171671936806',
            'fb_pixel_access_token' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

POST api/v2/client/partners/facebook

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

application_id   integer   

The id of an existing record in the applications table. Example: 16

partner_id   integer   

The id of an existing record in the partners table. Example: 16

fb_account_id   string   

Must be between 15 and 20 digits. Example: 137449171671936806

fb_pixel_access_token   string  optional  

Must not be greater than 255 characters. Example: z

Update application facebook partner

Example request:
curl --request PUT \
    "https://app.affisemmp.com/api/v2/client/partners/facebook/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"partner_id\": 16,
    \"fb_account_id\": \"137449171671936806\",
    \"fb_pixel_access_token\": \"z\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/facebook/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "partner_id": 16,
    "fb_account_id": "137449171671936806",
    "fb_pixel_access_token": "z"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/facebook/16';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'partner_id' => 16,
            'fb_account_id' => '137449171671936806',
            'fb_pixel_access_token' => 'z',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

PUT api/v2/client/partners/facebook/{facebookPartner_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

facebookPartner_id   integer   

The ID of the facebookPartner. Example: 16

Body Parameters

partner_id   integer   

The id of an existing record in the partners table. Example: 16

fb_account_id   string   

Must be between 15 and 20 digits. Example: 137449171671936806

fb_pixel_access_token   string  optional  

Must not be greater than 255 characters. Example: z

Delete application facebook partner

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/partners/facebook/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/partners/facebook/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/partners/facebook/16';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/client/partners/facebook/{facebookPartner_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

facebookPartner_id   integer   

The ID of the facebookPartner. Example: 16

Get application integration api keys

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/integration-api-keys" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/integration-api-keys"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/integration-api-keys';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "application_id": 82,
            "type": "applovin_revenue",
            "api_key": "Aut quis ut dolores omnis et earum. Asperiores est vel id aut officiis eos. Et qui unde et."
        },
        {
            "id": 8,
            "application_id": 83,
            "type": "iron_source_revenue",
            "api_key": "Laboriosam id enim aut aut sequi saepe. Cupiditate earum labore quae. Ut in quos omnis quis."
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/integration-api-keys

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/single-links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"android_app_id\": 16,
    \"ios_app_id\": 16,
    \"huawei_app_id\": 16,
    \"samsung_app_id\": 16,
    \"xiaomi_app_id\": 16,
    \"oppo_app_id\": 16,
    \"vivo_app_id\": 16,
    \"custom_app_id\": 16,
    \"destination_url\": \"http:\\/\\/bailey.com\\/\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/single-links"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "android_app_id": 16,
    "ios_app_id": 16,
    "huawei_app_id": 16,
    "samsung_app_id": 16,
    "xiaomi_app_id": 16,
    "oppo_app_id": 16,
    "vivo_app_id": 16,
    "custom_app_id": 16,
    "destination_url": "http:\/\/bailey.com\/"
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/single-links';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'android_app_id' => 16,
            'ios_app_id' => 16,
            'huawei_app_id' => 16,
            'samsung_app_id' => 16,
            'xiaomi_app_id' => 16,
            'oppo_app_id' => 16,
            'vivo_app_id' => 16,
            'custom_app_id' => 16,
            'destination_url' => 'http://bailey.com/',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 17,
        "name": "Quos velit et.",
        "link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid={pid}",
        "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid={pid}",
        "destination_url": "https://gaylord.com/modi-deserunt-aut-ab-provident-perspiciatis.html",
        "applications": [],
        "partners_single_links": [
            {
                "partner_id": 1,
                "partner_name": "S.H.I.E.L.D",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=1",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=1"
            },
            {
                "partner_id": 4,
                "partner_name": "Test Partner Network - Griffin",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=4",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=4"
            },
            {
                "partner_id": 5,
                "partner_name": "Test Partner Network - Abel",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=5",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=5"
            },
            {
                "partner_id": 6,
                "partner_name": "Test Partner Network - Damon",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=6",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=6"
            }
        ],
        "created_at": "2026-01-23T10:24:19Z",
        "updated_at": "2026-01-23T10:24:19Z"
    }
}
 
Example request:
curl --request PUT \
    "https://app.affisemmp.com/api/v2/client/single-links/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"name\": \"b\",
    \"android_app_id\": 16,
    \"ios_app_id\": 16,
    \"huawei_app_id\": 16,
    \"samsung_app_id\": 16,
    \"xiaomi_app_id\": 16,
    \"oppo_app_id\": 16,
    \"vivo_app_id\": 16,
    \"custom_app_id\": 16,
    \"destination_url\": \"http:\\/\\/bailey.com\\/\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/single-links/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "name": "b",
    "android_app_id": 16,
    "ios_app_id": 16,
    "huawei_app_id": 16,
    "samsung_app_id": 16,
    "xiaomi_app_id": 16,
    "oppo_app_id": 16,
    "vivo_app_id": 16,
    "custom_app_id": 16,
    "destination_url": "http:\/\/bailey.com\/"
};

fetch(url, {
    method: "PUT",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/single-links/1';
$response = $client->put(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'name' => 'b',
            'android_app_id' => 16,
            'ios_app_id' => 16,
            'huawei_app_id' => 16,
            'samsung_app_id' => 16,
            'xiaomi_app_id' => 16,
            'oppo_app_id' => 16,
            'vivo_app_id' => 16,
            'custom_app_id' => 16,
            'destination_url' => 'http://bailey.com/',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 18,
        "name": "Quos velit et.",
        "link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid={pid}",
        "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid={pid}",
        "destination_url": "https://gaylord.com/modi-deserunt-aut-ab-provident-perspiciatis.html",
        "applications": [],
        "partners_single_links": [
            {
                "partner_id": 1,
                "partner_name": "S.H.I.E.L.D",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=1",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=1"
            },
            {
                "partner_id": 4,
                "partner_name": "Test Partner Network - Griffin",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=4",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=4"
            },
            {
                "partner_id": 5,
                "partner_name": "Test Partner Network - Abel",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=5",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=5"
            },
            {
                "partner_id": 6,
                "partner_name": "Test Partner Network - Damon",
                "single_link": "http://trk.affattr.loc/sl/129b23?clickid={clickid}&pid=6",
                "impression_link": "http://trk.affattr.loc/sl/imp/129b23?clickid={clickid}&pid=6"
            }
        ],
        "created_at": "2026-01-23T10:24:19Z",
        "updated_at": "2026-01-23T10:24:19Z"
    }
}
 
Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/single-links/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/single-links/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/single-links/1';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/single-links/1" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/single-links/1"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/single-links/1';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 19,
        "name": "Aut adipisci quidem.",
        "link": "http://trk.affattr.loc/sl/795466?clickid={clickid}&pid={pid}",
        "impression_link": "http://trk.affattr.loc/sl/imp/795466?clickid={clickid}&pid={pid}",
        "destination_url": "https://leuschke.com/et-et-modi-ipsum-nostrum.html",
        "applications": [],
        "partners_single_links": [
            {
                "partner_id": 1,
                "partner_name": "S.H.I.E.L.D",
                "single_link": "http://trk.affattr.loc/sl/795466?clickid={clickid}&pid=1",
                "impression_link": "http://trk.affattr.loc/sl/imp/795466?clickid={clickid}&pid=1"
            },
            {
                "partner_id": 4,
                "partner_name": "Test Partner Network - Griffin",
                "single_link": "http://trk.affattr.loc/sl/795466?clickid={clickid}&pid=4",
                "impression_link": "http://trk.affattr.loc/sl/imp/795466?clickid={clickid}&pid=4"
            },
            {
                "partner_id": 5,
                "partner_name": "Test Partner Network - Abel",
                "single_link": "http://trk.affattr.loc/sl/795466?clickid={clickid}&pid=5",
                "impression_link": "http://trk.affattr.loc/sl/imp/795466?clickid={clickid}&pid=5"
            },
            {
                "partner_id": 6,
                "partner_name": "Test Partner Network - Damon",
                "single_link": "http://trk.affattr.loc/sl/795466?clickid={clickid}&pid=6",
                "impression_link": "http://trk.affattr.loc/sl/imp/795466?clickid={clickid}&pid=6"
            }
        ],
        "created_at": "2026-01-23T10:24:19Z",
        "updated_at": "2026-01-23T10:24:19Z"
    }
}
 
Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/single-links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16,
    \"filter\": []
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/single-links"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16,
    "filter": []
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/single-links';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
            'filter' => [],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 20,
            "name": "Eius et animi quos.",
            "link": "http://trk.affattr.loc/sl/c44b30?clickid={clickid}&pid={pid}",
            "impression_link": "http://trk.affattr.loc/sl/imp/c44b30?clickid={clickid}&pid={pid}",
            "destination_url": "http://www.ernser.org/harum-mollitia-modi-deserunt-aut-ab-provident-perspiciatis-quo.html",
            "applications": [],
            "partners_single_links": [
                {
                    "partner_id": 1,
                    "partner_name": "S.H.I.E.L.D",
                    "single_link": "http://trk.affattr.loc/sl/c44b30?clickid={clickid}&pid=1",
                    "impression_link": "http://trk.affattr.loc/sl/imp/c44b30?clickid={clickid}&pid=1"
                },
                {
                    "partner_id": 4,
                    "partner_name": "Test Partner Network - Griffin",
                    "single_link": "http://trk.affattr.loc/sl/c44b30?clickid={clickid}&pid=4",
                    "impression_link": "http://trk.affattr.loc/sl/imp/c44b30?clickid={clickid}&pid=4"
                },
                {
                    "partner_id": 5,
                    "partner_name": "Test Partner Network - Abel",
                    "single_link": "http://trk.affattr.loc/sl/c44b30?clickid={clickid}&pid=5",
                    "impression_link": "http://trk.affattr.loc/sl/imp/c44b30?clickid={clickid}&pid=5"
                },
                {
                    "partner_id": 6,
                    "partner_name": "Test Partner Network - Damon",
                    "single_link": "http://trk.affattr.loc/sl/c44b30?clickid={clickid}&pid=6",
                    "impression_link": "http://trk.affattr.loc/sl/imp/c44b30?clickid={clickid}&pid=6"
                }
            ],
            "created_at": "2026-01-23T10:24:19Z",
            "updated_at": "2026-01-23T10:24:19Z"
        },
        {
            "id": 21,
            "name": "Omnis nostrum aut.",
            "link": "http://trk.affattr.loc/sl/b530a9?clickid={clickid}&pid={pid}",
            "impression_link": "http://trk.affattr.loc/sl/imp/b530a9?clickid={clickid}&pid={pid}",
            "destination_url": "http://www.dare.org/iure-odit-et-et-modi-ipsum-nostrum-omnis",
            "applications": [],
            "partners_single_links": [
                {
                    "partner_id": 1,
                    "partner_name": "S.H.I.E.L.D",
                    "single_link": "http://trk.affattr.loc/sl/b530a9?clickid={clickid}&pid=1",
                    "impression_link": "http://trk.affattr.loc/sl/imp/b530a9?clickid={clickid}&pid=1"
                },
                {
                    "partner_id": 4,
                    "partner_name": "Test Partner Network - Griffin",
                    "single_link": "http://trk.affattr.loc/sl/b530a9?clickid={clickid}&pid=4",
                    "impression_link": "http://trk.affattr.loc/sl/imp/b530a9?clickid={clickid}&pid=4"
                },
                {
                    "partner_id": 5,
                    "partner_name": "Test Partner Network - Abel",
                    "single_link": "http://trk.affattr.loc/sl/b530a9?clickid={clickid}&pid=5",
                    "impression_link": "http://trk.affattr.loc/sl/imp/b530a9?clickid={clickid}&pid=5"
                },
                {
                    "partner_id": 6,
                    "partner_name": "Test Partner Network - Damon",
                    "single_link": "http://trk.affattr.loc/sl/b530a9?clickid={clickid}&pid=6",
                    "impression_link": "http://trk.affattr.loc/sl/imp/b530a9?clickid={clickid}&pid=6"
                }
            ],
            "created_at": "2026-01-23T10:24:19Z",
            "updated_at": "2026-01-23T10:24:19Z"
        }
    ]
}
 
Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/short-links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"application_id\": 16,
    \"single_link_id\": 16,
    \"params\": [
        \"architecto\"
    ],
    \"generate_qr\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/short-links"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "application_id": 16,
    "single_link_id": 16,
    "params": [
        "architecto"
    ],
    "generate_qr": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/short-links';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'application_id' => 16,
            'single_link_id' => 16,
            'params' => [
                'architecto',
            ],
            'generate_qr' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 4,
        "token": "8d7330",
        "application": {
            "id": 84,
            "name": "velit et fugiat",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
            "store": "google"
        },
        "single_link": null,
        "parameters": {},
        "short_link": "http://trk.affattr.loc/s/8d7330",
        "impression_short_link": "http://trk.affattr.loc/s/i/8d7330",
        "tracking_url": "http://trk.affattr.loc/5OPXP61954UC8",
        "created_at": "2025-03-31T12:51:45Z"
    }
}
 
Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/short-links/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/short-links/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/short-links/16';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/short-links/16/qr" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"format\": \"png\"
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/short-links/16/qr"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "format": "png"
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/short-links/16/qr';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'format' => 'png',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):

Binary data -  Qr image
 
Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/short-links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16,
    \"is_qr\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/short-links"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16,
    "is_qr": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/short-links';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
            'is_qr' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
   "links": [
     {
       "id": 33,
       "token": "9mvTRo",
       "application": {
         "id": 3,
         "name": "laborum nostrum ut",
         "icon": "https://.amazonaws.com/04Y7HOqMLzofp0ab.png",
         "store": "google"
       },
       "single_link": null,
       "parameters": {},
       "short_link": "http://trk.affattr.loc/s/9mvTRo",
       "impression_short_link": "http://trk.affattr.loc/s/i/9mvTRo",
       "tracking_url": "http://trk.affattr.loc/27AHN1RGY5LEE",
       "created_at": "2025-11-10T10:16:30Z"
     },
   ],
   "limit": {
     "used": 1,
     "max": 50
   }
 }
 

Get application google firebase settings

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 7,
            "partner_id": null,
            "email": "[email protected]",
            "connected_at": "2026-01-23 10:24:20",
            "last_error": "Nihil.",
            "data_last_update_at": null,
            "status": {
                "some_key": "some value"
            },
            "created_at": "2026-01-23T10:24:20Z",
            "updated_at": "2026-01-23T10:24:20Z"
        },
        {
            "id": 8,
            "partner_id": null,
            "email": "[email protected]",
            "connected_at": "2026-01-23 10:24:20",
            "last_error": "Quo omnis.",
            "data_last_update_at": null,
            "status": {
                "some_key": "some value"
            },
            "created_at": "2026-01-23T10:24:20Z",
            "updated_at": "2026-01-23T10:24:20Z"
        }
    ]
}
 

Request   

GET api/v2/client/applications/{application_id}/integrations-google-firebase

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

Body Parameters

page   integer  optional  

Example: 16

limit   integer  optional  

Example: 16

Delete application google firebase account

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/applications/1/integrations-google-firebase/16';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/client/applications/{application_id}/integrations-google-firebase/{integrationGoogleFirebaseAccount_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

integrationGoogleFirebaseAccount_id   integer   

The ID of the integrationGoogleFirebaseAccount. Example: 16

List integrations

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/integrations" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16,
    \"query\": \"architecto\",
    \"is_active\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16,
    "query": "architecto",
    "is_active": false
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
            'query' => 'architecto',
            'is_active' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 16,
            "title": "dolores",
            "is_active": false,
            "type": {
                "label": "petalads",
                "value": "Petal Ads"
            },
            "context": "application",
            "application": {
                "id": 85,
                "name": "et animi quos",
                "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg"
            },
            "settings": [],
            "events_mapping": []
        },
        {
            "id": 17,
            "title": "voluptate",
            "is_active": false,
            "type": {
                "label": "petalads",
                "value": "Petal Ads"
            },
            "context": "application",
            "application": {
                "id": 86,
                "name": "enim non facere",
                "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg"
            },
            "settings": [],
            "events_mapping": []
        }
    ]
}
 

Request   

GET api/v2/client/integrations

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

page   integer  optional  

Example: 16

limit   integer  optional  

Example: 16

query   string  optional  

Example: architecto

applications   string  optional  
single_links   string  optional  
types   string  optional  
is_active   boolean  optional  

Example: false

Create integration

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/integrations" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn\",
    \"type\": \"petalads\",
    \"context\": \"single_link\",
    \"model_id\": 16,
    \"is_active\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn",
    "type": "petalads",
    "context": "single_link",
    "model_id": 16,
    "is_active": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn',
            'type' => 'petalads',
            'context' => 'single_link',
            'model_id' => 16,
            'is_active' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 18,
        "title": "dolores",
        "is_active": false,
        "type": {
            "label": "petalads",
            "value": "Petal Ads"
        },
        "context": "application",
        "application": {
            "id": 87,
            "name": "et animi quos",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg"
        },
        "settings": [],
        "events_mapping": []
    }
}
 

Request   

POST api/v2/client/integrations

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Body Parameters

title   string   

Must not be greater than 255 characters. Must be at least 3 characters. Example: bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn

type   string   

Example: petalads

Must be one of:
  • petalads
context   string   

Example: single_link

Must be one of:
  • application
  • single_link
model_id   integer   

The id of an existing record in the table. Example: 16

is_active   boolean   

Example: false

Get integration

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/integrations/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations/16';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 19,
        "title": "libero",
        "is_active": false,
        "type": {
            "label": "petalads",
            "value": "Petal Ads"
        },
        "context": "application",
        "application": {
            "id": 88,
            "name": "aut adipisci quidem",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg"
        },
        "settings": [],
        "events_mapping": []
    }
}
 

Request   

GET api/v2/client/integrations/{integration_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

integration_id   integer   

The ID of the integration. Example: 16

Update integration

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/client/integrations/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"title\": \"bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn\",
    \"is_active\": false
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "title": "bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn",
    "is_active": false
};

fetch(url, {
    method: "POST",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations/16';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'title' => 'bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn',
            'is_active' => false,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 20,
        "title": "officiis",
        "is_active": false,
        "type": {
            "label": "petalads",
            "value": "Petal Ads"
        },
        "context": "application",
        "application": {
            "id": 89,
            "name": "odio veritatis excepturi",
            "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg"
        },
        "settings": [],
        "events_mapping": []
    }
}
 

Request   

POST api/v2/client/integrations/{integration_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

integration_id   integer   

The ID of the integration. Example: 16

Body Parameters

title   string  optional  

Must not be greater than 255 characters. Must be at least 3 characters. Example: bngzmiyvdljnikhwaykcmyuwpwlvqwrsitcpscqldzsnrwtujwvlxjklqppwqbewtnnoqitpxn

is_active   boolean  optional  

Example: false

Delete integration

Example request:
curl --request DELETE \
    "https://app.affisemmp.com/api/v2/client/integrations/16" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations/16"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "DELETE",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations/16';
$response = $client->delete(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Request   

DELETE api/v2/client/integrations/{integration_id}

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

URL Parameters

integration_id   integer   

The ID of the integration. Example: 16

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/integrations/16/links" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json" \
    --data "{
    \"page\": 16,
    \"limit\": 16
}"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/integrations/16/links"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

let body = {
    "page": 16,
    "limit": 16
};

fetch(url, {
    method: "GET",
    headers,
    body: JSON.stringify(body),
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/integrations/16/links';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
        'json' => [
            'page' => 16,
            'limit' => 16,
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": [
        {
            "id": 61,
            "name": "Ms. Elisabeth Okuneva",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:20.000000Z",
            "updated_at": "2026-01-23T10:24:20.000000Z"
        },
        {
            "id": 62,
            "name": "Mr. Adriel Romaguera",
            "tracking_url": null,
            "impression_tracking_url": null,
            "created_at": "2026-01-23T10:24:20.000000Z",
            "updated_at": "2026-01-23T10:24:20.000000Z"
        }
    ]
}
 

Upload Token

Endpoints for generating upload tokens used for large file uploads. Upload tokens provide temporary authentication for file upload endpoints, bypassing the standard authentication flow which may have request size limits.

Get upload token

Generate a temporary JWT upload token for authenticated file uploads. This token should be used as Bearer token with the upload endpoints to upload large files (such as APK files). Token is valid for 5 minutes and can only be used once.

Example request:
curl --request GET \
    --get "https://app.affisemmp.com/api/v2/client/upload-token" \
    --header "Authorization: Bearer {YOUR_AUTH_KEY}" \
    --header "Content-Type: application/json" \
    --header "Accept: application/json"
const url = new URL(
    "https://app.affisemmp.com/api/v2/client/upload-token"
);

const headers = {
    "Authorization": "Bearer {YOUR_AUTH_KEY}",
    "Content-Type": "application/json",
    "Accept": "application/json",
};

fetch(url, {
    method: "GET",
    headers,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/client/upload-token';
$response = $client->get(
    $url,
    [
        'headers' => [
            'Authorization' => 'Bearer {YOUR_AUTH_KEY}',
            'Content-Type' => 'application/json',
            'Accept' => 'application/json',
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success):


{
    "upload_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "expires_in": 300
}
 

Example response (403, No associated client):


{
    "error": "User has no associated client"
}
 

Request   

GET api/v2/client/upload-token

Headers

Authorization      

Example: Bearer {YOUR_AUTH_KEY}

Content-Type      

Example: application/json

Accept      

Example: application/json

Upload endpoints

Endpoints for uploading large files using upload token authentication. These endpoints use a special JWT upload token (passed as Bearer token) instead of standard Sanctum authentication, allowing for larger file uploads that bypass normal request size limits.

⚠️ Important: These endpoints must be called on the dedicated upload domain: https://mmp.affise.com instead of the standard API domain. This domain is specifically configured to handle large file uploads.

Applications

Create application with APK upload

Create a new application with APK file upload support. This endpoint uses upload token (JWT) passed as Bearer token instead of standard Sanctum token.

Base URL: https://mmp.affise.com

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/upload/applications" \
    --header "Authorization: string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "store=google"\
    --form "url=https://play.google.com/store/apps/details?id=com.example.app"\
    --form "apple_id_package=com.example.app"\
    --form "package_name=com.example.app"\
    --form "package_description=architecto"\
    --form "timezone=Europe/Moscow"\
    --form "app_status=apk"\
    --form "currency=USD"\
    --form "name=My App"\
    --form "icon=https://example.com/icon.png"\
    --form "client_url=http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html"\
    --form "apk=@/tmp/phpjiNMJK" 
const url = new URL(
    "https://app.affisemmp.com/api/v2/upload/applications"
);

const headers = {
    "Authorization": "string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('store', 'google');
body.append('url', 'https://play.google.com/store/apps/details?id=com.example.app');
body.append('apple_id_package', 'com.example.app');
body.append('package_name', 'com.example.app');
body.append('package_description', 'architecto');
body.append('timezone', 'Europe/Moscow');
body.append('app_status', 'apk');
body.append('currency', 'USD');
body.append('name', 'My App');
body.append('icon', 'https://example.com/icon.png');
body.append('client_url', 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html');
body.append('apk', document.querySelector('input[name="apk"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/upload/applications';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'store',
                'contents' => 'google'
            ],
            [
                'name' => 'url',
                'contents' => 'https://play.google.com/store/apps/details?id=com.example.app'
            ],
            [
                'name' => 'apple_id_package',
                'contents' => 'com.example.app'
            ],
            [
                'name' => 'package_name',
                'contents' => 'com.example.app'
            ],
            [
                'name' => 'package_description',
                'contents' => 'architecto'
            ],
            [
                'name' => 'timezone',
                'contents' => 'Europe/Moscow'
            ],
            [
                'name' => 'app_status',
                'contents' => 'apk'
            ],
            [
                'name' => 'currency',
                'contents' => 'USD'
            ],
            [
                'name' => 'name',
                'contents' => 'My App'
            ],
            [
                'name' => 'icon',
                'contents' => 'https://example.com/icon.png'
            ],
            [
                'name' => 'client_url',
                'contents' => 'http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html'
            ],
            [
                'name' => 'apk',
                'contents' => fopen('/tmp/phpjiNMJK', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200):


{
    "data": {
        "id": 90,
        "status": "active",
        "store": "telegram",
        "url": "https://t.me/+G-SOmeChaNNeluRl",
        "client_id": 1,
        "package_name": "Velit et.",
        "package_description": "SAID was, 'Why is a very interesting dance to watch,' said Alice, as she spoke; 'either you or your head must be on the floor, as it left no mark on.",
        "timezone": "America/Lima",
        "app_status": "at_store",
        "currency": "BTC",
        "currency_iso": "BTC",
        "name": "architecto eius et",
        "icon": "https://s3.eu-central-1.amazonaws.com/attribution.stage/public/applications/icons/icon.jpeg",
        "is_default": false,
        "secret_key": "323b6a8d-e367-448b-a725-570558d9afbd",
        "api_secret_key": null,
        "token": "SAXJA5CSYMTCN",
        "agency_invite_token": "FQ1FQNFJ8VG8W",
        "is_active": true,
        "decryption_key": null,
        "fb_app_id": null,
        "fb_meta_pixel_id": null,
        "fb_access_token": null,
        "fb_pixel_access_token": null,
        "fbc_api_enabled": null,
        "fbc_api_events": null,
        "fbc_api_events_mapping": null,
        "fb_marketing_events_mapping": null,
        "fb_pixel_events_mapping": null,
        "fbc_api_value": null,
        "fbc_api_send_organic": null,
        "use_pixel_api": null,
        "fb_send_organic": false,
        "fb_send_googleads": false,
        "fcm_key": null,
        "created_at": "2026-01-23T10:24:20.000000Z",
        "updated_at": "2026-01-23T10:24:19Z",
        "probabilistic": true,
        "apple_s2s_tracking_url_v1": null,
        "apple_s2s_tracking_url_v2": null,
        "cross_postback_url": null,
        "default_postback_url": null,
        "postback_url": null,
        "send_organic": false,
        "cross_postback_for_all_conversions": false,
        "secure_code": null,
        "fingerprint_available": null,
        "device_id_available": null,
        "re_attribution": null,
        "unity_ads_setting": null,
        "is_google_adwords_enabled": false,
        "sdk_callback": null,
        "anti_fraud_settings": {
            "social_traffic": null,
            "emulators": null,
            "ctit_sec": null,
            "session_count": null,
            "session_sec": null,
            "proxy": null,
            "24metrics_enabled": null,
            "24metrics_level": null
        },
        "tiktok_attribution": {
            "access_token": null,
            "pixel_code": null,
            "tiktok_app_id": null,
            "offline_event_set_id": null,
            "api_events_mapping": null
        },
        "google_ads_attribution": {
            "events_mapping": null,
            "api_events_mapping": null,
            "link_id": null
        },
        "google_firebase_attribution": {
            "project_id": null
        },
        "bigo_attributes": {
            "events_mapping": null
        },
        "subscriptions": {
            "saved": null,
            "urls": null,
            "secure_code": "zfviD8"
        },
        "settings": [],
        "signature_name": null
    }
}
 

Example response (201, Success):


{
    "message": "Application successfully created",
    "data": {
        "id": "01234567-89ab-cdef-0123-456789abcdef",
        "name": "My App",
        "package_name": "com.example.app"
    }
}
 

Request   

POST api/v2/upload/applications

Headers

Authorization      

Example: string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

Body Parameters

store   string  optional  

The application store. Must be one of: google, apple, huawei, xiaomi, rustore, nashstore, other. Example: google

url   string  optional  

The store URL for the application. Required unless app_status is "apk" or "not_published". Example: https://play.google.com/store/apps/details?id=com.example.app

apple_id_package   string  optional  

Required if store is "apple". The Apple bundle identifier. Example: com.example.app

package_name   string   

The application package name. Example: com.example.app

package_description   string  optional  

The application description. Example: architecto

timezone   string   

The timezone for the application. Example: Europe/Moscow

app_status   string   

The application status. Must be one of: in_store, not_published, apk. Example: apk

currency   string   

The currency ISO code. Example: USD

name   string   

The application name. Example: My App

icon   string   

The application icon URL or base64 data. Example: https://example.com/icon.png

client_url   string  optional  

The client URL. Example: http://www.bailey.biz/quos-velit-et-fugiat-sunt-nihil-accusantium-harum.html

apk   file  optional  

Required if app_status is "apk". The APK file to upload. Example: /tmp/phpjiNMJK

Update application APK

Update the APK file for an existing application. This endpoint uses upload token (JWT) passed as Bearer token instead of standard Sanctum token. The application must have app_status of "apk" to use this endpoint.

Base URL: https://mmp.affise.com

Example request:
curl --request POST \
    "https://app.affisemmp.com/api/v2/upload/applications/1/update-apk" \
    --header "Authorization: string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..." \
    --header "Content-Type: multipart/form-data" \
    --header "Accept: application/json" \
    --form "apk=@/tmp/phpJBFihN" 
const url = new URL(
    "https://app.affisemmp.com/api/v2/upload/applications/1/update-apk"
);

const headers = {
    "Authorization": "string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
    "Content-Type": "multipart/form-data",
    "Accept": "application/json",
};

const body = new FormData();
body.append('apk', document.querySelector('input[name="apk"]').files[0]);

fetch(url, {
    method: "POST",
    headers,
    body,
}).then(response => response.json());
$client = new \GuzzleHttp\Client();
$url = 'https://app.affisemmp.com/api/v2/upload/applications/1/update-apk';
$response = $client->post(
    $url,
    [
        'headers' => [
            'Authorization' => 'string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...',
            'Content-Type' => 'multipart/form-data',
            'Accept' => 'application/json',
        ],
        'multipart' => [
            [
                'name' => 'apk',
                'contents' => fopen('/tmp/phpJBFihN', 'r')
            ],
        ],
    ]
);
$body = $response->getBody();
print_r(json_decode((string) $body));

Example response (200, Success):


{
    "message": "Application APK successfully updated",
    "apk_url": "https://storage.example.com/apks/app-v2.apk"
}
 

Example response (422, Invalid status):


{
    "message": "The given data was invalid.",
    "errors": {
        "apk": [
            "Application not in status apk"
        ]
    }
}
 

Request   

POST api/v2/upload/applications/{application_id}/update-apk

Headers

Authorization      

Example: string required Bearer token obtained from the upload-token endpoint. Example: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...

Content-Type      

Example: multipart/form-data

Accept      

Example: application/json

URL Parameters

application_id   integer   

The ID of the application. Example: 1

application   string   

The application ID. Example: 01234567-89ab-cdef-0123-456789abcdef

Body Parameters

apk   file   

The APK file to upload. Example: /tmp/phpJBFihN