Appodeal API

Appodeal API as documented publicly: 15 operations. Contract generated from the documentation by API Evangelist (2026-11-01); not the provider's own document.

Operations 15

GET /api/adnets-data/v1/export/blocked_in_app_events_report/app GET /api/adnets-data/v1/export/blocked_in_app_events_report/app #
GET /api/adnets-data/v1/export/blocked_in_app_events_report/app/ In‑app events performed by blocked users. #
GET /api/gdpr/v1/certificate Fetch the processor certificate for validating postbacks. #
POST /api/gdpr/v1/opendsr_requests POST /api/gdpr/v1/opendsr_requests #
POST /api/gdpr/v1/stub GDPR Request Test Endpoint. #
DELETE /api/gdpr/v1/stub/{requestid} Cancellation Request Test Endpoint. #
GET /api/gdpr/v1/stub/{requestid} Status Request Test Endpoint. #
GET /api/gdpr/v1/stub/download/{requestid} Access/Portability Reports Test Endpoint. #
GET /api/gdpr/v1/stubcertificate Certificate Test Endpoint. #
GET /api/mng/apps GET /api/mng/apps #
POST /opengdpr_callbacks POST /opengdpr_callbacks #
POST /v1/bundleId/event POST /v1/bundleId/event #
POST /v1/bundleId/setcuid POST /v1/bundleId/setcuid #
POST /v2.0/s2s/inapps/app/web/{appid} Measures a web event (for example, a purchase, sign-up, or custom action) for a given app. #
POST /v2.0/s2s/visits/app/web/{appid} Measures a page visit for a given web app. #

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/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 Specification

appodeal-openapi-generated.yml Raw ↑
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