math
math copied to clipboard
Use the Wolfram Alpha API
Microsoft Math Solver will be retired on July 7, 2025 ^1 , but the Math Assistant in OneNote is still alive. Using the new OneNote Math Assistant will make this project alive. According to some basic detection, the new API uses the domain edumathsolver.microsoft.com, but further research is needed to understand the details of the API and whether it has authentication.
The API uses /api/MathSolver/PostSteps, but it needs authentication using the HTTP header Authorization
The Request Body is like
{
"solverSettings": {
"numberField": "Real",
"angleMeasurement": "Radians",
"inputFormatType": "MathML", // Linear or MathML
"outputFormatType": "MathML", // Latex or MathML
"localizationType": "DecimalPointAndListComma",
"mathMLPrefix": "mml"
},
"inputExpression": "<math xmlns=\"http://www.w3.org/1998/Math/MathML\"><mrow><mi>solve</mi><mrow><mo fence=\"true\">(</mo><mrow><msup><mrow><mi mathvariant=\"italic\">x</mi></mrow><mrow><mn>2</mn></mrow></msup><mo>+</mo><mn>3</mn><mi mathvariant=\"italic\">x</mi><mo>+</mo><mn>2</mn><mo>=</mo><mn>0</mn><mo>,</mo><mi mathvariant=\"italic\">x</mi></mrow><mo fence=\"true\">)</mo></mrow></mrow></math>",
"templateId": "Trace.Solve.Monic.Quad.Eq"
}
The Response Body is like
{
"stepsType": "Classic",
"classicSteps": [
{
"expressions": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">b</mml:mi><mml:mo>=</mml:mo><mml:mn>3</mml:mn></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mi mathvariant=\"italic\">b</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:math>"
],
"strings": [
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:msup><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mn>3</mml:mn><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:msup><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi></mml:mrow><mml:mrow><mml:mn>2</mml:mn></mml:mrow></mml:msup><mml:mo>+</mml:mo><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">b</mml:mi></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mi mathvariant=\"italic\">b</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">a</mml:mi></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">b</mml:mi></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow></mml:math>"
],
"textName": "To_Solve_The_Equation_Factor_Using",
"textValue": "To solve the equation, factor {0} using formula {1}."
},
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">b</mml:mi></mml:math>"
],
"textName": "To_Determine_And_Set_Up_A_System",
"textValue": "To find {0} and {1}, set up a system to be solved."
}
],
"hints": []
},
{
"expressions": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mo>=</mml:mo><mml:mn>1</mml:mn></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">b</mml:mi><mml:mo>=</mml:mo><mml:mn>2</mml:mn></mml:math>"
],
"strings": [
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mi mathvariant=\"italic\">b</mml:mi></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">b</mml:mi></mml:math>"
],
"textName": "Since_Product_Is_Positive",
"textValue": "Since {0} is positive, {1} and {2} have the same sign."
},
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">b</mml:mi></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">a</mml:mi></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">b</mml:mi></mml:math>"
],
"textName": "Since_Sum_Is_Positive_1",
"textValue": "Since {0} is positive, {1} and {2} are both positive."
},
{
"paramValues": [],
"textName": "The_Only_Such_Pair_Is_The_System_Solution",
"textValue": "The only such pair is the system solution."
}
],
"hints": []
},
{
"expressions": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow></mml:math>"
],
"strings": [
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">a</mml:mi></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow><mml:mrow><mml:mo fence=\"true\">(</mml:mo><mml:mrow><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant=\"italic\">b</mml:mi></mml:mrow><mml:mo fence=\"true\">)</mml:mo></mml:mrow></mml:math>"
],
"textName": "Rewrite_Factored_Expression",
"textValue": "Rewrite factored expression {0} using the obtained values."
}
],
"hints": []
},
{
"expressions": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>1</mml:mn></mml:mrow></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>=</mml:mo><mml:mrow><mml:mo>-</mml:mo><mml:mn>2</mml:mn></mml:mrow></mml:math>"
],
"strings": [
{
"paramValues": [
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mn>1</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math>",
"<mml:math xmlns:mml=\"http://www.w3.org/1998/Math/MathML\"><mml:mi mathvariant=\"italic\">x</mml:mi><mml:mo>+</mml:mo><mml:mn>2</mml:mn><mml:mo>=</mml:mo><mml:mn>0</mml:mn></mml:math>"
],
"textName": "To_Find_Equation_Solutions",
"textValue": "To find equation solutions, solve {0} and {1}."
}
],
"hints": []
}
],
"visualSteps": [],
"responseStatus": "Success",
"errors": []
}
Wolfram Alpha API is great! https://www.wolframalpha.com/input