---
title: "get_benchmark: Get the model benchmark"
description: "Which model to use for a job, in three tiers (best, middle, cheapest), priced for this account: credits per reference request, who pays (`paid_by`: one of the user's own keys at no credits, the house's free allowance, or credits) and whether that payer can now (`affordable`), plus the account's two…"
canonical_url: "https://meetkuro.com/agents/tools/get_benchmark/"
updated: 2026-11-03
locale: "en"
tool: "get_benchmark"
scopes: ["media.read"]
---

# get_benchmark

**Get the model benchmark**

Which model to use for a job, in three tiers (best, middle, cheapest), priced for this account: credits per reference request, who pays (`paid_by`: one of the user's own keys at no credits, the house's free allowance, or credits) and whether that payer can now (`affordable`), plus the account's two priorities (image_priority, clip_priority: best, balanced or cheapest) and, per task, the `selected_tier` its kind's priority picks. Call it before choosing a model and take the selected tier. When the priority for the kind is not saved, ask the user once, at their first request of that kind, what matters most (best quality, balanced or lowest cost, with the prices), save the answer with set_preferences and never ask again; until then an image takes the best tier and a clip (`selected_tier` null) waits for the answer. When a tier is not affordable, take the best affordable one and say so; a key that is out of funds (`blocked`) is the user's to top up, so ask. Pass `task` to also get the catalog recipes made for that job; when one fits, prefer it (generate_with_recipe, or start_recipe_run for a run recipe).

## Scope

- `media.read` — Reads the account: media, uploads, boards, runs, Subjects, models and the balance.

## Behaviour

- **Read-only**: Reads the caller's own account and changes nothing.
- **Stays in the account**: Stays inside the caller's private Kuro account: any media provider it calls acts on Kuro's account, and the result is visible to no one else.
- **Idempotent**: Calling it again with the same arguments has no further effect.

## Credits

What the tool's description says about credits, verbatim:

- Which model to use for a job, in three tiers (best, middle, cheapest), priced for this account: credits per reference request, who pays (`paid_by`: one of the user's own keys at no credits, the house's free allowance, or credits) and whether that payer can now (`affordable`), plus the account's two priorities (image_priority, clip_priority: best, balanced or cheapest) and, per task, the `selected_tier` its kind's priority picks.

## Inputs

| Name | Type | Required | Details |
| --- | --- | --- | --- |
| `kind` | string | no | one of "image", "video", "tts", "music" |
| `task` | string | no | one of "photoreal-people", "same-person", "product-photos", "anime", "illustration", "text-in-images", "logos-vector", "photo-edits", "combine-pictures", "image-drafts", "clip-from-text", "animate-picture", "same-character-clips", "talking-head", "dialogue-and-sound", "cinematic-camera", "long-takes", "copy-a-movement", "lip-sync", "voice-over", "acted-voice", "other-languages", "songs", "background-music" |

## Example call

A `tools/call` request with the required arguments only, each a placeholder read off the schema. Replace them before sending.

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_benchmark",
    "arguments": {}
  }
}
```

## Input schema

As the server sends it in `tools/list`:

```json
{
  "type": "object",
  "properties": {
    "kind": {
      "type": "string",
      "enum": [
        "image",
        "video",
        "tts",
        "music"
      ]
    },
    "task": {
      "type": "string",
      "enum": [
        "photoreal-people",
        "same-person",
        "product-photos",
        "anime",
        "illustration",
        "text-in-images",
        "logos-vector",
        "photo-edits",
        "combine-pictures",
        "image-drafts",
        "clip-from-text",
        "animate-picture",
        "same-character-clips",
        "talking-head",
        "dialogue-and-sound",
        "cinematic-camera",
        "long-takes",
        "copy-a-movement",
        "lip-sync",
        "voice-over",
        "acted-voice",
        "other-languages",
        "songs",
        "background-music"
      ]
    }
  },
  "additionalProperties": false
}
```

## Related tools

- [`set_preferences`](https://meetkuro.com/agents/tools/set_preferences.md): Save what matters most to the user when you pick a model, for images (image_priority) and for clips (clip_priority), each best (the strongest model for the job), balanced (a strong model for a fraction of the price) or cheapest (drafts and volume).
- [`generate_with_recipe`](https://meetkuro.com/agents/tools/generate_with_recipe.md): Create one image or clip with a guided recipe — an arm or reprompt recipe.
- [`start_recipe_run`](https://meetkuro.com/agents/tools/start_recipe_run.md): Quote or start a workflow recipe.
- [`list_models`](https://meetkuro.com/agents/tools/list_models.md): Read the full capability envelope for the models a room can run: aspect ratios, durations, resolutions, reference capacities, which inputs a model requires, and — for voice — its complete voice roster and the languages it speaks.

---

## About Kuro

Kuro is an AI picture studio: prompt-driven images, clips, voice-overs and music, and storyboard-backed films with consistent characters across every scene.

Agents connect over MCP and can generate directly:

```
claude mcp add kuro https://api.meetkuro.com/mcp --transport http
```

The app is at https://app.meetkuro.com and requires an account.

Each guide, model page, comparison and free tool page on this site (not a tool's variants, and not the index pages) has a Markdown twin at its own URL plus `.md`, and so do /benchmarks/, the English /agents/ page (as /agents.md) and the MCP tool reference. Every tool: https://meetkuro.com/agents/tools/
