---
title: "A quick price and time from a tier, a number of heads and images."
method: POST
path: "/v1/estimate"
tags: ["pricing"]
---

# A quick price and time from a tier, a number of heads and images.

`POST /v1/estimate`

## Request

- Base URL: `https://api.50heads.com`
- URL: `https://api.50heads.com/v1/estimate`
- Auth: none required

Never spends. Defaults: `tier1`, 50 heads, no images. For a real question (targeting, question type, validation) send a draft to `POST /v1/billing/estimate`; this route also accepts that body when it has a `draft`. Counts against the same rate limit.

## Request body

- EstimateSimpleRequest
  - `tier` 'tier1' | 'tier2' | 'tier3'
  - `n` integer
  - `images` integer

## Response `200`

OK

- EstimateSimpleResponse
  - `estimate` object, required
    - `tier` 'tier1' | 'tier2' | 'tier3', required
    - `n` integer, required
    - `images` integer, required
    - `perAnswerPence` integer, required
    - `totalPence` integer, required
    - `payPerSayPence` integer, required
    - `etaMinutes` integer, required
  - `line` string, required: The price and time in one sentence, in the caller's currency.
  - `creditsPerAnswer` integer, required
  - `creditsTotal` integer, required
  - `payPerAnswer` integer, required
  - `etaMinutes` integer, required
  - `price` unknown, required
  - `poolSize` integer, nullable, required
  - `validation` object[], required
    - `field` string, required
    - `code` string, required
    - `message` string, required

## Other responses

- `400`: The request is not valid; `error.details.validation` lists the fixes.
- `429`: Too many requests; wait for Retry-After.

---

[API](https://skmtc.dev/50heads/apis/50heads-api.md) · [All operations](https://skmtc.dev/50heads/apis/50heads-api/llms.txt) · [OpenAPI document](https://skmtc.dev/50heads/apis/50heads-api/revisions/edbfecb1e360?raw)
