Snapchat Conversion Events API

Endpoints for sending web, app, and offline conversion events to Snap for campaign measurement and optimization.

OpenAPI Specification

snapchat-conversion-events-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Snapchat Ads Ad Accounts Conversion Events API
  description: The Snapchat Ads API allows developers to programmatically create, manage, and optimize advertising campaigns on the Snapchat platform. It provides endpoints for managing organizations, ad accounts, campaigns, ad squads, ads, creatives, media, funding sources, audience segments, and measurement reporting. The API supports the full advertising lifecycle from campaign setup through reporting and optimization.
  version: '1.0'
  contact:
    name: Snap for Developers
    url: https://developers.snap.com
  termsOfService: https://snap.com/en-US/terms
servers:
- url: https://adsapi.snapchat.com/v1
  description: Production Server
security:
- bearerAuth: []
tags:
- name: Conversion Events
  description: Endpoints for sending web, app, and offline conversion events to Snap for campaign measurement and optimization.
paths:
  /{pixel_id}/events:
    post:
      operationId: sendWebConversionEvents
      summary: Send Web Conversion Events
      description: Sends one or more web conversion events to Snap using a Pixel ID. Events can include purchases, page views, add-to-cart actions, sign-ups, and other custom conversion events. Multiple events can be sent in a single request (up to 2,000 per request). Events can have a timestamp of up to 37 days in the past.
      tags:
      - Conversion Events
      parameters:
      - $ref: '#/components/parameters/pixelId'
      - $ref: '#/components/parameters/accessTokenQuery'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversionEventRequest'
      responses:
        '200':
          description: Events received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversionEventResponse'
        '400':
          description: Bad request - invalid event data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - invalid or missing access token
        '429':
          description: Rate limit exceeded
  /{snap_app_id}/events:
    post:
      operationId: sendAppConversionEvents
      summary: Send App Conversion Events
      description: Sends one or more app conversion events to Snap using a Snap App ID. Used for tracking in-app events such as app installs, purchases, level completions, and other app-specific conversion events. Multiple events can be sent in a single request (up to 2,000 per request).
      tags:
      - Conversion Events
      parameters:
      - $ref: '#/components/parameters/snapAppId'
      - $ref: '#/components/parameters/accessTokenQuery'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ConversionEventRequest'
      responses:
        '200':
          description: Events received successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConversionEventResponse'
        '400':
          description: Bad request - invalid event data
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized - invalid or missing access token
        '429':
          description: Rate limit exceeded
components:
  parameters:
    accessTokenQuery:
      name: access_token
      in: query
      required: true
      description: The static long-lived access token for authentication.
      schema:
        type: string
    pixelId:
      name: pixel_id
      in: path
      required: true
      description: The Snap Pixel ID used for tracking web conversion events.
      schema:
        type: string
    snapAppId:
      name: snap_app_id
      in: path
      required: true
      description: The Snap App ID used for tracking app conversion events.
      schema:
        type: string
  schemas:
    AppData:
      type: object
      description: App-specific data for mobile app conversion events.
      properties:
        advertiser_tracking_enabled:
          type: boolean
          description: Whether the user has enabled advertiser tracking.
        application_tracking_enabled:
          type: boolean
          description: Whether the app has tracking enabled.
        extinfo:
          type: array
          description: Extended device information array.
          items:
            type: string
    ConversionEvent:
      type: object
      description: A single conversion event with event details, user data, and optional custom data.
      required:
      - event_name
      - event_time
      - action_source
      properties:
        event_name:
          type: string
          description: The name of the conversion event being reported.
          enum:
          - PAGE_VIEW
          - VIEW_CONTENT
          - ADD_CART
          - ADD_TO_WISHLIST
          - SIGN_UP
          - SEARCH
          - PURCHASE
          - ADD_BILLING
          - COMPLETE_TUTORIAL
          - SUBSCRIBE
          - AD_CLICK
          - AD_VIEW
          - START_CHECKOUT
          - RATE
          - LIST_VIEW
          - ADD_TO_CART
          - LEVEL_COMPLETE
          - ACHIEVEMENT_UNLOCKED
          - SPEND_CREDITS
          - SAVE
          - SHARE
          - INVITE
          - LOGIN
          - RESERVE
          - START_TRIAL
          - CUSTOM_EVENT_1
          - CUSTOM_EVENT_2
          - CUSTOM_EVENT_3
          - CUSTOM_EVENT_4
          - CUSTOM_EVENT_5
        event_time:
          type: integer
          description: Unix timestamp in seconds when the event occurred. Events can be up to 37 days in the past.
        event_source_url:
          type: string
          format: uri
          description: The URL of the web page where the event occurred. Required for web events.
        event_id:
          type: string
          description: A unique identifier for the event, used for deduplication.
        action_source:
          type: string
          description: The source of the conversion event.
          enum:
          - WEB
          - MOBILE_APP
          - OFFLINE
        user_data:
          $ref: '#/components/schemas/UserData'
        custom_data:
          $ref: '#/components/schemas/CustomData'
        app_data:
          $ref: '#/components/schemas/AppData'
    UserData:
      type: object
      description: User identification data for matching conversion events to Snapchat users. All personally identifiable information should be hashed using SHA-256 before sending.
      properties:
        em:
          type: string
          description: SHA-256 hashed lowercase email address of the user.
        ph:
          type: string
          description: SHA-256 hashed phone number in E.164 format.
        fn:
          type: string
          description: SHA-256 hashed lowercase first name of the user.
        ln:
          type: string
          description: SHA-256 hashed lowercase last name of the user.
        ge:
          type: string
          description: SHA-256 hashed gender (m or f).
        db:
          type: string
          description: SHA-256 hashed date of birth in YYYYMMDD format.
        ct:
          type: string
          description: SHA-256 hashed lowercase city name.
        st:
          type: string
          description: SHA-256 hashed lowercase two-letter state code.
        zp:
          type: string
          description: SHA-256 hashed five-digit zip code.
        country:
          type: string
          description: SHA-256 hashed lowercase two-letter country code.
        external_id:
          type: string
          description: SHA-256 hashed external ID for the user.
        client_ip_address:
          type: string
          description: The IP address of the user's browser or device.
        client_user_agent:
          type: string
          description: The user agent string of the user's browser.
        sc_click_id:
          type: string
          description: The Snapchat click ID from the ad click URL parameter.
        sc_cookie1:
          type: string
          description: The Snapchat first-party cookie value.
        idfv:
          type: string
          description: iOS identifier for vendor.
        idfa:
          type: string
          description: iOS identifier for advertisers.
        madid:
          type: string
          description: Mobile advertising device ID (Android).
    ContentItem:
      type: object
      description: A product or content item associated with a conversion event.
      properties:
        id:
          type: string
          description: The product or content identifier.
        quantity:
          type: integer
          description: The quantity of the item.
          minimum: 1
        item_price:
          type: number
          format: double
          description: The price of the individual item.
        brand:
          type: string
          description: The brand name of the item.
        category:
          type: string
          description: The category of the item.
    ErrorResponse:
      type: object
      description: Error response returned when conversion event submission fails.
      properties:
        status:
          type: string
          description: The error status
        reason:
          type: string
          description: Human-readable error message
        param:
          type: string
          description: The parameter that caused the error
    CustomData:
      type: object
      description: Custom data associated with the conversion event, such as purchase amount, currency, and product information.
      properties:
        currency:
          type: string
          description: ISO 4217 currency code (e.g., USD, EUR).
          pattern: ^[A-Z]{3}$
        price:
          type: number
          format: double
          description: The value or price associated with the event.
        transaction_id:
          type: string
          description: A unique transaction identifier for deduplication.
        search_string:
          type: string
          description: The search query string for SEARCH events.
        sign_up_method:
          type: string
          description: The method used for sign-up (e.g., email, google, facebook).
        num_items:
          type: integer
          description: Number of items associated with the event.
        payment_info_available:
          type: integer
          description: Whether payment info is available (1 or 0).
          enum:
          - 0
          - 1
        contents:
          type: array
          description: Array of product or content items associated with the event.
          items:
            $ref: '#/components/schemas/ContentItem'
    ConversionEventResponse:
      type: object
      description: Response returned after successfully submitting conversion events.
      properties:
        status:
          type: string
          description: The status of the request
        reason:
          type: string
          description: Additional details about the response
    ConversionEventRequest:
      type: object
      description: The request body for sending conversion events. Contains an array of one or more event objects.
      required:
      - data
      properties:
        data:
          type: array
          description: Array of conversion event objects. Maximum 2,000 events per request.
          maxItems: 2000
          minItems: 1
          items:
            $ref: '#/components/schemas/ConversionEvent'
  securitySchemes:
    bearerAuth:
      type: oauth2
      description: OAuth 2.0 authorization. Access tokens are obtained via the authorization code flow and expire after 3600 seconds. Refresh tokens can be used to obtain new access tokens.
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.snapchat.com/accounts/oauth2/auth
          tokenUrl: https://accounts.snapchat.com/login/oauth2/access_token
          scopes:
            snapchat-marketing-api: Access to the Snapchat Marketing API
externalDocs:
  description: Snapchat Ads API Documentation
  url: https://developers.snap.com/api/marketing-api/Ads-API/introduction