AppLovin Campaigns API

Campaign create / update / list operations

OpenAPI Specification

applovin-campaigns-api-openapi.yml Raw ↑
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.