Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


A really micro micro-service for advanced math.

Newton does anything from numerical calculation to symbolic math parsing.

How does it work?

  1. Send a GET request to newton with a url-encoded math expression and your preferred operation.
  2. Get back a JSON response with your problem solved.

Show me

Let's find the derivative of x^2. So, we send a request to the newton url saying just that:

-> (Note the url-encoded ^)

Now, we get the following response:

  "result":"2 x"

It's that simple!

Get Started

  1. Send a GET request to newton.

Note: :operation is the math operation that you want to perform. :expression is the url-encoded math expression on which you want to operate. View available operation endpoints below!

  1. That's it! You'll be returned a JSON object with the operation you requested, the expression you provided, and the result of the operation performed on the expression.

View available endpoints:

Operation API Endpoint Result
Simplify /simplify/2^2+2(2) 8
Factor /factor/x^2 + 2x x (x + 2)
Derive /derive/x^2+2x 2 x + 2
Integrate /integrate/x^2+2x 1/3 x^3 + x^2 + C
Find 0's /zeroes/x^2+2x [-2, 0]
Find Tangent /tangent/2lx^3 12 x + -16
Area Under Curve /area/2:4lx^3 60
Cosine /cos/pi -1
Sine /sin/0 0
Tangent /tan/0 0
Inverse Cosine /arccos/1 0
Inverse Sine /arcsin/0 0
Inverse Tangent /arctan/0 0
Absolute Value /abs/-1 1
Logarithm /log/2l8 3

Keep in mind: To find the tangent line of a function at a certain x value, send the request as c|f(x) where c is the given x value and f(x) is the function expression, the separator is a vertical bar '|'. See the table above for an example request.

To find the area under a function, send the request as c:d|f(x) where c is the starting x value, d is the ending x value, and f(x) is the function under which you want the curve between the two x values.

To compute fractions, enter expressions as numerator(over)denominator. For example, to process 2/4 you must send in your expression as 2(over)4. The result expression will be in standard math notation (1/2, 3/4).

What have people made?

Some cool apps and libraries made with Newton include the following:

Built using metadelta.

Want to support Newton development?


Licensed under the GNU GPLv3 license.

Copyright (C) 2016-2020  Gerald Nash

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <>.