apyhub
ARTIFICIAL INTELLIGENCE · SECURITY & PRIVACY

Detect Explicit Content

What it does

Explicit Content Detector checks a file or media URL for explicit content and returns the provider-specific analysis in the response.

Send either a public file URL or an uploaded file, then choose requested_service as azure or google. The URL route accepts url plus the service choice, and the file route accepts file plus requested_service. If you use Azure, the request can include azure connection details on the URL route or azure_region, azure_account_id, and azure_access_token on the file route. For Google routes, provide either google credentials in the URL request or a google_credential_file upload for the file request.

The response always wraps results in data, with either an azure object or a google object depending on the service you selected. The schema leaves those provider payloads open-ended, so treat them as provider-native detection results rather than fixed fields.

Use Explicit Content Detector when you need to screen user uploads, review hosted video before publishing, or add a moderation step to media ingestion pipelines. It is built for developers who want a simple input/output shape while delegating the actual classification details to Azure or Google.

▣ ENDPOINT 01 / 02
POST
Explicit Content Detection via URL
https://api.eu.apyverse.com/apyhub/video-detect-explicit-content/url

QUICKSTART

GUIDE

Quickstart

Send a video URL and choose the explicit-content service you want to use.

curl -X POST "https://api.eu.apyverse.com/apyhub/video-detect-explicit-content/url" \
  -H "apy-token: $APY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://assets.apyhub.com/samples/sample.mp4",
    "requested_service": "azure"
  }'

What you'll get back

Returns a JSON object with a data object. The data object contains either an azure object or a google object, depending on the requested_service you sent.

{
  "data": {
    "azure": {}
  }
}
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
google
google_credential_json
Google Cloud service account JSON (required for Google video routes).

About this endpoint

What it does

Submits a URL for explicit-content detection and returns a JSON object containing provider-specific result data. The request body includes the media url and a requested_service value that selects either azure or google.

Request Body

ParameterTypeMandatoryDescription
urlStringYesThe media URL to analyze. Must be a URI.
azureObjectNoAzure credentials/settings used when requested_service is azure. Contains the optional fields region, account_id, and access_token.
azure.regionStringNoAzure region.
azure.account_idStringNoAzure account ID.
azure.access_tokenStringNoAzure access token.
googleObjectNoGoogle credentials/settings used when requested_service is google. Contains the optional field google_language and the nested google_credential_json object.
google.google_languageStringNoGoogle language code.
google.google_credential_jsonObjectNoGoogle Cloud service account JSON. Required for Google video routes. See schema for nested fields.
requested_serviceENUMYesProvider to use for detection. Allowed values: azure, google.

Response

Returns a JSON object with a data object field. The data object contains provider-specific result data in either data.azure or data.google, depending on the requested service.

ParameterTypeMandatoryDescription
dataObjectYesWrapper object for the detection result.
data.azureObjectNoPresent when requested_service is azure.
data.googleObjectNoPresent when requested_service is google.

Body

Name
Type
Description
bodyREQUIRED
object
▣ ENDPOINT 02 / 02
POST
Explicit Content Detection via file upload
https://api.eu.apyverse.com/apyhub/video-detect-explicit-content/file

QUICKSTART

GUIDE

Quickstart

Upload an image and set the service you want to use for explicit-content detection.

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

What you'll get back

Returns a JSON object with a data object. The data object may include an azure object when requested_service is azure, or a google object when requested_service is google.

{
  "data": {
    "azure": {}
  }
}
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*
Service account JSON (Google routes).

About this endpoint

What it does

Uploads a file and runs explicit-content detection through the requested provider. The request body must include the file plus the requested_service, and the response returns a JSON object with a data object that may include provider-specific result objects.

Request Body

ParameterTypeMandatoryDescription
fileStringYesFile to scan for explicit content. Binary upload.
azure_regionStringNoAzure region to use. Example: trial.
azure_account_idStringNoAzure account identifier.
requested_serviceENUMYesProvider to use for detection. Allowed values: azure, google.
azure_access_tokenStringNoAzure access token.
google_credential_fileStringNoService account JSON for Google routes. Binary upload.

Response

Returns a JSON object with a required data object field. The data object may contain an azure object when requested_service is azure, and/or a google object when requested_service is google.

ParameterTypeMandatoryDescription
dataObjectYesResult container. May include azure and/or google objects depending on the requested service.
data.azureObjectNoPresent when requested_service is azure. Contains provider-specific result data.
data.googleObjectNoPresent when requested_service is google. Contains provider-specific result data.

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.