---
title: "Create campaign"
method: POST
path: "/v1/sponsored-product-ads/campaigns"
tags: ["SponsoredProductAds V1"]
---

# Create campaign

`POST /v1/sponsored-product-ads/campaigns`

## Request

- Base URL: `https://api.otto.market`
- URL: `https://api.otto.market/v1/sponsored-product-ads/campaigns`
- Auth: HTTP bearer

Creates a campaign.

## Request body

- CreateCampaignRequestSponsoredProductAdsV1
  - `name` string, required: Campaign display name. Must not contain `$`, `§`, `"`, `#`, `*`, or parentheses — except for an optional trailing numeric suffix (e.g. `My campaign (2)`).
  - `startDate` string, date, required: Campaign start date. Must be today or a future date.
  - `endDate` string, date, nullable: Campaign end date. Must be at least today and greater or equal to the startDate. May be `null` for ongoing campaigns; however, `null` is not allowed when `budgetType` is `LIFETIME`.
  - `budget` MonetaryAmountSponsoredProductAdsV1, required
    - `amount` integer, required: Amount in minor units (cents). Example 1099 = 10.99 EUR. Minimum value is 20 (0.20 EUR).
    - `currency` 'EUR', required
  - `pacing` 'ASAP' | 'EVEN', required
  - `budgetType` 'DAILY' | 'WEEKLY' | 'MONTHLY' | 'LIFETIME', required
  - `campaignType` 'AUTOMATIC' | 'MANUAL', required

## Response `202`

Campaign creation accepted.

- CreateCampaignResponseSponsoredProductAdsV1
  - `changeRequest` ChangeRequestSponsoredProductAdsV1, required
    - `requestId` string, uuid, required
    - `requestType` 'CREATE_CAMPAIGN' | 'UPDATE_CAMPAIGN' | 'CREATE_TARGETS' | 'UPDATE_TARGETS' | 'DELETE_TARGETS' | 'CREATE_KEYWORDS' | 'UPDATE_KEYWORDS' | 'DELETE_KEYWORDS', required
    - `status` 'PENDING' | 'ACCEPTED' | 'REJECTED', required
    - `lastModifiedAt` string, date-time, required: Timestamp of the last status change of this change request.
  - `_links` object, required
    - `self` LinkSponsoredProductAdsV1, required: A HAL link object as defined in draft-kelly-json-hal.
      - `href` string, uri, required: The URL of the linked resource.
    - `change-request` LinkSponsoredProductAdsV1: A HAL link object as defined in draft-kelly-json-hal.
      - `href` string, uri, required: The URL of the linked resource.

## Other responses

- `400`: Bad request. Invalid or rejected input data.
- `401`: Unauthorized. Missing or invalid authentication token.
- `403`: Forbidden. Insufficient permissions or resource access denied.
- `500`: Internal server error.

## Changes

- **2026-09-10** `3d020f15ab4d`: 1 info
  - endpoint added
- **2026-09-08** `06ee9d8814bd`: 1 breaking
  - api path removed without deprecation
- **2026-09-01** `b1bc133112bd`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/otto/apis/otto-market-api/changes/v1/sponsored-product-ads/campaigns/post.md)

---

[API](https://skmtc.dev/otto/apis/otto-market-api.md) - [All operations](https://skmtc.dev/otto/apis/otto-market-api/llms.txt) - [OpenAPI document](https://skmtc.dev/otto/apis/otto-market-api/revisions/cc8a74b62e87?raw)
