The most comprehensive content moderation API on the Internet.

Demo


                  

Easy Integration

open in
curl --request POST --url 'https://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/' --header 'accept: application/x-www-form-urlencoded' -d 'modelId=353cea12-4dcc-47ee-b139-dd345157b17d&urls=https://goo.gl/ICoiHc' -u 'REPLACE_YOUR_API_KEY:' #REPLACE YOUR API KEY

import requests

url = 'https://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/'

headers = { 'accept': 'application/x-www-form-urlencoded' }

data = {'modelId': '353cea12-4dcc-47ee-b139-dd345157b17d', 'urls' : ['https://goo.gl/ICoiHc']}

response = requests.request('POST', url, headers=headers, auth=requests.auth.HTTPBasicAuth('REPLACE_YOUR_API_KEY', ''), data=data)

print(response.text)
//REPLACE YOUR API KEY

package main

import ( "bytes" "fmt" "io/ioutil" "net/http" "net/url" )

func main() {

labelUrl := "https://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/"

data := url.Values{} data.Set("modelId", "353cea12-4dcc-47ee-b139-dd345157b17d") data.Add("urls", "https://goo.gl/ICoiHc")

req, _ := http.NewRequest("POST", labelUrl, bytes.NewBufferString(data.Encode()))

req.Header.Add("Content-Type", "application/x-www-form-urlencoded") req.SetBasicAuth("REPLACE_YOUR_API_KEY", "")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close() body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res) fmt.Println(string(body))

}
var request = require("request");

var options = { method: 'POST', url: 'http://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/', headers: { 'cache-control': 'no-cache', Authorization: 'Basic REPLACE_YOUR_API_KEY', 'Content-Type': 'application/x-www-form-urlencoded' }, form: { urls: 'https://goo.gl/ICoiHc', modelId: '353cea12-4dcc-47ee-b139-dd345157b17d' } };

request(options, function (error, response,body) { if (error) throw new Error(error);

console.log(body); });
#REPLACE YOUR API KEY
require 'uri'
require 'net/http'
url = URI('https://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/')
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["accept"] = 'application/x-www-form-urlencoded'
request.basic_auth 'REPLACE_YOUR_API_KEY', ''
request.set_form_data({'modelId' => '353cea12-4dcc-47ee-b139-dd345157b17d', 'urls' => ['https://goo.gl/ICoiHc']})
response = http.request(request)
puts response.read_body
//ONLY CONTAINS THE CODE. RUN THIS ON YOUR OWN SYSTEM

var client = new RestClient("https://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic " + Convert.ToBase64String(Encoding.Default.GetBytes("REPLACE_YOUR_API_KEY:")));
request.AddHeader("accept", "application/x-www-form-urlencoded");
request.AddParameter("modelId", "353cea12-4dcc-47ee-b139-dd345157b17d");
request.AddParameter("urls", "https://goo.gl/ICoiHc");
IRestResponse response = client.Execute(request);
//ONLY CONTAINS THE CODE. RUN THIS ON YOUR OWN SYSTEM

OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded")
RequestBody body = RequestBody.create(mediaType, "urls=https%3A%2F%2Fgoo.gl%2FICoiHc&modelId=353cea12-4dcc-47ee-b139-dd345157b17d&undefined=")
Request request = new Request.Builder() .url("http://app.nanonets.com/api/v2/ImageCategorization/LabelUrls/")
.post(body)
.addHeader("Content-Type", "application/x-www-form-urlencoded")
.addHeader("Authorization", "Basic REPLACE_YOUR_API_KEY")
.addHeader("cache-control", "no-cache")
.addHeader("Postman-Token", "d08b761d-2e33-4dcc-a702-dd32c6d3714d")
.build()


Response response = client.newCall(request).execute()

Categories

Porn
Explicit Nudity
Animated Porn
Gore
Sugestive Nudity
Custom

We build Custom Models based on your use case.

Need to ban "porn" but allow "nudity"?

Need to train a model that also filters offensive content local to your region?

Comparison Chart

Leading the pack in detecting offensive content comprehensively across categories.

Score

Make decisions with confidence using output score between 0-1.

Flexible

Available as both cloud API and on premises docker solution.

Accurate

Highest detection rates across categories including edge cases.

♥'ed by

Get Started for Free Today

Have a query?