### Example API Request for Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-installs-report-v5 This example demonstrates how to construct an API request to get app installs data. It includes common parameters like date range, app ID, and country. ```json { "date": { "start_date": "2022-01-01", "end_date": "2022-01-31" }, "app_id": "1621111111", "country": "US" } ``` -------------------------------- ### Example API Response for Organic Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-organic-installs-report-v5 This is an example of the JSON response structure you can expect when requesting the organic installs report. It includes key metrics for the specified period and app. ```json { "request_id": "some_unique_id", "data": [ { "date": "2023-10-26", "app_id": "YOUR_APP_ID", "installs": 150, "attributed_installs": 145, "organic_installs": 5, "country": "US" } ] } ``` -------------------------------- ### Get App Installs Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-retarget-install-postbacks-v5 Fetches app install postbacks with optional filtering. ```APIDOC ## GET /app/{app_id}/retarget/install/postbacks ### Description Retrieve postbacks for app installs, with options to filter by time, agency, and other parameters. Supports CSV format for data export. ### Method GET ### Endpoint /app/{app_id}/retarget/install/postbacks ### Parameters #### Query Parameters - **maximum_rows** (MaximumRows) - Optional - Specifies the maximum number of rows to return. - **from_install_time** (string) - Optional - Filter by install time, starting from this timestamp. Format: `YYYY-MM-DD` or `YYYY-MM-DD HH:MM` or `YYYY-MM-DD HH:MM:SS`. - **to_install_time** (string) - Optional - Filter by install time, up to this timestamp. Format: `YYYY-MM-DD` or `YYYY-MM-DD HH:MM` or `YYYY-MM-DD HH:MM:SS`. - **agency** (array of strings) - Optional - Filter by one or more agency names. Can be a single agency, multiple comma-separated agencies, or used in conjunction with `media_source`. ### Response #### Success Response (200) - **text/csv** - Reports returned in CSV format #### Error Responses - **400 Bad Request**: Returned if the API call limit is reached, the date range exceeds 90 days, or an invalid limit type is provided. - **401 Unauthorized**: Returned if the account is suspended or the API token is invalid. - **404 Not Found**: Returned if the provided App ID is incorrect or the token does not match the app. ``` -------------------------------- ### Get Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-postbacks-v5 Retrieves records of install events generated when a user opens the app for the first time. Data freshness is daily. ```APIDOC ## GET /{app-id}/postbacks/v5 ### Description Records install events generated when a user opens the app for the first time. Data freshness: Daily. ### Method GET ### Endpoint `https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/postbacks/v5` ### Parameters #### Path Parameters - **app-id** (string) - Required - The unique identifier for the application. #### Query Parameters - **FromDate** (string) - Required - The start date for the data pull in YYYY-MM-DD format. - **ToDate** (string) - Required - The end date for the data pull in YYYY-MM-DD format. - **MediaSource** (string) - Optional - Filter by media source. - **Category** (string) - Optional - Filter by category. - **Currency** (string) - Optional - Filter by currency. - **TimeZone** (string) - Optional - Filter by time zone. - **Geo** (string) - Optional - Filter by geographical location. - **MaximumRows** (integer) - Optional - Maximum number of rows to return. - **FromInstallTime** (string) - Optional - The start time for filtering by install time (ISO 8601 format). - **ToInstallTime** (string) - Optional - The end time for filtering by install time (ISO 8601 format). - **Agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - Specify additional fields to include in the response. Possible values include: `store_reinstall`, `attributed_touch_hour`, `impressions`, `contributor3_match_type`, `install_hour`, `event_hour`, `gp_click_time`, `match_type`, `mediation_network`, `oaid`, `deeplink_url`, `blocked_reason`, `postback_retry`, `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`, `att`, `engagement_type`, `contributor1_engagement_type`, `contributor2_engagement_type`, `contributor3_engagement_type`, `gdpr_applies`, `ad_user_data_enabled`, `ad_personalization_enabled`. ### Response #### Success Response (200) - **field1** (type) - Description ``` -------------------------------- ### Get Blocked Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-blocked-install-postbacks-v5 Retrieves a list of blocked install postbacks for a given app. You can filter the list by country. ```APIDOC ## GET /app/{app_id}/blocked-install-postbacks/v5 ### Description Retrieves a list of blocked install postbacks for a given app. You can filter the list by country. ### Method GET ### Endpoint /app/{app_id}/blocked-install-postbacks/v5 ### Parameters #### Query Parameters - **geo** (string) - Optional - Filter by country code (e.g., US, GB, DE). ### Response #### Success Response (200) - **blocked_postbacks** (array) - A list of blocked postbacks. - **country** (string) - The country code. - **postback_url** (string) - The blocked postback URL. #### Response Example { "blocked_postbacks": [ { "country": "US", "postback_url": "http://example.com/postback" } ] } ``` -------------------------------- ### Get Organic Installs Source: https://dev.appsflyer.com/hc/reference/get_app-id-reinstalls-organic-v5 Fetches organic install data for a given app. Supports filtering by date, country, currency, and more. Returns data in CSV format. ```APIDOC ## GET /app/{app_id}/installs/organic ### Description Retrieves a list of organic installs for a specific application. ### Method GET ### Endpoint /app/{app_id}/installs/organic ### Parameters #### Query Parameters - **from_install_time** (string) - Optional - From install time. Examples: "2022-04-22", "2022-04-22 21:45", "2022-04-22 21:45:23" - **to_install_time** (string) - Optional - To install time. Examples: "2022-04-22", "2022-04-22 21:45", "2022-04-22 21:45:23" - **geo** (string) - Optional - Filter the data by country code. Limitation: You can set only one country code filter per API call. - **currency** (string) - Optional - Currency of revenue and cost. Possible values: "preferred", "USD". Aggregate Pull API reports always use the app-specific currency. - **agency** (array of strings) - Optional - Use to filter by a specific agency. Examples: "agency=agency-name", "media_source=media-source-name&agency=agency-name", "agency=agency-name-a,agency-name-b" - **timezone** (string) - Optional - Data returns using the app-specific time zone. Time zone format takes into account daylight saving time. Example: "Europe/Paris". Data prior to the date of the change uses UTC as the timezone. - **maximum_rows** (integer) - Optional - Maximum number of rows to return. ### Response #### Success Response (200) - **content** (text/csv) - Reports returned in CSV format. #### Error Response (400) - **message** (string) - Error message. Examples: "Your API call limit has been reached for the given report type", "Raw reports historical lookback is limited to 90 days", "Invalid limit type" #### Error Response (401) - **message** (string) - Error message indicating unauthorized access, possibly due to an account suspension. ``` -------------------------------- ### Get App Installs Source: https://dev.appsflyer.com/hc/reference/get_app-id-reinstalls-v5 Retrieves app install data. Supports filtering by time range, country, currency, and agency. Returns data in CSV format. ```APIDOC ## GET /app-id/reinstalls/v5 ### Description Retrieves app install data. Supports filtering by time range, country, currency, and agency. Returns data in CSV format. ### Method GET ### Endpoint /app-id/reinstalls/v5 ### Parameters #### Query Parameters - **from_install_time** (string) - Optional - From install time. Accepts date only (YYYY-MM-DD), date-hour-mins (YYYY-MM-DD HH:MM), or date-hour-mins-secs (YYYY-MM-DD HH:MM:SS). - **to_install_time** (string) - Optional - To install time. Accepts date only (YYYY-MM-DD), date-hour-mins (YYYY-MM-DD HH:MM), or date-hour-mins-secs (YYYY-MM-DD HH:MM:SS). - **geo** (string) - Optional - Filter the data by country code. Limitation: Only one country code filter per API call. - **currency** (string) - Optional - Currency of revenue and cost. Options: "preferred", "USD". Aggregate Pull API reports always use the app-specific currency. - **maximum_rows** (integer) - Optional - Maximum number of rows to return. - **agency** (string) - Optional - Use to filter by a specific agency. Can be a single agency, multiple agencies (comma-separated), or combined with media_source. - **timezone** (string) - Optional - Time zone for the data. If not sent, UTC is used. Format: "Europe/Paris". Data prior to the timezone setting date uses UTC. ### Response #### Success Response (200) - **text/csv** - Reports returned in CSV format. #### Error Response (400) - **application/json** - Bad Request. Possible error messages include "Your API call limit has been reached for the given report type", "Raw reports historical lookback is limited to 90 days", or "Invalid limit type". #### Error Response (401) - **application/json** - Unauthorized. Account may be suspended. Log in to the dashboard and check the account status. ``` -------------------------------- ### Example API Request for Organic Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-organic-installs-report-v5 This snippet demonstrates a typical API request to fetch the organic installs report. Ensure you replace placeholders with your actual account details and desired parameters. ```json { "report_type": "organic_installs_report", "api_version": "v5", "params": { "date": "2023-10-26", "timezone": "UTC", "app_id": "YOUR_APP_ID", "country": "US" } } ``` -------------------------------- ### Get Retarget Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-retarget-install-postbacks-v5 Fetches retarget install postbacks for a given app ID. You can filter the results by date range, media source, and country. ```APIDOC ## GET /app/{app-id}/retarget-install-postbacks ### Description Retrieves retarget install postbacks for a specific application ID. ### Method GET ### Endpoint /app/{app-id}/retarget-install-postbacks ### Parameters #### Path Parameters - **app-id** (string) - Required - 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). #### Query Parameters - **from** (string) - Required - From date (report start date). Example: 2022-04-22 or 2022-04-22 21:45 or 2022-04-22 21:45:23 - **to** (string) - Required - To date (report end date). Example: 2022-04-22 or 2022-04-22 21:45 or 2022-04-22 21:45:23 - **media_source** (string) - Optional - Use to filter by a specific media source. Examples: `media_source=facebook&category=facebook` or `media_source=abc_example&category=standard` - **category** (string) - Optional - Use to filter by a specific media source category. Enum: standard, facebook, twitter. Examples: `media_source=facebook&category=facebook` or `media_source=abc_example&category=standard` - **timezone** (string) - Optional - Timezone of the report. Defaults to UTC. Example: Europe/Paris - **geo** (string) - Optional - Filter the data by country code. Limitation: You can set only one country code filter per API call. - **currency** (string) - Optional - Currency of revenue and cost. Enum: preferred, USD. ### Response #### Success Response (200) - **status** (string) - Indicates the status of the request. - **result** (array) - An array of postback objects. - **campaign_name** (string) - The name of the campaign. - **campaign_id** (string) - The ID of the campaign. - **postback_name** (string) - The name of the postback. - **postback_id** (string) - The ID of the postback. - **is_retargeting** (boolean) - Indicates if the install is a retargeting install. - **is_organic** (boolean) - Indicates if the install is organic. - **country_code** (string) - The country code of the install. - **device_type** (string) - The type of device. - **platform** (string) - The platform of the device. - **app_id** (string) - The application ID. - **app_name** (string) - The name of the application. - **media_source** (string) - The media source of the install. - **install_time** (string) - The timestamp of the install. - **click_time** (string) - The timestamp of the click. - **conversion_time** (string) - The timestamp of the conversion. - **af_siteid** (string) - The AppsFlyer site ID. - **attributed_touch_type** (string) - The type of attributed touch. - **attributed_touch_time** (string) - The timestamp of the attributed touch. - **cost_model** (string) - The cost model for the install. - **cost_value** (number) - The cost value for the install. - **revenue_model** (string) - The revenue model for the install. - **revenue_value** (number) - The revenue value for the install. - **currency** (string) - The currency of the revenue and cost. - **custom_fields** (object) - A key-value object of custom fields. #### Response Example { "status": "success", "result": [ { "campaign_name": "my_campaign", "campaign_id": "1234567890", "postback_name": "my_postback", "postback_id": "0987654321", "is_retargeting": true, "is_organic": false, "country_code": "US", "device_type": "phone", "platform": "Android", "app_id": "com.example.app", "app_name": "Example App", "media_source": "facebook", "install_time": "2023-10-27 10:00:00", "click_time": "2023-10-27 09:55:00", "conversion_time": "2023-10-27 09:59:59", "af_siteid": "123", "attributed_touch_type": "impression", "attributed_touch_time": "2023-10-26 15:00:00", "cost_model": "CPC", "cost_value": 0.5, "revenue_model": "CPA", "revenue_value": 10.0, "currency": "USD", "custom_fields": { "custom_key": "custom_value" } } ] } #### Error Handling - **401** Unauthorized: Invalid API key or insufficient permissions. - **404** Not Found: The specified application ID does not exist. ``` -------------------------------- ### Get Blocked Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-blocked-install-postbacks-v5 Retrieves a list of blocked install postbacks for a specified application ID. You can filter the results by date range and other parameters. ```APIDOC ## GET /app/{app-id}/blocked-install-postbacks ### Description Retrieves a list of blocked install postbacks for a specified application ID. You can filter the results by date range and other parameters. ### Method GET ### Endpoint /app/{app-id}/blocked-install-postbacks ### Parameters #### Path Parameters - **app-id** (string) - Required - 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). #### Query Parameters - **from** (string) - Required - From date (report start date). Example: 2022-04-22 - **to** (string) - Required - To date (report end date). Example: 2022-04-22 - **media_source** (string) - Optional - Use to filter by a specific media source. Examples: `media_source=facebook&category=facebook` - **category** (string) - Optional - Use to filter by a specific media source category. Examples: `media_source=facebook&category=facebook` - **timezone** (string) - Optional - Timezone of the data. If not sent, data returns using UTC. Example: Europe/Paris - **geo** (string) - Optional - Filter the data by country code. Limitation: You can set only one country code filter per API call. - **currency** (string) - Optional - Currency of revenue and cost. Allowed values: `preferred`, `USD`. Default: `preferred`. ### Response #### Success Response (200) - **blocked_postbacks** (array) - List of blocked install postbacks. - **app_id** (string) - The application ID. - **blocked_reason** (string) - The reason why the postback was blocked. - **campaign_id** (string) - The ID of the campaign. - **campaign_name** (string) - The name of the campaign. - **click_id** (string) - The ID of the click. - **country_code** (string) - The country code. - **created_at** (string) - The timestamp when the postback was created. - **device_id** (string) - The ID of the device. - **device_type** (string) - The type of the device. - **event_name** (string) - The name of the event. - **event_time** (string) - The timestamp when the event occurred. - **install_time** (string) - The timestamp when the install occurred. - **ip** (string) - The IP address of the device. - **is_organic** (boolean) - Indicates if the install was organic. - **media_source** (string) - The media source. - **os** (string) - The operating system of the device. - **platform** (string) - The platform of the app. - **sdk_version** (string) - The version of the SDK. - **user_agent** (string) - The user agent of the device. #### Response Example { "blocked_postbacks": [ { "app_id": "id121244", "blocked_reason": "Invalid App ID", "campaign_id": "12345", "campaign_name": "Summer Sale", "click_id": "abc123xyz", "country_code": "US", "created_at": "2023-10-26 10:00:00", "device_id": "abcdef12345", "device_type": "ios", "event_name": "af_install", "event_time": "2023-10-26 09:55:00", "install_time": "2023-10-26 09:50:00", "ip": "192.168.1.1", "is_organic": false, "media_source": "facebook", "os": "iOS 16.0", "platform": "ios", "sdk_version": "6.10.0", "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/16.0 Mobile/15E148 Safari/604.1" } ] } ``` -------------------------------- ### Get Blocked Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-blocked-install-postbacks-v5 Retrieves a list of blocked install postbacks for a specified app ID. You can filter the results by date range and other criteria. ```APIDOC ## GET /app/{app_id}/blocked_install_postbacks ### Description Retrieves a list of blocked install postbacks for a specified app ID. You can filter the results by date range and other criteria. ### Method GET ### Endpoint /app/{app_id}/blocked_install_postbacks ### Parameters #### Query Parameters - **from_install_time** (string) - Optional - From install time. Accepts date-only, date-hour-mins, or date-hour-mins-secs format. - **to_install_time** (string) - Optional - To install time. Accepts date-only, date-hour-mins, or date-hour-mins-secs format. - **agency** (array of strings) - Optional - Use to filter by a specific agency or multiple agencies. - **maximum_rows** (MaximumRows) - Optional - Specifies the maximum number of rows to return. ### Response #### Success Response (200) - **text/csv** - Reports returned in CSV format #### Error Response - **400 Bad Request**: Returned if the API call limit is reached, the date range is invalid, or the limit type is invalid. - **401 Unauthorized**: Returned if the account is suspended or the API token is invalid. - **404 Not Found**: Returned if the App ID is not found or the token does not match the app. ``` -------------------------------- ### Get Blocked Install Postbacks Source: https://dev.appsflyer.com/hc/reference/get_app-id-blocked-install-postbacks-v5 Fetches a list of blocked install postbacks for a given application ID. You can filter the results by various parameters such as date range, media source, and more. Data freshness is real-time. ```APIDOC ## GET /{app-id}/blocked_install_postbacks/v5 ### Description Records copies of postbacks sent to a media source resulting in a blocked install. Data freshness: Real-time ### Method GET ### Endpoint `https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/blocked_install_postbacks/v5` ### Parameters #### Path Parameters - **app-id** (string) - Required - The ID of the application. #### Query Parameters - **from** (string) - Required - The start date for the data pull (YYYY-MM-DD). - **to** (string) - Required - The end date for the data pull (YYYY-MM-DD). - **media_source** (string) - Optional - Filter by media source. - **category** (string) - Optional - Filter by category. - **currency** (string) - Optional - Filter by currency. - **time_zone** (string) - Optional - Filter by time zone. - **geo** (string) - Optional - Filter by geographical location. - **max_rows** (integer) - Optional - Maximum number of rows to return. - **from_install_time** (string) - Optional - Filter by install start time (YYYY-MM-DD HH:MM:SS). - **to_install_time** (string) - Optional - Filter by install end time (YYYY-MM-DD HH:MM:SS). - **agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - Include additional fields in the response. Possible values include: `store_reinstall`, `impressions`, `contributor3_match_type`, `gp_click_time`, `match_type`, `mediation_network`, `oaid`, `deeplink_url`, `blocked_reason`, `postback_retry`, `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`, `device_category`, `rejected_reason_value`, `ad_unit`, `keyword_id`, `placement`, `network_account_id`, `install_app_store`, `amazon_aid`, `att`, `engagement_type`, `contributor1_engagement_type`, `contributor2_engagement_type`, `contributor3_engagement_type`. ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### Get Post-attribution Installs (Fraudulent) Source: https://dev.appsflyer.com/hc/reference/get_app-id-detection-v5 This endpoint retrieves a list of installs that were attributed to a media source but later detected as fraudulent. Data is updated daily. ```APIDOC ## GET /app/{app-id}/detection/v5 ### Description Reports include installs attributed to a media source but later found to be fraudulent. Data freshness: Daily ### Method GET ### Endpoint `https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/detection/v5` ### Parameters #### Path Parameters - **app-id** (string) - Required - The unique identifier for the application. #### Query Parameters - **from** (string) - Required - The start date for the report (YYYY-MM-DD). - **to** (string) - Required - The end date for the report (YYYY-MM-DD). - **media_source** (string) - Optional - Filter by media source. - **category** (string) - Optional - Filter by category. - **currency** (string) - Optional - Filter by currency. - **time_zone** (string) - Optional - The time zone for the report. - **geo** (string) - Optional - Filter by geographical location. - **max_rows** (integer) - Optional - The maximum number of rows to return. - **agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - A list of additional fields to include in the report. Possible values include: `contributor3_match_type`, `detection_date`, `gp_click_time`, `match_type`, `gp_broadcast_referrer`, `gp_install_begin`, `custom_data`, `fraud_reason`, `rejected_reason`, `device_download_time`, `keyword_match_type`, `contributor1_match_type`, `contributor2_match_type`, `device_model`, `fraud_reasons`, `fraud_sub_reason`, `gp_referrer`, `install_time_tz`, `device_category`, `rejected_reason_value`, `network_account_id`, `install_app_store`, `amazon_aid`, `att`, `engagement_type`, `contributor1_engagement_type`, `contributor2_engagement_type`, `contributor3_engagement_type`, `blocked_reason_value`, `total_candidates`. ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### Get App Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-installs-report-v5 This endpoint retrieves install reports for a specified application. You can filter the results by country, currency, and agency. The data is returned in CSV format. ```APIDOC ## GET /app/[app_id]/installs/v5 ### Description Retrieves install reports for a given application. ### Method GET ### Endpoint /app/[app_id]/installs/v5 ### Parameters #### Query Parameters - **from** (string) - Required - The start date for the report. Format: YYYY-MM-DD. - **to** (string) - Required - The end date for the report. Format: YYYY-MM-DD. - **timezone** (string) - Optional - The time zone for the report data. If not sent, UTC is used. Example: "Europe/Paris". - **geo** (string) - Optional - Filter the data by country code. Only one country code filter is allowed per API call. Example: "US". - **currency** (string) - Optional - Currency of revenue and cost. Options: "preferred", "USD". Default is "preferred". - **maximum_rows** (integer) - Optional - The maximum number of rows to return. Allowed values: 200000, 1000000. - **agency** (array of strings) - Optional - Use to filter by a specific agency or multiple agencies. Example: "agency-name" or "agency-name-a,agency-name-b". ### Responses #### Success Response (200) - **text/csv** - Reports returned in CSV format. #### Error Responses - **BadRequest** - Bad Request. Possible reasons include reaching API call limits, invalid date ranges, or invalid limit types. - **Unauthorized** - Unauthorized. Account may be suspended or the API token is invalid. - **NotFound** - App ID not found. Ensure the app ID is correct and the token matches the app. ``` -------------------------------- ### Get Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-installs-report-v5 Fetches non-organic install records for a specified application. The report includes details such as the app ID, date range, media source, and optional additional fields for richer data. ```APIDOC ## GET /{app-id}/installs_report/v5 ### Description Records non-organic installs. The record is generated when a user opens the app for the first time. Data freshness: Real-time ### Method GET ### Endpoint https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/installs_report/v5 ### Parameters #### Path Parameters - **app-id** (string) - Required - The unique identifier for the application. #### Query Parameters - **from** (string) - Required - The start date for the report (YYYY-MM-DD). - **to** (string) - Required - The end date for the report (YYYY-MM-DD). - **media_source** (string) - Optional - Filter by media source. - **category** (string) - Optional - Filter by category. - **currency** (string) - Optional - Filter by currency. - **time_zone** (string) - Optional - Filter by time zone. - **geo** (string) - Optional - Filter by geographical location. - **maximum_rows** (integer) - Optional - The maximum number of rows to return. - **agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - Specify additional fields to include in the report. Possible values include: `store_reinstall`, `impressions`, `contributor3_match_type`, `custom_dimension`, `conversion_type`, `gp_click_time`, `match_type`, `mediation_network`, `oaid`, `deeplink_url`, `blocked_reason`, `blocked_sub_reason`, `gp_broadcast_referrer`, `gp_install_begin`, `campaign_type`, `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`, `app_type`, `rejected_reason_value`, `ad_unit`, `keyword_id`, `placement`, `network_account_id`, `install_app_store`, `amazon_aid`, `att`, `engagement_type`, `contributor1_engagement_type`, `contributor2_engagement_type`, `contributor3_engagement_type`, `gdpr_applies`, `ad_user_data_enabled`, `ad_personalization_enabled`, `total_candidates`, `engagement_destination`. ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### Get Organic Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-organic-installs-report-v5 Fetches a report of organic installs for a given app ID. You can filter the results by date range, media source, and other optional parameters. ```APIDOC ## GET /app/{app-id}/organic_installs_report/v5 ### Description Records when the app is opened by a user for the first time. Data freshness: Continuous. ### Method GET ### Endpoint https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/organic_installs_report/v5 ### Parameters #### Path Parameters - **app-id** (string) - Required - The ID of the application. #### Query Parameters - **from** (string) - Required - The start date for the report (YYYY-MM-DD). - **to** (string) - Required - The end date for the report (YYYY-MM-DD). - **media_source** (string) - Optional - Filter by media source. - **category** (string) - Optional - Filter by category. - **currency** (string) - Optional - Filter by currency. - **time_zone** (string) - Optional - Filter by time zone. - **geo** (string) - Optional - Filter by geographical location. - **maximum_rows** (integer) - Optional - The maximum number of rows to return. - **agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - Specify additional fields to include in the report. Possible values include: store_reinstall, impressions, contributor3_match_type, custom_dimension, conversion_type, gp_click_time, match_type, mediation_network, oaid, deeplink_url, blocked_reason, blocked_sub_reason, gp_broadcast_referrer, gp_install_begin, campaign_type, 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, device_category, app_type, rejected_reason_value, ad_unit, keyword_id, placement, network_account_id, install_app_store, amazon_aid, att, engagement_type, contributor1_engagement_type, contributor2_engagement_type, contributor3_engagement_type, gdpr_applies, ad_user_data_enabled, ad_personalization_enabled, total_candidates. ### Response #### Success Response (200) - **field1** (type) - Description #### Response Example { "example": "response body" } ``` -------------------------------- ### Install Postbacks Source: https://dev.appsflyer.com/hc/reference/overview-5 Records install events generated when a user opens the app for the first time. Data freshness: Daily. ```APIDOC ## GET /{app-id}/postbacks/v5 ### Description Records install events generated when a user opens the app for the first time. ### Method GET ### Endpoint `/{app-id}/postbacks/v5` ### Parameters #### Path Parameters - **app-id** (string) - Required - The unique identifier for the application. ``` -------------------------------- ### Install Postbacks Source: https://dev.appsflyer.com/hc/reference/raw_data_pull_api_tokenv2-overview Retrieves records of install events generated when a user opens the app for the first time. Data freshness is daily. ```APIDOC ## Install Postbacks ### Description Records install events generated when a user opens the app for the first time. Data freshness: Daily ### Method GET ### Endpoint `/{app-id}/postbacks/v5` ### Parameters #### Path Parameters - **app-id** (string) - Required - The unique identifier for the application. ### Response #### Success Response (200) - **data** (array) - Contains the postback records. #### Response Example { "example": "{\"data\": [{\"install_time\": \"2023-10-27T10:00:00Z\", \"app_id\": \"1234567890\", ...}] }" } ``` -------------------------------- ### Get App Installs Source: https://dev.appsflyer.com/hc/reference/get_app-id-reinstalls-v5 Retrieves a list of app installs for a specified application ID. This endpoint is useful for analyzing install trends and user acquisition. ```APIDOC ## GET /app-id/reinstalls/v5 ### Description Retrieves a list of app installs for a specified application ID. ### Method GET ### Endpoint /app-id/reinstalls/v5 ### Parameters #### Query Parameters - **api_token** (string) - Required - The AppsFlyer API token. - **app_id** (string) - Required - The unique identifier for the app. - **from** (string) - Required - The start date for the data retrieval (YYYY-MM-DD). - **to** (string) - Required - The end date for the data retrieval (YYYY-MM-DD). - **reinstalls_only** (boolean) - Optional - If true, only returns reinstalls. Defaults to false. - **max_rows** (integer) - Optional - Maximum number of rows to return. Can be 200000 or 1000000. ### Response #### Success Response (200) - **reinstalls** (array) - An array of reinstall objects. - **install_time** (string) - The timestamp of the install. - **event_time** (string) - The timestamp of the event. - **event_name** (string) - The name of the event. - **app_id** (string) - The app ID. - **attributed_touch_type** (string) - The type of attributed touch. - **attributed_touch_time** (string) - The timestamp of the attributed touch. - **is_organic** (boolean) - Indicates if the install is organic. - **campaign_name** (string) - The name of the campaign. - **af_siteid** (string) - The site ID. - **geo** (string) - The country code of the install. - **ip** (string) - The IP address of the install. - **user_agent** (string) - The user agent of the device. - **device_type** (string) - The type of device. - **os_version** (string) - The version of the operating system. - **platform** (string) - The platform of the device. - **app_version** (string) - The version of the app. - **sdk_version** (string) - The SDK version used. - **country_code** (string) - The country code. - **city** (string) - The city of the install. - **region** (string) - The region of the install. - **language** (string) - The language of the device. - **customer_user_id** (string) - The customer user ID. - **custom_events** (object) - Custom event data. #### Response Example ```json { "reinstalls": [ { "install_time": "2023-10-26 10:00:00", "event_time": "2023-10-26 10:05:00", "event_name": "af_reinstall", "app_id": "com.example.app", "attributed_touch_type": "organic", "attributed_touch_time": "2023-10-26 09:55:00", "is_organic": true, "campaign_name": "Organic Campaign", "af_siteid": "af_siteid_123", "geo": "US", "ip": "192.168.1.1", "user_agent": "Mozilla/5.0", "device_type": "iOS", "os_version": "16.0", "platform": "iOS", "app_version": "1.0.0", "sdk_version": "6.0.0", "country_code": "US", "city": "New York", "region": "NY", "language": "en", "customer_user_id": "user123", "custom_events": {} } ] } ``` #### Error Response - **400 Bad Request**: Invalid parameters provided. - **401 Unauthorized**: Invalid API token. - **404 Not Found**: App ID not found. - **500 Internal Server Error**: Server error. ``` -------------------------------- ### Get Organic Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-organic-installs-report-v5 Fetches a report of organic app installs. Supports filtering by date, country, currency, and agency. ```APIDOC ## GET /app/{app_id}/organic_installs ### Description Retrieves a report of organic installs for a given application ID. This endpoint allows for detailed filtering to customize the report data. ### Method GET ### Endpoint /app/{app_id}/organic_installs ### Parameters #### Query Parameters - **from** (string) - Required - The start date for the report in YYYY-MM-DD format. - **to** (string) - Required - The end date for the report in YYYY-MM-DD format. - **country** (string) - Optional - Filter the data by country code. Limitation: You can set only one country code filter per API call. - **currency** (string) - Optional - Currency of revenue and cost. Aggregate Pull API reports always use the app-specific currency. Enum: ["preferred", "USD"] - **maximum_rows** (integer) - Optional - Maximum number of rows returned by a single API call. Enum: [200000, 1000000] - **agency** (array of strings) - Optional - Use to filter by a specific agency. Can be a single agency, multiple agencies (comma-separated), or used in conjunction with media_source. ### Response #### Success Response (200) - **text/csv** - Reports returned in CSV format. #### Response Example (CSV) ```csv Date,Country,App Name,App ID,Installs,Impressions,Clicks,Conversions,Spend,Revenue,Agency 2023-10-26,US,My Awesome App,1234567890,150,10000,500,10,50.00,150.00,Agency A 2023-10-26,CA,My Awesome App,1234567890,50,3000,150,3,15.00,50.00,Agency B ``` #### Error Response (400, 401, 404) - **BadRequest**: Bad Request. See examples for specific error messages like Call Limit, LookBack, or Invalid Limit. - **Unauthorized**: Account may be suspended or token invalid. See examples for Invalid Token or Suspended account messages. - **NotFound**: App ID wasn't found. Ensure the app ID is correct and the token matches the app. ``` -------------------------------- ### Get Blocked Installs Report Source: https://dev.appsflyer.com/hc/reference/get_app-id-blocked-installs-report-v5 Fetches a report of installs identified as fraudulent and not attributed to any media source. Data freshness is real-time. ```APIDOC ## GET /{app-id}/blocked_installs_report/v5 ### Description Records installs identified as fraudulent and therefore not attributed to any media source. Data freshness: Real-time. ### Method GET ### Endpoint https://hq1.appsflyer.com/api/raw-data/export/app/{app-id}/blocked_installs_report/v5 ### Parameters #### Path Parameters - **app-id** (string) - Required - The ID of the application. #### Query Parameters - **from** (string) - Required - The start date for the report (YYYY-MM-DD). - **to** (string) - Required - The end date for the report (YYYY-MM-DD). - **media_source** (string) - Optional - Filter by media source. - **category** (string) - Optional - Filter by category. - **currency** (string) - Optional - Filter by currency. - **time_zone** (string) - Optional - Filter by time zone. - **geo** (string) - Optional - Filter by geographical location. - **max_rows** (integer) - Optional - The maximum number of rows to return. - **agency** (string) - Optional - Filter by agency. - **additional_fields** (array) - Optional - A list of additional fields to include in the report. Possible values include: 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, app_type, rejected_reason_value, ad_unit, keyword_id, placement, network_account_id, install_app_store, amazon_aid, att, engagement_type, contributor1_engagement_type, contributor2_engagement_type, contributor3_engagement_type, total_candidates. Defaults to all available additional fields. ### Response #### Success Response (200) - **field1** (type) - Description ```