Account tools
Use these tools to list models, check your credit balance, and view generation history.
#Available models and pricing
A live list of enabled models and their prices (synced to the database) is in Available models. Disabled models are hidden there and in get_models.
get_models returns all available models with their price in credits and typical generation time. Use it to choose a model and confirm cost before generating.
- Pricing: Each model includes cost_per_generation (credits).
- Estimated time: Each model includes estimated_time_seconds (typical generation duration). You get both cost and estimated duration in one call; no separate estimation tool needed for a per-model estimate.
- Use listed models only: When calling generate_media or generate_music, use a model_id from the get_models response. Using a model not in that list may result in an error.
Filter by model_type (image, video, or music) to get models for a specific capability. See Media tools, and Music tools for per-tool model usage.
#get_models
Returns available AI models with costs and capabilities. Call this before generating to choose the right model and confirm cost.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| model_type | string | No | Filter by type: image, video, or music. Omit for all. |
Response: A list of models. Each entry typically includes:
- model_id - Use this in generate_media or generate_music. Only use IDs returned here.
- display_name, provider
- model_type (image, video, music)
- cost_per_generation (credits)
- estimated_time_seconds (typical generation duration)
- generation_types (e.g. text-to-image, image-to-video)
- requires_input_media, input_media_types (e.g. one image)
- capabilities (aspect ratios, durations, quality levels, etc.)
Use this to decide which model to use and whether you need to pass source_media_urls for media.
#get_balance
Returns your current Kubeez credit balance.
Parameters: None (uses your authenticated account).
Response: Your available credits (and optionally last updated). Check this before starting expensive generations.
#get_generations
Returns your latest 20 generations (media) with optional filters (e.g. to list recent jobs and their output or source links). For one specific row, use get_generation (full detail) or get_status (just the current state).
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by status (e.g. completed, failed). |
| model | string | No | Filter by model ID. |
| generation_type | string | No | Filter by type (e.g. text-to-image). |
Response: Up to 20 generations with IDs, prompts, models, status, timestamps, and output details.
#get_generation
Full detail for a single past generation: prompt, model, parameters, status, outputs, credits_deducted, error_message. Use it when you have one id and want the whole row; get_generations is the paginated history. Pairs with regenerate for iteration: get_generation(id), inspect the params, then regenerate(id, prompt="tweaked").
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| id | string | Yes | The generation_id. |
Response: The same row shape as one entry of get_generations.generations[].
#plan
Read-only planner. Give it the user's goal in their own words and it returns a routed plan instead of you making four separate calls. Charges nothing and calls no model.
Use it as the first call of a session when the user has described what they want but has not picked a model.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| intent | string | Yes | What the user wants, in their own words. |
| has_local_files | boolean | No | True when the user attached image or audio reference media. |
| has_video_reference | boolean | No | True when the user attached a video they want modified. Routes to a video-reference model instead of text- or image-to-video. |
| target_aspect | string | No | Force an aspect ratio instead of letting the planner infer one. |
Response: recommended_model, estimated_credits, estimated_seconds, requires_upload, suggested_aspect_ratio, workflow_steps[] and skills_to_fetch[]. If the intent is ambiguous you get clarifying_questions[] instead of a model — ask the user those, then call plan again.
#list_assets
Lists the user's Asset Library: named, reusable images, videos and audio stored in their private bucket. Check here before asking someone to re-upload a logo, a recurring face, a voice clip or a track — it may already be saved.
Parameters: None.
Response: assets[], each with a stable name (e.g. tesote-logo), id, kind (image / video / audio), size_bytes and a signed CDN url valid for one hour. Pass that url straight into generate_media as a source_media_urls value. Also returns quota_bytes / used_bytes, a team block and team-shared rows for accounts on a team plan, and a kling_elements block when the user has saved reference bundles.
#manage_library
The write half of the library: add, rename or delete Asset Library entries, and create or delete Gemini Omni characters. Reads stay on list_assets and list_gemini_omni_characters — call those first to confirm what exists.
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| kind | string | Yes | asset or character. |
| action | string | Yes | Assets: add, rename, delete. Characters: create, delete. |
| name | string | No | Handle for an asset add: lowercase letters, digits, _ and -, max 64 characters, unique per user. |
| url | string | No | Remote source for an asset add. The server fetches it and validates the MIME type. |
| shared | boolean | No | Team accounts only: true saves to the shared team library, false to the personal one. This is the user's choice — omitting it on a team account returns shared_scope_required rather than guessing. |
| asset_id | string | No | UUID from list_assets, for rename or delete. |
| new_name | string | No | New handle for a rename. |
| descriptions | string | No | Appearance / identity text for a character create. |
| image_url | string | No | Public jpeg / png / webp for a character create. |
| character_name | string | No | Optional display name for a character create. |
| voice_id | string | No | Optional voice from list_gemini_omni_voices. |
| character_id | string | No | The id field from list_gemini_omni_characters, for delete. |
See Limitations for rate limits.

