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_hereManage 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 ofprotanopia, 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
| Status | Error | Meaning |
|---|---|---|
| 400 | bad_request | Body 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. |
| 401 | unauthorized | Missing/invalid Authorization header, or the key was revoked or never existed. |
| 413 | payload_too_large | The decoded image exceeds the 5MB limit. |
| 429 | rate_limited | More than 60 requests in the current minute. Retry after the seconds in the Retry-After header. |
| 500 | internal | Unexpected 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.
- Download the three plugin files below into one folder on your computer (manifest.json, code.js, ui.html).
- 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.
- 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.