Skip to content

/v1/analyze

POST
/v1/analyze
curl --request POST \
--url https://color.koval.tools/v1/analyze \
--header 'Content-Type: application/json' \
--data '{ "color": "example", "foreground": "example", "background": "example", "canvas": "example", "compliance_mode": "wcag22", "include": { "wcag": true, "apca": true, "reverse_roles": false, "names": false, "palette": "complementary", "cvd": { "types": [ "protanopia" ] } }, "repair": { "target": "aa-normal-text", "change": "foreground", "max_candidates": 3, "preserve": "hue" } }'
Media type application/json
object
color
string
>= 1 characters <= 500 characters
foreground
string
>= 1 characters <= 500 characters
background
string
>= 1 characters <= 500 characters
canvas
string
>= 1 characters <= 500 characters
compliance_mode
string
default: wcag22
Allowed values: wcag22 wcag3
include
object
wcag
boolean
default: true
apca
boolean
default: true
reverse_roles
boolean
names
boolean
palette
string
Allowed values: complementary analogous triadic tetradic monochromatic tints shades tones
cvd
object
types
required
Array<string>
>= 1 items
Allowed values: protanopia deuteranopia tritanopia
repair
object
target
required
string
Allowed values: aa-normal-text aa-large-text aaa-normal-text aaa-large-text non-text-ui apca-normal-text apca-large-text apca-non-text
change
required
string
Allowed values: foreground background either both
max_candidates
integer
default: 3 >= 1 <= 5
preserve
string
Allowed values: hue chroma

Analysis result

Media type application/json
object
mode
required
string
Allowed values: single-color pair
input
required
object
key
additional properties
string
normalized
required
object
key
additional properties
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
comparisons
object
key
additional properties
object
background
required
string
wcag
object
contrast_ratio
required
number
aa_normal_text
required
boolean
aa_large_text
required
boolean
aaa_normal_text
required
boolean
aaa_large_text
required
boolean
non_text_ui
required
boolean
apca
object
score
required
number
polarity
required
string
Allowed values: dark-on-light light-on-dark
normal_text
required
boolean
large_text
required
boolean
non_text_ui
required
boolean
accessibility
object
wcag
object
contrast_ratio
required
number
aa_normal_text
required
boolean
aa_large_text
required
boolean
aaa_normal_text
required
boolean
aaa_large_text
required
boolean
non_text_ui
required
boolean
apca
object
score
required
number
polarity
required
string
Allowed values: dark-on-light light-on-dark
normal_text
required
boolean
large_text
required
boolean
non_text_ui
required
boolean
reverse_roles
object
wcag
object
contrast_ratio
required
number
aa_normal_text
required
boolean
aa_large_text
required
boolean
aaa_normal_text
required
boolean
aaa_large_text
required
boolean
non_text_ui
required
boolean
apca
object
score
required
number
polarity
required
string
Allowed values: dark-on-light light-on-dark
normal_text
required
boolean
large_text
required
boolean
non_text_ui
required
boolean
metadata
required
object
confidence
required
string
Allowed values: high medium low
alpha_involved
required
boolean
in_srgb_gamut
required
boolean
repair
object
performed
required
boolean
original_passed
required
boolean
best_candidate
object
foreground
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
background
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
contrast_ratio
required
number
distance
required
object
oklab
required
number
changed
required
Array<string>
label
required
string
candidates
required
Array<object>
object
foreground
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
background
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
contrast_ratio
required
number
distance
required
object
oklab
required
number
changed
required
Array<string>
label
required
string
names
object
css
object
name
required
string
source
required
string
hex
required
string
distance
required
object
oklab
required
number
xkcd
object
name
required
string
source
required
string
hex
required
string
distance
required
object
oklab
required
number
meodai
object
name
required
string
source
required
string
hex
required
string
distance
required
object
oklab
required
number
closest
object
name
required
string
source
required
string
hex
required
string
distance
required
object
oklab
required
number
palette
Array<object>
object
hex
required
string
oklch
required
object
l
required
number
c
required
number
h
required
number
cvd_simulations
object
key
additional properties
object
foreground
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
background
required
object
hex
required
string
hex8
required
string
rgb
required
object
r
required
number
g
required
number
b
required
number
hsl
required
object
h
required
number
s
required
number
l
required
number
hsv
required
object
h
required
number
s
required
number
v
required
number
cmyk
required
object
c
required
number
m
required
number
y
required
number
k
required
number
lab
required
object
l
required
number
a
required
number
b
required
number
lch
required
object
l
required
number
c
required
number
h
required
number
oklch
required
object
l
required
number
c
required
number
h
required
number
in_srgb_gamut
required
boolean
clipped_to_srgb
required
boolean
wcag
object
contrast_ratio
required
number
aa_normal_text
required
boolean
aa_large_text
required
boolean
aaa_normal_text
required
boolean
aaa_large_text
required
boolean
non_text_ui
required
boolean
apca
object
score
required
number
polarity
required
string
Allowed values: dark-on-light light-on-dark
normal_text
required
boolean
large_text
required
boolean
non_text_ui
required
boolean
warnings
required
Array<string>
errors
required
Array<string>
version
required
string

Example

{
"mode": "single-color",
"comparisons": {
"additionalProperty": {
"apca": {
"polarity": "dark-on-light"
}
}
},
"accessibility": {
"apca": {
"polarity": "dark-on-light"
},
"reverse_roles": {
"apca": {
"polarity": "dark-on-light"
}
}
},
"metadata": {
"confidence": "high"
},
"cvd_simulations": {
"additionalProperty": {
"apca": {
"polarity": "dark-on-light"
}
}
}
}

Validation error

Media type application/json
object
error
required
object
code
required
string
message
required
string
details
required
Array<string>

Example generated

{
"error": {
"code": "example",
"message": "example",
"details": [
"example"
]
}
}

Rate limit exceeded

Media type application/json
object
error
required
object
code
required
string
message
required
string
details
required
Array<string>

Example generated

{
"error": {
"code": "example",
"message": "example",
"details": [
"example"
]
}
}