Axon Campaign Management API
The Axon Campaign Management API is for advertisers who use AppLovin’s AppDiscovery to promote their apps.
You can create and update both campaigns and creative sets, and can upload new assets, by sending requests to the Axon Campaign Management API.
Campaigns
The /campaign/list
Endpoint
Make a GET
request to this endpoint to retrieve a list of up to 100 campaigns on your account.
This list is a JSON array of Campaign Objects.
This endpoint returns an empty array if there are no campaigns on the selected page.
Target URL
https://api.ads.axon.ai/manage/v1/campaign/list?account_id=«account-ID»
Query Parameters
Name | Description | Default |
---|---|---|
ids | A comma-separated list of campaign IDs. Use this to filter the results to only those that have the specified IDs. You can specify a maximum of 100 IDs this way. Do not include this alongside hashed_ids . | null |
hashed_ids | A comma-separated list of external campaign IDs. Use this to filter the results to only those with the specified IDs. You can specify a maximum of 100 IDs this way. Do not include this alongside ids . | null |
page | The page number of the results to retrieve. The first page is page 1. | 1 |
size | The number of results to return per page. Maximum 100. | 100 |
Examples
Request paginated
curl --location 'https://api.ads.axon.ai/manage/v1/campaign/list?account_id=«account-ID»&size=50&page=10' \--header 'Authorization: «campaign-API-key»'
Request filtered
curl --location 'https://api.ads.axon.ai/manage/v1/campaign/list?account_id=«account-ID»&ids=12345' \--header 'Authorization: «campaign-API-key»'
Response
[ { "id": "12345", "name": "test campaign", "status": "LIVE", "platform": "IOS", "budget": { "daily_budget_for_all_countries": "5000", "country_code_to_daily_budget": {} }, "goal": { "goal_value_for_all_countries": "10", "goal_type": "CPI", "country_code_to_goal_value": {} }, "tracking": { "tracking_method": "APPSFLYER", "impression_url": "https://impression.appsflyer.com/id1234567890?pid=applovin_int&af_siteid={APP_ID}&c={CAMPAIGN_NAME}&af_ad={AD_NAME}&af_ad_type={AD_SIZE}&af_channel={AD_TYPE}&af_c_id={CAMPAIGN_ID}&af_adset=_DEFAULT&af_ad_id={AD_ID}&af_viewthrough_lookback=24h&clickid={DID}&idfa={IDFA}&af_ip={IP}&af_lang={LOCALE}&af_ua={USER_AGENT}", "click_url": "https://app.appsflyer.com/id1234567890?pid=applovin_int&af_siteid={APP_ID}&c={CAMPAIGN_NAME}&af_ad={AD_NAME}&af_ad_type={AD_SIZE}&af_channel={AD_TYPE}&af_c_id={CAMPAIGN_ID}&af_adset=_DEFAULT&af_ad_id={AD_ID}&af_click_lookback=7d&clickid={DID}&idfa={IDFA}&af_ip={IP}&af_lang={LOCALE}&af_ua={USER_AGENT}" }, "targeting": [ { "country_code": "HR" }, { "country_code": "MF" }, { "country_code": "RW" }, { "country_code": "CO" } ], "type": "APP", "created_at": "2025-05-22T21:51:01", "package_name": "com.package.name", "itunes_id": "1234567890", "bidding_strategy": "TARGET_GOAL_WITH_CPI_BILLING", "start_date": "2025-05-23T00:00:00", "end_date": "2025-05-30T00:00:00" }]
The /campaign/create
Endpoint
Make a POST
request to this endpoint to create a new campaign.
The request body is a Campaign Object.
Review the Create
column of the Campaign Object table to determine which fields you should include in your request.
This endpoint returns a JSON object that contains the Campaign ID (id
) of the campaign this endpoint creates.
Target URL
https://api.ads.axon.ai/manage/v1/campaign/create?account_id=«account-ID»
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/campaign/create?account_id=«account-ID»' \--header 'Content-Type: application/json' \--header 'Authorization: «campaign-API-key»' \--data '{ "name": "test", "type": "APP", "start_date": "2025-07-20T00:00:00", "end_date": "2025-07-31T00:00:00", "targeting": [ { "country_code": "US" }, { "country_code": "CA" } ], "budget": { "daily_budget_for_all_countries": "6000" }, "goal": { "goal_value_for_all_countries": "0.3", "goal_type": "CHK_ROAS", "roas_day_target": "DAY28" }, "bidding_strategy": "TARGET_GOAL_WITH_CPI_BILLING", "platform": "ANDROID", "package_name": "com.AppLovin.MaxDemoUnity", "tracking": { "tracking_method": "ADJUST", "impression_url": "https://view.adjust.com/impression/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}", "click_url": "https://app.adjust.com/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}" }}'
Response
{ "id": "12345"}
The /campaign/update
Endpoint
Make a POST
request to this endpoint to update an existing campaign.
The request body is a Campaign Object.
Review the Update
column of the Campaign Object table to determine which fields you should include in your request.
This endpoint returns a JSON object that contains the Campaign ID (id
) of the campaign this endpoint updates.
Target URL
https://api.ads.axon.ai/manage/v1/campaign/update?account_id=«account-ID»
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/campaign/update?account_id=«account-ID»' \--header 'Content-Type: application/json' \--header 'Authorization: «campaign-API-key»' \--data '{ "id": "12345", "name": "test", "status": "LIVE", "type": "APP", "platform": "ANDROID", "budget": { "country_code_to_daily_budget": { "CA": "5000", "US": "1000" } }, "goal": { "goal_value_for_all_countries": "0.98" }, "tracking": { "tracking_method": "ADJUST", "impression_url": "https://view.adjust.com/impression/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}", "click_url": "https://app.adjust.com/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}" }, "targeting": [ { "country_code": "CA" }, { "country_code": "US" } ], "created_at": "2025-07-18T10:26:32", "package_name": "com.AppLovin.MaxDemoUnity", "end_date": "2025-07-31T05:00:00"}
Response
{ "id": "12345"}
Campaign Object
Name | Type | Description | Create | Update |
---|---|---|---|---|
bidding_strategy | String | Bidding strategy for the campaign. Valid values include: target_goal_with_cpi_billing : We will aim to control the cost per result around your target goal. You will be charged on each app install.auto_bidding_with_cpm_billing : We will aim to fully utilize your budget while maximizing results at the lowest possible cost per result. You will be charged on every ad impression.maximize_results_with_cpm_billing : We will aim to fully utilize your budget while maximizing results, ensuring the cost per result stays within a certain range around your target goal. You will be charged on every ad impression. | Required | Forbidden |
budget | Budget | Budget settings of the campaign. See Budget. | Required | Optional |
created_at | String | The creation time of the campaign, in ISO 8601 format (UTC). | Ignored | Ignored |
end_date | String | The end date of the campaign in ISO 8601 format (UTC). | Required | Optional |
goal | Goal | Goal settings of the campaign. See Goal. | Required | Optional |
hashed_id . | String | The external ID of the campaign. It is the same value as the campaign_id_external in the Reporting API, the {CAMPAIGN_ID} Tracking URL Macro and the campaign_id in the Campaign Management API. | Forbidden | Ignored |
id | Long | The ID of the campaign. | Forbidden | Required |
itunes_id | Integer | The iTunes ID associated with the campaign. | Required (iOS only) | Optional |
name | String | The name of the campaign. | Required | Optional |
package_name | String | The package name associated with the campaign. | Required | Optional |
platform | String | The platform for the campaign. | Required | Optional |
start_date | String | The start date of the campaign in ISO 8601 format (UTC). Cannot be earlier than today’s date. | Required | Forbidden |
status | String | The current state of the campaign. Valid values: LIVE , PAUSED . | Ignored | Optional |
targeting | array<Targeting> | The country targets for the campaign. See Targeting. | Required | Optional |
tracking | Tracking | The tracking settings for the campaign. See Tracking. | Required | Optional |
type | String | The type of the campaign. Valid values: APP | Required | Required |
Targeting Object
Name | Type | Description |
---|---|---|
country_code | String | The ISO 3166-1 alpha-2 code represents the target country. For example, US for the United States, FR for France, or JP for Japan. See Table of Country Codes below for the full list. |
region_codes | array<String> | An array of region codes that specify target regions within the specified country. These are optional and only apply when the country_code is US . This array should contain valid U.S. state abbreviations (e.g. CA for California, NY for New York). See Table of Region Codes below for the full list. |
"targeting": [ { "country_code": "US", "region_codes": [ "CA", "FL" ] }]
Budget Object
You can set either a global budget or country-level budgets. This is required when you create a campaign.
Name | Type | Description |
---|---|---|
daily_budget_for_all_countries | decimal | Specifies a uniform daily budget that you want to apply across all targeted countries. |
"budget": { "daily_budget_for_all_countries": "6000"}
Name | Type | Description |
---|---|---|
country_code_to_daily_budget | <String, decimal> | Sets individual goal values for specific countries, where each key is a country code (e.g. US , FR ) and the value is the goal for that country. See Table of Country Codes below for a full list of valid country codes. |
"budget": { "country_code_to_daily_budget": { "US": "5000", "FR": "1000" }}
Goal Object
Goal Value
The goal value depends on the goal type. For CPI / CPE / CPP it represents a cost per install / event / purchase; for AD_ROAS, CHK_ROAS, BLD_ROAS it represents the percentage return on the targeted day.
You can set either a global goal or country-level goals.
Name | Type | Description |
---|---|---|
goal_value_for_all_countries | decimal | Specifies a uniform goal value that you want to apply across all targeted countries. |
"goal": { "goal_value_for_all_countries": "0.5", ⋮}
Name | Type | Description |
---|---|---|
country_code_to_goal_value | Map<String, decimal> | Sets individual goal values for specific countries, where each key is a country code (e.g. US , FR ) and the value is the goal for that country. See Table of Country Codes below for a full list of valid country codes. |
"goal": { "country_code_to_goal_value": { "US": "0.9", "FR": "0.2" }, ⋮}
Goal Type
The goal type defines the optimization goal for the campaign.
Cost per install.
goal_type
value: CPI
Name | Type | Description |
---|---|---|
goal_type | String | Defines the optimization goal for the campaign. |
"goal": { ⋮ "goal_type": "CPI"}
Cost per custom Event.
goal_type
value: CPE
Name | Type | Description |
---|---|---|
event_target | String | Specifies which event the campaign optimizes for. |
goal_type | String | Defines the optimization goal for the campaign. |
"goal": { ⋮ "goal_type": "CPE", "event_target": "level_10"}
Cost per purchaser.
goal_type
value: CPP
Name | Type | Description |
---|---|---|
goal_type | String | Defines the optimization goal for the campaign. |
"goal": { ⋮ "goal_type": "CPP",}
Advertising return on ad spend.
goal_type
value: AD_ROAS
Name | Type | Description |
---|---|---|
goal_type | String | Defines the optimization goal for the campaign. |
roas_day_target | String | Specifies the time window for calculating ROAS. One of: DAY0 , DAY7 , DAY28 |
"goal": { ⋮ "goal_type": "AD_ROAS", "roas_day_target": "DAY0"}
In-App purchase return on ad spend.
goal_type
value: CHK_ROAS
Name | Type | Description |
---|---|---|
goal_type | String | Defines the optimization goal for the campaign. |
roas_day_target | String | Specifies the time window for calculating ROAS. One of: DAY0 , DAY7 , DAY28 |
"goal": { ⋮ "goal_type": "CHK_ROAS", "roas_day_target": "DAY28"}
Total return on ad spend.
goal_type
value: BLD_ROAS
Name | Type | Description |
---|---|---|
goal_type | String | Defines the optimization goal for the campaign. |
roas_day_target | String | Specifies the time window for calculating ROAS. One of: DAY0 , DAY7 , DAY28 |
"goal": { ⋮ "goal_type": "BLD_ROAS", "roas_day_target": "DAY7"}
Tracking Object
This endpoint requires this object and all of its values when you create a campaign.
Name | Type | Description |
---|---|---|
click_url | String | The URL used for tracking ad clicks. |
impression_url | String | The URL used for tracking ad impressions. |
tracking_method | String | The attribution tracking provider used for this campaign. See Table of Tracking Methods below for a full list. |
"tracking": { "tracking_method": "ADJUST", "impression_url": "https://view.adjust.com/impression/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}", "click_url": "https://app.adjust.com/123abc?campaign={CAMPAIGN_NAME}%20({CAMPAIGN_ID})&adgroup={APP_ID}&creative={AD_NAME}&idfa={IDFA}&country={CC}&gps_adid={IDFA}&adgroup_id={PLACEMENT_ID}&ip_address={DEVICE_IP}&campaign_id={CAMPAIGN_ID}&device_type={DEVICE_TYPE}&publisher_id={APP_ID}&tracker_limit=100000&applovin_click_id={DID}&applovin_event_id={EVENT_ID}&external_tracker_ids=1&android_id_lower_sha1={HADID}"}
Creative Sets
The /creative_set/list
Endpoint
Make a GET
request to this enpoint to retrieve a list of up to 100 creative sets on your account.
This list is a JSON array of Creative Set Objects.
This endpoint returns an empty array if there are no creative sets on the selected page.
Target URL
https://api.ads.axon.ai/manage/v1/creative_set/list?account_id=«account-ID»
Query Parameters
Name | Description | Default |
---|---|---|
ids | A comma-separated list of creative set IDs. Use this to filter the results to only those with the specified IDs. You can specify a maximum of 100 IDs this way. Do not include this alongside hashed_ids . | null |
hashed_ids | A comma-separated list of external creative set IDs. Use this to filter the results to only those with the specified IDs. You can specify a maximum of 100 IDs this way. Do not include this alongside ids . | null |
page | The page number of the results to retrieve. The first page is page 1. | 1 |
size | The number of results to return per page. Maximum 100. | 100 |
Examples
Request paginated
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/list?account_id=«account-ID»&size=50&page=10' \--header 'Authorization: «campaign-API-key»'
Request filtered
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/list?account_id=«account-ID»&ids=56789' \--header 'Authorization: «campaign-API-key»'
Response
[ { "id": "56789", "campaign_id": "12345", "type": "APP", "name": "test", "assets": [ { "id": "63085821", "name": "playable.html", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/playable_raw.html", "type": "HOSTED_HTML", "resource_type": "HTML", }, { "id": "62453682", "name": "test1.mp4", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/test1.mp4", "asset_type": "VID_LONG_P", "resource_type": "VIDEO", } ], "languages": [ "ENGLISH" ], "countries": [ "US" ] }]
The /creative_set/list_by_campaign_id
Endpoint
Make a GET
request to this endpoint to retrieve information about creative sets that are included in a set of campaign IDs on your account.
This endpoint returns up to 100 results at a time.
Target URL
https://api.ads.axon.ai/manage/v1/creative_set/list_by_campaign_id?account_id=«account-ID»
Query Parameters
Name | Description | Default |
---|---|---|
ids | A comma-separated list of campaign IDs. Use this to filter the results to only creative sets within the specified campaign IDs. You can specify a maximum of 100 IDs this way. | null |
page | The page number of the results to retrieve. The first page is page 1. | 1 |
size | The number of results to return per page. Maximum 100. | 100 |
Response Body Parameters
Name | Description |
---|---|
campaign_count | The number of campaigns in the campaigns object. |
creative_set_count | The total number of creative sets across returned in this response across all campaigns. |
campaigns | A dictionary containing information about the returned campaigns. The keys are campaign IDs. The values are arrays of Creative Set Objects. |
Examples
Request paginated
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/list_by_campaign_id?account_id=«account-ID»&ids=56789,1648980&size=50&page=10' \--header 'Authorization: «campaign-API-key»'
Request filtered
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/list_by_campaign_id?account_id=«account-ID»&ids=56789' \--header 'Authorization: «campaign-API-key»'
Response
{ "campaign_count": 2, "creative_set_count": 2, "campaigns": { "12345": [ { "id": "56789", "type": "APP", "name": "test", "assets": [ { "id": "63085821", "name": "playable.html", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/playable_raw.html", "type": "HOSTED_HTML", "resource_type": "HTML", }, { "id": "62453682", "name": "test1.mp4", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/test1.mp4", "asset_type": "VID_LONG_P", "resource_type": "VIDEO", } ], "languages": [ "ENGLISH" ], "countries": [ "US" ], "campaign_id": "56789", "product_page": "", "created_at": "2025-07-18T10:56:05" } ], "1648980": [ { "id": "27227280", "type": "APP", "name": "Test_1", "assets": [ { "id": "63085821", "name": "playable.html", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/playable_raw.html", "type": "HOSTED_HTML", "resource_type": "HTML", }, { "id": "62453682", "name": "test1.mp4", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/test1.mp4", "asset_type": "VID_LONG_P", "resource_type": "VIDEO", } ], "status": "PAUSED", "languages": [ "CHINESE_TRADITIONAL", "ITALIAN", "INDONESIAN" ], "countries": [], "campaign_id": "1648980", "product_page": "test.com", "created_at": "2025-06-03T23:23:12" } ] }}
The /creative_set/create
Endpoint
Make a POST
request to this endpoint to create a new creative set.
The request body is a Creative Set Object.
Review the Create
column of the Creative Set Object table to determine which fields you should include in your request.
This endpoint returns a JSON object that contains the Creative Set ID (id
) of the creative set this endpoint creates.
Target URL
https://api.ads.axon.ai/manage/v1/creative_set/create?account_id=«account-ID»
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/create?account_id=«account-ID»' \--header 'Content-Type: application/json' \--header 'Authorization: «campaign-API-key»' \--data '{ "campaign_id": "12345", "type": "APP", "name": "test", "assets": [ { "id": "62453682" } ], "languages": [ "ENGLISH" ], "countries": [ "US" ]}
Response
{ "id": "56789", "version": "V2"}
The /creative_set/update
Endpoint
Make a POST
request to this endpoint to update an existing creative set.
The request body is a Creative Set Object.
Review the Update
column of the Creative Set Object table to determine which fields you should include in your request.
This endpoint returns a JSON object that contains the Creative Set ID (id
) of the creative set this endpoint updates.
Target URL
https://api.ads.axon.ai/manage/v1/creative_set/update?account_id=«account-ID»
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/update?account_id=«account-ID»' \--header 'Content-Type: application/json' \--header 'Authorization: «campaign-API-key»' \--data '{ "id": "56789", "campaign_id": "12345", "type": "APP", "name": "test", "assets": [ { "id": "63085821" }, { "id": "62453682" } ], "languages": [ "ENGLISH" ], "countries": [ "US" ]}
Response
{ "id": "56789", "version": "V2"}
Creative Set Versions
We support two different creative set versions:
V1
: You may upload only a single asset of each asset type.V2
: You may upload up to 10 assets for each asset type.
When you create a new creative set, its version is always V2
unless you clone it from a previously-existing creative set that is V1
.
Creative Set Object
Name | Type | Description | Create | Update |
---|---|---|---|---|
assets | array<CreativeSetAsset> | Assets to include in the creative set. Please refer to CreativeSetAsset. May only contain the following: HOSTED_HTML , VID_LONG_P , VID_SHORT_P , IMG_BANNER Must contain a HOSTED_HTML file. | Required | Optional |
campaign_id | String | The ID of the campaign this creative set belongs to. | Required | Required |
countries | array<String> | List of the ISO 3166-1 alpha-2 codes in which this creative set will be served. For example, US for the United States, FR for France, or JP for Japan. Defaults to all countries. See Table of Country Codes below for the full list. | Optional | Optional |
id | String | ID of the creative set. | Forbidden | Required |
hashed_id | String | The external ID of the creative set. It is the same value as the creative_set_id in the Reporting API, the {CREATIVE_SET_ID} Tracking URL Macro and the creative_set_id in the Campaign Management API. | Forbidden | Ignored |
languages | array<Language> | List of languages. Defaults to all languages. Please refer to Table of Languages below for the full list. | Optional | Optional |
name | String | The name of the creative set. | Required | Optional |
product_page | String | iOS Custom Product Page or Android Store Listing associated with the creative set. | Optional | Optional |
status | String | Status of the creative set: LIVE or PAUSED | Optional | Optional |
type | String | The type of the campaign. Only APP is supported. | Required | Required |
version | String | The creative set version. V1 for older creative sets that only support a single asset per type, V2 for new creative set that support multiple assets per type. | Ignored | Ignored |
CreativeSetAsset Object
Name | Type | Description | Create Creative Set |
---|---|---|---|
id | String | ID of the asset. You use this ID when you create or update a creative set. | Required |
name | String | Asset name. | Ignored |
status | String | Asset status. Possible values are: IN_REVIEW , REJECTED , ACTIVE , PAUSED , UNKNOWN . | Ignored |
type | String | Creative asset type. Possible values are: VID_LONG_P , VID_SHORT_P , HOSTED_HTML , IMG_BANNER . | Ignored |
url | String | The URL of the asset, for example: https://res1.applovin.com/r83948939/test1.mp4 | Ignored |
The /creative_set/clone
Endpoint
Make a POST
request to this endpoint to clone an existing creative set to a different campaign.
This endpoint returns a JSON object that contains the Creative Set ID (id
) of the resulting cloned creative set.
Target URL
https://api.ads.axon.ai/manage/v1/creative_set/clone?account_id=«account-ID»
Request Body Parameters
Name | Type | Description |
---|---|---|
campaign_id | Integer | The ID of the campaign into which you want to clone the creative set. |
creative_set_id | Integer | ID of the creative set you want to clone. |
status | String | Status of the cloned creative set: LIVE or PAUSED . |
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/creative_set/clone?account_id=«account-ID»' \--header 'Content-Type: application/json' \--header 'Authorization: «campaign-API-key»' \--data '{ "campaign_id": "12345", "creative_set_id": "39823", "status":"live"}
Response
{ "id": "56795", "version": "V1"}
Assets
The /asset/list
Endpoint
Make a GET
request to this enpoint to retrieve a list of up to 100 campaigns on your account.
This list is a JSON array of Asset Objects.
This endpoint returns an empty array if there are no campaigns on the selected page.
Target URL
https://api.ads.axon.ai/manage/v1/asset/list?account_id=«account-ID»
Query Parameters
Name | Description | Default |
---|---|---|
ids | A comma-separated list of asset IDs. Use this to filter the results to only those with the specified IDs. You can specify a maximum of 100 IDs this way. | null |
page | The page number of the results to retrieve. The first page is page 1. | 1 |
resource_type | An asset resource type variety. Use this to filter the results to only those with that resource type. Possible values are image , html , video | null |
size | The number of results to return per page. Maximum 100. | 100 |
Asset Object
Name | Type | Description |
---|---|---|
asset_type | String | Creative asset type. Possible values are VID_LONG_P , VID_SHORT_P , HOSTED_HTML , or IMG_BANNER . |
id | String | ID of the asset. Use this when you create or update a creative set. |
name | String | Asset name. |
resource_type | String | The resource type of the asset. Possible values are IMAGE , VIDEO , or HTML . |
status | String | Asset status. Possible values are IN_REVIEW , REJECTED , ACTIVE , or PAUSED . |
upload_time | String | The uploaded time of the asset, for example: 2025-04-27T23:34:06 |
url | String | The URL of the uploaded asset, for example: https://res1.applovin.com/r83948939/test1.mp4 |
Examples
Request paginated
curl --location 'https://api.ads.axon.ai/manage/v1/asset/list?account_id=«account-ID»&size=50&page=10' \--header 'Authorization: «campaign-API-key»'
Request filtered
curl --location 'https://api.ads.axon.ai/manage/v1/asset/list?account_id=«account-ID»&ids=12345' \--header 'Authorization: «campaign-API-key»'
Response
[ { "id": "65061535", "name": "playable.html", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/playable_raw.html", "asset_type": "HOSTED_HTML", "resource_type": "HTML", "upload_time": "2025-07-04T07:25:30" }, { "id": "65061052", "name": "test1.mp4", "status": "ACTIVE", "url": "https://res1.applovin.com/r83948939/test1.mp4", "asset_type": "VID_LONG_P", "resource_type": "VIDEO", "upload_time": "2025-07-04T07:24:57" }]
The /asset/upload
Endpoint
Make a POST
request to this endpoint to upload new asset files.
You can upload up to 40 files at once.
The total size must not exceed 10GB and the size of a single file should not exceed 1GB.
After the upload, AppLovin processes, optimizes, and reviews the assets.
This endpoint returns a JSON object with an upload_id
.
You can use this ID to query the status of the uploaded assets.
See The /asset/upload_result
Endpoint below.
Target URL
https://api.ads.axon.ai/manage/v1/asset/upload?account_id=«account-ID»
Request Form Fields
Name | Type | Description |
---|---|---|
files | array<File> | Each file name must be unique in the batch and each file must have a Content-Type. Supported Content-Type values are text/html , image/gif , image/jpeg , image/png , video/mp4 , and video/quicktime . |
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/asset/upload?account_id=«account-ID»' \--header 'Authorization: «campaign-API-key»' \--form 'files=@"/path/to/playable.html"' \--form 'files=@"/path/to/video.mp4"'
Response
{ "upload_id": "c7a3db4226b24bd8bb0b38c46654aa54"}
The /asset/upload_result
Endpoint
Make a GET
request to this endpoint to check the status of an upload request.
This endpoint returns a JSON object containing information about the given upload_id
.
Target URL
https://api.ads.axon.ai/manage/v1/asset/upload_result?account_id=«account-ID»&upload_id=«upload-ID»
Request Query Parameters
Name | Type | Description |
---|---|---|
upload_id | String | The upload_id returned by the /asset/upload endpoint. |
Response Body Parameters
Name | Type | Description |
---|---|---|
details | array<AssetUploadDetail> | Details about each of the uploaded files. See AssetUploadDetail. |
summary | AssetUploadSummary | Overview of the status of the uploaded files. See AssetUploadSummary. |
upload_status | String | The overall status of upload asset request: PENDING if any files are still processing, otherwise FINISHED . |
AssetUploadSummary Object
Name | Type | Description |
---|---|---|
failed | Integer | Count of failed assets. |
pending | Integer | Count of pending assets. |
success | Integer | Count of successfully processed assets. |
total | Integer | Count of all assets in upload request. |
AssetUploadDetail Object
Name | Type | Description |
---|---|---|
error_message | String | If the upload fails, this contains the reason for the failure. |
file_status | String | The upload status of the asset. Possible values are PENDING , FAILURE , or SUCCESS . |
id | String | The ID of the asset. |
name | String | The name of the asset. |
resource_type | String | The resource type of the asset. Possible values are IMAGE , VIDEO , or HTML . |
uploadTime | String | The upload time of the asset, for example: 2025-04-27T23:34:06 |
url | String | The URL of the uploaded asset, for example: https://res1.applovin.com/r83948939/test1.mp4 |
Examples
Request
curl --location 'https://api.ads.axon.ai/manage/v1/asset/upload_result?account_id=«account-ID»&upload_id=«upload-ID»' \--header 'Authorization: «campaign-API-key»' \
Response
{ "summary": { "total": 2, "success": 2, "failed": 0, "pending": 0 }, "details": [ { "id": "66218554", "name": "playable.html", "uploadTime": "2025-07-19T08:24:29", "url": "https://res1.applovin.com/r0186867/b30361c076022e02ea3cc1b80a6855f5491a6d70_raw.raw", "resource_type": "HTML", "file_status": "SUCCESS" }, { "id": "65061052", "name": "test1.mp4", "uploadTime": "2025-07-19T08:24:29", "url": "https://res1.applovin.com/r83948939/test1.mp4", "resource_type": "VIDEO", "file_status": "SUCCESS", } ], "upload_status": "FINISHED"}
Table of Tracking Methods
API Name | MMP Name |
---|---|
adjust | Adjust |
appsflyer | AppsFlyer |
apsalar | Singular |
branch | Branch |
kochava | Kochava |
tenjin | Tenjin |
Table of Languages
ALBANIAN
ARABIC
BASQUE
BENGALI
BOSNIAN
BULGARIAN
CATALAN
CHINESE_SIMPLIFIED
CHINESE_TRADITIONAL
CROATIAN
CZECH
DANISH
DUTCH
ENGLISH
ESTONIAN
FARSI
FINNISH
FRENCH
GEORGIAN
GERMAN
GREEK
HEBREW
HINDI
HUNGARIAN
ICELANDIC
INDONESIAN
ITALIAN
JAPANESE
JAVANESE
KOREAN
LATVIAN
LITHUANIAN
MACEDONIAN
MALAY
MARATHI
NORWEGIAN
POLISH
PORTUGESE
ROMANIAN
RUSSIAN
SERBIAN
SLOVAK
SLOVENIAN
SPANISH
SUNDANESE
SWEDISH
THAI
TURKISH
UIGHUR
UKRAINIAN
URDU
VIETNAMESE
Table of Country Codes
AD
AE
AF
AG
AI
AL
AM
AO
AR
AS
AT
AU
AW
AX
AZ
BA
BB
BD
BE
BF
BG
BH
BI
BJ
BL
BM
BN
BO
BQ
BR
BS
BT
BW
BY
BZ
CA
CD
CF
CG
CH
CI
CK
CL
CM
CN
CO
CR
CV
CW
CY
CZ
DE
DJ
DK
DM
DO
DZ
EC
EE
EG
EH
ER
ES
ET
FI
FJ
FK
FM
FO
FR
GA
GB
GD
GE
GF
GG
GH
GI
GL
GM
GN
GP
GQ
GR
GT
GU
GW
GY
HK
HN
HR
HT
HU
ID
IE
IL
IM
IN
IQ
IS
IT
JE
JM
JO
JP
KE
KG
KH
KI
KM
KN
KR
KW
KY
KZ
LA
LB
LC
LI
LK
LR
LS
LT
LU
LV
LY
MA
MC
MD
ME
MF
MG
MH
MK
ML
MM
MN
MO
MP
MQ
MR
MS
MT
MU
MV
MW
MX
MY
MZ
NA
NC
NE
NF
NG
NI
NL
NO
NP
NQ
NR
NU
NZ
OM
PA
PE
PF
PG
PH
PK
PL
PM
PN
PR
PS
PT
PW
PY
QA
RE
RO
RS
RU
RW
SA
SB
SC
SD
SE
SG
SH
SI
SJ
SK
SL
SM
SN
SO
SR
SS
ST
SV
SX
SZ
TC
TD
TG
TH
TJ
TK
TL
TM
TN
TO
TR
TT
TV
TW
TZ
UA
UG
US
UY
UZ
VA
VC
VE
VG
VI
VN
VU
WF
WS
XK
YE
YT
ZA
ZM
ZW
Table of Region Codes
AK
(Alaska)AL
(Alabama)AR
(Arkansas)AZ
(Arizona)CA
(California)CO
(Colorado)CT
(Connecticut)DC
(District of Columbia)DE
(Delaware)FL
(Florida)GA
(Georgia)HI
(Hawaii)IA
(Iowa)ID
(Idaho)IL
(Illinois)IN
(Indiana)KS
(Kansas)KY
(Kentucky)LA
(Louisiana)MA
(Massachusetts)MD
(Maryland)ME
(Maine)MI
(Michigan)MN
(Minnesota)MO
(Missouri)MS
(Mississippi)MT
(Montana)NC
(North Carolina)ND
(North Dakota)NE
(Nebraska)NH
(New Hampshire)NJ
(New Jersey)NM
(New Mexico)NV
(Nevada)NY
(New York)OH
(Ohio)OK
(Oklahoma)OR
(Oregon)PA
(Pennsylvania)PR
(Puerto Rico)RI
(Rhode Island)SC
(South Carolina)SD
(South Dakota)TN
(Tennessee)TX
(Texas)UT
(Utah)VA
(Virginia)VT
(Vermont)WA
(Washington)WI
(Wisconsin)WV
(West Virginia)WY
(Wyoming)