# OpenRouter APIs — Tencent: HY-World 2.1 Panorama (tencent/hy-world-2.1-panorama)

Guide for calling every confirmed OpenRouter API that serves `tencent/hy-world-2.1-panorama`.

Model page: https://openrouter.ai/tencent/hy-world-2.1-panorama
Create an API key: https://openrouter.ai/settings/keys

## Pricing

Standard-variant prices for `tencent/hy-world-2.1-panorama`, per provider, in the unit each provider bills (tokens, images, seconds of video, or characters of audio). Pay-as-you-go with no markup on the provider's price.

- Tencent Cloud: $1.60/M tokens

Full price table, including other variants and per-request charges: https://openrouter.ai/tencent/hy-world-2.1-panorama
How OpenRouter prices requests: https://openrouter.ai/pricing

## EU in-region routing

`tencent/hy-world-2.1-panorama` is not currently available through EU in-region routing.

Docs: https://openrouter.ai/docs/guides/features/in-region-routing

## Authentication

Send this header with every request:

- Authorization: Bearer $OPENROUTER_API_KEY

## Image API

Generate images with `tencent/hy-world-2.1-panorama` through OpenRouter's Image API.

Docs: https://openrouter.ai/docs/guides/overview/multimodal/image-generation
Model discovery API: https://openrouter.ai/api/v1/images/models
Endpoints (tencent/hy-world-2.1-panorama-20261112): https://openrouter.ai/api/v1/images/models/tencent/hy-world-2.1-panorama-20261112/endpoints

### Endpoint

POST https://openrouter.ai/api/v1/images

Headers:
- Content-Type: application/json

### Request fields (tencent/hy-world-2.1-panorama)

- model: string (required) — `"tencent/hy-world-2.1-panorama"`
- prompt: string (required) — text description of the desired image
- n: integer 1-1 (optional) — upper bound on the number of images to generate; providers may return fewer, and single-image providers reject n > 1

These are the generation parameters this model accepts between its providers; an
unlisted value is rejected, and a listed one can still be refused by whichever provider
serves the call. `provider` (routing preferences) is accepted on every request.

### Response

```json
{
  "created": 1748372400,
  "data": [{ "b64_json": "<base64 image bytes>", "media_type": "image/png" }],
  "usage": { "prompt_tokens": 0, "completion_tokens": 4175, "total_tokens": 4175, "cost": 0.04 }
}
```

Base64-decode `data[i].b64_json` and write the bytes to a file; `media_type` gives the extension.
`usage.cost` is the USD charge for the call.

### Examples

#### Text to Image

```bash
curl -X POST https://openrouter.ai/api/v1/images \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "tencent/hy-world-2.1-panorama",
  "prompt": "Editorial architectural photograph of a contemporary neighborhood storefront at blue hour, glowing warmly against the dusk. Above the entrance, a warm-white neon sign in flowing hand-bent cursive reads exactly \"OpenRouter\", the only text in the scene. Large windows reveal a cozy, lived-in interior: wood shelves styled with books and ceramics, lush trailing plants, and soft pendant lighting. Potted plants and a bicycle rest by the entrance, and golden light spills across the wet pavement in gentle reflections. Straight-on composition, realistic materials, quiet street with no people.",
  "n": 1
}'
```

#### Text to Image 2

```bash
curl -X POST https://openrouter.ai/api/v1/images \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "tencent/hy-world-2.1-panorama",
  "prompt": "Editorial architectural photograph of a contemporary neighborhood storefront at blue hour, glowing warmly against the dusk. Above the entrance, a warm-white neon sign in flowing hand-bent cursive reads exactly \"OpenRouter\", the only text in the scene. Large windows reveal a cozy, lived-in interior: wood shelves styled with books and ceramics, lush trailing plants, and soft pendant lighting. Potted plants and a bicycle rest by the entrance, and golden light spills across the wet pavement in gentle reflections. Straight-on composition, realistic materials, quiet street with no people.",
  "n": 1
}'
```

### Error differences

- 413 — request body too large

## Errors

Failures return `{"error": {"code": <number>, "message": <string>}}` with the HTTP status:

- 400 — malformed request or an unsupported parameter
- 401 — missing or invalid API key
- 402 — insufficient credits
- 403 — spend limit reached, key disabled, or access blocked
- 404 — unknown model or no provider can serve the request
- 429 — rate limited; retry with backoff
- 502 — the operation failed upstream; failed generations are not billed

---

Canonical version of this document: https://openrouter.ai/tencent/hy-world-2.1-panorama/llms.txt
