You can try the free Lemmatizer API here: http://twinword.com/lemmatizer.php
Scroll down to find the Lemmatizer endpoint.
This will allow you to get "dogs" to "dog", "abilities" to "ability".
If you pass in a POST or GET parameter called "text" with a string like "walked plants":
// These code snippets use an open-source library. http://unirest.io/java
HttpResponse response = Unirest.post("[ENDPOINT URL]")
.header("X-Mashape-Key", "[API KEY]")
.header("Content-Type", "application/x-www-form-urlencoded")
.header("Accept", "application/json")
.field("text", "walked plants")
.asJson();
You get a response like this:
{
"lemma": {
"plant": 1,
"walk": 1
},
"result_code": "200",
"result_msg": "Success"
}