# Edit draft creative (/docs/api-reference/api/v1/sponsors/campaigns/id/patch)

`PATCH https://mmb-blurware-alpha.vercel.app/api/v1/sponsors/campaigns/{id}`

Edit draft creative

Requires sponsor:write. Account ownership and current admin membership are checked independently of key scopes. All times are UTC epoch milliseconds. List responses are cursor-paginated. Booking creation requires a UUID idempotencyKey; repeating it returns the same reservation. Browser sessions use the same service with same-origin mutation protection.

Operation ID: `sponsorship_campaigns_update`

OpenAPI document: https://mmb-blurware-alpha.vercel.app/openapi.json

## Authentication

Required bearer token: `Authorization: Bearer $MMB_API_KEY`.

## Request

### Path parameters

```json
[
  {
    "schema": {
      "type": "string"
    },
    "required": true,
    "name": "id",
    "in": "path"
  }
]
```

### Request body — application/json (required)

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 80
    },
    "headline": {
      "type": "string",
      "minLength": 1,
      "maxLength": 55
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 140
    },
    "cta": {
      "type": "string",
      "minLength": 1,
      "maxLength": 24
    },
    "targetUrl": {
      "type": "string",
      "maxLength": 1500,
      "format": "uri"
    },
    "logoText": {
      "type": "string",
      "minLength": 1,
      "maxLength": 3
    }
  },
  "required": [
    "name",
    "headline",
    "body",
    "cta",
    "targetUrl",
    "logoText"
  ],
  "additionalProperties": false
}
```

## Responses

### `200` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "campaign": {
      "type": "object",
      "properties": {
        "id": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "headline": {
          "type": "string"
        },
        "body": {
          "type": "string"
        },
        "cta": {
          "type": "string"
        },
        "targetUrl": {
          "type": "string"
        },
        "logoText": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "draft",
            "pending",
            "approved",
            "rejected",
            "paused"
          ]
        },
        "reviewNote": {
          "type": "string"
        },
        "createdAt": {
          "type": "number"
        },
        "sponsorName": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "headline",
        "body",
        "cta",
        "targetUrl",
        "logoText",
        "status",
        "createdAt"
      ]
    }
  },
  "required": [
    "campaign"
  ]
}
```

### `400` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `401` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `403` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `404` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `409` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `429` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```

### `503` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "error": {
      "type": "string"
    },
    "message": {
      "type": "string"
    },
    "retryAfter": {
      "type": "number"
    }
  },
  "required": [
    "error",
    "message"
  ]
}
```