Computer vision · API / SDK

Amazon Rekognition

AWS

Analyze image and video content with managed detection capabilities.

Official documentationDownload development spec

AMAZON REKOGNITION / DEVELOPER FIELD GUIDE

Choose an interface. Define a verifiable result.

Company or project context, ten technical entry points and a practical analysis of every reference.

2026-10-08 · Integration not tested

Company / project overview

Original summary of official company or project statements; use the source for the full original page.

Amazon Rekognition · About
ProviderAmazon Web Services is part of Amazon and launched in 2006.
Who it servesStartups, enterprises, nonprofits and governments using cloud and AI infrastructure.
Company contextThe About site covers origins, values, impact, people, customers and partners.
Product scopeRekognition supplies managed image and video analysis; API-specific capabilities are compared below.
Complete official About page ↗
About reference — TA analysis
AudienceBuyers, partners and product owners shortlisting an AI provider.
Our assessmentUse positioning and company history for initial fit. Obtain project-specific deployment, support and commercial terms separately.

Reviewed official AWS documentation; the JavaScript command is linked from the API reference, but its dynamic page body was not extractable. No cloud calls or account eligibility checks were run.

Top 10 technical entry points

Ten entry points for image and stored-video integrations, not an official ranking. Check the feature-availability reference before planning streaming or bulk analysis.

Choose by the work you need to complete
InterfacePurpose and audience
01 · DetectLabelsSynchronous image APIDetect general objects and scenes; optionally request image properties.Backend / image catalogue team
02 · Boto3 Rekognition clientPython SDKCall Rekognition using the AWS Python SDK.Python / automation developer
03 · AWS SDK for JavaScript v3JavaScript SDKUse the official Rekognition client and DetectLabels command.Node.js / TypeScript backend
04 · AWS CLI RekognitionCommand-line interfaceInspect and call Rekognition operations from the terminal.QA / platform engineer
05 · DetectTextImage text APIExtract words and lines from an image.Packaging / visual metadata developer
06 · DetectProtectiveEquipmentImage equipment APIDetect face, hand and head coverings on people in an image.Factory application / safety review team
07 · DetectCustomLabelsCustom-model image APIRun a specific Custom Labels model version against an image.ML / industrial inspection team
08 · StartLabelDetectionAsynchronous stored-video APIStart label analysis of a video stored in S3.Video pipeline / backend engineer
09 · StartSegmentDetectionVideo segmentation APIStart shot or technical-cue analysis of stored video.Media operations / evidence review
10 · DetectModerationLabelsImage moderation APIReturn moderation labels to support an application policy.Content review / platform team

Reference analysis

Capabilities summarize official documentation. Constraints and proposed tests are our engineering assessment.

01

Synchronous image API

DetectLabels

DetectLabels · TA
Target audienceBackend / image catalogue team
Documented capabilityDetect general objects and scenes; optionally request image properties.
Input → outputJPEG / PNG bytes or S3 object → labels and model version
Execution environmentAWS regional cloud endpoint.
Our decision constraintLabel confidence is 0–100. General labels do not establish custom defect recognition.
Our suggested validationValidate score conversion and empty results; compare labels against your inspection taxonomy.
Official reference · DetectLabels ↗
02

Python SDK

Boto3 Rekognition client

Boto3 Rekognition client · TA
Target audiencePython / automation developer
Documented capabilityCall Rekognition using the AWS Python SDK.
Input → outputPython arguments → response dictionaries
Execution environmentPython backend with AWS credentials and region.
Our decision constraintSDK installation does not grant API permissions or configure a region.
Our suggested validationRecord SDK version; test permitted inference and denied credentials separately.
Official reference · Boto3 Rekognition client ↗
03

JavaScript SDK

AWS SDK for JavaScript v3

AWS SDK for JavaScript v3 · TA
Target audienceNode.js / TypeScript backend
Documented capabilityUse the official Rekognition client and DetectLabels command.
Input → outputCommand input → service response
Execution environmentServer-side JavaScript with AWS authentication.
Our decision constraintConfirm runtime compatibility and keep credentials out of client-side bundles.
Our suggested validationBuild the actual server target and confirm only sanitized output reaches the browser.
Official reference · AWS SDK for JavaScript v3 ↗
04

Command-line interface

AWS CLI Rekognition

AWS CLI Rekognition · TA
Target audienceQA / platform engineer
Documented capabilityInspect and call Rekognition operations from the terminal.
Input → outputCLI options → JSON output
Execution environmentConfigured AWS CLI environment.
Our decision constraintImage operations through the CLI use S3 references; do not assume SDK byte examples transfer unchanged.
Our suggested validationRecord profile, region and object version; compare one result with the SDK path.
Official reference · AWS CLI Rekognition ↗
05

Image text API

DetectText

DetectText · TA
Target audiencePackaging / visual metadata developer
Documented capabilityExtract words and lines from an image.
Input → outputImage → text, geometry and type
Execution environmentAWS regional cloud service.
Our decision constraintUse the word/line relationship; do not double-count text appearing in both.
Our suggested validationCheck actual packaging fonts, rotation and language; measure exact serial-number accuracy.
Official reference · DetectText ↗
06

Image equipment API

DetectProtectiveEquipment

DetectProtectiveEquipment · TA
Target audienceFactory application / safety review team
Documented capabilityDetect face, hand and head coverings on people in an image.
Input → outputImage → person, body-part and equipment detections
Execution environmentAWS image analysis endpoint.
Our decision constraintUnknown coverage must remain unknown; detection is not a safety certification.
Our suggested validationTest occlusion and low light with human review; measure missed equipment and false alarms.
Official reference · DetectProtectiveEquipment ↗
07

Custom-model image API

DetectCustomLabels

DetectCustomLabels · TA
Target audienceML / industrial inspection team
Documented capabilityRun a specific Custom Labels model version against an image.
Input → outputImage + project version ARN → custom labels
Execution environmentCustom Labels model in AWS.
Our decision constraintRequires a suitable trained model; generic labels are not a substitute for your defect dataset.
Our suggested validationHold out production-like samples; record the version ARN and per-defect recall before rollout.
Official reference · DetectCustomLabels ↗
08

Asynchronous stored-video API

StartLabelDetection

StartLabelDetection · TA
Target audienceVideo pipeline / backend engineer
Documented capabilityStart label analysis of a video stored in S3.
Input → outputS3 video → job ID, then completed results
Execution environmentAWS asynchronous job with optional SNS notification.
Our decision constraintA returned job ID is not a completed analysis; retain idempotency tokens.
Our suggested validationTest pending, failed and succeeded jobs, then retrieve every result page.
Official reference · StartLabelDetection ↗
09

Video segmentation API

StartSegmentDetection

StartSegmentDetection · TA
Target audienceMedia operations / evidence review
Documented capabilityStart shot or technical-cue analysis of stored video.
Input → outputS3 video + segment types → job identifier
Execution environmentAWS asynchronous stored-video analysis.
Our decision constraintShot boundaries are media structure, not proof of an industrial event.
Our suggested validationCompare segment timestamps with a manually reviewed clip and preserve original time references.
Official reference · StartSegmentDetection ↗
10

Image moderation API

DetectModerationLabels

DetectModerationLabels · TA
Target audienceContent review / platform team
Documented capabilityReturn moderation labels to support an application policy.
Input → outputJPEG / PNG image → moderation labels and confidence
Execution environmentAWS regional image service.
Our decision constraintA model score is not the application decision; preserve a human review route.
Our suggested validationEvaluate false positives on legitimate industrial imagery before blocking uploads.
Official reference · DetectModerationLabels ↗

Rekognition overview

Rekognition overview · Supporting reference analysis
TAPM / buyer: map image and video needs to a managed service.
Our validation adviceChoose a specific API and account region before estimating effort.
Official reference · Rekognition overview ↗

Feature availability changes

Feature availability changes · Supporting reference analysis
TAArchitect / buyer: verify account eligibility.
Our validation adviceStreaming Video and Bulk Image Analysis closed to new customers on April 30, 2026. AWS says other features are unaffected. This guide selects image and stored-video paths; verify your intended operation.
Official reference · Feature availability changes ↗

GetLabelDetection

GetLabelDetection · Supporting reference analysis
TABackend / QA: complete the asynchronous label pipeline.
Our validation adviceWait for success, use the same job ID and follow NextToken until no page remains.
Official reference · GetLabelDetection ↗

Boto3 credentials

Boto3 credentials · Supporting reference analysis
TAPlatform engineer: configure temporary role or SSO credentials.
Our validation adviceUse the standard credential chain; verify least necessary access without embedding secrets.
Official reference · Boto3 credentials ↗

Botocore configuration

Botocore configuration · Supporting reference analysis
TABackend engineer: make timeouts and retry behavior explicit.
Our validation adviceThe starter uses one attempt with connection/read timeouts; production also needs an overall task deadline.
Official reference · Botocore configuration ↗

04 / INPUT · EXPECTED OUTPUT · ACCEPTANCE

A concrete first integration

Single-image general labels, not custom defect detection, face identification or live video. Confidence is normalized from 0–100 to 0–1.

Starter v1.0.0 · offline fixture checks only · provider integration not run

Run it in your own environment

Install boto3 in a Python environment and record the installed version. Configure an AWS role or SSO profile with rekognition:DetectLabels permission. Set AWS_REGION and IMAGE_PATH; optionally select AWS_PROFILE. Save as rekognition_smoke.py and run python rekognition_smoke.py. No account, credentials or cloud call is provided by this page.

Keep credentials in your local or server-side credential provider. Running this sample sends an image to provider cloud and may consume account usage.

View runnable Python starter · rekognition_smoke.py
"""One authorized JPEG/PNG sent to AWS DetectLabels; no automatic retry."""
import json
import math
import os
import sys
from datetime import datetime, timezone
from importlib.metadata import version
from pathlib import Path
from time import monotonic


def normalize(raw):
    if not isinstance(raw, dict) or not isinstance(raw.get('Labels'), list):
        raise ValueError('unexpected_schema')
    output = []
    for item in raw['Labels']:
        if not isinstance(item, dict) or not isinstance(item.get('Name'), str):
            raise ValueError('unexpected_schema')
        confidence = item.get('Confidence')
        if type(confidence) not in (int, float) or not math.isfinite(confidence) or not 0 <= confidence <= 100:
            raise ValueError('unexpected_schema')
        output.append({'label': item['Name'], 'score': confidence / 100})
    model = raw.get('LabelModelVersion')
    if model is not None and not isinstance(model, str):
        raise ValueError('unexpected_schema')
    return output, model


def create_client(region):
    import boto3
    from botocore.config import Config
    settings = Config(connect_timeout=5, read_timeout=30,
                      retries={'mode': 'standard', 'total_max_attempts': 1})
    # Standard AWS credentials chain; no access keys in source code.
    return boto3.client('rekognition', region_name=region, config=settings)


def classify_error(exc):
    code = getattr(exc, 'response', {}).get('Error', {}).get('Code')
    if code in ('AccessDeniedException', 'UnrecognizedClientException', 'InvalidSignatureException', 'ExpiredTokenException'):
        return 'authorization_failure'
    if code in ('ThrottlingException', 'ProvisionedThroughputExceededException'):
        return 'throttled'
    if code in ('InvalidImageFormatException', 'ImageTooLargeException', 'InvalidParameterException'):
        return 'provider_input_failure'
    if type(exc).__name__ in ('NoCredentialsError', 'PartialCredentialsError', 'ProfileNotFound'):
        return 'credentials_missing'
    if type(exc).__name__ in ('ReadTimeoutError', 'ConnectTimeoutError', 'EndpointConnectionError'):
        return 'transport_failure'
    return 'provider_or_transport_failure'


def run(client_factory=create_client):
    start = monotonic()
    result = {'schema_version': '1.0.0', 'provider': 'Amazon Rekognition', 'status': 'error',
              'model_version': None, 'data': None, 'error': None,
              'captured_at': datetime.now(timezone.utc).isoformat()}
    try:
        region = os.environ['AWS_REGION'].strip()
        filename = Path(os.environ['IMAGE_PATH'])
        if not region or filename.suffix.lower() not in ('.jpg', '.jpeg', '.png'):
            raise ValueError('configuration')
        # Bounded read: this starter's cap is 4 MiB, not a claimed service limit.
        with filename.open('rb') as image:
            content = image.read(4 * 1024 * 1024 + 1)
        if not content or len(content) > 4 * 1024 * 1024:
            raise ValueError('input_size')
        client = client_factory(region)
        try:
            raw = client.detect_labels(Image={'Bytes': content}, MaxLabels=20,
                                       MinConfidence=70, Features=['GENERAL_LABELS'])
            result['data'], result['model_version'] = normalize(raw)
        finally:
            client.close()
        result['region'] = region
        result['status'] = 'ok'
    except (KeyError, OSError):
        result['error'] = 'configuration'
    except (ValueError, TypeError):
        result['error'] = 'configuration_or_schema'
    except ImportError:
        result['error'] = 'dependency_missing'
    except Exception as exc:
        result['error'] = classify_error(exc)
    if result['status'] != 'ok':
        result['data'] = None
    result['elapsed_ms'] = round((monotonic() - start) * 1000)
    return result


if __name__ == '__main__':
    output = run()
    print(json.dumps(output, ensure_ascii=False, allow_nan=False))
    sys.exit(0 if output['status'] == 'ok' else 1)
Download specification, example and acceptance plan
Engineering handoff — our proposed contract and gates
Result contractok contains validated label/score pairs, including a valid empty list; error contains null data and a redacted category. Record LabelModelVersion returned by AWS; general DetectLabels does not let this sample pin a model version.
Operational limitsOne attempt, 5-second connection timeout and 30-second read timeout. These are not an overall process deadline. Input is capped locally at 4 MiB; threshold 70 and maximum 20 labels are starter choices, not validated business thresholds.
Failure decisionsSeparate authorization, throttling, invalid input and transport failure. Fix configuration errors first; introduce bounded retries only after reviewing duplicate cost and total deadlines.
Data and costImage bytes leave your machine for the configured AWS region. Confirm account terms and data handling; measure usage with one small sample. No price, latency or defect accuracy was measured.
Proposed acceptanceUse 20 authorized representative images plus empty, malformed, denied-access and timeout cases. Require zero silent failures and correct confidence scaling; agree label usefulness and latency targets before live evaluation. Keep industrial defect acceptance separate.

Related route to assess: Google Cloud Vision

Development assessment

Site image index

Development concept · integration not tested

Provider capabilities above are based on official documentation or repositories. The proposed product, inputs, deliverable and acceptance criteria below are our development assessment.

Small prototype

Test one documented operation with a small real sample after access is confirmed. This is a development judgment, not a delivery estimate.

Proposed inputs
A small authorized image dataset, task definition and reference annotations.
Proposed deliverable
A reviewable result with image references, labels or annotation state; keep original files.
Acceptance criterion
Compare the supported operation against a labeled sample; report errors and missing results separately.
Dependencies
Dataset access, image rights and a supported model or annotation project.

Development sequence

  1. Confirm access to Amazon Rekognition, license and the exact supported version.
  2. Prepare the sample above and implement one documented operation for “Site image index”.
  3. Normalize the result with source, time and explicit error state; keep the provider response for review.
  4. Run the acceptance criterion before estimating rollout effort or committing a customer deliverable.

How to validate demand

Record product views, documentation clicks, specification downloads and contextual hub clicks. These are event counts, not unique people or completed integrations.

This feasibility assessment uses implementation conditions. No traffic-based rank or delivery-time promise is assigned.

Related products