@fal-ai/server-proxy

中文文档
1.3.0发布于 2026/11/14MITTypeScriptCommonJS构建来源已验证近 30 天下载 8万

The fal.ai server proxy adapter for JavaScript and TypeScript Web frameworks

原始使用文档
文档目录9 节
  1. Introduction
  2. Install the proxy library:
  3. Next.js page router integration
  4. Next.js app router integration
  5. Express integration
  6. Client configuration
  7. Backup domains
  8. More information
  9. Server runtime certificate update

fal.ai proxy library

@fal-ai/server-proxy npm package

Introduction

The @fal-ai/server-proxy library enables you to route client requests through your own server, therefore safeguarding sensitive credentials. With built-in support for popular frameworks like Next.js and Express, setting up the proxy becomes a breeze.

Install the proxy library:

npm install --save @fal-ai/server-proxy

Next.js page router integration

For Next.js applications using the page router:

  1. Create an API route in your Next.js app, as a convention we suggest using pages/api/fal/proxy.js (or .ts if you're using TypeScript):
  2. Re-export the proxy handler from the library as the default export:
    export { handler as default } from "@fal-ai/server-proxy/nextjs";
    
  3. Ensure you've set the FAL_KEY as an environment variable in your server, containing a valid API Key.

Next.js app router integration

For Next.js applications using the app router:

  1. Create an API route in your Next.js app, as a convention we suggest using app/api/fal/proxy/route.js (or .ts if you're using TypeScript):

  2. Re-export the proxy handler from the library as the default export:

    import { route } from "@fal-ai/server-proxy/nextjs";
    
    export const { GET, POST, PUT } = route;
    
  3. Ensure you've set the FAL_KEY as an environment variable in your server, containing a valid API Key.

Express integration

For Express applications:

  1. Make sure your app supports JSON payloads, either by using express.json() (recommended) or body-parser:

    app.use(express.json());
    
  2. Add the proxy route and its handler. Note that if your client lives outside of the express app (i.e. the express app is solely used as an external API for other clients), you will need to allow CORS on the proxy route:

    import * as falProxy from "@fal-ai/server-proxy/express";
    
    app.all(
      falProxy.route, // '/api/fal/proxy' or you can use your own
      cors(), // if external clients will use the proxy
      falProxy.handler,
    );
    
  3. Ensure you've set the FAL_KEY as an environment variable in your server, containing a valid API Key.

Client configuration

Once you've set up the proxy, you can configure the client to use it:

import { fal } from "@fal-ai/client";

fal.config({
  proxyUrl: "/api/fal/proxy", // or https://my.app.com/api/fal/proxy
});

Now all your client calls will route through your server proxy, so your credentials are protected.

By default, the proxy middleware only runs in browser environments — requests made from Node, Electron, Bun, or edge/worker runtimes are sent directly to the fal API. To opt into the proxy in these runtimes, pass an object instead of a string:

fal.config({
  proxyUrl: {
    url: "/api/fal/proxy",
    when: "always",
  },
});

when accepts:

  • "browser" — only in environments with a DOM window (default).

  • "always" — in every runtime.

  • (env) => boolean — a custom predicate. env is { isBrowser: boolean }, so you can layer your own checks — for example, routing through the proxy only from an Electron renderer process:

    fal.config({
      proxyUrl: {
        url: "/api/fal/proxy",
        when: ({ isBrowser }) => isBrowser || (typeof process !== "undefined" && process.type === "renderer"),
      },
    });
    

Backup domains

When the proxy cannot connect to a fal inference gateway, it retries the request once against a backup domain:

PrimaryBackup
fal.runfalrun.com
queue.fal.runqueue.falrun.com

Only DNS and connection-establishment failures trigger the fallback. HTTP error responses, failures after the gateway has answered, and caller cancellation are passed through unchanged. Node error codes make that distinction; edge runtimes report a bare network error for both, so there a delivered request that got no response is also retried on the backup host.

The Fetch API has no connect-phase timeout, so with an unreachable primary the proxy waits for the runtime's own connect timeout (about 10 seconds in Node) before trying the backup.

If your server restricts outbound traffic, allow the backup domains as well. Target URLs are validated against the allowlist before any fallback, so the backup domains do not need to be in allowedUrlPatterns.

More information

For a deeper dive into the proxy library and its capabilities, explore the official documentation.

Server runtime certificate update

Run proxy hosts on fixed Node: 22.23.4+ on Node 22, 24.22.1+ on Node 24, or 26.12.1+ on Node 26. Redeploy and restart existing processes. Package engine requirements do not update the deployed runtime. Check explicit CA overrides, custom fetch clients, and managed runtime trust separately; confirm both affected eMudhra/AAA chain families fail certificate validation while legitimate HTTPS continues to work.

版本与发布记录

@fal-ai/server-proxy 共发布 17 个版本,首次发布于 2024/10/01;过去 12 个月发布了 6 个版本。最新版本附带 npm provenance 构建来源证明,可追溯到公开的 CI 构建记录。

版本发布日期距今
1.3.0latest2026/11/14今天
1.3.0-alpha.1alpha2026/11/14今天
1.3.0-alpha.02026/08/292 个月前
1.2.12026/02/208 个月前
1.2.02026/02/039 个月前
1.1.22025/12/1810 个月前

关于 @fal-ai/server-proxy 的常见问题

@fal-ai/server-proxy 是什么?

The fal.ai server proxy adapter for JavaScript and TypeScript Web frameworks

如何安装 @fal-ai/server-proxy?

在项目目录运行 npm install @fal-ai/server-proxy,或使用 pnpm add / yarn add / bun add。

@fal-ai/server-proxy 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@fal-ai/server-proxy 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@fal-ai/server-proxy 可以商用吗?

@fal-ai/server-proxy 使用 MIT 许可。宽松许可:允许商业使用、修改和再分发,通常只需在分发时保留原版权与许可声明。以上为概括,不构成法律意见,请以许可原文为准。

@fal-ai/server-proxy 的下载量有多少?

根据 npm 官方下载统计,@fal-ai/server-proxy 在 2026/10/14 – 2026/11/12 这 30 天内被下载 79,608 次,日均约 2,654 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@fal-ai/server-proxy 还在维护吗?

最新版本 1.3.0 发布于 2026/11/14(今天);至今共发布 17 个版本,其中过去 12 个月发布了 6 个;首次发布于 2024/10/01。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。