Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion docs/api-reference/decide.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ description: The older /v1/decide request shape. Still accepted on api.blockrun.
`POST https://api.blockrun.ai/v1/decide` is the older shape of the typed-judgment endpoint. It is still accepted, and it is now answered by the same model as [Decisions](decisions.md). New code should use `/v1/decisions`.

:::note{title="What changed on 2026-10-07"}
The endpoint used to be served by OpenJev, an open-source NLI model BlockRun hosted itself. OpenJev is retired. Typed judgments are now OpenAI Decisions-compatible and served by `gpt-6-luna` at `https://api.blockrun.ai/v1/decisions`, free with a registered key. There is no pay-per-call (x402) version on `blockrun.ai`.
The endpoint used to be served by OpenJev, an open-source NLI model BlockRun hosted itself. OpenJev is retired. Typed judgments are now OpenAI Decisions-compatible and served by `gpt-6-luna` at `https://api.blockrun.ai/v1/decisions`. There is no pay-per-call (x402) version on `blockrun.ai`.
:::

## How the old shape maps
Expand All @@ -23,6 +23,12 @@ The endpoint used to be served by OpenJev, an open-source NLI model BlockRun hos

Auth is unchanged: `Authorization: Bearer <your key>` from [user.blockrun.ai](https://user.blockrun.ai).

## Billing

`/v1/decide` is billed exactly like [Decisions](decisions.md#billing): input tokens at the `gpt-6-luna` input price, plus your account margin, paid from credit.

One extra case. If OpenAI answers but the answer cannot be turned into the old shape, you get `502` and pay for the input tokens used.

::::cards
:::card{title="Decisions" href="decisions.md" icon="Brain"}
The current endpoint: request, response, limits and errors.
Expand Down
40 changes: 32 additions & 8 deletions docs/api-reference/decisions.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Decisions (Typed Judgments)
description: Yes/no probabilities, labelled choices and rubric scores over text or images. OpenAI Decisions-compatible. Free with a BlockRun API key at api.blockrun.ai.
description: Yes/no probabilities, labelled choices and rubric scores over text or images. OpenAI Decisions-compatible. Paid from credit with a BlockRun API key at api.blockrun.ai.
---

# Decisions (Typed Judgments)
Expand All @@ -9,17 +9,39 @@ Send context and a set of questions with a fixed answer space; get back one type

The endpoint is compatible with OpenAI's Decisions API: same request, same response, served by `gpt-6-luna`. Any OpenAI SDK works with `base_url` set to `https://api.blockrun.ai/v1`.

:::note{title="Free with a key — the only way in"}
Register at [user.blockrun.ai](https://user.blockrun.ai) and create an API key (registration, not a card). Decisions is served only at `api.blockrun.ai`. It is **not** sold per call over x402 on `blockrun.ai`: the smallest payment an x402 call can settle is more than a judgment costs, so a paid route would charge more than the answer is worth.
:::note{title="An API key and credit — the only way in"}
Register at [user.blockrun.ai](https://user.blockrun.ai), create an API key, and add credit. Decisions is served only at `api.blockrun.ai`. It is **not** sold per call over x402 on `blockrun.ai`.
:::

## Endpoint

| Endpoint | Auth | Price |
|----------|------|-------|
| `POST https://api.blockrun.ai/v1/decisions` | `Authorization: Bearer <your key>` | Free, with a per-key hourly limit |
| `POST https://api.blockrun.ai/v1/decisions` | `Authorization: Bearer <your key>` | $0.10 per million input tokens, plus your account margin |

Asking several questions in one call is still one call against the limit. The per-key limit is reported in the response when you reach it; read it there rather than copying a number from this page.
## Billing

A decision is paid from your credit.

- You pay for the input tokens OpenAI reports, at the `gpt-6-luna` input price ($0.10 per million). Your account margin is added.
- There is no output charge.
- Several questions in one call are one call. You pay for its input tokens.
- A prepaid account with no balance gets `402`.
- There is no hourly limit. Your balance is the limit.

Before the call goes to OpenAI, we hold the price of 64,000 input tokens, plus your margin. That is $0.0064 before margin at today's price. A served call is then charged its real input tokens, not the hold.

What you pay when a call does not go to plan:

| Outcome | You pay |
|---------|---------|
| OpenAI times out (`504`, after 30 seconds) | The hold. OpenAI may have done the work. |
| A `200` whose token count cannot be read | The hold |
| Your own `4xx` | Nothing |
| An OpenAI `4xx` or `5xx` | Nothing |
| OpenAI could not be reached (`502`) | Nothing |

There are no refunds.

---

Expand Down Expand Up @@ -159,9 +181,11 @@ The shape that works in a pipeline: build the input with every fact the judgment
|--------|---------|
| 400 | The body did not match the schema or is over a cap; OpenAI's error envelope names the field |
| 401 | Missing or invalid key |
| 4xx from the model | Relayed as returned (for example, duplicate choice values) |
| 429 | Per-key hourly limit reached; the response carries when to retry |
| 502 / 504 | The model was unreachable or timed out |
| 402 | No balance left, or a credit limit or daily cap reached. Add credit at [user.blockrun.ai](https://user.blockrun.ai/dashboard/credits) |
| 4xx from the model | Relayed as returned (for example, duplicate choice values). Not charged |
| 429 | Too many bad-key attempts from your address; the response carries when to retry |
| 502 | The model returned an error or could not be reached. Not charged |
| 504 | The model timed out. Charged the hold (see [Billing](#billing)) |

See [Error Handling](errors.md) for the shared error shape.

Expand Down
7 changes: 7 additions & 0 deletions docs/resources/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ description: All notable changes to BlockRun — gateway endpoints, model lineup

All notable changes to BlockRun, newest first — gateway endpoints, model lineup, pricing, and SDK releases.

## [2026-11-10]

### Changed — Decisions are paid from credit
- [`POST https://api.blockrun.ai/v1/decisions`](../api-reference/decisions.md) and `/v1/decide` are no longer free. You pay for input tokens at the `gpt-6-luna` input price ($0.10 per million), plus your account margin, from your credit.
- There is no hourly limit any more. Your balance is the limit. A prepaid account with no balance gets `402`.
- A timeout is charged the hold: the price of 64,000 input tokens, plus your margin. Errors from your request or from OpenAI are not charged. No refunds. See [Billing](../api-reference/decisions.md#billing).

## [2026-11-04]

### Changed — Grok Imagine Pro generates at medium quality, at a new price
Expand Down
Loading