Skip to main content
Glama

Estimate cost

estimate
Read-onlyIdempotent

What a piece would cost and whether it can launch, BEFORE anything is spent — the same verdict the human cockpit shows. Accepts the same arguments as project creation (idea, format, source, cast, production). $0, no LLM. The answer has two parts: launch.ready says whether the REQUEST is complete and allowed (launch.blockers names what is missing); economics says what it costs and whether the wallet governs it: estimateUsd (typical) with estimateMinUsd/estimateMaxUsd (a band, not a quote — production charges what it actually spends), walletBalanceUsd, and reason, one of: guard_inactivo — billing is not active in this environment: no wallet governs the launch. · saldo_desconocido — the wallet balance could not be read; nothing is inferred from that. · pedido_sin_cotizar — not enough to price yet: the request needs an idea (prompt_seed or source) and a duration_profile (or the platform default). · alcanza — the wallet covers the estimated band. · casa_invita — first piece of this account: it is on the house; the band is informational. · excede_bienvenida — first piece of this account, but this request exceeds the welcome allowance; exits lists the adaptations that fit (shorter, no presenter). · operador_de_la_casa — this credential belongs to a platform operator: production is not charged to this wallet; the band is informational. · no_alcanza — the wallet does not cover the estimated band; exits lists the adaptations of the request that fit the balance (a shorter profile, no presenter), when there are any. economics.applies is true only when the wallet does not cover the request; estimateMaxUsd against walletBalanceUsd is what decides whether a real wallet covers the piece; hint restates the reason in words. WHERE THE LINE STOPS FOR FUNDS: the script (first station) is written and charged BEFORE any wallet check; the first station that checks the wallet is the studio build, then the final render — if the wallet does not cover a station the line stops there (the project status reports waitingForFunds with the station and the shortfall) and what was already produced stays paid. vocabulary in the answer glosses every typed value that is not English.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
castNoThe cast, as at creation. A presenter on screen (`face`, `on_camera` or `describe_face`) moves the price.
sourceNoThe creator's OWN material. `kind=script` + `respect=strict`: the piece narrates the text verbatim (word-level control from the start); `kind=content`: an article or notes the Director adapts (`respect` guided|adaptive). Without it the Director writes from `prompt_seed`.
materialNoThe creator's own uploaded files that belong to this piece (footage, photos, a recorded voice). Each item names one file of the personal library by its `assetId`: the id alone, or an object with `asset_id` and a `purpose` (what the file is for in the piece). The files are stored with the piece; the answer says what the piece does with them (`direction`), and they are not part of the price. While a file is still being verified, the `handle` of its upload is accepted in place of the id, and the request is answered as not ready; a file that is not in the caller's library is answered as not usable.
productionNo
prompt_seedNoThe idea (the same field as at creation). Optional here: without an idea or a `source` the verdict says `no_idea` and there is no price yet.
target_languageNo
creative_referentYesA referent id from Vixdeo's catalogue of formats.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / production / properties / target_duration_sec / description
      Added value: +"Exact target length in seconds (e.g. 210 for «3:30»). It governs the duration profile: if it falls outside the profile's range, the profile whose range contains it governs and the response says so (`durationProfileSource: target_duration_sec`, `durationProfileDisplaced` names the profile it replaced). Without a profile it picks the one that contains it. Without it the profile's own target governs."
  2. Changed1 schema field changed
    • addedInput schema / properties / material
      Added value: +{
      +  "description": "The creator's own uploaded files that belong to this piece (footage, photos, a recorded voice). Each item names one file of the personal library by its `assetId`: the id alone, or an object with `asset_id` and a `purpose` (what the file is for in the piece). The files are stored with the piece; the answer says what the piece does with them (`direction`), and they are not part of the price. While a file is still being verified, the `handle` of its upload is accepted in place of the id, and the request is answered as not ready; a file that is not in the caller's library is answered as not usable.",
      +  "items": {
      +    "anyOf": [
      +      {
      +        "description": "The `assetId` of a file of the personal library.",
      +        "type": "string"
      +      },
      +      {
      +        "properties": {
      +          "asset_id": {
      +            "description": "The `assetId` of a file of the personal library.",
      +            "type": "string"
      +          },
      +          "purpose": {
      +            "description": "What the file is for in the piece, e.g. 'the interview that closes the piece'.",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "asset_id"
      +        ],
      +        "type": "object"
      +      }
      +    ]
      +  },
      +  "type": "array"
      +}
  3. Changed10 schema fields changed
    • changedInput schema / properties / cast / description
      Previous value: -"As in generate_script. A presenter on screen (`face`, `on_camera` or `describe_face`) moves the price."New value: +"The cast, as at creation. A presenter on screen (`face`, `on_camera` or `describe_face`) moves the price."
    • changedInput schema / properties / cast / properties / describe_face / description
      Previous value: -"The presenter you want, in words, when no catalogue handle fits. Casting resolves it against the catalogue and may generate."New value: +"The wanted presenter, in words, for when no catalogue handle fits. Casting resolves it against the catalogue and may generate one."
    • changedInput schema / properties / cast / properties / face / description
      Previous value: -"Presenter `id` or `@handle` from `list_cast`."New value: +"A presenter `id` or `@handle` from the catalogue of nameable presenters."
    • changedInput schema / properties / cast / properties / voice / description
      Previous value: -"Voice `id` or `@handle` from `list_cast`."New value: +"A voice `id` or `@handle` from the catalogue of nameable voices."
    • changedInput schema / properties / creative_referent / description
      Previous value: -"Referent id from `list_referents`."New value: +"A referent id from Vixdeo's catalogue of formats."
    • changedInput schema / properties / production / properties / duration_profile / description
      Previous value: -"Omit to price the platform default (`list_referents.platformDefaults.durationProfile`)."New value: +"Without it, the platform default is priced (`platformDefaults.durationProfile` in the catalogue of formats)."
    • changedInput schema / properties / production / properties / period_rigor / description
      Previous value: -"What to do when the era check finds an anachronism in a GENERATED shot (a modern helmet in 1906): `note` records it and mounts the shot; `rebuy` buys the shot again ONCE, telling the generator what to avoid, within the piece's recomposition cap. Omit it and the budget tier decides (premium rebuys; standard and economy note)."New value: +"What happens when the era check finds an anachronism in a GENERATED shot (a modern helmet in 1906): `note` records it and mounts the shot; `rebuy` buys the shot again ONCE, telling the generator what to leave out, within the piece's recomposition cap. Without it the budget tier decides (premium rebuys; standard and economy note)."
    • changedInput schema / properties / production / properties / subtitle_language / description
      Previous value: -"Language of the SUBTITLES (BCP-47: `es`, `pt-BR`…). Its OWN axis, independent of `target_language`: omit it and the subtitles follow the piece; declare it and the piece is narrated in one language and read in another (measured: 21 live projects declare the two on purpose)."New value: +"Language of the SUBTITLES (BCP-47: `es`, `pt-BR`…), its OWN axis, independent of `target_language`: without it the subtitles follow the piece; with it the piece is narrated in one language and read in another (measured: 21 live projects declare the two on purpose)."
    • changedInput schema / properties / prompt_seed / description
      Previous value: -"The idea (same as generate_script). Optional here: without an idea or a `source` the verdict says `no_idea` and there is no price yet."New value: +"The idea (the same field as at creation). Optional here: without an idea or a `source` the verdict says `no_idea` and there is no price yet."
    • changedInput schema / properties / source / description
      Previous value: -"Your OWN material. `kind=script` + `respect=strict`: the piece narrates your text verbatim (you keep word-level control from the start); `kind=content`: an article/notes the Director adapts (`respect` guided|adaptive). Omit to let the Director write from `prompt_seed`."New value: +"The creator's OWN material. `kind=script` + `respect=strict`: the piece narrates the text verbatim (word-level control from the start); `kind=content`: an article or notes the Director adapts (`respect` guided|adaptive). Without it the Director writes from `prompt_seed`."
  4. First observed

TDQS

Score is being calculated.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources