Pricing

An estimate, then a charge.

You choose low, standard, or high. The estimate depends on length and quality. The amount you pay is settled when the run finishes, with a minimum per run.

Do not treat typical as the price.

hold_usd is what gets reserved. billing.charged_usd on the finished run is what you paid. A run that fails its checks is still charged.

POST

/v1/estimate

No API key required. Send either text or word_count, and an optional quality. Prose words are counted the same way a run will bill them: Markdown structure and code are left out.

curl https://humanizeword.com/api/v1/estimate \
  -H "Content-Type: application/json" \
  -d '{"text": "Your draft.", "quality": "standard"}'
{
  "is_estimate": true,
  "prose_word_count": 2,
  "quality": "standard",
  "estimated_usd": { "typical": "0.050000", "high": "0.050000" },
  "hold_usd": "0.050000",
  "basis": "median and p90 of observed cost per 1,000 words"
}

typical is the middle of recent runs at that quality. high is the upper figure the hold is sized against. Both are quoted in USD.

GET

/v1/pricing

Published prices, with no authentication. Figures are USD per 1,000 prose words. min_charge_usd is the floor for a run.

{
  "model": "usage_based",
  "currency": "USD",
  "min_charge_usd": "0.050000",
  "tiers": [
    {
      "name": "low",
      "charge_per_1k_words_usd": "0.228",
      "high_charge_per_1k_words_usd": "0.366",
      "sample_size": 4
    }
  ],
  "tier_version": 2
}

The live response includes every tier. sample_size is how many runs that figure is based on. A small sample is an order of magnitude, not a fixed rate. Read this endpoint rather than hard-coding the numbers above.

GET

/v1/presets

Personas, tones, and the formality range a run can use. Also public. Any option you leave unset on POST /v1/runs is sampled from these lists.

Limits

Characters per run5,000, including spaces. Returned on GET /v1/me as restrictions.max_chars_per_run.
What is billedProse words. Code blocks, tables, and Markdown structure are kept and are not counted.
Create run6 requests per minute per API key.
Minimum chargePublished as min_charge_usd on GET /v1/pricing.