Back to the app
Seebility API

Simulate color vision deficiencies on any PNG or JPEG from your own product or CI pipeline. Requests are authenticated with an API key and rate limited per key.

Authentication

Every request needs an API key in the Authorization header. Create and revoke keys on the API keys page; the full key is shown only once and only a secure hash is stored.

Authorization: Bearer clk_live_your_key_here

Manage keys on the API keys page.

Quickstart

Send a base64-encoded PNG and the deficiency types you want simulated.

curl -X POST https://seebility.base44.app/functions/simulateImage \
  -H "Authorization: Bearer $SEEBILITY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image": "'"$(base64 -w0 screenshot.png)"'", "types": ["deuteranopia"]}'

Request

POST https://seebility.base44.app/functions/simulateImage with a JSON body:

  • image (string, required) — base64 PNG or JPEG, max 5MB decoded.
  • types (array of strings, optional) — one or more of protanopia, deuteranopia, tritanopia, achromatopsia. Omit for all four.

Response

200 OK with one base64 PNG per requested type, in the same order:

{
  "results": [
    { "type": "deuteranopia", "image": "iVBORw0KGgo..." }
  ]
}

Error codes

StatusErrorMeaning
400bad_requestBody is not valid JSON, "image" is missing or not base64, the image is not a PNG/JPEG, or a type in "types" is unknown. The message lists the valid types.
401unauthorizedMissing/invalid Authorization header, or the key was revoked or never existed.
413payload_too_largeThe decoded image exceeds the 5MB limit.
429rate_limitedMore than 60 requests in the current minute. Retry after the seconds in the Retry-After header.
500internalUnexpected server error. Retry with backoff.

Rate limits

60 requests per minute per key. When exceeded the API returns 429 with a Retry-After header holding the seconds to wait. Usage (total requests and last-used time) is tracked per key and shown on the API keys page.

Same math as the web app

The API runs the exact same simulation engine as the Seebility web app: the Machado et al. (2009) color vision deficiency matrices at severity 1.0, with identical per-pixel math and rounding. For the same input image, the returned PNGs are pixel-identical to the corresponding web app views.

ColorCompass for Figma

Use the same color checking and vision simulation as this app, directly on your Figma canvas. The plugin runs entirely inside Figma: no account, no API key, nothing uploaded.

  1. Download the three plugin files below into one folder on your computer (manifest.json, code.js, ui.html).
  2. Open the Figma desktop app, then go to the Plugins menu, open Development, and choose "Import plugin from manifest". Pick the manifest.json you downloaded.
  3. Right-click the canvas, open Plugins, then Development, and run ColorCompass. Select layers, then check their colors or simulate a deficiency.
  • Check colors — reads solid fills and text colors in your selection, reports WCAG 2.1 contrast (4.5:1 to pass) under normal vision and every deficiency type, and suggests a fix that passes all of them.
  • Simulate — shifts the solid fills and strokes of your selection through protanopia, deuteranopia, tritanopia, or achromatopsia at any strength, and restores the originals when you are done.

Development plugins run in the Figma desktop app. Publishing to the Figma Community for your whole team is done from Figma once you are happy with it.