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

# Update Campaign By Id

> Endpoint to update fields for a given campaign.



## OpenAPI

````yaml /openapi.json patch /public/v1/campaign-service/campaigns/{campaign-id}
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/{campaign-id}:
    patch:
      tags:
        - Campaign API
      summary: Update Campaign By Id
      description: Endpoint to update fields for a given campaign.
      operationId: update_campaign
      parameters:
        - name: campaign-id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The ID of the campaign.
          description: The ID of the campaign.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Advanced_APIs_PublicCampaignUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_PublicCampaign'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Advanced_APIs_HTTPValidationError'
      security:
        - Advanced_APIs_HTTPBearer: []
components:
  schemas:
    Advanced_APIs_PublicCampaignUpdateRequest:
      properties:
        name:
          title: Name
          description: The name of the campaign.
          examples:
            - Bola-Bola Ad campaign
          oneOf:
            - type: string
              minLength: 1
            - type: 'null'
        budget:
          description: The budget of the campaign.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_BudgetUpdate'
            - type: 'null'
        startDate:
          title: Startdate
          description: >-
            When should the campaign start. If the start date is in the past, it
            will be set to the current date.
          oneOf:
            - type: string
              format: date-time
            - type: 'null'
        endDate:
          title: Enddate
          description: When should the campaign stop. Must be greater than start date.
          oneOf:
            - type: string
              format: date-time
            - type: 'null'
        isActive:
          title: Isactive
          description: Whether the campaign should be active/inactive.
          oneOf:
            - type: boolean
            - type: 'null'
        isSmart:
          title: Issmart
          description: Whether the campaign is `smart`.
          oneOf:
            - type: boolean
            - type: 'null'
        campaignType:
          description: >-
            The bidding type of the campaign. Can only be updated to
            `autobidding`.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_AutobiddingCampaignType'
            - type: 'null'
        status:
          description: The approval status of the campaign, if it's a banner campaign.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_CampaignStatus'
            - type: 'null'
        statusUpdatedBy:
          title: Statusupdatedby
          description: The ID of the user who approved the banner campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
        isAutoTrigger:
          title: Isautotrigger
          description: Whether the campaign is auto-triggered.
          oneOf:
            - type: boolean
            - type: 'null'
        targetRoas:
          title: Targetroas
          description: >-
            Indicates the vendor's goal. For banners, use autobiddingObjective
            instead. ROAS >12 is rare and depends on product metrics and
            attribution model.
          oneOf:
            - type: number
              maximum: 30
              minimum: 0.5
            - type: 'null'
        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'
        chargeType:
          description: >-
            How campaigns are going to be charged, by click, by per mille
            impressions, or by action.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_ChargeType'
            - type: 'null'
        autobiddingObjective:
          description: The objective of the campaign, only for autobidding campaigns.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_AutobiddingObjective'
            - type: 'null'
        productIds:
          title: Productids
          description: >-
            The product IDs to be used in the banner campaign. This is only
            allowed for banner campaigns. When provided, the assets will be
            associated to the given product IDs.
          oneOf:
            - items:
                type: string
              type: array
              maxItems: 250
              minItems: 1
              uniqueItems: true
            - type: 'null'
        bannerAdRejectionReason:
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_BannerAdRejectionReason'
            - type: 'null'
        targetRoasPreference:
          description: >-
            Target ROAS preset (aggressive, moderate, conservative). When set,
            the numeric target ROAS is resolved from marketplace bidcalc
            configuration. Cannot be provided together with target_roas.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_TargetRoasPreference'
            - type: 'null'
        fallbackWalletId:
          title: Fallbackwalletid
          description: The optional fallback wallet to be used with this campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
      type: object
      title: PublicCampaignUpdateRequest
      description: Public Campaign Update Request Body.
    Advanced_APIs_PublicCampaign:
      properties:
        campaignId:
          type: string
          format: uuid
          title: Campaignid
          description: The ID of the campaign.
        marketplaceId:
          type: string
          format: uuid
          title: Marketplaceid
          description: The ID of the marketplace.
        name:
          type: string
          minLength: 1
          title: Name
          description: The name of the campaign.
          examples:
            - Bola-Bola Ad campaign
        budget:
          description: The budget assigned to the campaign.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_Budget'
            - type: 'null'
        startDate:
          type: string
          format: date-time
          title: Startdate
          description: The starting date of the campaign.
        endDate:
          type: string
          format: date-time
          title: Enddate
          description: The end date of the campaign.
        isActive:
          type: boolean
          title: Isactive
          description: Whether this campaign is active.
        isSmart:
          type: boolean
          title: Issmart
          description: Whether this campaign is "smart".
        campaignType:
          $ref: '#/components/schemas/Advanced_APIs_CampaignType'
        status:
          $ref: '#/components/schemas/Advanced_APIs_CampaignStatus'
        statusUpdatedBy:
          title: Statusupdatedby
          description: >-
            The ID of the user who reviewed the campaign. If it's `null` and the
            status is not `"pending"` then it means this campaign has
            autoapproval status.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
        campaignBehaviorData:
          title: Campaignbehaviordata
          description: >-
            Deprecated. This field is always null. For behavioral data use
            reporting service.
          deprecated: true
          oneOf:
            - type: string
            - type: 'null'
        campaignBehaviorDataByDay:
          title: Campaignbehaviordatabyday
          description: >-
            Deprecated. This field is always null. For behavioral data use
            reporting service.
          deprecated: true
          oneOf:
            - type: string
            - type: 'null'
        createdAt:
          type: string
          format: date-time
          title: Createdat
          description: When was this campaign created.
        chargeType:
          title: Chargetype
          description: >-
            How campaigns are going to be charged, by click, by per mille
            impressions, or by action.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_ChargeType'
            - $ref: '#/components/schemas/Advanced_APIs_ExclusiveCampaignChargeType'
        exclusivityPrice:
          title: Exclusivityprice
          description: >-
            Daily price for an exclusive campaign, can only be set if a campaign
            is exclusive
          oneOf:
            - type: integer
            - type: 'null'
        targetRoas:
          title: Targetroas
          description: >-
            The target return on ad spend (ROAS) for this campaign. This is only
            applicable for autobidding listing campaigns.
          oneOf:
            - type: number
            - type: 'null'
        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'
        externalVendorId:
          type: string
          minLength: 1
          title: Externalvendorid
          description: The ID of the vendor. Deprecated. Use vendor_id instead.
          deprecated: true
        adFormat:
          $ref: '#/components/schemas/Advanced_APIs_AdFormat'
          description: The ad format of the campaign. Can be listing or banner.
          examples:
            - listing
        isAutoTrigger:
          type: boolean
          title: Isautotrigger
          description: Whether the campaign is auto-triggered.
        autobiddingObjective:
          description: The autobidding objective for the campaign.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_AutobiddingObjective'
            - type: 'null'
        vendorId:
          type: string
          minLength: 1
          title: Vendorid
          description: The ID of the vendor.
        walletId:
          type: string
          format: uuid
          title: Walletid
          description: The uuid of the wallet to be used with this campaign.
        fallbackWalletId:
          title: Fallbackwalletid
          description: The optional fallback wallet to be used with this campaign.
          oneOf:
            - type: string
              format: uuid
            - type: 'null'
        bidCount:
          type: integer
          title: Bidcount
          description: >-
            The amount of active bids associated with this campaign. This field
            is deprecated and will be set to 0 once the notice period is over.
          deprecated: true
      type: object
      required:
        - campaignId
        - marketplaceId
        - name
        - startDate
        - endDate
        - isActive
        - isSmart
        - campaignType
        - status
        - createdAt
        - chargeType
        - externalVendorId
        - adFormat
        - isAutoTrigger
        - vendorId
        - walletId
        - bidCount
      title: PublicCampaign
      description: The campaign model.
    Advanced_APIs_HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/Advanced_APIs_ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Advanced_APIs_BudgetUpdate:
      properties:
        amount:
          format: int64
          title: Amount
          description: >-
            The amount of money in the budget in minor units of currency
            according to ISO 4217.
          examples:
            - 1000
          oneOf:
            - type: integer
              exclusiveMaximum: 50000000000
              exclusiveMinimum: 0
            - type: 'null'
        type:
          description: The periodicity of the budget.
          oneOf:
            - $ref: '#/components/schemas/Advanced_APIs_Type'
            - type: 'null'
      type: object
      required:
        - amount
      title: BudgetUpdate
      description: Campaign budget update request model.
    Advanced_APIs_AutobiddingCampaignType:
      type: string
      enum:
        - autobidding
      title: AutobiddingCampaignType
    Advanced_APIs_CampaignStatus:
      type: string
      enum:
        - approved
        - pending
        - rejected
      title: CampaignStatus
      description: Represents the review status of a banner campaign.
    Advanced_APIs_ChargeType:
      type: string
      enum:
        - CPM
        - CPC
        - CPA
      title: ChargeType
      description: >-
        Campaign charge type.


        CPM: cost per mille impressions

        CPC: cost per click

        CPA: cost per action. CPA reflects the total cost to achieve a
        conversion.
    Advanced_APIs_AutobiddingObjective:
      type: string
      enum:
        - impressions
        - clicks
        - conversions
        - revenue
      title: AutobiddingObjective
    Advanced_APIs_BannerAdRejectionReason:
      properties:
        declineReason:
          type: string
          title: Declinereason
        reasonDetails:
          title: Reasondetails
          oneOf:
            - type: string
            - type: 'null'
      type: object
      required:
        - declineReason
      title: BannerAdRejectionReason
    Advanced_APIs_TargetRoasPreference:
      type: string
      enum:
        - aggressive
        - conservative
        - moderate
        - custom
      title: TargetRoasPreference
    Advanced_APIs_Budget:
      properties:
        amount:
          type: integer
          exclusiveMaximum: 50000000000
          exclusiveMinimum: 0
          format: int64
          title: Amount
          description: >-
            The amount of money in the budget in minor units of currency
            according to ISO 4217.
          examples:
            - 1000
        amountRemaining:
          type: integer
          format: int64
          title: Amountremaining
          description: >-
            The remaining amount of the budget. This field is deprecated and
            will be set to 0 once the notice period is over.
          deprecated: true
        amountCarryover:
          type: integer
          format: int64
          title: Amountcarryover
          description: >-
            The amount carried over from the last period. This field is
            deprecated and will be set to 0 once the notice period is over.
          deprecated: true
        amountUsed:
          type: integer
          format: int64
          title: Amountused
          description: >-
            The used amount of the budget. This field is deprecated and will be
            set to 0 once the notice period is over.
          deprecated: true
        type:
          $ref: '#/components/schemas/Advanced_APIs_Type'
          examples:
            - daily
      type: object
      required:
        - amount
        - amountRemaining
        - amountCarryover
        - amountUsed
        - type
      title: Budget
      description: A campaign budget.
    Advanced_APIs_CampaignType:
      type: string
      enum:
        - manual
        - autobidding
        - exclusive
      title: CampaignType
      description: The bidding method for the campaign.
    Advanced_APIs_ExclusiveCampaignChargeType:
      type: string
      enum:
        - DAILY
      title: ExclusiveCampaignChargeType
      description: Charge types for exclusive campaigns.
    Advanced_APIs_AdFormat:
      type: string
      enum:
        - listing
        - banner
        - sponsored_brand
        - exclusive_listing
        - exclusive_banner
        - travel_listing
        - flight_listing
      title: AdFormat
      description: The type of the auction.
    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_Type:
      type: string
      enum:
        - daily
        - weekly
        - monthly
        - total
      title: Type
      description: The periodicity of the budget.
  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

````