# Films

`GET /v1/films` — Saved storyboard drafts: a shared look plus ordered scenes.

- Base URL: https://eroq.ai/v1
- Auth: `Authorization: Bearer eroq_sk_…` (create keys at https://eroq.ai/dashboard/keys)
- Credits: Free

A film is a RECIPE, never media: a title, a shared look (film type, era, tempo, camera, format) and ordered scenes (prompt, camera move, duration, cast). Up to 50 drafts per account; the studio's Film mode saves and reloads them here. Renders always land in `/v1/creations`.

`POST /v1/films` creates one (`title`, `data`); `GET /v1/films/{id}` returns the full recipe; `PATCH /v1/films/{id}` updates `title` and/or `data`; `DELETE /v1/films/{id}` removes the draft (its renders stay in the library). `data` is yours — the API stores it verbatim.

**`POST /v1/films/{id}/render` shoots the whole storyboard in one call**: every scene with a prompt is queued as an async video job (charged per scene, like POST /v1/videos/generations), the response maps each scene to its job id (poll them) or to the error that kept it from queueing. Scenes fail independently — a drained wallet stops the remaining queue cleanly, and every charged failure refunds itself.

## Example request

```bash
curl https://eroq.ai/v1/films \
  -H "Authorization: Bearer $EROQ_API_KEY"
```

```javascript
const res = await fetch('https://eroq.ai/v1/films', {
  headers: { Authorization: `Bearer ${process.env.EROQ_API_KEY}` },
})
console.log(await res.json())
```

```python
import os, requests

res = requests.get("https://eroq.ai/v1/films", headers={"Authorization": f"Bearer {os.environ['EROQ_API_KEY']}"})
print(res.json())
```

```go
package main

import (
	"fmt"
	"io"
	"net/http"
	"os"
)

func main() {
	req, _ := http.NewRequest("GET", "https://eroq.ai/v1/films", nil)
	req.Header.Set("Authorization", "Bearer "+os.Getenv("EROQ_API_KEY"))

	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	out, _ := io.ReadAll(res.Body)
	fmt.Println(string(out))
}
```

## Response


```json
{
  "films": [{
    "id": "7f2a…", "title": "Rooftop night",
    "scenes": 3, "updatedAt": "2026-09-11T14:02:11Z"
  }]
}
```
---
Canonical: https://eroq.ai/docs/films · Index for agents: https://eroq.ai/llms.txt · OpenAPI: https://eroq.ai/openapi.json
