Deploy your first API in under a minute. Upload a .zip file containing your handler code or import directly from a public GitHub repository. APIForge will automatically build, optimize, and deploy your application to a publicly available URL.
- Supported: Any HTTP framework (Express, Fastify, Koa, NestJS, etc.), using both CommonJS and ESM.
- Port Configuration: Your application must listen on the port
8080.
- Supported Framework: FastAPI (or any ASGI-compatible framework).
- Build System: Dependencies are resolved automatically via
requirements.txtorpyproject.toml. - System Libraries: A standard build environment (
build-essential) is provided. Custom OS-level libraries (likeffmpegor special database drivers that requireapt-get) are currently not supported.
To ensure APIForge can run your application without any code changes, your project must follow these simple structural conventions:
- Your
package.json(and ideallypackage-lock.json) must be in the root directory. - Your main entry point file must be named
index.jsand located in the root directory. - Your server must listen on
process.env.PORT.
// index.js Example
const express = require('express');
const app = express();
const port = 8080;
app.get('/', (req, res) => res.send('Hello from ApiForge!'));
app.listen(port, () => console.log(`Server running on port ${port}`));- Your dependency file (
requirements.txtorpyproject.toml) must be in the root directory. Note thatuvicornas an ASGI server is a required dependency. - Your main application file must be named
main.pyand located in the root directory. - Inside
main.py, your FastAPI instance variable must be namedapp.
# main.py Example
from fastapi import FastAPI
app = FastAPI() # Variable must be named 'app'
@app.get("/")
def read_root():
return {"message": "Hello from ApiForge!"}You can define custom environment variables directly in your project's deployment settings on the APIForge dashboard.
- Secret variables are encrypted at rest and injected into your runtime environment automatically. Note that they will not be rotated
- Never commit secrets, passwords, or
.envfiles to your repository. - Note for Node.js: The
PORTvariable is reserved by the platform and automatically managed for you.
| Resource | Limit | Description |
|---|---|---|
| Request Timeout | 5 seconds | Maximum time your API has to respond to an incoming request. |
| Payload Size | 6 MB | Maximum size for incoming HTTP request bodies and responses. |
| Concurrency | 1,000 | Maximum number of simultaneous requests handled before throttling. |