ForHosting KIT · Developer Utilities

Hair color lift estimator

The hair color lift estimator takes your current level and your target level on the standard 1-10 color scale and answers the two questions every lightening plan starts with: how many levels of lift separate where you are from where you want to be, and whether that gap is small enough for permanent color to handle or large enough that bleach will likely be needed. One call, deterministic arithmetic, and a plain-language recommendation you can act on before you buy a single box of product.

● BetaFree · in your browser
Use it from WebAPIEmailTelegramApp soon

What the 1-10 level scale actually measures

Professional hair color is organized around a level scale that describes depth, not tone: level 1 is black, level 5 is a medium brown, and level 10 is the lightest pale blonde. Tone — ash, gold, copper — sits on top of that depth and is a separate decision. When someone says they want to go from a level 4 brown to a level 8 blonde, the number that drives the whole plan is the difference: four levels of lift. That difference determines which products are even capable of getting there, how much warmth will be exposed along the way, and how stressed the hair fiber will be. The hair color level lift calculator exists to make that first computation explicit, because most lightening disappointments come from underestimating the gap rather than from choosing the wrong toner.

When permanent color is enough and when bleach enters the picture

Permanent oxidative color can lift natural, uncolored hair by roughly one to two levels while it deposits tone, thanks to the developer it is mixed with. That is the practical ceiling the estimator applies: a lift of one or two levels maps to permanent color as the recommended method, while a lift of three or more levels is flagged as requiring lightener, since bleach is the tool designed to break down natural pigment at that scale. Two caveats matter in practice. First, previously colored hair lifts very poorly with color alone, so even a small gap can demand lightener once artificial pigment is sitting in the strand. Second, any lift exposes underlying warmth — orange in brown hair, yellow in blonde — so the tool's recommendation is about reach, not about the final tone, which is a separate toning step after the lift is done.

How to use the estimate in a real coloring plan

Start by establishing your true current level against a level chart in natural light, ideally on a section of uncolored regrowth if your lengths are dyed. Then pick the target level of the shade you want and send both numbers to the estimator. If the answer is a deposit-only or small-lift result, a single-process color service is a realistic plan. If the answer flags bleaching, treat that as a signal to plan for stages: multiple lightening sessions with conditioning time between them, a strand test before committing, and a toner reserved for after the lift. Professionals use the same arithmetic when they quote a color correction; having the number in hand before you sit in the chair makes the conversation shorter and the expectations honest. Keep in mind the estimate assumes natural, uncolored hair: if your lengths already carry artificial pigment, treat any lift result as optimistic and expect lightener to enter the plan sooner, because color does not lift color.

Plan a brunette-to-blonde transformation

Check how many levels separate your brown from the blonde on the box and learn early whether bleach belongs in the plan.

Sanity-check a salon quote

Compare a stylist's proposed process against the actual lift required so you understand why lightener is or is not on the ticket.

Choose between color and lightener at home

Before buying product, confirm whether a high-lift permanent color can reach your target or whether you need a bleach kit.

What does it cost?

$0.002 per request via the API. It is also free to run in your browser on this page.

What is a hair color level?

A standard 1-10 scale that describes how dark or light hair is: level 1 is black and level 10 is the lightest blonde. It measures depth, not tone.

When does the tool say bleaching is required?

When the target level is more than 2 levels above the starting level. Permanent color can realistically lift about 1-2 levels on natural hair; anything beyond that is the territory of lightener.

What happens if my target is darker than my starting level?

No lift is needed. The result reports zero levels to lift and recommends a deposit-only coloring approach, since color cannot lighten hair, only darken or match it.

Does this account for previously colored hair?

No. The estimate assumes the classic rule of thumb for natural hair. Artificial pigment resists lifting with color, so previously dyed hair may need lightener even for small jumps.

What levels are accepted?

Whole numbers from 1 to 10 for both the starting and target level. Anything outside that range returns an invalid input error.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/beauty/hair-color-level-lift

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/beauty/hair-color-level-lift \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"start_level":4,"target_level":8}'
{
  "start_level": 4,
  "target_level": 8
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "beauty.hair_color_level_lift",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

Read the full KIT documentation →