# lumv.app > lumv.app generates images, video, 3D models, speech, sound effects and music, and serves text chat models, through > a personal-key HTTP API. Generations are asynchronous jobs at /v1/generations; text models use the OpenAI-compatible > /v1/chat/completions and /v1/responses. Prices are in credits: 1 credit = 1 RUB = 100 kopecks (*Cents fields). Base URL: https://lumv.app/v1. Authorization: Bearer (sk-lumv-...). The generation model catalog is public; every other /v1 route needs the key. Workflow: read the model contract, POST /v1/generations/estimate (free, returns costCents and the paying wallet in billing), POST /v1/generations with an Idempotency-Key (202), poll GET /v1/generations/:id every 3-5 seconds until completed or failed, then download assets[].url with the same key. Input files go in inputAssets as owned ready asset IDs (upload via /v1/uploads or reuse assets[].mediaAssetId). At most 4 unfinished requests per key. Agree on a spending limit with the user before paid runs. ## Docs - [Full agent guide and live model catalog](https://lumv.app/llms-full.txt): self-contained reference with every endpoint, billing, limits, errors, and the fields, scenarios and an example for each enabled model - [Agent instructions](https://lumv.app/docs/api/agents): the same agent guide on a web page - [API documentation](https://lumv.app/docs/api): human-readable overview (Russian) - [OpenCode and IDE setup](https://lumv.app/docs/api/connect): OpenAI-compatible client configuration ## Model catalog - [Generation models](https://lumv.app/v1/generation-models): public JSON list with fields, defaults, options, limits, scenarios and examples - [Generation model contract](https://lumv.app/v1/generation-models/MODEL_ID): one model by id - [Model documentation pages](https://lumv.app/docs/api/models/MODEL_ID): per-model human-readable page - [Text models](https://lumv.app/v1/models): OpenAI-compatible model list (requires the key) ## Generation API - [Estimate](https://lumv.app/v1/generations/estimate): POST, free quote with costCents and the billing block - [Start a generation](https://lumv.app/v1/generations): POST { model, values, inputAssets, projectId }, returns 202 - [Generation status](https://lumv.app/v1/generations/GENERATION_ID): GET, status, assets and billing fields - [Uploads](https://lumv.app/v1/uploads): POST, then PUT content, POST complete, GET /v1/assets/ASSET_ID until ready - [Projects](https://lumv.app/v1/projects): GET, project folders available for projectId (requires the key) ## Text API - [Chat Completions](https://lumv.app/v1/chat/completions): POST, streaming and function tools - [Responses](https://lumv.app/v1/responses): POST, streaming, function tools, stored responses with GET/DELETE /v1/responses/RESPONSE_ID and /input_items ## Account - [Create a personal API key](https://lumv.app/account/api/keys): after signing in; the key is shown once - [API usage](https://lumv.app/account/api/usage): every request and its cost