> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apostra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate V3 write requests

> Update V3 REST, MCP, and SDK write callers to send one explicit request operation.

As each tool moves to its explicit V3 request contract, update every REST, MCP,
and SDK caller before deploying it. V3 does not accept a request that infers an
operation from its fields or mixes fields from different operations. The
generated OpenAPI and SDK types contain the exact fields for each branch.

The table describes the launch target. A tool changes only when its own slice
merges, so `tools/list` remains the source of truth for the active account.
If a caller needs to correct a rejected request, follow the
[V3 error-handling guide](/v3/errors).

| Tool | Required field | Values | Example |
| - | - | - | - |
| `save_creative_session` | `operation`; `scope` | `operation`: `save_draft`, `select_output`, `approve_output`, `finalize_approved_output`, `promote_approved_output`; `scope`: `campaign`, `advertiser` | `{ "operation": "save_draft", "scope": "campaign", "campaignId": "CAMPAIGN_ID" }` |
| `save_billing` | `operation` | `terms`, `payment_authority`, `payment_terms` | `{ "operation": "terms", "terms": { "accepted": true, "acceptedVersion": "VERSION" } }` |
| `save_buyer_agent` | `operation` | `create`, `update_display_name`, `update_access`, `lifecycle`, `credential_handoff` | `{ "operation": "update_display_name", "id": "AGENT_ID", "displayName": "Agency buyer agent" }` |
| `save_agent` | `operation` | `seller_save`, `developer_create`, `developer_update` | `{ "operation": "seller_save", "agentId": "AGENT_ID", "productMode": "WHOLESALE", "reason": "This source exposes wholesale inputs only." }` |
| `generate_variants` | `scope`; `variantAction` | `scope`: `campaign`, `advertiser`; `variantAction`: `generate`, `feedback` | `{ "scope": "campaign", "variantAction": "generate", "campaignId": "CAMPAIGN_ID", "sessionId": "SESSION_ID" }` |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.