ForHosting KIT · Images

Paul Tol discrete palettes

Pick a Paul Tol family and a count: bright with 3 colors returns #4477AA, #EE6677 and #228833. The colors come from fixed tables, so the same request always gives the same set, with nothing random. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
Palette
Bright
N
3
You get
Colors
#4477AA, #EE6677, #228833

Return discrete Paul Tol color schemes from fixed tables. Search intent: Paul Tol palette. No network calls or random seeds are required. Failed jobs are not billed.

What a discrete Paul Tol palette gives you

A discrete palette is a fixed list of clearly different colors meant to label separate groups: one color for each series, category or region. This tool returns four Paul Tol families, bright, vibrant, muted and light, exactly as they are stored in fixed tables. You choose the family and how many colors you need, and the colors come back in their table order. With bright and a count of 3, for example, you get #4477AA, #EE6677 and #228833. Nothing is generated or adjusted on the fly, so the result is the same today, tomorrow and on any other device.

Choosing a family and avoiding common mistakes

Start by counting the groups you need to tell apart, then request that many colors. If you ask for more than the family holds, the count is capped at the palette size, so check how many colors actually came back before assigning them. Keep one family per chart, because mixing colors from bright and muted in the same figure breaks the consistency of a single table. Use a discrete palette for categories, not for a continuous measurement such as temperature across a map, where a smooth color scale fits better. Finally, copy the hex codes exactly as returned, since even a small edit changes the color.

When to use it

Use when search intent matches. Return discrete Paul Tol color schemes from fixed tables. English-only delivery; Nitro hydrates other locales.

No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required.

Failed jobs are not billed.

Teaching

Pinned goldens.

Which Paul Tol palettes can I choose?

Four discrete families are available: bright, vibrant, muted and light. Each one is a fixed table of colors, and you decide how many of its colors you want returned.

What happens if I ask for more colors than a palette has?

The count is capped by the size of the palette. You receive every color the family contains and no invented extras, so the set stays faithful to the original table.

Will I get the same colors every time?

Yes. The colors are read from fixed tables, with no random choice and no online lookup, so bright with 3 colors always returns #4477AA, #EE6677 and #228833.

What does a discrete palette mean?

A discrete palette is a short list of separate colors rather than a smooth gradient. You use one color per category, such as one per line or bar in a chart, instead of shading a continuous value.

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/color/tol-palette

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/color/tol-palette \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"palette":"bright"}'
{
  "palette": "bright"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "color.tol_palette",
  "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.

The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.

How it works

No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Half-up rounding Return discrete Paul Tol color schemes from fixed tables. bright/vibrant/muted/light palettes. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input.

Inputs, limits and rounding

Optional decimals use half-up once. Optional output fields are omitted, never null. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. Provide required JSON fields with DOM-safe names. Invalid types raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.

When to use it

The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested.

Quick check

Free widget.

Automation

API same JSON.

Free?

Yes tier A.

Network?

No.

Bad input?

invalid_input.

API?

Yes.

Locales?

EN-only; Nitro hydrates.

Read the full KIT documentation →