Runway Agent message credits: Opus 5.5, GPT-6 Astra, and Sume

Runway charges 24 credits per message on Opus 5.5 and 40 on GPT-6 Astra. Sume lets a run pick its orchestrator with one model field. The math and the gap.

5 min readSume
All posts

On Runway Agent, a message sent with Opus 5.5 costs 24 credits and one sent with GPT-6 Astra costs 40, charged once per message; the page describes Sonnet 5.5 only as the faster option and gives no per-message figure for it. On Sume the orchestrating LLM is one optional model field on the run, defaulting to gpt-6-sol, and the media generation is capped separately in dollars.

What a chat costs in message credits

The charge is per message, so a long steering session adds up before any video is generated. These totals are plain multiplication of the two published rates; they exclude the cost of the generations themselves, which Runway says varies by model and output type.

Message credits at the published rates (read 2026-10-04)
Messages sentOpus 5.5 (24 each)GPT-6 Astra (40 each)
5120200
10240400
20480800
501,2002,000

How Sume handles the orchestrator

The model field on a Format run is the Agents catalog id of the LLM that orchestrates the run. Omit it and the run uses gpt-6-sol. A request for the retired gpt-5.6-sol runs on gpt-6-sol, and an id outside the catalog is a 400. The field selects the orchestrator only: image, video and audio models are chosen by the Format's tools.

The receipt echoes the id that ran, so you can log what every run used.

Where the LLM turn shows up

Sume separates two numbers on a run receipt. usage.billable_amount_usd_micros is the generation spend the cap is enforced against, and the docs say it excludes the agent's own LLM turn. usage.debited_usd_micros is what the wallet actually deducted for the run and its thread, including the turn's own LLM row. Read the second when you need the true cost of a run.

# Sample receipt shaped like the docs example; swap in a real GET /v1/format-runs/{id} body.
receipt = {"usage": {"billable_amount_usd_micros": 14959638}}

def summarize(usage: dict) -> str:
    gen = usage["billable_amount_usd_micros"] / 1_000_000
    deb = usage.get("debited_usd_micros")
    cost = "not on this receipt" if deb is None else f"${deb / 1_000_000:.6f}"
    return f"generation counted against cap: ${gen:.6f}; wallet debited: {cost}"

print(summarize(receipt["usage"]))

Which to pick

  • Choose the Runway orchestrator in the prompt panel when you are chatting and want deeper reasoning for a hard brief.
  • Leave model unset on Sume runs unless a recipe needs a specific orchestrator; then pin it per request and read the echo.
  • Budget a Sume run by its dollar cap, and Runway by credits per message plus credits per generation.

Sources

Related posts

More in Comparisons

All Comparisons posts

Written by Sume