# Writes and guardrails

> How changes to an Amazon account work on Build: caps, a dry run, idempotency keys, a 24 hour undo and an audit log.

> **Amazon only: Writes run on Amazon accounts only**
>
> Google Ads, Walmart, Flipkart, TikTok Shop and Meta Ads are read-only. A read key can never change anything.

## What you can change

Bids, budgets, negatives and campaigns on Amazon Ads. Changes stay off until you turn them on, and a key needs the read and write scope.

POST https://build-api.sellermate.ai/v1/tools/update_target — Change a target on an Amazon Ads account, behind caps, a dry run and undo. (writes: yes; platforms: Amazon)

## Caps

Nothing moves past your limit. A request above a cap returns `422` and nothing is applied.

_To write: where caps are set (console or API), which caps exist (bid, budget), and the default values_

## Dry run

A dry run shows what would change before anything is applied.

_To write: how to ask for a dry run (parameter name), and a real dry-run response_

## Idempotency keys

_To write: the idempotency header or field, how long a key is remembered, and what a repeated request returns_

## What a refused change looks like

A bad bid gets a `422`, not a live campaign:

```json
{ "status": 422, "message": "bid 2.40 is above this account's ceiling of 2.00." }
```

Your code lowers the bid and tries again. The call that succeeds returns `200`, is logged, and can be undone for 24 hours.

## Undo for 24 hours

_To write: how to undo a change: the endpoint or console action, and what cannot be undone_

## Audit log

Every write is logged: who, what, and the result.

_To write: where to read the audit log (console and API) and the fields in an entry_

## Approval mode

_To write: what approval mode is, where it is turned on, and how a proposed change waits for a person to approve it_
