[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"api-page:porn-detection-api":3},{"status":4,"api":5,"seo":205},"success",{"blocked":6,"description":7,"about":8,"stats":9,"name":11,"title":12,"slug":13,"logo":14,"created_at":15,"agent":16,"user":28,"endpoint_groups":31,"faqs":173,"features":180,"periodic_plans":181,"payasyougo_plans":182},false,"Porn Detection API allows you to upload an image or a video for scanning. It returns whether the content is safe for work (SFW) or not safe for work (NSFW), along with a confidence score.","The Porn Detection API provides a reliable way to check images and videos for pornographic or inappropriate content. Users send their media files to the API, and the system analyzes them to determine whether they are safe for work (SFW) or not safe for work (NSFW). The API returns a confidence score for each prediction, making it easy for platforms and applications to filter user-generated content before publishing it. This helps protect communities from explicit material and ensures a safe and professional environment.\n\n👉 The API supports image files as well as video files up to 200 MB in size.",{"score":10},"2.13","Porn Detection","Porn Detection API","porn-detection-api","https://cdn.jojapi.com/api/3d8c857a-56c3-4e71-9b04-1fab5b1a1c4e","2026-08-31 14:22:18",{"enabled":17,"closed":18,"request_enabled":6,"catalog_url":19,"discovery_url":20,"directory_url":21,"rails":22,"networks":25,"docs":27},true,null,"https://rasot.jojapi.net/_jojapi/agent/plans","https://rasot.jojapi.net/.well-known/x402","https://agents.jojapi.net/apis/porn-detection-api",[23,24],"x402","mpp",[26],"eip155:8453","https://docs.jojapi.com/consumers/agents",{"nick":29,"name":30,"verified":6,"website":18},"ahmed-ayyad","Ahmed Ayyad",[32],{"endpoints":33,"name":172,"description":40,"ungrouped":17},[34,75,119,141],{"blocked":6,"hidden":6,"agent_price":18,"credits":18,"flexible_credits_description":18,"consumptions":35,"description":41,"method":42,"name":43,"url_path":44,"root_url":45,"parameters":46,"responses":63,"result_stats":71},[36],{"name":37,"slug":38,"cost":39,"label":40,"avg":18},"Image Requests","image-requests","1","","This endpoint allows you to upload images directly to the API for instant and accurate analysis.\nThe system processes the image and returns the probability score of containing pornographic content (NSFW Score), comparing it with the threshold you define.\nIf the score exceeds the threshold, the image is classified as unsafe; if it is below, the image is considered safe.","POST","predict_image_upload","/predict_image_upload","https://rasot.jojapi.net",{"url":47,"header":52,"post":60,"body":61,"path":62},[48],{"key":49,"example":50,"schema":18,"example_disabled":6,"example_type":51,"value_type":51,"enum_values":18,"default_value":50,"required":6,"name":40,"description":40},"threshold","0.8","string",[53,58],{"key":54,"is_auth":17,"example":55,"example_disabled":17,"example_type":51,"name":56,"description":55,"required":17,"always_error":57},"X-JoJAPI-Key","You must log in to get API key","JoJ API Key","Please log in to get API key",{"key":59,"example":40,"schema":18,"example_disabled":6,"example_type":51,"value_type":51,"enum_values":18,"default_value":40,"required":17,"name":40,"description":40},"file",[],[],[],[64],{"status":65,"status_code":66,"description":67,"schema":18,"examples":68,"example":70},"200",200,"Response",[69],{"name":67,"summary":67,"description":40,"example":70},"{\"label\":\"SFW\",\"is_nsfw\":false,\"nsfw_prob\":0.003256,\"sfw_prob\":0.996744,\"threshold\":0.8,\"confidence\":0.99593,\"confidence_level\":\"very_high\",\"distance_from_threshold\":0.796744}",{"x2":72,"x3":72,"x4":73,"x5":72,"uptime":73,"avg_latency":74,"avg_credits":72},"0.00","100.00","448",{"blocked":6,"hidden":6,"agent_price":18,"credits":18,"flexible_credits_description":18,"consumptions":76,"description":80,"method":81,"name":82,"url_path":83,"root_url":45,"parameters":84,"responses":114,"result_stats":18},[77],{"name":78,"slug":79,"cost":39,"label":40,"avg":18},"Video Requests","video-requests","This endpoint accepts a direct video link (HTTP/HTTPS) and scans it instantly to classify the content.\nThe API returns:\n\nWhether the video is pornographic or safe.\n\nThe reason for the decision (e.g., strong_peak, long_streak, high_ratio).\n\nDetailed statistics: highest probability, average probability, total duration above the threshold, and number of analyzed samples.","GET","predict_video_url","/predict_video_url",{"url":85,"header":109,"post":111,"body":112,"path":113},[86,90,93,96,99,102,104,107],{"key":87,"example":88,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"smooth_window","5","number",{"key":91,"example":92,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"duration_sec","0.0",{"key":94,"example":95,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"thresh_high","0.70",{"key":97,"example":98,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"thresh_low","0.60",{"key":100,"example":101,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"min_hit_duration","1.0",{"key":103,"example":40,"schema":18,"example_disabled":6,"example_type":51,"value_type":51,"enum_values":18,"default_value":40,"required":17,"name":40,"description":40},"video_url",{"key":105,"example":106,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"min_ratio","0.02",{"key":108,"example":92,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":40,"required":6,"name":40,"description":40},"start_sec",[110],{"key":54,"is_auth":17,"example":55,"example_disabled":17,"example_type":51,"name":56,"description":55,"required":17,"always_error":57},[],[],[],[115],{"status":65,"status_code":66,"description":67,"schema":18,"examples":116,"example":118},[117],{"name":67,"summary":67,"description":40,"example":118},"{\"nsfw\":false,\"reason\":\"below_thresholds\",\"thresholds\":{\"thresh_high\":0.7,\"thresh_low\":0.6,\"min_hit_duration\":1,\"min_ratio\":0.02},\"stats\":{\"max_prob\":0.008028,\"avg_prob\":0.007325,\"total_duration\":2,\"total_above_duration\":0,\"ratio_above\":0,\"max_streak\":0,\"sample_step\":1,\"num_samples\":3}}",{"blocked":6,"hidden":6,"agent_price":18,"credits":18,"flexible_credits_description":18,"consumptions":120,"description":122,"method":81,"name":123,"url_path":124,"root_url":45,"parameters":125,"responses":136,"result_stats":18},[121],{"name":37,"slug":38,"cost":39,"label":40,"avg":18},"Analyze an image from a direct URL and return whether it’s SFW (Safe For Work) or NSFW (Not Safe For Work), with a confidence score.","predict_image_url","/predict_image_url",{"url":126,"header":131,"post":133,"body":134,"path":135},[127,129],{"key":49,"example":128,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":128,"required":6,"name":40,"description":40},"0.7",{"key":130,"example":40,"schema":18,"example_disabled":6,"example_type":51,"value_type":51,"enum_values":18,"default_value":40,"required":17,"name":40,"description":40},"image_url",[132],{"key":54,"is_auth":17,"example":55,"example_disabled":17,"example_type":51,"name":56,"description":55,"required":17,"always_error":57},[],[],[],[137],{"status":65,"status_code":66,"description":67,"schema":18,"examples":138,"example":140},[139],{"name":67,"summary":67,"description":40,"example":140},"{\"label\":\"SFW\",\"is_nsfw\":false,\"nsfw_prob\":0.000733,\"sfw_prob\":0.999267,\"threshold\":0.7,\"confidence\":0.998953,\"confidence_level\":\"very_high\",\"distance_from_threshold\":0.699267}",{"blocked":6,"hidden":6,"agent_price":18,"credits":18,"flexible_credits_description":18,"consumptions":142,"description":144,"method":81,"name":145,"url_path":146,"root_url":45,"parameters":147,"responses":162,"result_stats":167},[143],{"name":78,"slug":79,"cost":39,"label":40,"avg":18},"This endpoint provides you with a dedicated upload URL for your video.\nThe URL is designed for speed and efficiency, allowing you to upload large video files seamlessly.\nIt can be used once only and remains valid for 24 hours from the time it is issued.\nTo upload, send your video in the file field of the request body (form-data).\nOnce the upload is complete, the API will automatically analyze the video and return the classification result with probability scores.","request_video_upload_url","/request_video_upload_url",{"url":148,"header":157,"post":159,"body":160,"path":161},[149,150,151,152,153,155,156],{"key":108,"example":92,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":92,"required":6,"name":40,"description":40},{"key":91,"example":92,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":92,"required":6,"name":40,"description":40},{"key":105,"example":106,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":106,"required":6,"name":40,"description":40},{"key":87,"example":88,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":88,"required":6,"name":40,"description":40},{"key":94,"example":95,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":154,"required":6,"name":40,"description":40},"0.80",{"key":100,"example":101,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":101,"required":6,"name":40,"description":40},{"key":97,"example":98,"schema":18,"example_disabled":6,"example_type":51,"value_type":89,"enum_values":18,"default_value":95,"required":6,"name":40,"description":40},[158],{"key":54,"is_auth":17,"example":55,"example_disabled":17,"example_type":51,"name":56,"description":55,"required":17,"always_error":57},[],[],[],[163],{"status":65,"status_code":66,"description":67,"schema":18,"examples":164,"example":166},[165],{"name":67,"summary":67,"description":40,"example":166},"{\"url\":\"http:\\/\\/134.209.196.160:6666\\/upload_video?key=HP-zZeT-KBvMyBuS\"}",{"x2":168,"x3":72,"x4":168,"x5":169,"uptime":170,"avg_latency":171,"avg_credits":72},"40.00","20.00","80.00","407","Ungrouped Endpoints",[174,177],{"question":175,"answer":176},"What types of media does the Porn Detection API support and what is the file size limit?","The API supports both image and video files, with a maximum file size limit of 200 MB for videos.",{"question":178,"answer":179},"How does the API return the classification results?","The API analyzes the media and returns a confidence score indicating whether the content is Safe for Work (SFW) or Not Safe for Work (NSFW).",[],[],[183],{"type":184,"slug":185,"blocked":6,"period":186,"currency":187,"pricing":188,"rate_limit":189,"objects":190,"name":203,"display_name":18,"features":204},"payasyougo","mt88z76yia6dut1e09hfdkm7","1 WEEK","usd",[],{"max_requests":18,"time_window":18},[191,198],{"id":192,"name":78,"slug":79,"quota":18,"tiers":193},"n6ce5a8df",[194],{"start":195,"unit_price":196,"start_text":197},0,0.001,"0",{"id":199,"name":37,"slug":38,"quota":18,"tiers":200},"n4b1301bd",[201],{"start":195,"unit_price":202,"start_text":197},0.0002,"Pay as you go",[],{"canonical":206,"page_title":207,"meta":208},"https://jojapi.com/hub/api/porn-detection-api","Porn Detection API Documentation & Playground - JoJ API",{"description":7,"keywords":209},"API,API Documentation,API Playground,Plans & Pricing,Porn Detection,ahmed-ayyad"]