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
Step 2
Create a new API key or copy your existing one
Step 3
Paste the API key below
Required Credentials
Field Description Required Format fal.ai API Key Your fal.ai API key from https://fal.ai/dashboard/keys Yes xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Available Actions
add_request_to_queue — Adds a request to the queue for asynchronous processing, including specifying a webhook URL for receiving updates
Parameters The unique identifier for the fal.ai app/model (e.g. ‘lora’, ‘fast-sdxl’)
Input data for the model. Fields depend on the specific app/model being called
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"
}
cancel_request — Cancels a request in the queue to stop a long-running task that is no longer needed
Parameters The unique identifier for the fal.ai app/model
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"
}
get_request_response — Gets the response of a completed request in the queue to retrieve results of an asynchronous task
Parameters The unique identifier for the fal.ai app/model
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"
}
get_request_status — Gets the status of a request in the queue to monitor the progress of an asynchronous task
Parameters The unique identifier for the fal.ai app/model
The unique identifier for the request
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.
Links