
Send a FEN. Get evaluation, best move, tactical detection, and coaching explanations. The chess analysis API that tells your users why, not just what.
One API call. Evaluation, best move, and coaching your users need to understand any chess position.
{ "evaluation": 35, "assessment": "slight_white" }
Numeric evaluation and categorical assessment from equal to decisive.
{ "best_move": "c3", "best_move_uci": "c2c3" }
Best move in SAN and UCI notation. Ready for board rendering in your app.
{ "response": "This is the Italian Game. Play c3, preparing d4 to challenge Black's center." }
Natural language explanation calibrated to player skill level. Generated from actual position analysis, not templates.
{ "fen": "r1bqkb1r/pppp1ppp/2n2n2/..." }
FEN returned with every response. Render the position directly in your app — no separate board state needed.
// Inside the coaching response: "...forks, pins, skewers detected." "Pawn structure is solid. King" "safety is well-sheltered..."
Tactical detection and positional features are woven into the coaching response — forks, pins, pawn structure, king safety, piece activity, all explained naturally.
// player_rating: 800 "Control the center with pawns." // player_rating: 2200 "Prepare d4 with tempo after cxd4."
Same position, different depth. Set player_rating and the coaching adapts — beginners get fundamentals, advanced players get concrete variations.
import requests response = requests.post("https://api.chessvia.ai/analyze_position", headers={"Authorization": "Bearer YOUR_API_KEY"}, json={ "position": "r1bqkb1r/pppp1ppp/2n2n2/4p3/2B1P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 4 4", "question": "What should I play here?", "skill_level": "intermediate" } ) data = response.json() # Coaching explanation print(data["response"]) # "c3" print(data["best_move"]) # 35 print(data["evaluation"]) # "slight_white" print(data["assessment"])
const response = await fetch("https://api.chessvia.ai/analyze_position", { method: "POST", headers: { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" }, body: JSON.stringify({ position: "r1bqkb1r/pppp1ppp/2n2n2/4p3/2B1P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 4 4", question: "What should I play here?", skill_level: "intermediate" }) }); const data = await response.json(); console.log(data.response); // Coaching explanation console.log(data.best_move); // "c3" console.log(data.evaluation); // 35
curl -X POST https://api.chessvia.ai/analyze_position \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "position": "r1bqkb1r/pppp1ppp/2n2n2/4p3/2B1P3/5N2/PPPP1PPP/RNBQK2R w KQkq - 4 4", "question": "What should I play here?" }'
best_move: "c2c3"
score: 35
// ...that's it
Your users see: a move and a number. No context, no explanation.
Best move: c3 — preparing d4 to challenge Black's center
Evaluation: +0.35 (slight white advantage)
“This is the Italian Game position. The most principled continuation is c3, preparing d4. You have a slight space advantage and good development.”
Your users see: an explanation they understand. They keep playing.
Same position, different coaching. Toggle between skill levels and personalities to see how the output changes.
Coaching language and depth adapt to your user's rating.
Different coaching personalities for different user preferences.
Brief for tooltips. Standard for panels. Detailed for full analysis.
JSON objects for code, natural language for UIs, or both.
Post-game review in the companion app. Players finish a game, then get coaching for every position.
Add position analysis with coaching in one API call. No engine hosting or NLP pipeline to build.
Automated position feedback for students. Scale coaching without scaling instructors.
Usage-based pricing with no fixed commitments. Reach out and we'll get you set up with an API key.
Tell us about your project and we'll set you up with an API key.
rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1question parameter. You'll get evaluation, best move, and assessment without the coaching layer.One API call. Evaluation, coaching, and tactical detection for any chess position.
Tell us about your project and we'll set you up with an API key.
Need full game analysis? See Game Analysis API • Building a smart board app? Smart Board Integration • Try it free in your browser