# Pricing

What each feature costs on your plan, so you can show or budget the cost before spending.

Base URL: https://api.neurall.io. Authenticate with `Authorization: nl-YOUR_API_KEY`.

### Get Pricing

`GET /v3/pricing`

What every feature costs YOU, on your plan, so a call can be costed before it is made. Fetch it to show a price in your own UI, to budget a batch, or to decide whether an option is worth its surcharge, rather than hardcoding numbers that go stale when your plan changes.

Prices are not one flat figure across the platform: `price` is per call for most features and per unit for the ones billed by output length (a reveal is charged per second of finished clip), and `variants` holds the multipliers that options like resolution apply on top.

Nothing here is a quote or a hold; the balance is charged when a generation is accepted.

```bash
curl -X GET "https://api.neurall.io/v3/pricing" \
  -H "Authorization: nl-YOUR_API_KEY"
```

**Responses**

- `200`: Map of feature name to price info
  - `prices` (object): One entry per feature your plan prices, keyed by the feature name you send as `feature` when generating (image/self-portrait, video/object-reveal, ...). A feature you cannot call does not appear.
  - `prices.{feature}.price` (number): The base price in USD. Per call for flat features; per unit for the ones billed by output length (a reveal per second of finished clip, an avatar video per started 15 seconds, a voiceover per started 1,000 characters of script).
  - `prices.{feature}.variants` (object): Present only when one of the feature's arguments changes the price. Keyed by that argument's name; each entry maps the values you can send to the multiplier applied on top of `price`. You never send a variant key: the server reads the argument off your call and applies the multiplier itself, so the cost of a call is `price` times the multiplier of each option it uses. A boolean argument maps as `off`/`on`. `"fineDetails": {"off": 1, "on": 4}` reads as: a fine-details second costs 4x the base rate, and `"resolution": {"720p": 1, "1080p": 1.5}` prices a 1080p avatar block at 1.5x the 720p one. Absent entirely, the feature has one flat price.

  Example:

  ```json
  {
    "prices": {
      "image/self-portrait": {
        "price": 0.05
      },
      "image/product-shot": {
        "price": 0.15,
        "variants": {
          "fineDetails": {
            "off": 1,
            "on": 3.5
          }
        }
      },
      "video/object-reveal": {
        "price": 0.25,
        "variants": {
          "fineDetails": {
            "off": 1,
            "on": 4
          }
        }
      },
      "video/avatar": {
        "price": 0.75,
        "variants": {
          "resolution": {
            "720p": 1,
            "1080p": 1.5
          }
        }
      },
      "audio/voice-clone": {
        "price": 3
      }
    }
  }
  ```
- `401`: Unauthorized
