openapi: 3.0.1
info:
title: App management API V2.0
description: API for managing an app on your AppsFlyer account
version: 2.0.0
servers:
- url: https://hq1.appsflyer.com/api/app/v2.0
security:
- bearerAuth: []
paths:
/apps/{app_id}/{platform}:
delete:
tags:
- App management
summary: Delete app
operationId: app-mng-v2-delete
description: Public API for deleting an app from your AppsFlyer account
parameters:
- name: app_id
in: path
description: App id to delete (case-sensitive)
required: true
schema:
$ref: '#/components/schemas/app_id'
- name: platform
in: path
description: Platform app to delete
required: true
schema:
$ref: '#/components/schemas/deletePlatform'
responses:
'200':
description: app deleted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
'400':
description: Missing / Invaild input params or request body
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Invalid platform:
value:
message: 'The platform name was either misspelled or isn''t in the list of supported app platforms. The
supported platforms are: ''android'', ''ios'', ''windowsphone'' ''roku'',''smartcast'',''tizen'', ''webos'',
''playstation'', ''vidaa'', ''steam'', ''quest'', ''battlenet'', ''web'', ''switch'', ''xbox'', ''epic'',
''nativepc'', ''chatgpt'' . For more information please refer to the attached documentation link.'
error:
status: 400
code: VALIDATION_FAILED
message: 'The platform name was either misspelled or isn''t in the list of supported app platforms.
The supported platforms are: ''android'', ''ios'', ''windowsphone'' ''roku'',''smartcast'',''tizen'',
''webos'', ''playstation'', ''vidaa'', ''steam'', ''quest'', ''battlenet'', ''web'', ''switch'', ''xbox'',
''epic'', ''nativepc'', ''chatgpt'' . For more information please refer to the attached documentation
link.'
resource: app,
documentation: https://support.appsflyer.com/hc/en-us/articles/207377436-Adding-an-app-to-AppsFlyer#enter-app-details
'401':
description: Unauthorized - Authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Authentication failed:
value:
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.
error:
status: 401
code: AUTHENTICATION_FAILED
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.
resource: app
'403':
description: Forbidden - You are not authorized to perform this action
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Forbidden - unauthorized user action:
value:
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your CSM.
error:
status: 403
code: FORBIDDEN_UNAUTHORIZED_USER_ACTION
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your
CSM.
resource: app
'404':
description: Not found - Something went wrong please try again
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
AppNotFound:
value:
message: 'The app wasn’t found. Possible reasons: The app doesn''t exist in your account, the app ID was
misspelled, or the wrong platform was entered. Please try again with the correct details. If the issue
persists, contact your CSM or hello@appsflyer.com'
error:
status: 404
code": APP_ENTITY_NOT_FOUND
message: 'The app wasn’t found. Possible reasons: The app doesn''t exist in your account, the app ID
was misspelled, or the wrong platform was entered. Please try again with the correct details. If the
issue persists, contact your CSM or hello@appsflyer.com'
resource": app
'422':
description: We were unable to complete your request
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
API token verification failed:
value:
message: We were unable to verify your api access token. Please ensure the provided token is correct and
try again. If the issue persists, contact your CSM.
error:
status: 422
code: API_TOKEN_VERIFICATION_FAILED
message: We were unable to verify your api access token. Please ensure the provided token is correct
and try again. If the issue persists, contact your CSM.
resource: app
Bundled web app deletion error:
value:
message: A web app can't be deleted if it's part of a bundle. Please refer to the attached documentation
link for more information.
error:
status: 422
code: BUNDLED_WEB_APP
message: A web app can't be deleted if it's part of a bundle. Please refer to the attached documentation
link for more information.
resource: app
documentation: https://support.appsflyer.com/hc/en-us/articles/360000646498#how-do-i-add-or-remove-delete-apps-from-a-bundle
Delete app failed:
value:
message: We were unable to delete the app. Please try again and if the issue persists, contact your CSM.
error:
status: 422
code: DELETE_APP_FAILED_ERROR
message: We were unable to delete the app. Please try again and if the issue persists, contact your
CSM.
resource: app
'429':
description: Too many requests - Exceeded rate limitation
put:
tags:
- App management
summary: Update app
description: Public API for updating an app on your AppsFlyer account
operationId: app-mng-v2-put
parameters:
- name: app_id
in: path
description: App id to update (case-sensitive)
required: true
schema:
allOf:
- $ref: '#/components/schemas/app_id'
- name: platform
in: path
description: Platform app to update
required: true
schema:
$ref: '#/components/schemas/platform'
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateAppRequest'
responses:
'200':
description: app updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
'400':
description: Invalid or missing input params or request body
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
InvalidMinTimeBetweenSessions:
value:
message: Invalid value. The value must be a whole number, expressed in seconds, representing either 1-59
minutes or 1-24 hours.
error:
status: 400
code: VALIDATION_FAILED
message: Invalid value. The value must be a whole number, expressed in seconds, representing either
1-59 minutes or 1-24 hours.
resource: app
InvalidReAttributionWindow:
value:
message: Invalid value. The value must be a whole number, expressed in days representing either 1-23 months
(each month considered as 30 days) or 730 days.
error:
status: 400
code: VALIDATION_FAILED
message: Invalid value. The value must be a whole number, expressed in days representing either 1-23
months (each month considered as 30 days) or 730 days.
resource: app
InvalidMinTimeBetweenReEngagements:
value:
message: Invalid value. The value must be a whole number, expressed in seconds, representing either 1-23
hours or 1-30 days
error:
status: 400
code: VALIDATION_FAILED
message: Invalid value. The value must be a whole number, expressed in seconds, representing either
1-23 hours or 1-30 days
resource: app
MissingRequiredValueReEngagementAttribution:
value:
message: Required at \"reEngagementAttribution.isEnabled\"
error:
status: 400
code: VALIDATION_FAILED
message: Required at \"reEngagementAttribution.isEnabled\"
resource: app
InvalidPropertyEnableAggregatedAdvancedPrivacy:
value:
message: 'Unrecognized key(s) in object: enableAggregatedAdvancedPrivacy'
error:
status: 400
code: VALIDATION_FAILED
message: 'Unrecognized key(s) in object: enableAggregatedAdvancedPrivacy'
resource: app
InvalidPropertyEnableReinstallDetection:
value:
message: 'Unrecognized key(s) in object: enableReinstallDetection'
error:
status: 400
code: VALIDATION_FAILED
message: 'Unrecognized key(s) in object: enableReinstallDetection'
resource: app
InvalidPropertyEnableSeoAppAttribution:
value:
message: 'Unrecognized key(s) in object: enableSeoAppAttribution'
error:
status: 400
code: VALIDATION_FAILED
message: 'Unrecognized key(s) in object: enableSeoAppAttribution'
resource: app
InvalidPropertyX:
value:
message: 'Unrecognized key(s) in object: X'
error:
status: 400
code: VALIDATION_FAILED
message: 'Unrecognized key(s) in object: X'
resource: app
InvalidPlatformUrlParam:
value:
message: Invalid enum value. Expected 'android' | 'ios' | 'windowsphone', received 'androidd' at \"platform\"
error:
status: 400
code: VALIDATION_FAILED
message: Invalid enum value. Expected 'android' | 'ios' | 'windowsphone', received 'androidd' at \"platform\"
resource: app
InvalidPropertyType:
value:
message: Expected typeA, received typeB at \"X\"
error:
status: 400
code: VALIDATION_FAILED
message: Expected typeA, received typeB at \"X\"
resource: app
'401':
description: Unauthorized - Authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Authentication failed:
value:
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.
error:
status: 401
code: AUTHENTICATION_FAILED
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.
resource: app
'403':
description: Forbidden - You are not authorized to perform this action
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Forbidden - unauthorized user action:
value:
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your CSM.
error:
status: 403
code: FORBIDDEN_UNAUTHORIZED_USER_ACTION
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your
CSM.
resource: app
'404':
description: Not found - Something went wrong please try again
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
AppNotFound:
value:
message: 'The app wasn’t found. Possible reasons: The app doesn’t exist in your account, the app ID was
misspelled, or the wrong platform was entered. Please try again with the correct details. If the issue
persists, contact your CSM or hello@appsflyer.com'
error:
status: 404
code: APP_ENTITY_NOT_FOUND
message: 'The app wasn’t found. Possible reasons: The app doesn’t exist in your account, the app ID
was misspelled, or the wrong platform was entered. Please try again with the correct details. If the
issue persists, contact your CSM or hello@appsflyer.com'
resource: app
'422':
description: We were unable to complete your request
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
API token verification failed:
value:
message: We were unable to verify your api access token. Please ensure the provided token is correct and
try again. If the issue persists, contact your CSM.
error:
status: 422
code: API_TOKEN_VERIFICATION_FAILED
message: We were unable to verify your api access token. Please ensure the provided token is correct
and try again. If the issue persists, contact your CSM.
resource: app
AppVerificationFailed:
value:
message: We were unable to verify the provided app entity. The app doesn't exist in your account, the
app ID was misspelled, or the wrong platform was entered. Please try again with the correct details.
If the issue persists, contact your CSM or hello@appsflyer.com"
error:
status: 422
code: APP_VERIFICATION_FAILED
message: We were unable to verify the provided app entity. The app doesn't exist in your account, the
app ID was misspelled, or the wrong platform was entered. Please try again with the correct details.
If the issue persists, contact your CSM or hello@appsflyer.com
resource: app
FailedToUpdateApp:
value:
message: We were unable to update the app. Please try again and if the issue persists, contact your CSM.
error:
status: 422
code: UPDATE_APP_FAILED
message: We were unable to update the app. Please try again and if the issue persists, contact your
CSM.
resource: app
'429':
description: Too many requests - Exceeded rate limitation
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
/apps/:
post:
tags:
- App management
summary: Add app
description: Public API for adding an app to your AppsFlyer account
operationId: app-mng-v2-post
requestBody:
description: 'Use these examples as a template for your request body:'
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/available-app'
- $ref: '#/components/schemas/pending-app'
- $ref: '#/components/schemas/out-of-store-app'
examples:
Available Android app:
value:
status: available
platform: android
time_zone: UTC
currency: USD
app_name: Optional custom app name
app_url: https://play.google.com/store/apps/details?id=com.publisher.name
Available iOS app:
value:
status: available
platform: ios
time_zone: UTC
currency: USD
app_name: Optional custom app name
app_url: https://apps.apple.com/us/app/app-name/id123456789
Available Windows phone app:
value:
status: available
platform: windows_phone
time_zone: UTC
currency: USD
app_name: Optional custom app name
app_url: https://microsoft.com/en-us/store/apps/app-name/a1b2c3d4e5f6
Pending iOS app:
value:
status: pending
platform: ios
time_zone: UTC
currency: USD
app_id: '123456789'
app_name: Optional custom app name
country: United States
Pending Android app:
value:
status: pending
platform: android
time_zone: UTC
currency: USD
app_id: com.some.appid
app_name: Optional custom app name
Pending Windows Phone app:
value:
status: pending
platform: windows_phone
time_zone: UTC
currency: USD
app_id: a1b2c3d4e5f6
app_name: Optional custom app name
Out-of-store Android app:
value:
status: out_of_store
platform: android
time_zone: UTC
currency: USD
app_id: com.some.appid
app_name: Optional custom app name
channel_name: Amazon
app_url: http://www.optionalAppLocation.com
required: true
responses:
'200':
description: app added successfully
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
'400':
description: Invalid or missing input params or request body
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Invalid app id length:
value:
message: The app ID that was entered exceeded the 100-character limit.
error:
status: 400
code: VALIDATION_FAILED
message: The app ID that was entered exceeded the 100-character limit.
resource: app
Invalid app id format:
value:
message: Invalid app ID. The app ID doesn’t follow the required format.,
error:
status: 400
code: VALIDATION_FAILED,
Message: Invalid app ID. The app ID doesn’t follow the required format.
resource: app
Invalid app status:
value:
message: Invalid app status.
error:
status: 400
code: VALIDATION_FAILED
Message: Invalid app status.
resource: app
Invalid app name:
value:
message: Invalid app name.
error:
status: 400
code: VALIDATION_FAILED
Message: Invalid app name.
resource: app
Invalid app URL:
value:
message: Invalid app URL.
error:
status: 400
code: VALIDATION_FAILED
Message: Invalid app URL.
resource: app
'401':
description: Unauthorized - Authentication error
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Authentication failed:
value:
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.
error:
status: 401
code: AUTHENTICATION_FAILED
message: Authentication failed. Please ensure the provided token is correct and try again. If the issue
persists, contact your CSM.,
resource: app
'403':
description: Forbidden - You are not authorized to perform this action
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
Forbidden - unauthorized user action:
value:
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your CSM.
error:
status: 403
code: FORBIDDEN_UNAUTHORIZED_USER_ACTION
message: Forbidden. You are not authorized to perform this action. Please verify you have the correct
role, and required permissions to perform this action. If this issue persists please contact your
CSM.
resource: app
'404':
description: Not found - Something went wrong please try again
'422':
description: We were unable to complete your request
content:
application/json:
schema:
$ref: '#/components/schemas/StandardApiResponse'
examples:
API token verification failed:
value:
message: The API access token that was entered either doesn’t exist in the account or was misspelled.
Please try again with the correct token. If the issue persists, contact your CSM or hello@appsflyer.com.
error:
status: 422
code: API_TOKEN_VERIFICATION_FAILED
message: The API access token that was entered either doesn’t exist in the account or was misspelled.
Please try again with the correct token. If the issue persists, contact your CSM or hello@appsflyer.com.
resource: app
App already in account:
value:
message: The app you are trying to add already exists in your account.
error:
status: 422
code: APP_ALREADY_IN_ACCOUNT_ERROR
Message: The app you are trying to add already exists in your account.
resource: app
General security error:
value:
message: For Security reasons this app could not be added. Please contact AppsFlyer's support team.
error:
status: 422
code: GENERAL_SECURITY_ERROR
Message: For Security reasons this app could not be added. Please contact AppsFlyer's support team.
resource: app
Add app failed:
value:
message: For Security reasons this app could not be added. Please contact AppsFlyer's support team.
error:
status: 422
code: ADD_APP_FAILED_ERROR
Message: We were unable to create the app. Please try again and if the issue persists, contact your
CSM.
resource: app
'429':
description: Too many requests - Exceeded rate limitation
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
schemas:
deletePlatform:
type: string
description: 'App platform: Android, iOS, or Windows Phone
'
enum:
- ''
- android
- ios
- windowsphone
- roku
- smartcast
- tizen
- webos
- playstation
- vidaa
- steam
- quest
- battlenet
- web
- switch
- xbox
- epic
- nativepc
- chatgpt
app_id:
type: string
description: 'Required only when status is ***pending*** or ***out_of_store***
Example values
- **Android:** *com.publisher.name* (Android package name, case-sensitive)
- **iOS:** *123456789* (App ID assigned by the App Store, without the prefix *id*)
- **Windows Phone:** *a1b2c3d4e5f6* (App ID assigned by the Windows Phone Store)
'
StandardApiError:
type: object
properties:
status:
type: number
message:
type: string
code:
type: string
resource:
type: string
documentation:
type: string
StandardApiResponse:
type: object
properties:
data:
type: object
message:
type: string
error:
$ref: '#/components/schemas/StandardApiError'
available-app:
title: Available
required:
- platform
- status
- currency
- app_url
- time_zone
- kidsPrivacy
type: object
properties:
platform:
$ref: '#/components/schemas/platform'
app_name:
$ref: '#/components/schemas/app_name'
status:
type: string
description: '**Available:** The app is currently available in one of the proprietary app stores: iOS App Store,
Google Play, Windows Phone Store.
'
enum:
- available
time_zone:
$ref: '#/components/schemas/time_zone'
currency:
$ref: '#/components/schemas/currency'
app_url:
allOf:
- $ref: '#/components/schemas/app_url'
kidsPrivacy:
$ref: '#/components/schemas/kidsPrivacy'
pending-app:
title: Pending
required:
- platform
- status
- currency
- app_id
- time_zone
- kidsPrivacy
type: object
properties:
platform:
$ref: '#/components/schemas/platform'
app_name:
$ref: '#/components/schemas/app_name'
status:
type: string
description: '**Pending:** The app is not yet published or is pending approval from the store.
- When a pending app goes live, AppsFlyer automatically updates its status in your account, so there is no need
to update it manually.
'
enum:
- pending
time_zone:
$ref: '#/components/schemas/time_zone'
currency:
$ref: '#/components/schemas/currency'
country:
$ref: '#/components/schemas/country'
kidsPrivacy:
$ref: '#/components/schemas/kidsPrivacy'
app_id:
allOf:
- $ref: '#/components/schemas/app_id'
out-of-store-app:
title: Out-of-store app
required:
- platform
- status
- currency
- app_id
- channel_name
- time_zone
- kidsPrivacy
- app_url
type: object
properties:
platform:
$ref: '#/components/schemas/platform'
app_name:
$ref: '#/components/schemas/app_name'
status:
type: string
description: "**out_of_store:** The app is in an Android app store other than Google Play.\n\n - This option is\
\ relevant only for Android apps.\n - If the app is available in more than one Android app store, be sure to\
\ consider and discuss with your marketing team the options for setting up [multi-store Android attribution](https://support.appsflyer.com/hc/en-us/articles/207447023).\n"
enum:
- out_of_store
time_zone:
$ref: '#/components/schemas/time_zone'
currency:
$ref: '#/components/schemas/currency'
kidsPrivacy:
$ref: '#/components/schemas/kidsPrivacy'
app_id:
allOf:
- $ref: '#/components/schemas/app_id'
app_url:
allOf:
- $ref: '#/components/schemas/app_url'
description: Its optional to supply an app location UR
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/appsflyer/refs/heads/main/openapi/appsflyer-app-management-api-v20-openapi.yml