---
title: "Update ad copy, destination URL / UTMs, or attach a creative"
method: PATCH
path: "/ads/{id}"
---

# Update ad copy, destination URL / UTMs, or attach a creative

`PATCH /ads/{id}`

## Request

- Base URL: `https://lazyads.ai/api/v1`
- URL: `https://lazyads.ai/api/v1/ads/{id}`
- Auth: HTTP bearer

Pushes headline/body/CTA/destination URL and Meta url_tags to the live platform when the API allows it. Published ads fail instead of writing Lazy Ads only. `creativeId` attaches a library creative (live swap only when a platform creative id already exists).

## Path parameters

- `id` string, required

## Request body

- object
  - `name` string
  - `headline` string
  - `body` string
  - `description` string
  - `callToAction` string
  - `destinationUrl` string, uri
  - `urlTags` string: Meta url_tags query string without ?
  - `creativeId` string, nullable

## Response `200`

Ad updated (`appliedOnPlatform` says whether Graph/Ads was written)

## Other responses

- `400`: Platform hard limit or invalid input

---

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