Skip to main content
fal.ai logo

Overview

Add fal.ai to any ModuleX agent or workflow. Queue-based AI model inference via the fal.ai platform API (queue.fal.run/fal-ai). Submit requests to run generative AI models asynchronously, monitor their status, retrieve results, and cancel pending tasks.
Categories: AI & Machine Learning · Generative AI · Auth: API Key · Actions: 4

Authentication

API Key Authentication

Authenticate using your fal.ai API key
1

Step 1

2

Step 2

Create a new API key or copy your existing one
3

Step 3

Paste the API key below

Required Credentials

FieldDescriptionRequiredFormat
fal.ai API KeyYour fal.ai API key from https://fal.ai/dashboard/keysYesxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Available Actions

Parameters

app_id
string
required
The unique identifier for the fal.ai app/model (e.g. ‘lora’, ‘fast-sdxl’)
data
object
required
Input data for the model. Fields depend on the specific app/model being called
webhook_url
string
Optional URL to receive webhook updates about the request status

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "request_id": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Request Id"
    },
    "response_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Response Url"
    },
    "status_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status Url"
    },
    "cancel_url": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Cancel Url"
    }
  },
  "required": [
    "success"
  ],
  "title": "AddRequestToQueueOutput",
  "type": "object"
}

Parameters

app_id
string
required
The unique identifier for the fal.ai app/model
request_id
string
required
The unique identifier for the request to cancel

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    }
  },
  "required": [
    "success"
  ],
  "title": "CancelRequestOutput",
  "type": "object"
}

Parameters

app_id
string
required
The unique identifier for the fal.ai app/model
request_id
string
required
The unique identifier for the request

Response

{
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "data": {
      "anyOf": [
        {
          "additionalProperties": true,
          "type": "object"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Data"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetRequestResponseOutput",
  "type": "object"
}

Parameters

app_id
string
required
The unique identifier for the fal.ai app/model
request_id
string
required
The unique identifier for the request
logs
boolean
Whether to include logs in the status response

Response

{
  "$defs": {
    "LogEntry": {
      "additionalProperties": false,
      "description": "A log entry from a queued request's status.",
      "properties": {
        "message": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Message"
        },
        "level": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Level"
        },
        "timestamp": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "default": null,
          "title": "Timestamp"
        }
      },
      "title": "LogEntry",
      "type": "object"
    }
  },
  "additionalProperties": false,
  "properties": {
    "success": {
      "title": "Success",
      "type": "boolean"
    },
    "error": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Error"
    },
    "status": {
      "anyOf": [
        {
          "type": "string"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Status"
    },
    "queue_position": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ],
      "default": null,
      "title": "Queue Position"
    },
    "logs": {
      "items": {
        "$ref": "#/$defs/LogEntry"
      },
      "title": "Logs",
      "type": "array"
    }
  },
  "required": [
    "success"
  ],
  "title": "GetRequestStatusOutput",
  "type": "object"
}

Limits & Quotas

  • Rate limits depend on your fal.ai plan tier (free tier has limited concurrent requests).
  • Requests are queued; queue position is returned in status responses.
  • Error model: non-2xx responses and timeouts are caught and returned as success=False + error rather than raising.

Amazon Alexa

Browser Use

ElevenLabs