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

# Generate a 360 spin

> Create ordered spin images from four vehicle views.

Submit exactly four JPEG, PNG, or WebP images in this order:
**front → side-left → rear → side-right**. Each image can contain up to 20 MiB
and 40 megapixels. Keep the vehicle, framing, lighting, and background consistent.
You can apply `render.background` to your source views first.

Upload each image with `POST /v1/uploads`, then submit its reference in the same
order to `POST /v1/render/360`:

```json theme={null}
{
  "input_refs": ["upl_front", "upl_left", "upl_rear", "upl_right"],
  "provider": "fal",
  "frame_count": 36,
  "output_format": "jpg",
  "viewer": false
}
```

Use your actual upload references. You can also repeat the `images` field four
times in a multipart request, in that same order. Through MCP, provide four
ordered `input_refs` or `urls` and place endpoint options in `params`.

MiniMax H3 Max Turbo on fal.ai generates four parallel one-second transitions:
front → left → rear → right → front. Each transition can run approximately
0.7 seconds longer. CarHub samples its actual duration and returns images only.
It does not export an MP4. Review the generated views for vehicle fidelity and
rotation consistency before publication.

Choose 24, 36 (the default), or 72 frames, in `jpg` or `webp` format. Both
`provider: "auto"` and `provider: "fal"` select fal.ai. The retired `kling`,
`replicate`, and `interpolate` providers are rejected.

This endpoint returns an asynchronous job. Poll `GET /v1/jobs/{id}` or use a
webhook; `wait=true` is unsupported. Existing beta access and pricing apply.
Failed jobs release their credit reservation. Test keys return sandbox fixtures
without contacting the generation provider.

The result contains `frames`, `frame_count`, and `viewer_url`. Frames appear in
ascending angle order from 0° toward 360°, with no duplicate 360° boundary.
Each frame contains an `angle` and an `image` asset with its signed URL,
expiration, format, dimensions, and byte size. Download the images before their
URLs expire. In the Playground, move the **Spin angle** slider to inspect them.

`viewer: true` returns a hosted viewer URL only when a viewer has been
provisioned. Otherwise `viewer_url` is `null`. You can use the frame images in
your own spin viewer.


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