# Car Cutout + Shadow (Base64)

Remove background from a car photo and return both the RGBA cutout and a soft cast-shadow mask as separate Base64 PNGs in one JSON body.

**Cost:** 1 credit on HTTP 200.

The cutout does **not** bake the shadow in; use `shadow_base64` to composite or edit on the client. Window reconstruction is on by default (`reconstruct_windows=true`); set `reconstruct_windows=false` to skip. For a single RGBA with baked shadow, use `/v1.0/car-image-without-background-base64` with `include_shadow=true`. No binary sibling. No image-type sidecar.

---

## Endpoint

**POST** `/v1.0/car-cutout-and-shadow-base64`

Base URL: `https://api.withoutbg.com`

## Authentication

Provide your API key in the request header:

```
X-API-Key: <your_api_key>
```

## Request

**Content-Type:** `application/json`

### Fields

- `image_base64` *(string, required)* — Input image as a raw Base64 string (no `data:` URI prefix). Supported formats: JPEG, PNG, WebP, AVIF, HEIC, TIFF, BMP, GIF. Maximum decoded size: 20.0 MB. Invalid Base64, non-image data, unsupported formats, or oversize payloads fail with HTTP 422.
- `reconstruct_windows` *(boolean, optional)* — When true (default), run car window reconstruction on the cutout: opens glass interiors while keeping the car outline. Shadow is predicted from the BiRefNet silhouette regardless. Set false to skip window reconstruction.

## Response

**Success Content-Type:** `application/json`

### Body fields

- `input_dimensions` *(array<integer>, required)* — Decoded input size as `[width, height]` (pixels).
- `processed_dimensions` *(array<integer>, required)* — Size after server prep downscale (longest-side / megapixel caps) as `[width, height]`. Distinct from model inference resolution (~1024 long side).
- `was_downscaled` *(boolean, required)* — True when the input was downscaled during server prep.
- `img_without_background_base64` *(string, required)* — Car cutout as Base64 PNG (RGBA) with transparent background. Shadow is not baked in; use `shadow_base64` to composite yourself. Prepend `data:image/png;base64,` to display in a browser.
- `shadow_base64` *(string, required)* — Soft cast-shadow mask as Base64 grayscale PNG (0 = no shadow, 255 = full shadow). Not composited into the cutout; for client-side editing/compositing. Prepend `data:image/png;base64,` to display in a browser.

## Errors

| Status | Description |
|--------|-------------|
| 401 | Invalid API Key |
| 402 | Insufficient credit. Please top up API credits. |
| 403 | Credits Expired. Please top up API credits. If you have existing credits, they will be reactivated. |
| 422 | [object Object] |
| 429 | {"error":"Too Many Requests","status":429,"message":"Rate limit exceeded. Please try again later"} |
| 500 | Internal Server Error. Please contact support: contact@withoutbg.com |

## Example (cURL)

```bash
curl -X POST \
  -H "X-API-Key: $WITHOUTBG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image_base64":"<raw_base64>"}' \
  "https://api.withoutbg.com/v1.0/car-cutout-and-shadow-base64"
```

---

Source of truth: [OpenAPI](https://api.withoutbg.com/openapi.json) · Docs: [/docs/pro-model/car-cutout-and-shadow-base64](/docs/pro-model/car-cutout-and-shadow-base64)
