apyhub
ARTIFICIAL INTELLIGENCE · IMAGE PROCESSING

AI Image Explicit Content Detection API

What it does

Explicit Content Detection checks an image URL or uploaded file for explicit or sensitive content. Send a url or a binary file, and choose the detection backend with requested_service.

Use the URL endpoint when the asset is already hosted, or the file endpoint when you want to scan an upload directly. Both endpoints accept requested_service values of azure, google, or apyhub, and the URL-based endpoint also supports custom Azure and Google credentials through the nested azure and google objects.

The response returns a data object with service-specific results under azure, google, or apyhub, depending on the backend you select. That makes it easy to plug into moderation workflows, upload filters, content review queues, or automated checks before publishing user-generated images.

Use Explicit Content Detection when you need a simple content-safety signal in an image pipeline without building your own classifier.

▣ ENDPOINT 01 / 02
POST
Detect explicit or sensitive content (URL input)
https://api.eu.apyverse.com/apyhub/detect-explicit-content/url

QUICKSTART

GUIDE

Quickstart

Send an image URL to detect explicit content with ApyHub.

curl -X POST "https://api.eu.apyverse.com/apyhub/detect-explicit-content/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://example.com/explicit.jpg"}'

What you'll get back

Returns a JSON object with a data object. Inside data, the schema declares azure, apyhub, and google objects, which contain the response from the selected detection backend.

{
  "data": {
    "azure": {},
    "apyhub": {},
    "google": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
body*
azure
Custom credentials for Azure services.
Azure subscription key.
Azure service region.
Azure endpoint URL.
Azure account ID.
OAuth access token for Azure service.
google
Custom credentials for Google services.
Target language locale.
google_credential_json

About this endpoint

What it does

Detects explicit or sensitive content from a URL by sending the image URL to the selected provider. You can optionally supply custom Azure or Google credentials and choose which service to use.

Request Body

ParameterTypeMandatoryDescription
urlStringYesImage URL to analyze. Must be a valid URI.
azureObjectNoCustom credentials for Azure services. See schema for nested fields.
azure.keyStringNoAzure subscription key.
azure.regionStringNoAzure service region.
azure.endpointStringNoAzure endpoint URL.
azure.account_idStringNoAzure account ID.
azure.access_tokenStringNoOAuth access token for Azure service.
googleObjectNoCustom credentials for Google services. See schema for nested fields.
google.google_languageStringNoTarget language locale.
google.google_credential_jsonObjectNoGoogle credential JSON object. See schema for nested fields.
requested_serviceENUMNoProvider to use. Allowed values: azure, google, apyhub. Default: apyhub.

Response

Returns a JSON object with a data object field containing provider-specific response objects for azure, apyhub, and google. Each of those top-level fields is an object whose detailed structure is not defined in the schema.

ParameterTypeMandatoryDescription
dataObjectNoWrapper object for provider-specific responses.
data.azureObjectNoResponse object from Microsoft Azure Computer Vision.
data.apyhubObjectNoResponse object from ApyHub Vision detector.
data.googleObjectNoResponse object from Google Cloud Vision.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
POST
Detect explicit or sensitive content (file upload)
https://api.eu.apyverse.com/apyhub/detect-explicit-content/file

QUICKSTART

GUIDE

Quickstart

Upload a file to check it for explicit content.

curl -X POST "https://api.eu.apyverse.com/apyhub/detect-explicit-content/file" \
  -H "apy-token: $APY_TOKEN" \
  -F "file=@/path/to/file.jpg"

What you'll get back

Returns a JSON object with a data object. That data object may contain azure, apyhub, and google objects with the respective vision service responses.

{
  "data": {
    "azure": {},
    "apyhub": {},
    "google": {}
  }
}
TRY ITLIVE · 500 ATOMS
Loading your default key…
The full key is used to call the gateway and stays in this tab — never sent to orbit or saved.
Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.
body*

About this endpoint

What it does

Uploads a file and runs explicit/sensitive content detection on it. You can optionally provide provider-specific credentials and choose which service to request; the response returns a JSON object with provider result objects under data.

Request Body

ParameterTypeMandatoryDescription
fileStringYesFile to analyze. Binary upload (format: binary).
azure_keyStringNoAzure key value.
google_keyStringNoGoogle key value.
azure_regionStringNoAzure region.
azure_endpointStringNoAzure endpoint URL.
azure_account_idStringNoAzure account identifier.
requested_serviceENUMNoService to request. Allowed values: azure, google, apyhub. Default: apyhub.
azure_access_tokenStringNoAzure access token.

Response

Returns a JSON object with a data object field. Inside data, the schema defines three optional object fields: azure, apyhub, and google.

ParameterTypeMandatoryDescription
dataObjectNoWrapper object containing provider-specific result objects.
data.azureObjectNoResponse object from Microsoft Azure Computer Vision.
data.apyhubObjectNoResponse object from ApyHub Vision detector.
data.googleObjectNoResponse object from Google Cloud Vision.

Body

Name
Type
Description
bodyREQUIRED
object

Max 100MB total per request (all files combined). Larger? Use this API's URL-based endpoint instead, if it has one.

▣ COMMON ERRORS

Errors any endpoint can return

400bad_request

Required parameter missing or malformed body.

401unauthorized

API key missing, revoked, or not authorized for this service.

429rate_limited

Your plan's per-second rate exceeded. Retry with exponential backoff.

503upstream_busy

Backend temporarily unavailable. Try again in a few seconds.