Powered by Stockfish 17 lite NNUE. Free API access is available; paid subscriptions are not enabled.
UCI
The text protocol chess GUIs use to talk to engines.
The Universal Chess Interface is a line-based protocol: position fen …, go depth 20, and the engine streams info lines until bestmove. This API wraps UCI in JSON so you never parse info lines, and exposes only the options that make sense for a hosted engine (see GET /v1/engines).
Example
curl -s https://stockfishapi.com/v1/eval \
-H "Authorization: Bearer $STOCKFISH_API_KEY" \
-H "Content-Type: application/json" \
-d '{"fen":"rnbqkbnr/pp1ppppp/8/2p5/4P3/2P5/PP1P1PPP/RNBQKBNR b KQkq - 0 2","depth":14}' const res = await fetch("https://stockfishapi.com/v1/eval", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.STOCKFISH_API_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({
"fen": "rnbqkbnr/pp1ppppp/8/2p5/4P3/2P5/PP1P1PPP/RNBQKBNR b KQkq - 0 2",
"depth": 14
}),
});
const data = await res.json(); import os, requests
r = requests.post(
"https://stockfishapi.com/v1/eval",
headers={"Authorization": f"Bearer {os.environ['STOCKFISH_API_KEY']}"},
json={
"fen": "rnbqkbnr/pp1ppppp/8/2p5/4P3/2P5/PP1P1PPP/RNBQKBNR b KQkq - 0 2",
"depth": 14
},
)
data = r.json()