> ## 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.

# [BETA] Create exclusive listing campaign.

> Endpoint to create exclusive listing campaigns and its respective bids.

Exclusive campaigns override auctions and are always shown by a fixed daily price.



## OpenAPI

````yaml /openapi.json post /public/v1/campaign-service/campaigns/exclusive-listing
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/campaign-service/campaigns/exclusive-listing:
    post:
      tags:
        - Campaign API
      summary: '[BETA] Create exclusive listing campaign.'
      description: >-
        Endpoint to create exclusive listing campaigns and its respective bids.


        Exclusive campaigns override auctions and are always shown by a fixed
        daily price.
      operationId: create_exclusive_listing_campaign
      parameters:
        - name: vendor_id
          in: query
          required: true
          schema:
            type: string
            minLength: 1
            description: The ID of the vendor.
          description: The ID of the vendor.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: >-
                #/components/schemas/Advanced_APIs_PublicExclusiveListingCampaignCreateRequest
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Advanced_APIs_PublicExclusiveListingCampaign
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_HTTPValidationError'
      security:
        - Advanced_APIs_HTTPBearer: []
components:
  schemas:
    Advanced_APIs_PublicExclusiveListingCampaignCreateRequest:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the campaign.
          examples:
            - Bola-Bola Ad campaign
        isActive:
          type: boolean
          title: Isactive
          description: >-
            Whether the campaign should be activated upon creation.The campaign
            will start when this is set _and_ the `start_date` has passed.
          default: true
        externalCampaignId:
          title: Externalcampaignid
          description: >-
            The external ID of the campaign in the marketplace. Must be unique
            per marketplace and format combination.
          oneOf:
            - type: string
            - type: 'null'
        isAutoTrigger:
          type: boolean
          title: Isautotrigger
          description: Whether the campaign is auto-triggered.
          default: false
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: >-
            When should the campaign start. If the start date is in the past, it
            will be set to the current date.
        endDate:
          type: string
          format: date-time
          title: Enddate
          description: When should the campaign stop. Must be greater than start date.
        exclusivityPrice:
          type: integer
          title: Exclusivityprice
          description: The price to pay daily for the campaign to run.
        position:
          type: integer
          maximum: 20
          minimum: 1
          title: Position
          description: The rank the ad will have in the auction
          default: 1
        bids:
          items:
            $ref: '#/components/schemas/Advanced_APIs_CreateExclusiveListingBid'
          type: array
          maxItems: 1
          minItems: 1
          title: Bids
          description: An array of bids for this campaign.
        walletId:
          title: Walletid
          description: The uuid of the wallet to be used with this campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
      type: object
      required:
        - name
        - startDate
        - endDate
        - exclusivityPrice
        - bids
      title: PublicExclusiveListingCampaignCreateRequest
      description: The request body for creating an exclusive listing campaign.
    Advanced_APIs_PublicExclusiveListingCampaign:
      properties:
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the campaign.
          examples:
            - Bola-Bola Ad campaign
        isActive:
          type: boolean
          title: Isactive
          description: >-
            Whether the campaign should be activated upon creation.The campaign
            will start when this is set _and_ the `start_date` has passed.
          default: true
        externalCampaignId:
          title: Externalcampaignid
          description: The external ID of the campaign in the marketplace.
          oneOf:
            - type: string
            - type: 'null'
        isAutoTrigger:
          type: boolean
          title: Isautotrigger
          description: Whether the campaign is auto-triggered.
          default: false
        marketplaceId:
          type: string
          format: uuid
          title: Marketplaceid
          description: The ID of the marketplace.
        campaignId:
          type: string
          format: uuid
          title: Campaignid
          description: The ID of the campaign.
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: >-
            Date when to start the campaign, specified in [RFC
            3339](https://www.rfc-editor.org/rfc/rfc3339#section-5.6), if not
            set that campaign will start immediately after the campaign
            creation. Must include the Timezone definition.If the start date is
            in the past, it will be set to the current date.
        endDate:
          type: string
          format: date-time
          title: Enddate
          description: >-
            Date when to stop the campaign, specified in [RFC
            3339](https://www.rfc-editor.org/rfc/rfc3339#section-5.6), if not
            set the campaign will never stop. This date must be greater than the
            start date and must be in the future. Must include the Timezone
            definition. 
          default: '9999-12-31T22:59:59.999999Z'
        exclusivityPrice:
          type: integer
          title: Exclusivityprice
          description: The price to pay daily for the campaign to run.
        bidType:
          type: string
          const: exclusive
          title: Bidtype
          description: The bidding type of the campaign.
          default: exclusive
        createdBy:
          title: Createdby
          description: The ID of the user creating the campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
        chargeType:
          $ref: '#/components/schemas/Advanced_APIs_ExclusiveCampaignChargeType'
          description: >-
            How exclusive campaigns are going to be charged, only daily is
            allowed.
        position:
          type: integer
          maximum: 20
          minimum: 1
          title: Position
          description: The rank the ad will have in the auction
          default: 1
        walletId:
          title: Walletid
          description: The uuid of the wallet to be used with this campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
        adFormat:
          type: string
          const: exclusive_listing
          title: Adformat
          description: The ad format of the campaign. Can be exclusive_listing.
          examples:
            - exclusive_listing
        vendorId:
          type: string
          title: Vendorid
          description: The marketplace's ID of the vendor.
        createdAt:
          type: string
          format: date-time
          title: Createdat
          description: When was this campaign created.
        updatedAt:
          type: string
          format: date-time
          title: Updatedat
          description: When was this campaign last updated.
      type: object
      required:
        - name
        - marketplaceId
        - campaignId
        - exclusivityPrice
        - chargeType
        - adFormat
        - vendorId
        - createdAt
        - updatedAt
      title: PublicExclusiveListingCampaign
      description: Model that represents an Exclusive Listing Campaign.
    Advanced_APIs_HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Advanced_APIs_CreateExclusiveListingBid:
      properties:
        target:
          $ref: '#/components/schemas/Advanced_APIs_Entity'
        triggers:
          items:
            oneOf:
              - $ref: '#/components/schemas/Advanced_APIs_CategoryTrigger'
              - $ref: '#/components/schemas/Advanced_APIs_KeywordTrigger-Input'
              - $ref: '#/components/schemas/Advanced_APIs_ProductTrigger'
            description: When should this bid participate in an auction.
            discriminator:
              propertyName: type
              mapping:
                category:
                  $ref: '#/components/schemas/Advanced_APIs_CategoryTrigger'
                keyword:
                  $ref: '#/components/schemas/Advanced_APIs_KeywordTrigger-Input'
                product:
                  $ref: '#/components/schemas/Advanced_APIs_ProductTrigger'
          type: array
          minItems: 1
          title: Triggers
          description: >-
            A list of objects that trigger the appearance of this bid on an
            auction.
      type: object
      required:
        - target
        - triggers
      title: CreateExclusiveListingBid
    Advanced_APIs_ExclusiveCampaignChargeType:
      type: string
      enum:
        - DAILY
      title: ExclusiveCampaignChargeType
      description: Charge types for exclusive campaigns.
    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
    Advanced_APIs_Entity:
      properties:
        id:
          type: string
          maxLength: 256
          minLength: 1
          title: Id
          description: The unique ID of the entity.
          examples:
            - p_8983
        type:
          $ref: '#/components/schemas/Advanced_APIs_CampaignEntityType'
          examples:
            - product
      type: object
      required:
        - id
        - type
      title: Entity
      description: >-
        Represents a promotable entity that will be returned upon a winning
        auction.
    Advanced_APIs_CategoryTrigger:
      properties:
        type:
          type: string
          const: category
          title: Type
        value:
          $ref: '#/components/schemas/Advanced_APIs_CategoryValue'
      type: object
      required:
        - type
        - value
      title: CategoryTrigger
      description: |-
        Catalog-based category from a product.

        Ideal for category product listing pages.
    Advanced_APIs_KeywordTrigger-Input:
      properties:
        type:
          type: string
          const: keyword
          title: Type
        value:
          $ref: '#/components/schemas/Advanced_APIs_KeywordValue'
      type: object
      required:
        - type
        - value
      title: KeywordTrigger
      description: |-
        Collection of keywords that match to a product.

        Ideal for search results pages.
    Advanced_APIs_ProductTrigger:
      properties:
        type:
          type: string
          const: product
          title: Type
        value:
          $ref: '#/components/schemas/Advanced_APIs_ProductValue'
      type: object
      required:
        - type
        - value
      title: ProductTrigger
      description: The ID of a product.
    Advanced_APIs_CampaignEntityType:
      type: string
      enum:
        - product
        - brand
        - vendor
        - url
      title: CampaignEntityType
      description: The type of the entity to be advertised.
    Advanced_APIs_CategoryValue:
      properties:
        categoryId:
          type: string
          title: Categoryid
          description: The ID of the category.
      type: object
      required:
        - categoryId
      title: CategoryValue
    Advanced_APIs_KeywordValue:
      properties:
        words:
          items:
            type: string
          type: array
          maxItems: 5000
          title: Words
          description: The list of keywords.
        matchType:
          $ref: '#/components/schemas/Advanced_APIs_KeywordMatchType'
      type: object
      required:
        - words
        - matchType
      title: KeywordValue
    Advanced_APIs_ProductValue:
      properties:
        productId:
          type: string
          title: Productid
          description: The ID of the product.
      type: object
      required:
        - productId
      title: ProductValue
    Advanced_APIs_KeywordMatchType:
      type: string
      enum:
        - exact
        - phrase
      title: KeywordMatchType
  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

````