AppsFlyer Ad Revenue raw data API

The Ad Revenue raw data API from AppsFlyer — 3 operation(s) for ad revenue raw data.

Operations 3

GET /{app-id}/ad_revenue_organic_raw/v5 Organic ad revenue #
GET /{app-id}/ad-revenue-raw-retarget/v5 Retargeting ad revenue #
GET /{app-id}/ad_revenue_raw/v5 Attributed ad revenue #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appsflyer-ad-revenue-raw-data-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appsflyer-ad-revenue-raw-data-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Raw Data Pull API V2 Token Ad Revenue raw data API
  version: 1.0.0
servers:
- url: https://hq1.appsflyer.com/api/raw-data/export/app/
security:
- Bearer-Authentication: []
tags:
- name: Ad Revenue raw data
paths:
  /{app-id}/ad_revenue_organic_raw/v5:
    get:
      tags:
      - Ad Revenue raw data
      summary: Organic ad revenue
      description: '> ⚠️ Important

        >

        > All API V2 tokens generated before March 10, 2026, 19:00 UTC have been revoked. If your token was generated before this date, please regenerate it. Learn how.


        Records ad revenue for users not attributed to a media source.

        Data freshness: Daily'
      parameters:
      - $ref: '#/components/parameters/AppId'
      - $ref: '#/components/parameters/FromDate'
      - $ref: '#/components/parameters/ToDate'
      - $ref: '#/components/parameters/MediaSource'
      - $ref: '#/components/parameters/Category'
      - $ref: '#/components/parameters/Currency'
      - $ref: '#/components/parameters/Geo'
      - $ref: '#/components/parameters/MaximumRows'
      - $ref: '#/components/parameters/FromInstallTime'
      - $ref: '#/components/parameters/ToInstallTime'
      - $ref: '#/components/parameters/Agency'
      - in: query
        name: additional_fields
        explode: false
        schema:
          type: array
          items:
            enum:
            - store_reinstall
            - impressions
            - contributor3_match_type
            - gp_click_time
            - match_type
            - mediation_network
            - oaid
            - deeplink_url
            - blocked_reason
            - blocked_sub_reason
            - gp_broadcast_referrer
            - gp_install_begin
            - custom_data
            - rejected_reason
            - device_download_time
            - keyword_match_type
            - contributor1_match_type
            - contributor2_match_type
            - device_model
            - monetization_network
            - segment
            - is_lat
            - gp_referrer
            - blocked_reason_value
            - store_product_page
            - device_category
            - rejected_reason_value
            - ad_unit
            - keyword_id
            - placement
            - network_account_id
            - install_app_store
            - amazon_aid
            - engagement_type
            - total_candidates
            - engagement_destination
          default:
          - store_reinstall
          - impressions
          - contributor3_match_type
          - gp_click_time
          - match_type
          - mediation_network
          - oaid
          - deeplink_url
          - blocked_reason
          - blocked_sub_reason
          - gp_broadcast_referrer
          - gp_install_begin
          - custom_data
          - rejected_reason
          - device_download_time
          - keyword_match_type
          - contributor1_match_type
          - contributor2_match_type
          - device_model
          - monetization_network
          - segment
          - is_lat
          - gp_referrer
          - blocked_reason_value
          - store_product_page
          - device_category
          - rejected_reason_value
          - ad_unit
          - keyword_id
          - placement
          - network_account_id
          - install_app_store
          - amazon_aid
          - engagement_type
          - total_candidates
          - engagement_destination
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      operationId: getByAppIdAdRevenueOrganicRawV5
      x-operation-id-source: derived
  /{app-id}/ad-revenue-raw-retarget/v5:
    get:
      tags:
      - Ad Revenue raw data
      summary: Retargeting ad revenue
      description: '> ⚠️ Important

        >

        > All API V2 tokens generated before March 10, 2026, 19:00 UTC have been revoked. If your token was generated before this date, please regenerate it. Learn how.


        Ad revenue of users attributed to a retargeting media source during the re-engagement window.

        Data freshness: Daily'
      parameters:
      - $ref: '#/components/parameters/AppId'
      - $ref: '#/components/parameters/FromDate'
      - $ref: '#/components/parameters/ToDate'
      - $ref: '#/components/parameters/MediaSource'
      - $ref: '#/components/parameters/Category'
      - $ref: '#/components/parameters/Currency'
      - $ref: '#/components/parameters/Geo'
      - $ref: '#/components/parameters/MaximumRows'
      - in: query
        name: additional_fields
        explode: false
        schema:
          type: array
          items:
            enum:
            - store_reinstall
            - impressions
            - contributor3_match_type
            - gp_click_time
            - match_type
            - mediation_network
            - oaid
            - deeplink_url
            - blocked_reason
            - blocked_sub_reason
            - gp_broadcast_referrer
            - gp_install_begin
            - custom_data
            - rejected_reason
            - device_download_time
            - keyword_match_type
            - contributor1_match_type
            - contributor2_match_type
            - device_model
            - monetization_network
            - segment
            - is_lat
            - gp_referrer
            - blocked_reason_value
            - store_product_page
            - device_category
            - rejected_reason_value
            - ad_unit
            - keyword_id
            - placement
            - network_account_id
            - install_app_store
            - amazon_aid
            - engagement_type
            - total_candidates
            - engagement_destination
          default:
          - store_reinstall
          - impressions
          - contributor3_match_type
          - gp_click_time
          - match_type
          - mediation_network
          - oaid
          - deeplink_url
          - blocked_reason
          - blocked_sub_reason
          - gp_broadcast_referrer
          - gp_install_begin
          - custom_data
          - rejected_reason
          - device_download_time
          - keyword_match_type
          - contributor1_match_type
          - contributor2_match_type
          - device_model
          - monetization_network
          - segment
          - is_lat
          - gp_referrer
          - blocked_reason_value
          - store_product_page
          - device_category
          - rejected_reason_value
          - ad_unit
          - keyword_id
          - placement
          - network_account_id
          - install_app_store
          - amazon_aid
          - engagement_type
          - total_candidates
          - engagement_destination
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      operationId: getByAppIdAdRevenueRawRetargetV5
      x-operation-id-source: derived
  /{app-id}/ad_revenue_raw/v5:
    get:
      tags:
      - Ad Revenue raw data
      summary: Attributed ad revenue
      description: '> ⚠️ Important

        >

        > All API V2 tokens generated before March 10, 2026, 19:00 UTC have been revoked. If your token was generated before this date, please regenerate it. Learn how.


        Records ad revenue for users attributed to a media source.

        Data freshness: Daily'
      parameters:
      - $ref: '#/components/parameters/AppId'
      - $ref: '#/components/parameters/FromDate'
      - $ref: '#/components/parameters/ToDate'
      - $ref: '#/components/parameters/MediaSource'
      - $ref: '#/components/parameters/Category'
      - $ref: '#/components/parameters/Currency'
      - $ref: '#/components/parameters/Geo'
      - $ref: '#/components/parameters/MaximumRows'
      - $ref: '#/components/parameters/FromInstallTime'
      - $ref: '#/components/parameters/ToInstallTime'
      - $ref: '#/components/parameters/Agency'
      - in: query
        name: additional_fields
        explode: false
        schema:
          type: array
          items:
            enum:
            - store_reinstall
            - impressions
            - contributor3_match_type
            - gp_click_time
            - match_type
            - mediation_network
            - oaid
            - deeplink_url
            - blocked_reason
            - blocked_sub_reason
            - gp_broadcast_referrer
            - gp_install_begin
            - custom_data
            - rejected_reason
            - device_download_time
            - keyword_match_type
            - contributor1_match_type
            - contributor2_match_type
            - device_model
            - monetization_network
            - segment
            - is_lat
            - gp_referrer
            - blocked_reason_value
            - store_product_page
            - device_category
            - rejected_reason_value
            - ad_unit
            - keyword_id
            - placement
            - network_account_id
            - install_app_store
            - amazon_aid
            - engagement_type
            - total_candidates
            - engagement_destination
          default:
          - store_reinstall
          - impressions
          - contributor3_match_type
          - gp_click_time
          - match_type
          - mediation_network
          - oaid
          - deeplink_url
          - blocked_reason
          - blocked_sub_reason
          - gp_broadcast_referrer
          - gp_install_begin
          - custom_data
          - rejected_reason
          - device_download_time
          - keyword_match_type
          - contributor1_match_type
          - contributor2_match_type
          - device_model
          - monetization_network
          - segment
          - is_lat
          - gp_referrer
          - blocked_reason_value
          - store_product_page
          - device_category
          - rejected_reason_value
          - ad_unit
          - keyword_id
          - placement
          - network_account_id
          - install_app_store
          - amazon_aid
          - engagement_type
          - total_candidates
          - engagement_destination
      responses:
        '200':
          $ref: '#/components/responses/Success'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
      operationId: getByAppIdAdRevenueRawV5
      x-operation-id-source: derived
components:
  parameters:
    Category:
      description: "media_source: Use to filter the call for a specific media source. \nSet both the `media_source` and `category` parameters as follows:\n- For Facebook set `category` and `media_source` to facebook\n- For Twitter set `category` and `media_source` to twitter\n- For all other media sources set `category` to standard and `media_source` to the name of the media source.\nExamples\n- `media_source=facebook&category=facebook`\n- `media_source=abc_example&category=standard`\n"
      in: query
      name: category
      schema:
        type: string
        enum:
        - standard
        - facebook
        - twitter
    MediaSource:
      description: 'Use to filter by a specific media source

        Set both the `category` and `media_source` parameters as follows:

        - For Facebook set `category` and `media_source` to facebook

        - For Twitter set `category` and `media_source` to twitter

        - For all other media sources set `category` to standard and `media_source` to the name of the media source.

        Examples

        - `media_source=facebook&category=facebook`

        - `media_source=abc_example&category=standard`

        '
      name: media_source
      in: query
      schema:
        type: string
      example: facebook
    ToDate:
      in: query
      name: to
      description: To date (report end date)
      examples:
        DateOnly:
          summary: Date only
          value: '2022-04-22'
        DateHourMin:
          summary: Date-Hour-Mins
          value: 2022-04-22 21:45
        DateHourMinSecs:
          summary: Date-Hour-Mins-Secs
          value: '2022-04-22 21:45:23'
      required: true
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$
    MaximumRows:
      name: maximum_rows
      in: query
      schema:
        $ref: '#/components/schemas/MaximumRows'
    FromDate:
      in: query
      name: from
      description: From date (report start date)
      examples:
        DateOnly:
          summary: Date only
          value: '2022-04-22'
        DateHourMin:
          summary: Date-Hour-Mins
          value: 2022-04-22 21:45
        DateHourMinSecs:
          summary: Date-Hour-Mins-Secs
          value: '2022-04-22 21:45:23'
      required: true
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$
    FromInstallTime:
      in: query
      name: from_install_time
      description: From install time
      examples:
        DateOnly:
          summary: Date only
          value: '2022-04-22'
        DateHourMin:
          summary: Date-Hour-Mins
          value: 2022-04-22 21:45
        DateHourMinSecs:
          summary: Date-Hour-Mins-Secs
          value: '2022-04-22 21:45:23'
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$
    AppId:
      in: path
      name: app-id
      description: Application ID. For non-mobile apps, use the unified app ID with the required platform prefix, for example nativepc-, steam-, epic-, roku-, xbox-, and others. For the complete list see [the overview](https://dev.appsflyer.com/hc/reference/raw_data_pull_api_tokenv2-overview#supported-non-mobile-platform-prefixes-and-examples).
      example: id121244
      required: true
      schema:
        type: string
    ToInstallTime:
      in: query
      name: to_install_time
      description: To install time
      examples:
        DateOnly:
          summary: Date only
          value: '2022-04-22'
        DateHourMin:
          summary: Date-Hour-Mins
          value: 2022-04-22 21:45
        DateHourMinSecs:
          summary: Date-Hour-Mins-Secs
          value: '2022-04-22 21:45:23'
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}( \d{2}:\d{2}(:\d{2})?)?$
    Agency:
      in: query
      name: agency
      description: 'Use to filter by a specific agency

        '
      schema:
        type: array
        items:
          type: string
      examples:
        SingleAgency:
          summary: filter by single agency
          value: agency=agency-name
        MediaSourceAndAgency:
          summary: filter by media_source & agency
          value: media_source=media-source-name&agency=agency-name
        MultipleAgencies:
          summary: filter by multiple agencies
          value: agency=agency-name-a,agency-name-b
    Geo:
      name: geo
      in: query
      schema:
        $ref: '#/components/schemas/Geo'
      description: 'Filter the data by country code.

        Limitation: You can set only one country code filter per API call.

        '
    Currency:
      name: currency
      in: query
      schema:
        type: string
        enum:
        - preferred
        - USD
      description: 'Currency of revenue and cost.

        Aggregate Pull API reports always use the app-specific currency.

        '
  responses:
    NotFound:
      description: 'App ID wasn''t found.

        - Ensure that the app ID is correct. iOS apps must start with ID.

        - The token doesn''t match the app. Are you using the correct token?

        '
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            message: AppsFlyer 404 error message page displays
    Success:
      content:
        text/csv:
          schema:
            type: string
      description: Reports returned in CSV format
    BadRequest:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            CallLimit:
              value:
                message: Your API call limit has been reached for the given report type
            LookBack:
              description: Use `to` and `from` to limit the date range to 3 months or less.
              value:
                message: Raw reports historical lookback is limited to 90 days
            InvalidLimit:
              description: report_rows can have the value 200000 or 1000000.
              value:
                message: Invalid limit type
    Unauthorized:
      description: Account may be suspended. Log in to the dashboard and check the account status.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            InvalidToken:
              description: Ask an admin for the current token
              value:
                message: Supplied API token is invalid
            Suspended:
              description: Log in to the dashboard and check the account status
              value:
                message: Account may be suspended
  schemas:
    Geo:
      type: string
      minItems: 0
      enum:
      - AF
      - AX
      - AL
      - DZ
      - AS
      - AD
      - AO
      - AI
      - AQ
      - AG
      - AR
      - AM
      - AW
      - AU
      - AT
      - AZ
      - BS
      - BH
      - BD
      - BB
      - BY
      - BE
      - BZ
      - BJ
      - BM
      - BT
      - BO
      - BA
      - BW
      - BV
      - BR
      - IO
      - BN
      - BG
      - BF
      - BI
      - KH
      - CM
      - CA
      - CV
      - KY
      - CF
      - TD
      - CL
      - CN
      - CX
      - CC
      - CO
      - KM
      - CG
      - CD
      - CK
      - CR
      - CI
      - HR
      - CU
      - CY
      - CZ
      - DK
      - DJ
      - DM
      - DO
      - EC
      - EG
      - SV
      - GQ
      - ER
      - EE
      - ET
      - FK
      - FO
      - FJ
      - FI
      - FR
      - GF
      - PF
      - TF
      - GA
      - GM
      - GE
      - DE
      - GH
      - GI
      - GR
      - GL
      - GD
      - GP
      - GU
      - GT
      - GG
      - GN
      - GW
      - GY
      - HT
      - HM
      - VA
      - HN
      - HK
      - HU
      - IS
      - IN
      - ID
      - IR
      - IQ
      - IE
      - IM
      - IL
      - IT
      - JM
      - JP
      - JE
      - JO
      - KZ
      - KE
      - KI
      - KR
      - KP
      - KW
      - KG
      - LA
      - LV
      - LB
      - LS
      - LR
      - LY
      - LI
      - LT
      - LU
      - MO
      - MK
      - MG
      - MW
      - MY
      - MV
      - ML
      - MT
      - MH
      - MQ
      - MR
      - MU
      - YT
      - MX
      - FM
      - MD
      - MC
      - MN
      - ME
      - MS
      - MA
      - MZ
      - MM
      - NA
      - NR
      - NP
      - NL
      - AN
      - NC
      - NZ
      - NI
      - NE
      - NG
      - NU
      - NF
      - MP
      - 'NO'
      - OM
      - PK
      - PW
      - PS
      - PA
      - PG
      - PY
      - PE
      - PH
      - PN
      - PL
      - PT
      - PR
      - QA
      - RE
      - RO
      - RU
      - RW
      - BL
      - SH
      - KN
      - LC
      - MF
      - PM
      - VC
      - WS
      - SM
      - ST
      - SA
      - SN
      - RS
      - SC
      - SL
      - SG
      - SK
      - SI
      - SB
      - SO
      - ZA
      - GS
      - ES
      - LK
      - SD
      - SR
      - SJ
      - SZ
      - SE
      - CH
      - SY
      - TW
      - TJ
      - TZ
      - TH
      - TL
      - TG
      - TK
      - TO
      - TT
      - TN
      - TR
      - TM
      - TC
      - TV
      - UG
      - UA
      - AE
      - UK
      - US
      - UM
      - UY
      - UZ
      - VU
      - VE
      - VN
      - VG
      - VI
      - WF
      - EH
      - YE
      - ZM
      - ZW
    Error:
      type: string
    MaximumRows:
      type: integer
      enum:
      - 200000
      - 1000000
      description: 'Maximum number of rows returned by a single API call.

        - [Default] if no value is sent, up to 200K rows

        - 200000: Up to 200K rows return

        - 1000000: Up to 1M rows return

        '
      minItems: 0
  securitySchemes:
    Bearer-Authentication:
      type: http
      scheme: bearer
      description: "**Important: API V2 Token Revocation**\n\nAll API V2 tokens generated before March 10, 2026, 19:00 UTC have been revoked. If your token was generated before this date, please regenerate it. [Learn how](https://support.appsflyer.com/hc/en-us/articles/360004562377-Managing-AppsFlyer-tokens).\n\nAuthorization HTTP header containing API V2 token (bearer token) is required.\n\n The admin [gets the V2 token in the dashboard](https://support.appsflyer.com/hc/en-us/articles/360004562377) "