Amazon Rekognition · Arazzo Workflow

Amazon Rekognition Video Label Detection Job

Version 1.0.0

Start an asynchronous video label detection job, poll until it succeeds, then read the results.

1 workflow 1 source API 1 provider
View Spec View on GitHub Celebrity RecognitionComputer-VisionContent ModerationCustom LabelsDeep LearningFace LivenessFacial RecognitionImage AnalysisMachine-LearningObject DetectionText DetectionVideo AnalysisArazzoWorkflows

Provider

amazon-rekognition

Workflows

video-label-detection-job
Start a video label detection job, poll until done, and read results.
Kicks off asynchronous label detection for a stored video, polls the job until it reaches a terminal state, and retrieves the labels on success.
3 steps inputs: minConfidence, videoBucket, videoName outputs: jobId, jobStatus, labels
1
startJob
Start the asynchronous label detection job for the stored video.
2
pollJob
Poll the label detection job until it leaves the IN_PROGRESS state, then branch on the terminal status.
3
readResults
Read the full label detection results for the succeeded job.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Amazon Rekognition Video Label Detection Job
  summary: Start an asynchronous video label detection job, poll until it succeeds, then read the results.
  description: >-
    The standard asynchronous stored-video analysis pattern for Amazon
    Rekognition. The workflow starts a label detection job for a video in S3,
    polls GetLabelDetection on the returned JobId until the JobStatus is no
    longer IN_PROGRESS, branches on SUCCEEDED versus FAILED, and on success
    reads the detected labels. Each step spells out its AWS JSON 1.1 request
    inline, including the protocol-required X-Amz-Target header.
  version: 1.0.0
sourceDescriptions:
- name: storedVideoAnalysisApi
  url: ../openapi/amazon-rekognition-stored-video-analysis-api-openapi.yml
  type: openapi
workflows:
- workflowId: video-label-detection-job
  summary: Start a video label detection job, poll until done, and read results.
  description: >-
    Kicks off asynchronous label detection for a stored video, polls the job
    until it reaches a terminal state, and retrieves the labels on success.
  inputs:
    type: object
    required:
    - videoBucket
    - videoName
    properties:
      videoBucket:
        type: string
        description: S3 bucket holding the video to analyze.
      videoName:
        type: string
        description: S3 object key of the video file.
      minConfidence:
        type: number
        description: Minimum confidence for labels detected in the video.
        default: 75.0
  steps:
  - stepId: startJob
    description: Start the asynchronous label detection job for the stored video.
    operationId: startLabelDetection
    parameters:
    - name: X-Amz-Target
      in: header
      value: RekognitionService.StartLabelDetection
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        Video:
          S3Object:
            Bucket: $inputs.videoBucket
            Name: $inputs.videoName
        MinConfidence: $inputs.minConfidence
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobId: $response.body#/JobId
  - stepId: pollJob
    description: >-
      Poll the label detection job until it leaves the IN_PROGRESS state, then
      branch on the terminal status.
    operationId: getLabelDetection
    parameters:
    - name: X-Amz-Target
      in: header
      value: RekognitionService.GetLabelDetection
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        JobId: $steps.startJob.outputs.jobId
        MaxResults: 100
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/JobStatus
      labels: $response.body#/Labels
      labelModelVersion: $response.body#/LabelModelVersion
    onSuccess:
    - name: stillRunning
      type: goto
      stepId: pollJob
      criteria:
      - context: $response.body
        condition: $.JobStatus == 'IN_PROGRESS'
        type: jsonpath
    - name: succeeded
      type: goto
      stepId: readResults
      criteria:
      - context: $response.body
        condition: $.JobStatus == 'SUCCEEDED'
        type: jsonpath
    onFailure:
    - name: jobFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.JobStatus == 'FAILED'
        type: jsonpath
  - stepId: readResults
    description: Read the full label detection results for the succeeded job.
    operationId: getLabelDetection
    parameters:
    - name: X-Amz-Target
      in: header
      value: RekognitionService.GetLabelDetection
    requestBody:
      contentType: application/x-amz-json-1.1
      payload:
        JobId: $steps.startJob.outputs.jobId
        MaxResults: 100
        SortBy: TIMESTAMP
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      jobStatus: $response.body#/JobStatus
      labels: $response.body#/Labels
      videoMetadata: $response.body#/VideoMetadata
  outputs:
    jobId: $steps.startJob.outputs.jobId
    jobStatus: $steps.readResults.outputs.jobStatus
    labels: $steps.readResults.outputs.labels

Work with this as data

Every workflow here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for arazzo workflows

4 MCP tools reach this
  • find_arazzoBrowse and filter every workflow in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This workflow
curl "https://apis.io/api/v1/arazzo/amazon-rekognition-video-label-detection-job-workflow"
All arazzo workflows
curl "https://apis.io/api/v1/arazzo?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.