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

# Create Offsite Audiences Job

> Create a new offsite audience job.

This endpoint creates a job to create an offsite audience alongside a presigned url to upload the audience csv file.
The presigned url is valid for 1 hour and should be used to upload the audience csv file.
The audience creation will begin once the csv file is uploaded.

The audience CSV should contain one or more of the following columns with hashed and normalized identifiers: hashed_email, hashed_phone, hashed_first_name, hashed_last_name, hashed_mobile_device_id. Strongest identifiers are hashed_email and hashed_phone. Hashing should use the SHA256 method. The audience will be synced to the specified DSPs.



## OpenAPI

````yaml /openapi.json post /public/v1/offsite-ads/audiences/user-list
openapi: 3.1.0
info:
  title: Topsort Endpoints v2 API Reference
  description: >
    In order for a storefront to be able to run auctions in Topsort and report
    auction-related events back to Topsort,

    both the `/v2/auctions` and `/v2/events` endpoints must be integrated.

    Below are the endpoint and model definitions for each.
  contact:
    email: wicha@topsort.com
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://assets.topsort.com/Topsort_logo_icon_dark.svg
    backgroundColor: '#fff'
    altText: Topsort
  version: 2.0.0
servers:
  - url: https://api.topsort.com
    description: Base API URL
security: []
tags:
  - name: Auctions
    description: >-
      An auction determines which products should be promoted based on the
      vendors' bids.
  - name: Events
    description: >-
      Events are sent to Topsort as part of the attribution and reporting
      journey.
  - name: Toptimize
    description: >
      An out-of-the-box solution for prediction, ranking, retrieval, and other
      elements of ad selection.
  - name: Toppie API
    description: Toppie management API.
  - name: Campaign API
    description: Full-featured campaign management API for banners and sponsored listings.
  - name: Catalog API
    description: Products catalog management API.
  - name: Billing API
    description: Marketplace and Vendor Billing management API.
  - name: Reporting API
    description: Marketplace, Vendor, Campaign, and product reporting API.
  - name: Invitation API
    description: Vendor invitations management API.
  - name: User API
    description: User management API.
  - name: Webhooks API
    description: Webhooks API that allows event-driven automation.
  - name: Assets API
    description: Assets management API.
  - name: Segments Service
    description: Segments Service.
  - name: Forecasting Service
    description: Toptimize Forecasting Service.
  - name: Offsite Ads API
    description: Offsite Ads API that allows to manage offsite ads campaigns.
  - name: Media API
    description: Ad configuration API.
paths:
  /public/v1/offsite-ads/audiences/user-list:
    post:
      tags:
        - Offsite Ads API
      summary: Create Offsite Audiences Job
      description: >-
        Create a new offsite audience job.


        This endpoint creates a job to create an offsite audience alongside a
        presigned url to upload the audience csv file.

        The presigned url is valid for 1 hour and should be used to upload the
        audience csv file.

        The audience creation will begin once the csv file is uploaded.


        The audience CSV should contain one or more of the following columns
        with hashed and normalized identifiers: hashed_email, hashed_phone,
        hashed_first_name, hashed_last_name, hashed_mobile_device_id. Strongest
        identifiers are hashed_email and hashed_phone. Hashing should use the
        SHA256 method. The audience will be synced to the specified DSPs.
      operationId: create_offsite_user_list_audience_job
      parameters:
        - name: vendor_id
          in: query
          required: false
          schema:
            description: >-
              Limits the audience to a specific vendor when set; otherwise, the
              audience is available to all vendors.
            examples:
              - vendor_123
            oneOf:
              - type: string
              - type: 'null'
          description: >-
            Limits the audience to a specific vendor when set; otherwise, the
            audience is available to all vendors.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Advanced_APIs_PublicOffsiteUserListAudienceCreateRequest
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Advanced_APIs_PublicOffsiteAudienceCreateResponse
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_HTTPValidationError'
      security:
        - Advanced_APIs_HTTPBearer: []
components:
  schemas:
    Advanced_APIs_PublicOffsiteUserListAudienceCreateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the user list audience.
          examples:
            - My user list audience
        description:
          title: Description
          description: The description of the user list audience.
          examples:
            - This is a user list audience description.
          oneOf:
            - type: string
              minLength: 1
            - type: 'null'
        dsp:
          items:
            $ref: '#/components/schemas/Advanced_APIs_PublicAudienceSyncDsp'
          type: array
          minItems: 1
          title: Dsp
          description: >-
            The DSPs to sync the audience to. Include one or more of:
            google_ads, meta, tiktok_ads, snapchat_ads.
          examples:
            - - google_ads
            - - google_ads
              - meta
      type: object
      required:
        - name
        - dsp
      title: PublicOffsiteUserListAudienceCreateRequest
    Advanced_APIs_PublicOffsiteAudienceCreateResponse:
      properties:
        jobId:
          type: string
          format: uuid
          title: Jobid
          description: The unique identifier for the queued job.
          examples:
            - 123e4567-e89b-12d3-a456-426614174000
        url:
          type: string
          title: Url
          description: |-
            The presigned url to upload the audience csv file.
                    Presigned url must be used with PUT method and include the header `Content-Type: text/csv`.
          examples:
            - >-
              https://offsite-ads-user-list-uploads.s3.us-east-2.amazonaws.com/123e4567-e89b-12d3-a456-426614174000.csv
      type: object
      required:
        - jobId
        - url
      title: PublicOffsiteAudienceCreateResponse
    Advanced_APIs_HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Advanced_APIs_PublicAudienceSyncDsp:
      type: string
      enum:
        - google_ads
        - meta
        - tiktok_ads
        - snapchat_ads
      title: PublicAudienceSyncDsp
      description: DSPs an offsite audience is synced to.
    Advanced_APIs_ValidationError:
      properties:
        loc:
          items:
            oneOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    Advanced_APIs_HTTPBearer:
      type: http
      description: >-
        A valid API key generated in Topsort's UI. Use the TSE API key if
        calling auctions or events API, otherwise use the TSC API key.
      scheme: bearer

````