apyhub
ARTIFICIAL INTELLIGENCE · IMAGE PROCESSING

AI Image Brand/Logo Detection API

What it does

Logo Detection lets you send an image by URL or upload a file and get back brand-detection results. Choose the detection backend with requested_service, or let it default to apyhub.

Use the /url endpoint when the image is already hosted online. Send a body.url value, and optionally provide azure or google credential settings if you want to run the request through those providers. The /file endpoint accepts a binary file upload and also supports provider-specific credentials such as azure_key, azure_region, azure_endpoint, azure_account_id, azure_access_token, and google_key.

The response wraps provider output under data.azure, data.apyhub, or data.google, depending on the service you requested. That makes it straightforward to compare detection results across backends or route different workloads through the provider you already use.

Use Logo Detection for cataloging product packaging, identifying logos in user-generated images, or flagging brand presence in uploaded media. It fits workflows where you need to inspect an image and branch on whether a known logo or brand appears.

▣ ENDPOINT 01 / 02
POST
Detect logos and brands (URL input)
https://api.eu.apyverse.com/apyhub/detect-brands/url

QUICKSTART

GUIDE

Quickstart

Send an image URL to detect brands in it.

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

What you'll get back

Returns a JSON object with a data object. That data object can contain azure, apyhub, and google objects, depending on which detector response is returned.

{
  "data": {
    "apyhub": {}
  }
}
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 logos and brands from an image URL. You send the image url and optional provider-specific credentials or provider selection, and the response returns a JSON object containing brand-detection results under data.

Request Body

ParameterTypeMandatoryDescription
urlStringYesImage URL to analyze. Format: URI.
azureObjectNoCustom credentials for Azure services. Includes optional fields key, region, endpoint, account_id, and access_token.
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. Includes optional google_language and google_credential_json.
google.google_languageStringNoTarget language locale.
google.google_credential_jsonObjectNoGoogle service account credential JSON. 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. The data object can contain azure, apyhub, and google objects with provider-specific brand-detection results.

ParameterTypeMandatoryDescription
dataObjectNoResponse container.
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 logos and brands (file upload)
https://api.eu.apyverse.com/apyhub/detect-brands/file

QUICKSTART

GUIDE

Quickstart

Upload an image file to detect brands with the default ApyHub detector.

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

What you'll get back

Returns a JSON object with a data object. That data object may include azure, apyhub, and google objects with the detector responses from each provider.

{
  "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 brand/logo detection against the selected vision service. The response returns a data object containing service-specific result objects for Azure, ApyHub, and Google.

Request Body

ParameterTypeMandatoryDescription
fileStringYesBinary file to analyze.
azure_keyStringNoAzure key value.
google_keyStringNoGoogle key value.
azure_regionStringNoAzure region, for example westus.
azure_endpointStringNoAzure endpoint URL, for example https://westus.api.cognitive.microsoft.com/.
azure_account_idStringNoAzure account ID.
requested_serviceENUMNoSelects which service to use. Allowed values: azure, google, apyhub. Default: apyhub.
azure_access_tokenStringNoAzure access token.

Response

Returns a JSON object with a data object field. The data object can contain service-specific result objects for azure, apyhub, and google.

ParameterTypeMandatoryDescription
dataObjectNoWrapper for the service-specific response 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.