fal · Arazzo Workflow

fal Queue Inference

Version 1.0.0

Submit a model inference job, poll the queue until it completes, then fetch the result.

1 workflow 1 source API 1 provider
View Spec View on GitHub Artificial IntelligenceGenerative AIGenerative MediaImage-GenerationVideo GenerationAudio GenerationInferenceServerlessGPUMCPArazzoWorkflows

Provider

fal-ai

Workflows

queue-inference
Run a generative model through the fal queue and return its output.
Submits an inference request to a fal-hosted model, waits for the queued job to finish by polling its status, and returns the completed result payload once the status is COMPLETED.
3 steps inputs: input, modelName, modelOwner outputs: requestId, result
1
submitJob
Submit the model-specific input to the named model and capture the request_id returned by the queue.
2
pollStatus
Poll the request status until the job leaves the queue and reaches a terminal COMPLETED state. Re-enters itself while still IN_QUEUE or IN_PROGRESS.
3
fetchResult
Retrieve the final inference output for the completed request.

Source API Descriptions

Arazzo Workflow Specification

Raw ↑
arazzo: 1.0.1
info:
  title: fal Queue Inference
  summary: Submit a model inference job, poll the queue until it completes, then fetch the result.
  description: >-
    The canonical fal queue-based inference pattern. The workflow submits a
    model-specific JSON input to the named model, captures the returned
    request_id, polls the request status endpoint until the job reaches a
    terminal COMPLETED state, and then retrieves the final inference output.
    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
  x-realizes-capability-ids:
  - BC-610.60
  x-capability-derivation:
    method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
    min_confidence: 0.7
    sources:
    - capability_id: BC-610.60
      capability_name: Artificial Intelligence Management
      spec: fal-ai-queue-api-openapi.yml
      confidence: 0.7
    model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: queueApi
  url: ../openapi/fal-ai-queue-api-openapi.yml
  type: openapi
workflows:
- workflowId: queue-inference
  summary: Run a generative model through the fal queue and return its output.
  description: >-
    Submits an inference request to a fal-hosted model, waits for the queued
    job to finish by polling its status, and returns the completed result
    payload once the status is COMPLETED.
  inputs:
    type: object
    required:
    - modelOwner
    - modelName
    - input
    properties:
      modelOwner:
        type: string
        description: Owning organization of the model (e.g. "fal-ai").
      modelName:
        type: string
        description: Model identifier (e.g. "flux/schnell").
      input:
        type: object
        description: Model-specific JSON input (prompt, image_url, seed, etc.).
  steps:
  - stepId: submitJob
    description: >-
      Submit the model-specific input to the named model and capture the
      request_id returned by the queue.
    operationId: submitRequest
    parameters:
    - name: model_owner
      in: path
      value: $inputs.modelOwner
    - name: model_name
      in: path
      value: $inputs.modelName
    requestBody:
      contentType: application/json
      payload: $inputs.input
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      requestId: $response.body#/request_id
      status: $response.body#/status
  - stepId: pollStatus
    description: >-
      Poll the request status until the job leaves the queue and reaches a
      terminal COMPLETED state. Re-enters itself while still IN_QUEUE or
      IN_PROGRESS.
    operationId: getRequestStatus
    parameters:
    - name: model_owner
      in: path
      value: $inputs.modelOwner
    - name: model_name
      in: path
      value: $inputs.modelName
    - name: request_id
      in: path
      value: $steps.submitJob.outputs.requestId
    - name: logs
      in: query
      value: 1
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      status: $response.body#/status
    onSuccess:
    - name: completed
      type: goto
      stepId: fetchResult
      criteria:
      - context: $response.body
        condition: $.status == "COMPLETED"
        type: jsonpath
    - name: stillRunning
      type: goto
      stepId: pollStatus
      criteria:
      - context: $response.body
        condition: $.status == "IN_QUEUE" || $.status == "IN_PROGRESS"
        type: jsonpath
  - stepId: fetchResult
    description: >-
      Retrieve the final inference output for the completed request.
    operationId: getRequestResult
    parameters:
    - name: model_owner
      in: path
      value: $inputs.modelOwner
    - name: model_name
      in: path
      value: $inputs.modelName
    - name: request_id
      in: path
      value: $steps.submitJob.outputs.requestId
    successCriteria:
    - condition: $statusCode == 200
    outputs:
      result: $response.body
  outputs:
    requestId: $steps.submitJob.outputs.requestId
    result: $steps.fetchResult.outputs.result

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/fal-ai-queue-inference-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.