# Models

> The two live models — Kling for video and Nano Banana 2 for images — with their parameters, live status semantics and per-generation credit costs.

Figgshield runs two models: **Kling** for video and **Nano Banana 2** for images. Both are reachable the same way — through Claude, the Claude Code CLI, or the REST API — and draw on the same credit balance. In Claude you rarely name a model; you ask for a video or an image and Figgshield routes to the right one.

## List models

`GET /api/models/` — public, no authentication required.

```bash
curl https://api.figgshield.ai/api/models/
```

Returns the standard list envelope. Each item:

```json
{
  "uuid": "3c2b1a09-8f7e-4d6c-5b4a-392817065e4d",
  "slug": "kling-video",
  "name": "Kling",
  "provider": "fal",
  "kind": "video",
  "description": "Cinematic motion in 5 or 10-second clips, with optional audio.",
  "credits_base": 35,
  "status": "online",
  "sort_order": 10,
  "params_schema": {
    "durations": [5, 10],
    "resolutions": ["720p", "1080p"],
    "audio": true,
    "aspect_ratios": ["16:9", "9:16"]
  }
}
```

## Fields

| Field | Type | Meaning |
| --- | --- | --- |
| `slug` | string | Stable identifier — `kling-video` or `nano-banana-2`. Pass as `model` when [creating a generation](https://figgshield.ai/documentation/generations.md) over REST. |
| `name` | string | Display name (`Kling`, `Nano Banana 2`). |
| `provider` | string | Hosting provider (`fal` for Kling, `google` for Nano Banana 2). Informational. |
| `kind` | string | `video` or `image` — determines which params apply. |
| `description` | string | One-line description. |
| `credits_base` | integer | Base credits per generation (35 for Kling, 8 for Nano Banana 2). Duration and audio can multiply it — see below. |
| `status` | string | `online`, `degraded` or `offline` from live health checks. |
| `sort_order` | integer | Suggested display order. |
| `params_schema` | object | The values this model accepts. |

## The two models

### Kling — video

| | |
| --- | --- |
| Slug | `kling-video` |
| Durations | 5 or 10 seconds |
| Resolutions | 720p, 1080p |
| Audio | Optional, default off (doubles the credit cost) |
| Base cost | 35 credits |

### Nano Banana 2 — image

| | |
| --- | --- |
| Slug | `nano-banana-2` |
| Resolutions | 1K, 2K, 4K |
| Base cost | 8 credits |

## Credit costs

Costs are fixed per generation; `credits_base` is the authoritative base. For Kling, a **10-second** clip and **audio** each double the cost:

| Generation | Kind | Credits |
| --- | --- | --- |
| Nano Banana 2 image (1K / 2K / 4K) | image | 8 |
| Kling — 5-second clip (720p / 1080p) | video | 35 |
| Kling — 5-second clip with audio | video | 70 |
| Kling — 10-second clip | video | 70 |

The same credits work across both models; there are no per-model plans or multipliers beyond duration and audio. What a credit costs in money depends on your plan — see [Billing & top-ups](https://figgshield.ai/documentation/billing.md).

## Status semantics

| Status | Meaning | What to do |
| --- | --- | --- |
| `online` | Healthy; generations run normally. | Use freely. |
| `degraded` | The provider is up but slow or intermittently failing (failures are auto-refunded). | Expect longer waits; retry if needed. |
| `offline` | The provider is down. Creating a generation returns `503 model_unavailable`. | Retry later. |
