# Ads (/docs/api/reference/ads)



The ads surface mirrors what the customer can do in the Layers app, swapped for partner authentication. Reads are on `ads:read`. Writes use fine-grained sub-scopes (`ads:write:campaigns`, `:budgets`, `:creative`, `:lifecycle`, `:policy`, `:optimizer_trigger`, `:pending`, `:capi`, plus the legacy `ads:write:connect`/`:override`).

Every write routes through the [bucket-mode authority gate](/docs/api/concepts/ads-write-model) — the customer's per-campaign and per-layer policy is authoritative. Partner-issued writes show up as `actor_type: "partner"` rows in the [audit log](/docs/api/reference/audit-log/list).

**BYO-only.** Partners do not transact platform spend — the customer's connected ad accounts are the source of money and consent. There is no Layers wallet that funds ad spend, and no aggregated billing.

**Cents universally.** All budget, bid, and money fields on the partner contract are integers in **cents** (per [LOCK 2](/docs/api/concepts/ads-write-model#currency)). Layers translates at the proxy boundary for each platform.

## In this section [#in-this-section]

### Read [#read]

<Cards>
  <Card title="List ad accounts" href="/docs/api/reference/ads/list-ad-accounts" />

  <Card title="OAuth init" href="/docs/api/reference/ads/ad-accounts-oauth-url" />

  <Card title="CAPI status" href="/docs/api/reference/ads/capi-status" />

  <Card title="Ads metrics" href="/docs/api/reference/ads/ads-metrics" />

  <Card title="List campaigns" href="/docs/api/reference/ads/list-campaigns" />

  <Card title="List adsets" href="/docs/api/reference/ads/list-adsets" />

  <Card title="List ads" href="/docs/api/reference/ads/list-ads" />
</Cards>

### Write — campaign [#write--campaign]

<Cards>
  <Card title="Create campaign (simplified)" href="/docs/api/reference/ads/create-campaign" description="Headline endpoint. Customer picks budget + outcome + management mode + creative mode. Layers handles the rest." />

  <Card title="Patch campaign budget" href="/docs/api/reference/ads/patch-campaign-budget" />

  <Card title="Pause / resume campaign" href="/docs/api/reference/ads/pause-campaign" />

  <Card title="Delete campaign" href="/docs/api/reference/ads/delete-campaign" />

  <Card title="Get / Patch authority" href="/docs/api/reference/ads/patch-campaign-authority" />
</Cards>

### Write — adset / adgroup [#write--adset--adgroup]

<Cards>
  <Card title="Patch adset budget" href="/docs/api/reference/ads/patch-adset-budget" />

  <Card title="Patch adset targeting" href="/docs/api/reference/ads/patch-adset-targeting" />

  <Card title="Patch adset schedule" href="/docs/api/reference/ads/patch-adset-schedule" />

  <Card title="Pause / resume adset" href="/docs/api/reference/ads/pause-adset" />

  <Card title="Delete adset" href="/docs/api/reference/ads/delete-adset" />

  <Card title="Apple keyword bulk" href="/docs/api/reference/ads/apple-keyword-bulk" />
</Cards>

### Write — ad / creative [#write--ad--creative]

<Cards>
  <Card title="Push creative" href="/docs/api/reference/ads/push-creative" />

  <Card title="Replace creative" href="/docs/api/reference/ads/replace-creative" />

  <Card title="Prune creative" href="/docs/api/reference/ads/prune-creative" />

  <Card title="Pause / resume ad" href="/docs/api/reference/ads/pause-ad" />

  <Card title="Delete ad" href="/docs/api/reference/ads/delete-ad" />

  <Card title="Unlock flagged creative" href="/docs/api/reference/ads/unlock-creative" />
</Cards>

### Write — optimizer + lifecycle [#write--optimizer--lifecycle]

<Cards>
  <Card title="Trigger optimizer run" href="/docs/api/reference/ads/optimizer-run" />

  <Card title="Optimizer write-class flags" href="/docs/api/reference/ads/optimizer-write-classes" />

  <Card title="List pending actions" href="/docs/api/reference/ads/list-pending" />

  <Card title="Approve / reject pending" href="/docs/api/reference/ads/approve-pending" />

  <Card title="Content refresh" href="/docs/api/reference/ads/content-refresh" />

  <Card title="Disable underperformers" href="/docs/api/reference/ads/disable-underperformers" />

  <Card title="Reviews / disapproval" href="/docs/api/reference/ads/list-reviews" />
</Cards>

## See also [#see-also]

* [Ads write model](/docs/api/concepts/ads-write-model) — bucket-mode authority, kill-switch contract, scope vocabulary
* Run ads as partner — end-to-end guide
* [Audit log](/docs/api/reference/audit-log/list) — every write event with `actor_type: "partner"`
