STOCKFISH 14–19Latest release: 19Explore engines ↗

Documentation / API reference

POST /v1/bestmove

Auth
Bearer API key (keyless allowed with limits on eval and bestmove)
Minimum plan
free

Request body

FieldTypeDefaultNotes
fen *string
depthinteger141 to 30
multipvinteger11 to 10
movetime_msinteger50 to 60000
enginestringlatestEngine version id from GET /engines, or `latest`.
pathauto | wasm | nativeauto
optionsobjectUCI options by JSON name; schema and defaults from GET /engines.
curl -s https://stockfishapi.com/v1/bestmove \
  -H "Authorization: Bearer $STOCKFISH_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"fen":"r1bqkbnr/pppp1ppp/2n5/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 2 3","depth":14,"multipv":1}'
const res = await fetch("https://stockfishapi.com/v1/bestmove", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.STOCKFISH_API_KEY}`, "Content-Type": "application/json" },
  body: JSON.stringify({
    "fen": "r1bqkbnr/pppp1ppp/2n5/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 2 3",
    "depth": 14,
    "multipv": 1
  }),
});
const data = await res.json();
import os, requests

r = requests.post(
    "https://stockfishapi.com/v1/bestmove",
    headers={"Authorization": f"Bearer {os.environ['STOCKFISH_API_KEY']}"},
    json={
        "fen": "r1bqkbnr/pppp1ppp/2n5/4p3/4P3/5N2/PPPP1PPP/RNBQKB1R w KQkq - 2 3",
        "depth": 14,
        "multipv": 1
    },
)
data = r.json()

Responses

StatusMeaning
200Best move

Errors follow problem+json with next_action.