Public appetite check (no key), as a GET
curl -X GET "https://api.valjeanspecialty.com/api/appetite"const res = await fetch("https://api.valjeanspecialty.com/api/appetite", { method: "GET", headers: { },});console.log(await res.json());import os, requests
res = requests.get( "https://api.valjeanspecialty.com/api/appetite",)print(res.json())Same as the POST form, with fields as query parameters; cacheable. lines is comma-separated.
No key needed.
Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Comma-separated.
Responses
Section titled “Responses”OK
object
“unknown” means no appetite is on file for these lines yet: fall back to your own guidance.
One sentence you can show as is.
Markets on file that could write it, capped at 5. Market names are never returned.
E.g. “2 markets”, “5+ markets”, “Not on file yet”.
object
Line code.
What Valjean will need for this risk, in plain words.
The class Valjean matched the risk to, if any.
Two-letter state code.
Lines in the request Valjean didn’t recognise.
Present whenever the fit isn’t “good”: a broker reviews every submission, including ones outside the appetite on file.
object
Where to email the risk instead.
What to include in that email.
Example
{ "fit": "good", "lines": [ { "fit": "good" } ]}Fix the request and send it again (invalid_request, invalid_json).
object
object
Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.
Plain-English explanation you can show a person.
Validation problems, as “field: problem” (400 invalid_request only).
Example
{ "error": { "code": "invalid_request", "message": "Check the request.", "issues": [ "insured.state: Too small: expected string to have >=2 characters" ] }}Too many requests (rate_limited): 120 a minute per key, 30 a minute per IP on public endpoints, counted across all of Valjean’s servers. Wait Retry-After seconds.
object
object
Machine-readable code, e.g. invalid_request, read_only, not_found, closed, rate_limited.
Plain-English explanation you can show a person.
Validation problems, as “field: problem” (400 invalid_request only).
Example
{ "error": { "code": "rate_limited", "message": "Too many requests. Try again in a minute." }}Headers
Section titled “Headers”Example
60Seconds to wait.

