# Cygnet (preview)
URL: https://docs.munito.ai/models/blockbrain-cygnet

Munito AI serves Cygnet in the EU through the Decisions API.

This model is a preview. Munito AI can change or remove it without notice.

Use this model ID in the `model` field of a request:

```text
blockbrain/cygnet
```

| | |
| --- | --- |
| Model ID | `blockbrain/cygnet` |
| Type | Decision (preview) |
| Input | text |
| Context | 16K tokens (16,384) |
| Regions | EU |

## APIs [#apis]

- [Decisions (OpenAI format)](https://docs.munito.ai/api/createOpenAIDecision): `POST /decisions`
- [Evaluate decisions](https://docs.munito.ai/api/createDecision): `POST /systemone`

## Prices [#prices]

Prices are in USD for each million tokens, in the standard tier. The global host bills the global price. A regional host or a regional model ID bills the price of its region.

| Region | Input | Cached input | Output |
| --- | --- | --- | --- |
| Global | $0.05 | $0.05 | $0.15 |
| EU | $0.15 | $0.15 | $0.17 |

See [Models and pricing](https://docs.munito.ai/models#blockbrain-cygnet) for the priority and flex tiers, and for [how a request is billed](https://docs.munito.ai/models#how-a-request-is-billed).

## Rate limits [#rate-limits]

Base limits per organization.

| Usage tier | Requests per minute | Input tokens per minute | Output tokens per minute |
| --- | --- | --- | --- |
| Free | 600 | 100,000 | 600 |
| Tier 1 | 1,200 | 200,000 | 1,200 |
| Tier 2 | 2,400 | 400,000 | 2,400 |
| Tier 3 | 4,800 | 800,000 | 4,800 |
| Tier 4 | 9,600 | 1,600,000 | 9,600 |
| Custom | On request | On request | On request |

One decision can require several model passes. Each pass counts toward the request and token allowances.

See [Rate limits](https://docs.munito.ai/rate-limits) for dynamic limits, headers and retries.

Request custom limits through Support in the [console](https://console.munito.ai).

## Regions [#regions]

Munito AI serves this model in the EU. The global host, `api.munito.ai`, sends each request to a region that serves it.
To keep the processing in one region, use the host of that region:

| Region | Host |
| --- | --- |
| EU | `api.eu.munito.ai` |

See [Regions](https://docs.munito.ai/regions) for the base URLs and the rules for stored data.

## Example [#example]

Ask questions about one input. The answers come back in the same order, each with its probability.

```bash
export MUNITO_API_KEY="munitoai_..."
curl https://api.munito.ai/inference/v1/decisions \
  -H "Authorization: Bearer $MUNITO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "blockbrain/cygnet",
    "input": "The parcel arrived with a crushed corner and the mug inside is broken.",
    "questions": [
      {"type": "predicate", "instructions": "Is the item damaged?"},
      {"type": "choice", "instructions": "What should we offer?",
       "choices": [{"value": "refund"}, {"value": "replacement"}]}
    ]
  }'
```

```python
# pip install requests
import os
import requests

response = requests.post(
    "https://api.munito.ai/inference/v1/decisions",
    headers={"Authorization": f"Bearer {os.environ['MUNITO_API_KEY']}"},
    json={
        "model": "blockbrain/cygnet",
        "input": "The parcel arrived with a crushed corner and the mug inside is broken.",
        "questions": [
            {"type": "predicate", "instructions": "Is the item damaged?"},
            {
                "type": "choice",
                "instructions": "What should we offer?",
                "choices": [{"value": "refund"}, {"value": "replacement"}],
            },
        ],
    },
    timeout=60,
)
response.raise_for_status()
for answer in response.json()["answers"]:
    print(answer)
```

See [Create a decision](https://docs.munito.ai/api/createOpenAIDecision) for the question types and the answer format.
