> ## Documentation Index
> Fetch the complete documentation index at: https://moengage-sdk-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Track App Install

> Install attribution tracking is a great way to improve your initial relationship with your user. Knowing how, where, and even more importantly, why a user installs your app allows you to get a better understanding of who your user is and how you should introduce them to your app.

You can use our APIs to seamlessly provide MoEngage with install data. These APIs allow you to track the install attribution data in MoEngage, which you can then use to enhance your marketing automation campaigns on MoEngage.

# Postman Collections
We have made it easy for you to test the APIs. Click [here](https://www.postman.com/moengage-dev/api-docs/collection/xupp3dy/moengage-install-tracking-api) to view it in Postman.




## OpenAPI

````yaml /api/data/data.yaml get /installInfo
openapi: 3.0.3
info:
  title: MoEngage Data APIs
  version: '1.0'
  description: >-
    This is a comprehensive OpenAPI specification for MoEngage's Data APIs,
    including User, Event, and Device management.

    It's designed to power an interactive API playground on your new
    documentation site.
servers:
  - url: https://api-0{dc}.moengage.com/v1
    description: MoEngage Core API Server
    variables:
      dc:
        default: '1'
        description: >-
          The ‘dc’ in the API Endpoint URL refers to the MoEngage Data Center
          (DC). MoEngage hosts each customer in a different DC. You can find
          your DC number and replace the value of ‘dc’ in the URL by referring
          to the DC and API endpoint mapping
          [here](https://help.moengage.com/hc/en-us/articles/360057030512-Data-Centers-in-MoEngage).
          Your MoEngage Data Center (DC) can be 1, 2, 3, 4,5, 6. 
        enum:
          - '1'
          - '2'
          - '3'
          - '4'
          - '5'
          - '6'
security:
  - Authentication: []
tags:
  - name: User
    description: Operations for creating, updating, retrieving, and managing user profiles.
  - name: Event
    description: Operations for tracking user events.
  - name: Device
    description: Operations for managing user devices.
  - name: Tracking
    description: Endpoints for tracking attribution and installs.
  - name: Utilities
    description: Utility endpoints for testing connections.
  - name: File Imports
    description: Operations for managing asynchronous file imports.
  - name: Bulk
    description: Operations for importing users and events in bulk.
  - name: Webhooks
    description: Incoming webhook specifications from MoEngage.
paths:
  /installInfo:
    get:
      tags:
        - Tracking
      summary: Track App Install
      description: >
        Install attribution tracking is a great way to improve your initial
        relationship with your user. Knowing how, where, and even more
        importantly, why a user installs your app allows you to get a better
        understanding of who your user is and how you should introduce them to
        your app.


        You can use our APIs to seamlessly provide MoEngage with install data.
        These APIs allow you to track the install attribution data in MoEngage,
        which you can then use to enhance your marketing automation campaigns on
        MoEngage.


        # Postman Collections

        We have made it easy for you to test the APIs. Click
        [here](https://www.postman.com/moengage-dev/api-docs/collection/xupp3dy/moengage-install-tracking-api)
        to view it in Postman.
      parameters:
        - name: publisher_name
          in: query
          schema:
            type: string
          description: Publisher name of the install.
        - name: campaign_name
          in: query
          schema:
            type: string
          description: Campaign name of the install.
        - name: src
          in: query
          required: true
          schema:
            type: string
          description: Partner name.
        - name: appId
          in: query
          required: true
          schema:
            type: string
          description: >
            This is your MoEngage account's Workspace ID that must be included
            in the request. You can find your Workspace ID in the following
            navigation on the dashboard:


            Revamped UI: **Settings > Account > APIs > Workspace ID**
        - name: advertising_id
          in: query
          schema:
            type: string
          description: >-
            Google Advertising ID of the device on which the install was
            detected (for Android only).
        - name: idfv
          in: query
          schema:
            type: string
          description: >-
            IDFV of the iOS device on which the install was detected (for iOS
            only).
        - name: appAttributionKey
          in: query
          required: true
          schema:
            type: string
          description: >-
            Available on the MoEngage dashboard by navigating to **Settings >
            Analytics > Acquisition Tracking > Attribution Key**.
      responses:
        '200':
          description: >
            **Success**

            This response is returned when the request is processed
            successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericSuccess'
        '400':
          description: >
            **Bad Request**

            This response is returned when the required parameters are missing
            from the request, attributes are not found, and incorrect values are
            passed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '401':
          description: >
            **Unauthorized**

            This response is returned when the request does not have valid
            authentication credentials.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericError'
        '403':
          description: >
            **Account Blocked**

            This response is returned when your MoEngage account is suspended or
            blocked.
        '413':
          description: |
            **Payload Size Exceeded**
            This response is returned when the payload size exceeds 128 KB.
        '415':
          description: |
            **Unsupported Media Type**
            This response is returned when the content type is not supported.
        '429':
          description: >
            **Rate Limit Breach**

            This response is returned when the number of requests has exceeded
            the rate limit.
        '500':
          description: >
            **Internal Server Error**

            This response is returned when the system runs into an unexpected
            error.
      security: []
      x-code-samples:
        - lang: Bash
          label: Android
          source: >
            curl -L -g -X GET
            'https://api-0X.moengage.com/v1/installInfo?src=<partner_name>&appAttributionKey=<ENTER_ATTRIBUTION_KEY_HERE>&appId=<ENTER_Workspace_ID_HERE>&campaign_name=<campaign_name_of_install>&publisher_name=<publisher_name_of_install>&advertising_id=<device_GAID>'
        - lang: Bash
          label: iOS
          source: >
            curl -L -g -X GET
            'https://api-0X.moengage.com/v1/installInfo?src=<partner_name>&appAttributionKey=<ENTER_ATTRIBUTION_KEY_HERE>&appId=<ENTER_Workspace_ID_HERE>&campaign_name=<campaign_name_of_install>&publisher_name=<publisher_name_of_install>&idfv=<device_idfv>'
components:
  schemas:
    GenericSuccess:
      type: object
      properties:
        status:
          type: string
          description: >-
            This field contains the status of the request and specifies whether
            the request was successful.
          example: success
        message:
          type: string
          example: Your request has been accepted and will be processed soon.
    GenericError:
      type: object
      properties:
        status:
          type: string
          description: >-
            This field contains the status of the request and specifies whether
            the request was a failure.
          example: fail
        error:
          type: object
          properties:
            message:
              type: string
              description: A descriptive error message explaining why the request failed.
            type:
              type: string
              description: The type or category of the error (e.g., MissingAttributeError).
            request_id:
              type: string
              description: A unique identifier for the request, useful for debugging.
            attribute:
              type: string
              description: The attribute in the payload that caused the error.
  securitySchemes:
    Authentication:
      type: http
      scheme: basic
      description: >
        This authentication parameter, used for access control, must be passed
        along with the request. The API request will be authenticated through
        Basic Authentication. Basic Authentication sends a Base64-encoded string
        containing your username and password with every API request. It encodes
        a 'username:password' string in Base64 and appends the encoded string
        with 'Basic '. This string is included in the authorization header as
        shown below:


        `{"Authorization: Basic Base64_ENCODED_WORKSPACEID_APIKEY=="}`


        The username and password details can be obtained from the MoEngage
        Dashboard. If you're using the API for the first time, follow these
        steps:

        1. Navigate to Settings -> Account -> APIs.

        2. Copy the following details:
           * **Username:** Under Workspace ID (earlier app id), click the copy icon to copy the username.
           * **Password:** In the **API keys** section, click the copy icon in the **Data** tile to copy the API key.

        Use these details to authenticate the API requests.

````