Mindee · Arazzo Workflow

Mindee Crop Document

Version 1.0.0

Enqueue a document for cropping, poll until processed, then read the detected objects and their crop coordinates.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Document ParsingOCRIDPAIMachine LearningInvoicesReceiptsIDsComputer VisionArazzoWorkflows

Provider

mindee

Workflows

crop-document
Upload a document and read the detected crop regions.
Sends a file to the crop enqueue endpoint, polls the job until processing finishes, and retrieves the crop result containing the detected objects and their coordinates.
3 steps inputs: authorization, file, filename, modelId outputs: crops, jobId
1
enqueueCrop
Enqueue_Crop_Product_Inference_v2_products_crop_enqueue_post
Send the document to the asynchronous crop queue. Returns a job whose status begins as Processing.
2
pollJob
Get_Job_Status_v2_jobs__job_id__get
Poll the shared jobs endpoint until the crop job reports Processed or Failed.
3
getResult
Get_Crop_Product_Result_v2_products_crop_results__inference_id__get
Retrieve the completed crop inference and read the detected objects and their cropping coordinates.

Source API Descriptions

Arazzo Workflow Specification

mindee-crop-document-workflow.yml Raw ↑
arazzo: 1.0.1
info:
  title: Mindee Crop Document
  summary: Enqueue a document for cropping, poll until processed, then read the detected objects and their crop coordinates.
  description: >-
    Uses Mindee's asynchronous crop utility to detect documents or objects
    within a source image and return their cropping coordinates. The workflow
    uploads a file to the crop queue, polls the shared jobs endpoint until the
    job is Processed, and fetches the crop inference to read the list of
    detected crops. This is useful for de-skewing and isolating individual
    documents before extraction. Every step spells out its request inline so
    the flow can be read and executed without opening the underlying OpenAPI
    description.
  version: 1.0.0
sourceDescriptions:
- name: cropApi
  url: ../openapi/mindee-crop-api-openapi.yml
  type: openapi
- name: jobsApi
  url: ../openapi/mindee-jobs-api-openapi.yml
  type: openapi
workflows:
- workflowId: crop-document
  summary: Upload a document and read the detected crop regions.
  description: >-
    Sends a file to the crop enqueue endpoint, polls the job until processing
    finishes, and retrieves the crop result containing the detected objects and
    their coordinates.
  inputs:
    type: object
    required:
    - authorization
    - modelId
    - file
    properties:
      authorization:
        type: string
        description: Mindee API key sent in the Authorization header.
      modelId:
        type: string
        description: UUID of the crop utility model to apply.
      file:
        type: string
        description: The document file to upload as binary form data.
      filename:
        type: string
        description: Optional filename to associate with the uploaded document.
  steps:
  - stepId: enqueueCrop
    description: >-
      Send the document to the asynchronous crop queue. Returns a job whose
      status begins as Processing.
    operationId: Enqueue_Crop_Product_Inference_v2_products_crop_enqueue_post
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: multipart/form-data
      payload:
        model_id: $inputs.modelId
        file: $inputs.file
        filename: $inputs.filename
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      jobId: $response.body#/job/id
      status: $response.body#/job/status
  - stepId: pollJob
    description: >-
      Poll the shared jobs endpoint until the crop job reports Processed or
      Failed.
    operationId: Get_Job_Status_v2_jobs__job_id__get
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: job_id
      in: path
      value: $steps.enqueueCrop.outputs.jobId
    - name: redirect
      in: query
      value: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/job/status
    onSuccess:
    - name: jobProcessed
      type: goto
      stepId: getResult
      criteria:
      - context: $response.body
        condition: $.job.status == "Processed"
        type: jsonpath
    - name: jobPending
      type: goto
      stepId: pollJob
      criteria:
      - context: $response.body
        condition: $.job.status == "Processing"
        type: jsonpath
  - stepId: getResult
    description: >-
      Retrieve the completed crop inference and read the detected objects and
      their cropping coordinates.
    operationId: Get_Crop_Product_Result_v2_products_crop_results__inference_id__get
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: inference_id
      in: path
      value: $steps.enqueueCrop.outputs.jobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      inferenceId: $response.body#/inference/id
      crops: $response.body#/inference/result/crops
  outputs:
    jobId: $steps.enqueueCrop.outputs.jobId
    crops: $steps.getResult.outputs.crops