# Save brand details and reserve a sponsor package in one transaction (/docs/api-reference/api/v1/sponsors/bookings/start/post)

`POST https://mmb-blurware-alpha.vercel.app/api/v1/sponsors/bookings/start`

Save brand details and reserve a sponsor package in one transaction

Requires both sponsor:write and billing:write. Requires billing: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_bookings_start`

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

## Authentication

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

## Request

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

```json
{
  "type": "object",
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "website": {
      "type": "string",
      "maxLength": 1500,
      "format": "uri"
    },
    "headline": {
      "type": "string",
      "minLength": 1,
      "maxLength": 55
    },
    "body": {
      "type": "string",
      "minLength": 1,
      "maxLength": 140
    },
    "slotId": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "weekStart": {
      "type": "integer"
    },
    "idempotencyKey": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "name",
    "website",
    "headline",
    "body",
    "slotId",
    "weekStart",
    "idempotencyKey"
  ],
  "additionalProperties": false
}
```

## Responses

### `200` — Response

**application/json**

```json
{
  "type": "object",
  "properties": {
    "booking": {
      "type": "object",
      "properties": {
        "packageKind": {
          "type": "string",
          "enum": [
            "website",
            "youtube",
            "bundle"
          ]
        },
        "packageDescription": {
          "type": "string"
        },
        "youtubeStatus": {
          "type": "string",
          "enum": [
            "planned",
            "published"
          ]
        },
        "youtubeUrl": {
          "type": "string"
        },
        "youtubeNotes": {
          "type": "string"
        },
        "demo": {
          "type": "boolean"
        },
        "id": {
          "type": "string"
        },
        "campaignId": {
          "type": "string"
        },
        "campaignName": {
          "type": "string"
        },
        "slotName": {
          "type": "string"
        },
        "weekStart": {
          "type": "number"
        },
        "weekEnd": {
          "type": "number"
        },
        "amountCents": {
          "type": "number"
        },
        "currency": {
          "type": "string"
        },
        "status": {
          "type": "string",
          "enum": [
            "reserved",
            "checkout",
            "paid",
            "expired",
            "cancelled",
            "refunding",
            "refunded"
          ]
        },
        "mode": {
          "type": "string",
          "enum": [
            "test",
            "live"
          ]
        },
        "createdAt": {
          "type": "number"
        },
        "receiptUrl": {
          "type": "string"
        },
        "refundedCents": {
          "type": "number"
        },
        "paymentIssue": {
          "type": "string"
        },
        "impressions": {
          "type": "number"
        },
        "clicks": {
          "type": "number"
        },
        "sponsorName": {
          "type": "string"
        }
      },
      "required": [
        "id",
        "campaignId",
        "campaignName",
        "slotName",
        "weekStart",
        "weekEnd",
        "amountCents",
        "currency",
        "status",
        "mode",
        "createdAt",
        "impressions",
        "clicks"
      ]
    }
  },
  "required": [
    "booking"
  ]
}
```

### `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"
  ]
}
```