---
title: "Create or update a content plan ad"
method: POST
path: "/api/v1/upsert_content_plan_ad"
tags: ["Growth Plan"]
---

# Create or update a content plan ad

`POST /api/v1/upsert_content_plan_ad`

## Request

- Base URL: `https://api.pymaia.com`
- URL: `https://api.pymaia.com/api/v1/upsert_content_plan_ad`
- Auth: HTTP bearer

Create or update a content plan ad. If id is provided, updates that row (by id+org); otherwise inserts a new one. Only the fields you pass are written. Scoped to the current org.

## Request body

- object
  - `id` string: Ad id to update. Omit to create a new ad.
  - `framework_ad_id` string
  - `funnel_stage` string: Uno de: tofu, mofu, bofu, rmk, ltv.
  - `awareness_level` string: Nivel de conciencia del framework PDA. Uno de: CI (consciente del inconveniente), CP (consciente del problema), CPS (consciente de la solución), CPCP (consciente del producto), RMK (remarketing).
  - `format` string
  - `status` string: Uno de: pending, active, paused, done.
  - `campaign_destination` string
  - `copy` string
  - `creative_brief` string
  - `production_notes` string
  - `owner` string
  - `ad_link` string
  - `start_date` string
  - `live_date` string
  - `notes` string
  - `phase` number: Entero de 1 a 5.
  - `sort_order` number

## Response `200`

Tool executed successfully

- object
  - `ok` boolean
  - `result` unknown
  - `duration_ms` number

## Other responses

- `400`: Invalid params or handler error
- `401`: Missing or invalid Bearer token
- `403`: Missing required scope(s) (`denied_scope`), or the tool's module is disabled for the organization (`module_disabled`, with `why`, `fix` and `module`)
- `404`: Tool not found, internal-only, or excluded for OAuth connectors
- `429`: Rate limit exceeded

---

[API](https://skmtc.dev/pymaia/apis/pymaia-api.md) · [All operations](https://skmtc.dev/pymaia/apis/pymaia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/pymaia/apis/pymaia-api/revisions/705a6973177b?raw)
