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/appodeal:appodeal-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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: 3.1.0
info:
title: Appodeal API
version: '2026-11-01'
description: 'GENERATED FROM DOCUMENTATION by API Evangelist on 2026-11-01: 15 operation(s) read from 7 public documentation page(s) (each operation
names its page in x-source). This is not the provider''s published contract; Appodeal has published no machine-readable contract that the
pipeline could find. Engine: oss.'
x-evidence-tiers:
code-example: 10
documentation: 5
pages-with-code: 6
pages-read: 7
x-generated-from: documentation
x-provenance: generated
x-authored-by: API Evangelist
x-generated: '2026-11-01'
x-generator: generate-contract-from-docs.py
x-engine: oss
x-sources:
- https://support.appsflyer.com/hc/en-us/articles/360011999877
- https://support.appsflyer.com/hc/en-us/articles/11332840660625
- https://support.appsflyer.com/hc/en-us/articles/360011700857-App-list-API-for-ad-networks
- https://support.appsflyer.com/hc/en-us/articles/45670116601617--Beta-Server-to-Server-S2S-API-for-Web-Attribution
- https://support.appsflyer.com/hc/en-us/articles/360011700857
- https://support.appsflyer.com/hc/en-us/articles/115004745523-Protect360-for-integrated-partners
- https://support.appsflyer.com/hc/en-us/articles/360006997298-
servers:
- url: https://events.appsflyer.com
paths:
/api/adnets-data/v1/export/blocked_in_app_events_report/app:
get:
operationId: get_api_adnets_data_v1_export_blocked_in_app_events_report_app
tags:
- Api
summary: GET /api/adnets-data/v1/export/blocked_in_app_events_report/app
x-source: https://support.appsflyer.com/hc/en-us/articles/115004745523-Protect360-for-integrated-partners
parameters:
- name: additional_fields
in: query
required: false
schema:
type: string
- name: from
in: query
required: false
schema:
type: string
- name: to
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: curl --location --request GET 'https://hq1.appsflyer.com/api/adnets-data/v1/export/blocked_in_app_events_report/app/?from=YYYY-MM-DD&to=YYYY-MM-DD&additional_fields=keyword_id,store_reinstall,deeplink_url,oaid,blocked_reason,blocked_reason_value,blocked_reason_rule,blocked_sub_reason,match_type,device_category,gp_referrer,gp_click_time,gp_install_begin,amazon_aid,keyword_match_type' -H
'Authoriza
/api/adnets-data/v1/export/blocked_in_app_events_report/app/:
get:
operationId: get_api_adnets_data_v1_export_blocked_in_app_events_report_app
tags:
- Api
summary: In‑app events performed by blocked users.
x-source: https://support.appsflyer.com/hc/en-us/articles/115004745523-Protect360-for-integrated-partners
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/gdpr/v1/certificate:
get:
operationId: get_api_gdpr_v1_certificate
tags:
- Api
summary: Fetch the processor certificate for validating postbacks.
description: Retrieve the certificate used to verify the X-OpenGDPR-Signature header in postbacks.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/gdpr/v1/opendsr_requests:
post:
operationId: post_api_gdpr_v1_opendsr_requests
tags:
- Api
summary: POST /api/gdpr/v1/opendsr_requests
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiGdprV1OpendsrRequestsRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl --location --request POST 'https://hq1.appsflyer.com/api/gdpr/v1/opendsr_requests' --header 'Accept: application/json'\
\ --header 'Content-Type: application/json' --header 'Authorization: Bearer %AuthTokenv2% --data-raw '{\n \"subject_request_id\"\
:\"f4e5a271-f25e-4107-b681-************\",\n \"subject_request_type\":\"erasure\",\n \"submitted_time\":\"2020-07-05T10:00:00Z\",\n\
\ \"platform\": \"android\",\n \"subje"
/api/gdpr/v1/stub:
post:
operationId: post_api_gdpr_v1_stub
tags:
- Api
summary: GDPR Request Test Endpoint.
description: Test endpoint to submit a GDPR request; returns immediate pending status and triggers test postbacks.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostApiGdprV1StubRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/gdpr/v1/stub/{requestid}:
delete:
operationId: delete_api_gdpr_v1_stub_requestid
tags:
- Api
summary: Cancellation Request Test Endpoint.
description: Cancel a pending test GDPR request identified by requestId.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
parameters:
- name: requestid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
get:
operationId: get_api_gdpr_v1_stub_requestid
tags:
- Api
summary: Status Request Test Endpoint.
description: Retrieve the current status of a test GDPR request using its requestId.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
parameters:
- name: requestid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/gdpr/v1/stub/download/{requestid}:
get:
operationId: get_api_gdpr_v1_stub_download_requestid
tags:
- Api
summary: Access/Portability Reports Test Endpoint.
description: Download the report for a completed access or portability test request.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
parameters:
- name: requestid
in: path
required: true
schema:
type: string
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/gdpr/v1/stubcertificate:
get:
operationId: get_api_gdpr_v1_stubcertificate
tags:
- Api
summary: Certificate Test Endpoint.
description: Retrieve the test certificate used for validating test postbacks.
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
responses:
'200':
description: Success (status as documented)
x-evidence:
kind: documentation
/api/mng/apps:
get:
operationId: get_api_mng_apps
tags:
- Api
summary: GET /api/mng/apps
x-source: https://support.appsflyer.com/hc/en-us/articles/360011999877
parameters:
- name: limit
in: query
required: false
schema:
type: string
- name: offset
in: query
required: false
schema:
type: string
responses:
'200':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/GetApiMngAppsResponse'
x-evidence:
kind: code-example
language: curl
snippet: "curl --location --request GET 'https://hq1.appsflyer.com/api/mng/apps?limit=1000&offset=0' -H 'Authorization: Bearer {API V2.0\
\ token having more than 700 characters available to the admin in the dashboard.}' JSON response \n {\n \"data\": [\n {\n \"id\": \"\
com.appsflyer.xpend_qa1\",\n \"type\": \"app\",\n \"attributes\": {\n \"name\": \"com.appsflyer.xpend_qa1\",\n \"platform\": \"android\"\
,\n \"currency\": \"USD\",\n \"time_zone"
/opengdpr_callbacks:
post:
operationId: post_opengdpr_callbacks
tags:
- Opengdpr Callbacks
summary: POST /opengdpr_callbacks
x-source: https://support.appsflyer.com/hc/en-us/articles/11332840660625
responses:
'201':
description: Success (shape read from the example response on the page)
content:
application/json:
schema:
$ref: '#/components/schemas/PostOpengdprCallbacksResponse'
x-evidence:
kind: code-example
language: http
snippet: ' POST /opengdpr_callbacks HTTP/1.1
Host: examplecontroller.com
Content-Type: application/json
X-OpenGDPR-Processor Domain: gdpr.appsflyer.com
X-OpenGDPR-Signature: kiGlog3PdQx+FQmB8wYwFC1fekbJG7Dm9WdqgmXc9uKkFRSM4uPzylLi7j083461xLZ+mUloo3tpsmyIZpt5eMfgo7ejXPh6lqB4ZgCnN6+1b6Q3NoNcn/+11UOrvmDj772wvg6uIAFzsSVSjMQxRs8LAmHqFO4cF2pbuoPuK2diHOixxLj6+t97q0nZM7u3wmgkwF9EHIo3C6G1SI04/odvyY/VdMZgj3H1fLnz+X5r'
/v1/bundleId/event:
post:
operationId: post_v1_bundleId_event
tags:
- Bundleid
summary: POST /v1/bundleId/event
x-source: https://support.appsflyer.com/hc/en-us/articles/360006997298-
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1BundleidEventRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/event' --header 'Accept-Encoding: application/json'\
\ --header 'Content-Type: application/json' --data-raw '{\n \"customerUserId\": \"1234567890abcdef\",\n \"afUserId\":\"9999999-f848-4963-a091-568f0bf9a361\"\
,\n \"webDevKey\" : \"99999999-9999-9999-9999-999999999999\",\n \"ip\" : \"192.0.2.1\",\n \"eventType\":\"EVENT\",\n \"timestamp\" :\
\ 1234567890123"
/v1/bundleId/setcuid:
post:
operationId: post_v1_bundleId_setcuid
tags:
- Bundleid
summary: POST /v1/bundleId/setcuid
x-source: https://support.appsflyer.com/hc/en-us/articles/360006997298-
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV1BundleidSetcuidRequest'
responses:
'201':
description: Success (status as documented)
x-evidence:
kind: code-example
language: curl
snippet: "curl --location --request POST 'https://webs2s.appsflyer.com/v1/bundleId/setcuid ' --header 'Accept-Encoding: application/json'\
\ --header 'Content-Type: application/json' --data-raw '{\n \"customerUserId\": \"1234567890abcdef\",\n \"afUserId\":\"9999999-f848-4963-a091-568f0bf9a361\"\
,\n \"webDevKey\" : \"99999999-9999-9999-9999-999999999999\"} \n Event method \n Method name \n event \n Use case \n Send \n Method\
\ Path"
/v2.0/s2s/inapps/app/web/{appid}:
post:
operationId: post_v2_0_s2s_inapps_app_web_appid
tags:
- V2
summary: Measures a web event (for example, a purchase, sign-up, or custom action) for a given app.
description: Measures a web event for a given app.
x-source: https://support.appsflyer.com/hc/en-us/articles/45670116601617--Beta-Server-to-Server-S2S-API-for-Web-Attribution
parameters:
- name: appid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV20S2SInappsAppWebAppidRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV20S2SInappsAppWebAppidResponse'
x-evidence:
kind: documentation
/v2.0/s2s/visits/app/web/{appid}:
post:
operationId: post_v2_0_s2s_visits_app_web_appid
tags:
- V2
summary: Measures a page visit for a given web app.
description: Measures a page visit for a given web app.
x-source: https://support.appsflyer.com/hc/en-us/articles/45670116601617--Beta-Server-to-Server-S2S-API-for-Web-Attribution
parameters:
- name: appid
in: path
required: true
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostV20S2SVisitsAppWebAppidRequest'
responses:
'201':
description: Success (status as documented)
content:
application/json:
schema:
$ref: '#/components/schemas/PostV20S2SVisitsAppWebAppidResponse'
x-evidence:
kind: documentation
components:
schemas:
PostApiGdprV1OpendsrRequestsRequest:
type: object
properties:
subject_request_id:
type: string
subject_request_type:
type: string
submitted_time:
type: string
format: date-time
platform:
type: string
subject_identities:
type: array
items:
type: object
properties:
identity_type:
type: string
identity_value:
type: string
identity_format:
type: string
api_version:
type: string
property_id:
type: string
status_callback_urls:
type: array
items:
type: string
PostApiGdprV1StubRequest:
type: object
properties:
subject_request_id:
type: string
description: UUID v4 string for the request
subject_request_type:
type: string
description: Type of request (erasure, portability, access, rectification)
submitted_time:
type: string
description: RFC 3339 timestamp of the original request
platform:
type: string
description: Platform of the request (android, ios, web, etc.)
subject_identities:
type: array
description: Array with a single identity object
api_version:
type: string
description: Desired API version
property_id:
type: string
description: App identifier (iOS or Android)
status_callback_urls:
type: array
description: Up to 3 HTTPS URLs for status callbacks
required:
- subject_request_id
- subject_request_type
- submitted_time
- platform
- subject_identities
- property_id
GetApiMngAppsResponse:
type: object
properties:
data:
type: array
items:
type: object
properties:
id:
type: string
type:
type: string
attributes:
type: object
properties:
name:
type: string
platform:
type: string
currency:
type: string
time_zone:
type: string
meta:
type: object
properties:
total_items:
type: integer
links:
type: object
properties:
self:
type: string
PostOpengdprCallbacksResponse:
type: object
properties:
api_version:
type: string
supported_identities:
type: array
items:
type: object
properties:
identity_type:
type: string
identity_format:
type: string
supported_subject_request_types:
type: array
items:
type: string
processor_certificate:
type: string
PostV1BundleidEventRequest:
type: object
properties:
customerUserId:
type: string
afUserId:
type: string
webDevKey:
type: string
ip:
type: string
eventType:
type: string
timestamp:
type: integer
eventName:
type: string
eventRevenueCurrency:
type: string
eventRevenue:
type: number
eventValue:
type: object
properties:
purchase:
type: object
properties:
shoes:
type: string
quantity:
type: string
Revenue:
type: string
Currency:
type: string
PostV1BundleidSetcuidRequest:
type: object
properties:
customerUserId:
type: string
afUserId:
type: string
webDevKey:
type: string
PostV20S2SInappsAppWebAppidRequest:
type: object
properties:
user_id:
type: object
description: User identifier. Must contain at least one of customer_user_id or appsflyer_id.
event_name:
type: string
description: 'Event name. 1–64 characters. Cannot contain @ = + - . Example: af_purchase'
event_revenue:
type: number
description: Revenue amount for purchase or monetization events.
event_revenue_currency:
type: string
description: Currency code for the revenue value. For example, USD or EUR.
event_value:
type: object
description: Free-form event parameters. Supports a custom_parameters sub-object.
event_url:
type: string
description: Page URL where the event occurred. Valid HTTP URL, max 4,096 characters.
timestamp:
type: integer
description: Unix time in ms (UTC). If omitted, AppsFlyer uses the receive time.
ip:
type: string
description: Device IP address (IPv4 or IPv6). Max 46 characters.
user_agent:
type: string
description: Full user agent string from the browser. Max 1,024 characters.
http_referrer:
type: string
description: Referrer URL of the current page.
af_customer_event_id:
type: string
description: Your own unique ID for the event, used for deduplication. Max 256 characters.
email_hashed:
type: string
description: SHA256 of normalized (lowercase, trimmed) email. 64‑character hex string.
phone_number_hashed:
type: string
description: SHA256 of phone number. 64‑character hex string.
phone_number_e164_hashed:
type: string
description: SHA256 of E.164 phone number. 64‑character hex string.
first_name_hashed:
type: string
description: SHA256 of normalized first name. 64‑character hex string.
last_name_hashed:
type: string
description: SHA256 of normalized last name. 64‑character hex string.
required:
- user_id
- event_name
PostV20S2SInappsAppWebAppidResponse:
type: object
properties:
status:
type: integer
description: HTTP status code (e.g., 202).
message:
type: string
description: Result message.
messageId:
type: string
description: Optional identifier for the request.
PostV20S2SVisitsAppWebAppidRequest:
type: object
properties:
user_id:
type: object
description: User identifier. Must contain at least one of customer_user_id or appsflyer_id.
event_url:
type: string
description: The URL of the visited page. Valid HTTP URL, max 4,096 characters.
timestamp:
type: integer
description: Unix time in ms (UTC). If omitted, AppsFlyer uses the receive time.
ip:
type: string
description: Device IP address (IPv4 or IPv6). Max 46 characters.
user_agent:
type: string
description: Full user agent string from the browser. Max 1,024 characters.
http_referrer:
type: string
description: Referrer URL of the current page.
event_value:
type: object
description: Free-form event parameters, including a custom_parameters sub-object.
af_customer_event_id:
type: string
description: Your own unique ID for the event, used for deduplication. Max 256 characters.
email_hashed:
type: string
description: SHA256 of normalized email. 64‑character hex string.
phone_number_hashed:
type: string
description: SHA256 of phone number. 64‑character hex string.
phone_number_e164_hashed:
type: string
description: SHA256 of E.164 phone number. 64‑character hex string.
first_name_hashed:
type: string
description: SHA256 of normalized first name. 64‑character hex string.
last_name_hashed:
type: string
description: SHA256 of normalized last name. 64‑character hex string.
required:
- user_id
- event_url
PostV20S2SVisitsAppWebAppidResponse:
type: object
properties:
status:
type: integer
description: HTTP status code (e.g., 202).
message:
type: string
description: Result message.
messageId:
type: string
description: Optional identifier for the request.
securitySchemes:
bearer:
type: http
scheme: bearer
security:
- bearer: []
tags:
- name: Api
- name: Bundleid
- name: Opengdpr Callbacks
- name: V2