# Narva API

> Generate images, videos and 3D models and enhance images with Narva's models from your own code. Pay as you go from a prepaid balance: 1 credit = $0.01. Every generate request returns a job; poll GET /v1/jobs/{id} or pass an X-Webhook-URL header.

Base URL: https://api.narva.ai/functions/v1/api-gateway
Auth: Authorization: Bearer nva_live_… (create keys at https://narva.ai/developers/keys)
Errors: { "error": { "code", "message", "param", "request_id" } }

## Docs

- [Guides and reference](https://narva.ai/docs/api): quickstart, jobs, webhooks and signature checks, assets, errors, rate limits, pricing
- [OpenAPI 3.1 spec](https://api.narva.ai/functions/v1/api-gateway/openapi.json): every endpoint, field, limit and price
- [MCP server](https://narva.ai/mcp): for AI assistants, at https://mcp.narva.ai, signed in with a Narva account and paid with website credits

## Image models

- POST /v1/generate/image/google/nano-banana-2: Nano Banana 2. Google's fast image model for text-to-image and image editing with up to 14 reference images. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/image/google/nano-banana-2.1: Nano Banana 2.1. The lower-cost Nano Banana for drafts and high volume, with the same inputs as Nano Banana 2. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/image/google/nano-banana-pro: Nano Banana Pro. Google's highest-quality image model, best for text in images and precise edits. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/image/openai/gpt-image-2.5-sunburst: GPT Image 2.5 Sunburst. OpenAI's image model with selectable quality, for photoreal renders and edits. Each input image adds to the price. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/image/openai/gpt-image-2.5-flare: GPT Image 2.5 Flare. OpenAI's image model with transparent-background support. Each input image adds to the price. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.

## Video models

- POST /v1/generate/video/bytedance/seedance-2: Seedance 2.0. ByteDance's video model: text, first/last frame or reference media to video, with generated audio. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/video/bytedance/seedance-2-fast: Seedance 2.0 Fast. A faster, cheaper Seedance 2.0 at 480p or 720p. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/video/bytedance/seedance-2-5: Seedance 2.5. The latest Seedance, up to 30 seconds and up to 30 reference images. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.

## Enhancer models

- POST /v1/generate/enhance/topaz/image-upscale: Topaz Image Upscale. Faithful upscaling for photos and renders, up to 6x. Priced by the size of the finished image. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/enhance/topaz/generative-enhance: Topaz Generative. Generative enhancement and upscaling with eight Topaz models, up to 6x. Priced by model and the size of the finished image. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/enhance/magnific/creative: Magnific Upscaler Creative. Generative upscaling that adds detail, with creative control, up to 16x and 25.3 MP. Priced by the size of the finished image. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/enhance/magnific/precision-v2: Magnific Upscaler Precision V2. Upscaling that stays close to the original, up to 16x and 33 MP. Priced by the size of the finished image. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.
- POST /v1/generate/enhance/crystal/crystal-upscaler: Crystal Upscaler. Fast general upscaling, up to 8x. Priced by the size of the finished image. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.

## 3D models

- POST /v1/generate/3d/tencent/hunyuan-3d-3.1-pro: Hunyuan 3D V3.1 Pro. Tencent's higher-quality 3D model, with extra views for accurate geometry. The result is a GLB file. PBR materials, extra views and a custom face count each add to the price. Returns the queued job at once; poll GET /v1/jobs/{id} or use a webhook.

## Jobs

- GET /v1/jobs/{id}: Get a job. Status, cost and, once completed, fresh links to the outputs.
- GET /v1/jobs: List jobs. This workspace's jobs, newest first.
- POST /v1/jobs/{id}/cancel: Cancel a job. Cancels a job that hasn't started yet and refunds it in full. Running jobs can't be cancelled.

## Assets

- POST /v1/assets: Upload an asset. Upload a file once and use its asset://<id> in any media field, as often as you like. Images up to 20 MB when used as image inputs; video and audio up to 75 MB. Needs a positive balance or an earlier top-up; a workspace can keep up to 5 GB of assets.
- GET /v1/assets: List assets
- GET /v1/assets/{id}: Get an asset
- DELETE /v1/assets/{id}: Delete an asset. Jobs that already used the asset keep their own copy.

## Account

- GET /v1/balance: Get the balance
- GET /v1/usage: Get usage. Charges, refunds and top-ups for a window of whole UTC days (both ends included), newest first, with totals. Defaults to the last 30 days; at most 366.
- GET /v1/models: List models. Every available model with its endpoint and current prices. Needs no API key.
