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

# Create or update a campaign

> Creates a new campaign or updates an existing campaign in the Experience Manager.



## OpenAPI

````yaml /api-reference/5.9/fusion-api-query.json post /experience-manager/campaigns
openapi: 3.0.1
info:
  title: Fusion Query API
  description: >-
    A Lucidworks Fusion microservice for machine-learning-enhanced ranking and
    retrieval.
  contact:
    name: Lucidworks
    url: www.lucidworks.com
    email: support@lucidworks.com
  license:
    name: License of API
    url: https://lucidworks.com/legal/developer-license-agreement/
  version: '5.9'
servers:
  - url: https://{FUSION HOST}/api
    description: Fusion
    variables:
      FUSION HOST:
        default: FUSION_HOST
        description: Your environment host.
  - url: https://{FUSION HOST}/api/apps/{APP_NAME}
    description: Fusion app
    variables:
      FUSION HOST:
        default: FUSION_HOST
        description: Your environment host.
      APP_NAME:
        default: APP_NAME
        description: The name of your Fusion app.
security:
  - Basic auth: []
  - API key: []
tags:
  - name: Custom Rule Type API
    description: Endpoints to define and manage custom rule type definitions.
  - name: Experiments API
    description: >-
      Use the Experiments API to compare different configuration variants and
      determine which ones are most successful.
  - name: Query Pipelines API
    description: >-
      Use these endpoints to view and manage your query pipelines.  You can also
      send queries using this API, though the Query Profiles API is recommended
      instead.
  - name: Query Profiles API
    description: >-
      The Query Profiles API provides static endpoints that you can consistently
      point to when querying your collections.  Query profiles allow you to
      change the query pipelines or collections behind them without changing the
      endpoint you use for your search queries.  See the Query Profiles CRUD API
      for endpoints that create and modify query profiles.
  - name: Query Profiles CRUD API
    description: >-
      Use these endpoints to create and modify query profiles.  Query profiles
      allow you to change the query pipelines or collections behind them without
      changing the endpoint you use for your search queries.  See the Query
      Profiles API for the query endpoints.
  - name: Query Rewrite API
    description: >-
      The Query Rewrite API manages documents used for query rewriting to
      improve relevancy using AI-generated data. Primarily for internal use.
  - name: Query Stage API
    description: >-
      Use these endpoints to view the available query pipeline stages and their
      configuration parameters.
  - name: Query Stage Plugins API
    description: >-
      Use these endpoints to view, install, and manage custom query stages
      developed with the Query Stage SDK.
  - name: Signal Indexing API
    description: Endpoints to index signals.
  - name: Experience Manager API
    description: API only for internal use by the Experience Manager Springboard system
  - name: Query Pipeline Template API
    description: Used internally to generate query pipelines from a template.
externalDocs:
  description: Lucidworks Documentation.
  url: https://doc.lucidworks.com/
paths:
  /experience-manager/campaigns:
    post:
      tags:
        - Experience Manager API
      summary: Create or update a campaign
      description: >-
        Creates a new campaign or updates an existing campaign in the Experience
        Manager.
      operationId: updateCampaignUsingPOST
      parameters:
        - name: commitWithin
          in: query
          description: Time in milliseconds within which the update should be committed.
          schema:
            type: string
        - name: context
          in: query
          description: >-
            Application context for the campaign request, typically indicating
            the scope or tenant.
          required: true
          schema:
            type: string
        - name: staging
          in: query
          description: >-
            Indicates whether the campaign should be created or updated in a
            staging environment.
          required: true
          schema:
            type: boolean
        - name: version
          in: query
          description: Optional version number of the campaign update.
          schema:
            type: integer
            format: int64
      requestBody:
        description: Campaign details to be created or updated.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CampaignReq'
      responses:
        '200':
          description: Campaign successfully updated.
          content:
            application/json:
              schema:
                type: object
        '201':
          description: Campaign successfully created.
          content: {}
        '401':
          description: Unauthorized request. The caller does not have permission.
          content: {}
        '403':
          description: Forbidden request. Access is restricted.
          content: {}
        '404':
          description: Campaign not found.
          content: {}
components:
  schemas:
    CampaignReq:
      type: object
      title: Campaign Request
      description: Represents a request to create or update a campaign.
      properties:
        effective_range:
          type: array
          description: The time range during which the campaign is active.
          items:
            type: string
        id:
          type: string
          description: Unique identifier for the campaign.
        name:
          type: string
          description: The name of the campaign.
        updatedOn:
          type: string
          format: date-time
          description: Timestamp indicating when the campaign was last updated.
  securitySchemes:
    Basic auth:
      type: http
      scheme: basic
    API key:
      name: x-api-key
      type: apiKey
      in: header

````