Mindee · Arazzo Workflow

Mindee Poll Job With Failure Branch

Version 1.0.0

Enqueue an extraction, poll the job, and branch explicitly on Processed, Processing, or Failed before reading the result.

1 workflow 2 source APIs 1 provider
View Spec View on GitHub Document ParsingOCRIDPArtificial IntelligenceMachine-LearningInvoicesReceiptsIDSComputer-VisionArazzoWorkflows

Provider

mindee

Workflows

poll-job-with-failure-branch
Enqueue, poll, and branch on success or failure before reading the result.
Enqueues an extraction and polls the job, ending on Failed, looping on Processing, and reading the extracted fields on Processed.
3 steps inputs: authorization, file, modelId outputs: fields, jobId, jobStatus
1
enqueue
Send the document to the asynchronous extraction queue. Returns a job whose status begins as Processing.
2
pollJob
Poll the shared jobs endpoint and branch on the job status. Loop while Processing, end the workflow on Failed, and continue on Processed.
3
getResult
Retrieve the completed extraction inference and read the structured fields parsed from the document.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: Mindee Poll Job With Failure Branch
  summary: Enqueue an extraction, poll the job, and branch explicitly on Processed, Processing, or Failed before reading the result.
  description: >-
    A resilient variant of the Mindee polling pattern that handles the Failed
    terminal state as a first-class outcome rather than only the happy path.
    The workflow enqueues an extraction, repeatedly polls the shared jobs
    endpoint, and branches three ways on the job status: it loops while
    Processing, ends the workflow when the job has Failed, and proceeds to read
    the result only when Processed. This is the recommended pattern for
    unattended pipelines that must distinguish success from failure. 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: extractionApi
  url: ../openapi/mindee-extraction-api-openapi.yml
  type: openapi
- name: jobsApi
  url: ../openapi/mindee-jobs-api-openapi.yml
  type: openapi
workflows:
- workflowId: poll-job-with-failure-branch
  summary: Enqueue, poll, and branch on success or failure before reading the result.
  description: >-
    Enqueues an extraction and polls the job, ending on Failed, looping on
    Processing, and reading the extracted fields on Processed.
  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 extraction model to apply.
      file:
        type: string
        description: The document file to upload as binary form data.
  steps:
  - stepId: enqueue
    description: >-
      Send the document to the asynchronous extraction queue. Returns a job
      whose status begins as Processing.
    operationId: Enqueue_Extraction_Product_Inference_v2_products_extraction_enqueue_post
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    requestBody:
      contentType: multipart/form-data
      payload:
        model_id: $inputs.modelId
        file: $inputs.file
    successCriteria:
    - condition: $statusCode == 202
    outputs:
      jobId: $response.body#/job/id
  - stepId: pollJob
    description: >-
      Poll the shared jobs endpoint and branch on the job status. Loop while
      Processing, end the workflow on Failed, and continue on Processed.
    operationId: Get_Job_Status_v2_jobs__job_id__get
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: job_id
      in: path
      value: $steps.enqueue.outputs.jobId
    - name: redirect
      in: query
      value: false
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/job/status
      error: $response.body#/job/error
    onSuccess:
    - name: jobProcessed
      type: goto
      stepId: getResult
      criteria:
      - context: $response.body
        condition: $.job.status == "Processed"
        type: jsonpath
    - name: jobFailed
      type: end
      criteria:
      - context: $response.body
        condition: $.job.status == "Failed"
        type: jsonpath
    - name: jobPending
      type: goto
      stepId: pollJob
      criteria:
      - context: $response.body
        condition: $.job.status == "Processing"
        type: jsonpath
  - stepId: getResult
    description: >-
      Retrieve the completed extraction inference and read the structured
      fields parsed from the document.
    operationId: Get_Extraction_Product_Result_v2_products_extraction_results__inference_id__get
    parameters:
    - name: Authorization
      in: header
      value: $inputs.authorization
    - name: inference_id
      in: path
      value: $steps.enqueue.outputs.jobId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      inferenceId: $response.body#/inference/id
      fields: $response.body#/inference/result/fields
  outputs:
    jobId: $steps.enqueue.outputs.jobId
    jobStatus: $steps.pollJob.outputs.status
    fields: $steps.getResult.outputs.fields

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/mindee-poll-job-with-failure-branch-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.