---
title: "Create an ad (website only)"
method: POST
path: "/v1/owner/ads/campaigns"
tags: ["Business Owner"]
---

# Create an ad (website only)

`POST /v1/owner/ads/campaigns`

## Request

- Base URL: `https://loppee.com`
- URL: `https://loppee.com/v1/owner/ads/campaigns`
- Auth: HTTP bearer

Creates an ad through the change pipeline: one of the business's own categories, an area within the plan reach, most per ad tap at least the category minimum ($1.00 floor) and a daily limit. launch=true submits it for review (pending_review) and needs confirm=true, the current Advertiser Terms and, for pay-per-tap ads, payments open; otherwise it is saved as a draft. Website only: requests from the mobile apps are refused with 403 web_only_action. Behind LOPPEE_ADS_MANAGER: 404 while off, and with invite only for allowlisted businesses. Only the business's owner. Agent credentials are refused with 403 ads_owner_action_required.

## Request body

- object
  - `business_id` string
  - `campaign` object, required
  - `launch` boolean
  - `confirm` boolean
  - `idempotency_key` string

## Response `200`

Create an ad (website only) response

- object: The change request outcome (applied or pending_confirmation) with the before/after estimate.

## Other responses

- `400`: ErrorResponse
- `401`: ErrorResponse
- `403`: ErrorResponse
- `404`: ErrorResponse
- `409`: ErrorResponse
- `413`: ErrorResponse
- `429`: RateLimitError
- `default`: ErrorResponse

---

[API](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents.md) · [All operations](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/llms.txt) · [OpenAPI document](https://skmtc.dev/loppee/apis/loppee-business-registry-api-for-external-agents/revisions/37285f7cddcd?raw)
