Skip to content

Artificial Intelligence · Beta

fal
API integration

Ship Artificial Intelligence features without building the integration. Full fal API access via Proxy and 70+ MCP-ready tools for AI agents — extend models and mappings to fit your product.

Built for specific customer use cases. Issues are resolved quickly.

Talk to us
fal

Use Cases

Why integrate with fal

Common scenarios for SaaS companies building fal integrations for their customers.

01

Offer BYOA generative media inside your SaaS

Let your customers connect their own fal accounts so your product can run image, video, and voice generation on their compute budget — without you managing GPU infrastructure or API keys.

02

Pass through AI compute costs per tenant

Pull fal's usage, pricing, and billing events into your platform to attribute exact per-run costs to each customer, deduct credits, or mark up compute in your own billing dashboard.

03

Sync fal-generated assets into your DAM

Mirror fal's assets, collections, characters, and tags into your product so users manage AI outputs alongside their existing content library instead of jumping between tools.

04

Ship observability for AI workflows

Surface latency, queue depth, and live logs from fal's serverless infrastructure inside your app so your users can debug generation pipelines without leaving your product.

05

Provision dedicated compute for enterprise tenants

For enterprise customers who need dedicated GPUs or hosted fine-tunes, programmatically create and manage fal compute instances scoped to each tenant.

What You Can Build

Ship these features with Truto + fal

Concrete product features your team can ship faster by leveraging Truto’s fal integration instead of building from scratch.

01

Dynamic model picker with cost preview

Populate a model dropdown from list_all_fal_models and show users a live cost estimate via create_a_fal_pricing_estimate before they run a batch job.

02

Character consistency library

Let users register reference characters through create_a_fal_assets_character and reuse them across prompts for consistent avatars, mascots, or product models.

03

Semantic asset search inside your app

Expose fal's native text, image, and video similarity search via list_all_fal_assets so users can find similar generations without you running a vector database.

04

Workflow orchestration for multi-step pipelines

Create and trigger chained generation workflows using create_a_fal_workflow — for example background removal → variant generation → signed CDN delivery via create_a_fal_files_sign.

05

Per-tenant AI spend dashboard

Combine list_all_fal_models_usages, list_all_fal_models_billing_events, and list_all_fal_serverless_usages into a tenant-scoped cost report inside your billing UI.

06

Live generation telemetry

Stream fal.ai serverless metrics, queue status, and logs via list_all_fal_serverless_metrics, list_all_fal_queues, and create_a_fal_logs_stream to power a real-time debugging panel.

SuperAI

fal AI agent tools

Comprehensive AI agent toolset with fine-grained control. Integrates with MCP clients like Cursor and Claude, or frameworks like LangChain.

list_all_fal_models

List and search fal model endpoints. Returns a model object with endpoint_id and metadata. No required parameters. Supports filtering by endpoint_id, q, category, status, and expand.

list_all_fal_models_pricings

List pricing for fal model endpoints. Returns: next_cursor, has_more, prices. Accepts 1-50 endpoint IDs. Required: endpoint_id.

create_a_fal_pricing_estimate

Estimate usage costs for fal endpoints. Returns: estimate_type, total_cost, currency. Use historical_api_price with call_quantity per endpoint, or unit_price with unit_quantity per endpoint.

list_all_fal_models_usages

List fal model usage records for your workspace. Returns paginated time_series buckets, next_cursor, and has_more. Optional: start, end, endpoint_id, api_key_id, login_username, timeframe, expand.

list_all_fal_models_analytics

List time-bucketed analytics for fal model endpoints. Returns time_series buckets with per-bucket metrics (request_count, success_count, latency percentiles, error breakdowns), plus next_cursor and has_more. Use expand to choose which metrics are populated. Required: endpoint_id.

list_all_fal_models_billing_events

List individual billing events in fal. Returns: next_cursor, has_more, billing_events. Date range capped at 90 days and max 10,000 records per page.

fal_request_payloads_bulk_delete

Delete request payloads and CDN output files for a specific fal.ai request. Returns: cdn_delete_results. Only output CDN files are deleted; input files may be shared with other requests. This action is irreversible. Required: request_id.

list_all_fal_models_requests_by_endpoints

List requests by endpoint for one or more fal models. Returns: request_id, endpoint_id, started_at, sent_at, ended_at, status_code, duration, json_input, json_output. Accepts 1-50 endpoint IDs as comma-separated values. Defaults to the last 24 hours unless request_id is provided. Required: endpoint_id.

list_all_fal_serverless_requests_by_endpoints

List serverless requests for one or more fal endpoints owned by the authenticated user. Returns: request_id, endpoint_id, started_at, sent_at, ended_at, status_code, duration, json_input, json_output, runner_id, billable_units. Supports 1–50 endpoint IDs. Required: endpoint_id.

list_all_fal_requests_searches

Search and filter your fal request history. Supports semantic search via query, image_url, or video_url; filtered browse; or a combination of both. Returns request items with request_id, endpoint_id, started_at, sent_at, status_code, and duration. Optional: endpoint_id, endpoint, exclude_api_requests, only_api_requests, min_similarity. query, image_url, and video_url are mutually exclusive.

list_all_fal_workflows

List workflows for the authenticated fal user. Returns: name, title, user_nickname, created_at, thumbnail_url, description, tags, endpoint_ids. Supports optional search by name or title and filtering by used_endpoint_ids.

create_a_fal_workflow

Create a new workflow in fal. Returns the created workflow including name, title, user_nickname, created_at, is_public, and contents. Workflow names must be unique within your namespace. Required: name, title, contents.

get_single_fal_workflow_by_id

Get detailed information about a specific fal workflow, including its full contents/definition. Returns the workflow object including its name, title, user_nickname, created_at, is_public, and contents. Required: username, workflow_name.

list_all_fal_assets

Browse and semantically search fal assets across media, uploads, favorites, collections, tags, and character references. Returns asset records with vector_id, request_id, url, type, title, endpoint, created_at, source, prompt, width, height, content_type, is_favorited, collection_ids, tags, and similarity.

get_single_fal_asset_by_id

Get a single fal asset by vector id. Returns the asset object under the `asset` key, including vector_id, request_id, url, type, title, endpoint, created_at, source, prompt, width, height, content_type, is_favorited, collection_ids, tags, and similarity. Required: id.

list_all_fal_asset_tags

List asset tags for a fal asset by vector id. Returns each tag with id, name, and created_at. Vectors not saved as assets return an empty list. Required: vector_id.

list_all_fal_assets_collections

List asset collections in the authenticated user's fal Assets library. Returns: collections, name, description.

create_a_fal_assets_collection

Create an asset collection in the authenticated user's fal Assets library. Returns: collection, name, description. Required: name.

get_single_fal_assets_collection_by_id

Get an asset collection by id from the authenticated user's fal Assets library. Returns: collection, id, type, name, description, icon, color, cover_image_url, character_identifier, parent_collection_id, is_favorited, filters, asset_count, created_at, updated_at. Required: id.

update_a_fal_assets_collection_by_id

Update an asset collection by id in the authenticated user's fal Assets library. Returns: collection, id, type, name, description, icon, color, cover_image_url, character_identifier, parent_collection_id, is_favorited, filters, asset_count, created_at, updated_at. Required: id.

delete_a_fal_assets_collection_by_id

Delete an asset collection by id from the authenticated user's fal Assets library. Returns an empty 204 response on success. Required: id.

create_a_fal_collection_favorite

Favorite an asset collection in the authenticated user's fal Assets library. Returns the collection object with its id, name, type, is_favorited status, and timestamps. Required: collection_id.

create_a_fal_collection_unfavorite

Unfavorite an asset collection in fal. Returns the collection with id, name, type, is_favorited, and updated_at. Required: collection_id.

create_a_fal_collection_move

Move a manual asset collection in fal under another collection or to the top level. Returns the moved collection object including its id, type, name, parent_collection_id, and updated_at. Only manual collections can be moved; nesting is limited to 5 levels and cannot create a cycle. Required: collection_id, parent_collection_id.

list_all_fal_collection_assets

Browse assets in a fal collection. Returns: assets, next_cursor, has_more, total_count. Supports semantic text/image/video search and filters for media_type, source, section, tag_id, and tag_mode. Required: collection_id.

create_a_fal_collection_asset

Add an asset to a fal collection. Returns: success. Provide either request_id or vector_id. Required: collection_id.

fal_collection_assets_bulk_delete

Remove an asset from a fal collection. Returns an empty 204 response on success. Provide either request_id or vector_id. Required: collection_id.

list_all_fal_assets_characters

List asset characters in the authenticated user's fal Assets library. Returns each character's id, name, type, description, reference_images, is_favorited, created_at, updated_at, and asset_count.

create_a_fal_assets_character

Create an asset character in the authenticated user's fal Assets library. Returns the new character object including id, name, type, description, reference_images, created_at, and updated_at. Required: name, description, reference_images.

get_single_fal_assets_character_by_id

Get a single asset character by id from the authenticated user's fal Assets library. Returns the character object including id, name, type, description, reference_images, created_at, and updated_at. Required: id.

update_a_fal_assets_character_by_id

Update an asset character in the authenticated user's fal Assets library. Returns the updated character object including id, name, type, description, reference_images, created_at, and updated_at. Required: id.

delete_a_fal_assets_character_by_id

Delete an asset character by id from the authenticated user's fal Assets library. Returns an empty 204 response on success. Required: id.

create_a_fal_character_favorite

Favorite a fal asset character in the authenticated user's Assets library. Returns the favorited character object including its id, name, is_favorited, created_at, and updated_at. Required: character_id.

create_a_fal_character_unfavorite

Unfavorite a character in fal Assets. Returns the `character` record with id, name, type, is_favorited, and created_at. Required: character_id.

list_all_fal_assets_tags

List asset tags in the authenticated user's fal Assets library. Returns: id, name, created_at.

create_a_fal_assets_tag

Create an asset tag in the authenticated user's fal Assets library. Returns: tag, name. Required: name.

fal_assets_tags_bulk_update

Set the full replacement set of tags for an asset in fal. Returns: tags. Required: tag_ids.

update_a_fal_assets_tag_by_id

Update an asset tag in the authenticated user's fal Assets library. Returns: tag. Required: id.

delete_a_fal_assets_tag_by_id

Delete an asset tag in the authenticated user's fal Assets library by id. Returns an empty 204 response on success. Required: id.

fal_assets_tags_assign

Assign a tag to a fal asset. Provide a request_id or vector_id to identify the asset; unresolved references are materialized before the tag is added. Returns: success. Required: tag_id.

fal_assets_tags_unassign

Remove a tag from a fal asset. Provide a request_id or vector_id to identify the asset. Returns an empty 204 response on success. Required: tag_id.

create_a_fal_assets_upload

Upload a media asset to the authenticated user's fal Assets library. Returns the uploaded asset in the `asset` field (vector_id, type, url, created_at, tags, and collection_ids). Required: url, type.

create_a_fal_assets_favorite

Favorite an asset in fal by providing request_id or vector_id. Unresolved references are materialized before the favorite state is applied. Returns: is_favorited.

create_a_fal_assets_unfavorite

Unfavorite a fal asset by request_id or vector_id. Returns: is_favorited.

list_all_fal_files_acls

Get the Access Control List currently applied to a fal CDN file. Returns the ACL object including default decision and rules with per-user user and decision values. Required: url.

fal_files_acls_bulk_update

Replace the Access Control List of a fal CDN file. Returns the ACL object including default decision and rules with per-user user and decision values. Rules referencing unknown users are dropped. Required: url, default.

create_a_fal_files_sign

Create a signed URL for a fal CDN file. Returns: signed_url. expiration_seconds must be between 1 and 604800 seconds (7 days). Required: url, expiration_seconds.

list_all_fal_storage_settings

Get the account-level fal storage settings applied to newly uploaded CDN files. Returns: expiration_duration_seconds, initial_acl. Both fields are null if settings have never been saved.

fal_storage_settings_bulk_update

Replace the account-level fal storage settings for newly uploaded CDN files. Returns: expiration_duration_seconds, initial_acl.default, and initial_acl.rules. Send the full configuration because omitted or null fields are reset to system defaults.

list_all_fal_serverless_analytics

List time-bucketed analytics for your fal serverless endpoints. Returns time_series buckets and pagination fields next_cursor and has_more. expand must include at least one of time_series or summary plus a metric. Required: endpoint_id.

list_all_fal_queues

Get the current queue size for a specific fal application. Returns the app queue status object, which contains only queue_size, the number of pending requests. Required: owner, name.

fal_queues_bulk_delete

Flush all pending requests from a fal application queue. Returns an empty 204 response on success. This operation is irreversible and cancels pending requests; in-progress requests are not affected. Required: owner, name.

list_all_fal_files_lists

List files and folders in the root of your fal project storage. Returns: path, name, created_time, updated_time, is_file, size, checksum_sha256, checksum_md5.

get_single_fal_files_list_by_id

List files and folders in a specific fal project directory. Returns: path, name, created_time, updated_time, is_file, size, checksum_sha256, checksum_md5. Required: dir.

list_all_fal_files

Download a file from fal by its path. Returns the raw file stream as application/octet-stream. Required: file.

create_a_fal_file_url

Upload a file into fal from a publicly accessible URL. Returns a boolean indicating whether the upload was initiated successfully. Required: file, url.

create_a_fal_file_local

Upload a local file to fal. Returns a boolean success flag on completion. Optionally set unzip to true to extract ZIP uploads. Required: target_path.

list_all_fal_serverless_metrics

Get Prometheus-compatible serverless metrics from fal. Returns a plain-text Prometheus exposition format string containing runner, queue, request, and latency metrics. No caller parameters required.

create_a_fal_logs_history

Retrieve paginated historical log entries from fal. Returns: next_cursor, has_more, items. All query parameters are optional; label filter objects require key and value.

create_a_fal_logs_stream

Start a live Server-Sent Events stream of fal logs matching the provided filters. Returns a text/event-stream of log entries including timestamp, level, message, app, revision, and labels.

list_all_fal_serverless_usages

List time-bucketed serverless compute usage for your fal account. Returns next_cursor, has_more, and time_series with app, machine_type, quantity, cost, currency, and is_surge. Filter by start, end, app, search, timeframe, timezone, and expand.

list_all_fal_compute_instances

List compute instances in fal. Returns: next_cursor, has_more, instances.

create_a_fal_compute_instance

Create a new compute instance in fal. Returns the created instance including id, instance_type, region, and status. Required: instance_type, ssh_key.

get_single_fal_compute_instance_by_id

Get a single compute instance by id in fal. Returns: id, instance_type, region, sector, ip, status, creator_user_nickname. Required: id.

delete_a_fal_compute_instance_by_id

Delete a compute instance by id in fal. Returns an empty 204 response on success. Required: id.

list_all_fal_keys

List fal API keys in the authenticated workspace. Returns: next_cursor, has_more, keys.

create_a_fal_key

Create a new fal API key with a friendly alias. Returns: key_id, key_secret, key. The key_secret is returned only once. Required: alias.

delete_a_fal_key_by_id

Delete a fal API key by id. Returns an empty 204 response on success. Deletion is irreversible and idempotent. Required: id.

list_all_fal_account_billings

Get billing information for the authenticated fal account. Returns: username, credits. The credits object includes current_balance and currency when expanded. Optional: expand.

list_all_fal_account_focus

Download a FOCUS compliant billing report from fal. Returns a CSV report containing usage charges, credits, and taxes. Enterprise-only; usage estimates support a maximum 90-day lookback. Required: source.

list_all_fal_account_model_access_controls

Download the model access controls report for your fal organization. Returns a CSV string with endpoint ID, title, category, enterprise readiness, and resolved UI and API access states (ALLOWED or BLOCKED). Enterprise customers with model access controls enabled only.

list_all_fal_organization_teams

List all teams in your fal organization. Returns the teams array, where each team includes username, name, is_org_root, and created_at. Enterprise organizations only.

list_all_fal_organization_usages

List organization-wide usage records across all fal teams and product lines. Returns: next_cursor, has_more, time_series, summary. Supports filtering by team, product, endpoint, and date range. At least one of 'time_series' or 'summary' must be requested via expand. Enterprise-only.

list_all_fal_metas

Get platform metadata from fal. Returns: webhook_ip_ranges.

Why Truto

Why use Truto’s MCP server for fal

Other MCP servers give you a static tool list for one app. Truto gives you a managed, multi-tenant MCP infrastructure across 600+ integrations.

01

Auto-generated, always up to date

Tools are dynamically generated from curated documentation — not hand-coded. As integrations evolve, tools stay current without manual maintenance.

02

Fine-grained access control

Scope each MCP server to read-only, write-only, specific methods, or tagged tool groups. Expose only what your AI agent needs — nothing more.

03

Multi-tenant by design

Each MCP server is scoped to a single connected account with its own credentials. The URL itself is the auth token — no shared secrets, no credential leaking across tenants.

04

Works with every MCP client

Standard JSON-RPC 2.0 protocol. Paste the URL into Claude, ChatGPT, Cursor, or any MCP-compatible agent framework — tools are discovered automatically.

05

Built-in auth, rate limits, and error handling

Tool calls execute through Truto’s proxy layer with automatic OAuth refresh, rate-limit handling, and normalized error responses. No raw API plumbing in your agent.

06

Expiring and auditable servers

Create time-limited MCP servers for contractors or automated workflows. Optional dual-auth requires both the URL and a Truto API token for high-security environments.

How It Works

From zero to integrated

Go live with fal in under an hour. No boilerplate, no maintenance burden.

01

Link your customer’s fal account

Use Truto’s frontend SDK to connect your customer’s fal account. We handle all OAuth and API key flows — you don’t need to create the OAuth app.

02

We handle authentication

Don’t spend time refreshing access tokens or figuring out secure storage. We handle it and inject credentials into every API request.

03

Call our API, we call fal

Truto’s Proxy API is a 1-to-1 mapping of the fal API. You call us, we call fal, and pass the response back in the same cycle.

04

Unified response format

Every response follows a single format across all integrations. We translate fal’s pagination into unified cursor-based pagination. Data is always in the result attribute.

FAQs

Common questions about fal on Truto

Authentication, rate limits, data freshness, and everything else you need to know before you integrate.

How do end users authenticate their fal account?

fal uses API key authentication. Your users generate a key in their fal dashboard and paste it into your app — Truto stores and rotates the credential per connected account, so your backend never handles it directly.

Can we manage fal API keys programmatically?

Yes. The list_all_fal_keys, create_a_fal_key, and delete_a_fal_key_by_id tools let you provision or revoke keys on behalf of a connected account, which is useful for scoping access per workspace or environment.

How do we track cost per generation for billing passthrough?

Use list_all_fal_models_pricings and create_a_fal_pricing_estimate for pre-run estimates, then reconcile with list_all_fal_models_usages and list_all_fal_models_billing_events after execution to get authoritative per-run costs.

Does Truto support fal's real-time log streaming?

Yes. create_a_fal_logs_stream exposes fal's live log stream, and create_a_fal_logs_history covers historical retrieval — you can pipe both into your own observability UI.

Can we upload user files into fal from our app?

Yes. Use create_a_fal_assets_upload, create_a_fal_file_url, or create_a_fal_file_local to push user content into fal's storage, and create_a_fal_files_sign to generate signed URLs for secure downstream access.

How do we provision dedicated compute for enterprise customers?

create_a_fal_compute_instance provisions a dedicated fal serverless instance, while get_single_fal_compute_instance_by_id and delete_a_fal_compute_instance_by_id let you inspect and tear down instances per tenant.

fal

Get fal integrated into your app

Our team understands what it takes to make a fal integration successful. A short, crisp 30 minute call with folks who understand the problem.