AppLovin Campaigns API
Campaign create / update / list operations
Campaign create / update / list operations
openapi: 3.0.3
info:
title: AppLovin Axon Campaign Management Ad Units Campaigns API
version: v1
x-generated-from: documentation
x-source-url: https://support.axon.ai/en/app-discovery/api/axon-campaign-management-api/
x-last-validated: '2026-05-05'
description: 'REST endpoints used to programmatically manage AppLovin AppDiscovery
(Axon) campaigns, creative sets, and creative assets. All endpoints
require an `Authorization` header with the Campaign Management API key
and an `account_id` query parameter. Rate limit: 1,000 requests per 60
seconds (HTTP 429 on overflow).
'
contact:
name: AppLovin Support
url: https://support.axon.ai
servers:
- url: https://api.ads.axon.ai/manage/v1
description: Axon campaign management API
security:
- bearerAuth: []
tags:
- name: Campaigns
description: Campaign create / update / list operations
paths:
/campaign/list:
get:
operationId: listCampaigns
summary: List Campaigns
description: List campaigns for the authenticated account, optionally filtered by ID lists.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/AccountId'
- name: ids
in: query
required: false
description: Comma-separated campaign IDs (max 100).
schema:
type: string
- name: hashed_ids
in: query
required: false
description: Comma-separated external (hashed) campaign IDs (max 100).
schema:
type: string
- $ref: '#/components/parameters/Page'
- $ref: '#/components/parameters/Size'
responses:
'200':
description: Array of Campaign objects.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Campaign'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/campaign/create:
post:
operationId: createCampaign
summary: Create Campaign
description: 'Create a new AppDiscovery / Axon campaign. The `id` field is
forbidden on create. The `bidding_strategy` field is required and
cannot be updated after creation.
'
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
responses:
'200':
description: Newly created campaign reference.
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignRef'
example:
id: '12345'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
/campaign/update:
post:
operationId: updateCampaign
summary: Update Campaign
description: Update an existing campaign. `id`, `type`, and `campaign_id` are required.
tags:
- Campaigns
parameters:
- $ref: '#/components/parameters/AccountId'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Campaign'
responses:
'200':
description: Updated campaign reference.
content:
application/json:
schema:
$ref: '#/components/schemas/CampaignRef'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'429':
$ref: '#/components/responses/RateLimited'
x-microcks-operation:
delay: 0
dispatcher: FALLBACK
components:
parameters:
AccountId:
name: account_id
in: query
required: true
description: Account identifier issued by AppLovin / Axon.
schema:
type: string
Size:
name: size
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 100
default: 100
Page:
name: page
in: query
required: false
schema:
type: integer
minimum: 1
default: 1
schemas:
Goal:
type: object
properties:
goal_value_for_all_countries:
type: string
country_code_to_goal_value:
type: object
additionalProperties:
type: string
goal_type:
type: string
enum:
- CPI
- CPE
- CPP
- AD_ROAS
- CHK_ROAS
- BLD_ROAS
roas_day_target:
type: string
description: ROAS day window such as DAY1, DAY7, DAY14.
required:
- goal_type
Budget:
type: object
description: Daily budget. Use either `daily_budget_for_all_countries` or `country_code_to_daily_budget`.
properties:
daily_budget_for_all_countries:
type: string
description: Daily budget in USD as a numeric string applied to all targeted countries.
example: '6000'
country_code_to_daily_budget:
type: object
additionalProperties:
type: string
example:
US: '5000'
CA: '1000'
Tracking:
type: object
properties:
tracking_method:
type: string
enum:
- ADJUST
- APPSFLYER
- APSALAR
- BRANCH
- KOCHAVA
- TENJIN
impression_url:
type: string
format: uri
click_url:
type: string
format: uri
required:
- tracking_method
Targeting:
type: object
properties:
country_code:
type: string
description: ISO 3166-1 alpha-2 country code.
region_codes:
type: array
items:
type: string
metro_names:
type: array
items:
type: string
required:
- country_code
CampaignRef:
type: object
properties:
id:
type: string
required:
- id
Error:
type: object
properties:
code:
type: integer
message:
type: string
required:
- code
Campaign:
type: object
description: 'Axon campaign object. x-schema-source: documentation
'
properties:
id:
type: integer
format: int64
description: Campaign identifier (forbidden on create, required on update).
name:
type: string
type:
type: string
enum:
- APP
status:
type: string
enum:
- LIVE
- PAUSED
platform:
type: string
enum:
- IOS
- ANDROID
package_name:
type: string
itunes_id:
type: integer
format: int64
start_date:
type: string
format: date-time
end_date:
type: string
format: date-time
bidding_strategy:
type: string
enum:
- TARGET_GOAL_WITH_CPI_BILLING
- AUTO_BIDDING_WITH_CPM_BILLING
budget:
$ref: '#/components/schemas/Budget'
goal:
$ref: '#/components/schemas/Goal'
tracking:
$ref: '#/components/schemas/Tracking'
targeting:
type: array
items:
$ref: '#/components/schemas/Targeting'
required:
- name
- type
- platform
- start_date
- bidding_strategy
- budget
- goal
- tracking
- targeting
responses:
Unauthorized:
description: Missing or invalid Authorization header.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
BadRequest:
description: Validation or input error.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
RateLimited:
description: Rate limit exceeded (1,000 requests per 60 seconds).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Campaign Management API key passed in the `Authorization` header.