fusio

Open Source API Management Made Easy

1976
231
PHP

Fusio

Open Source API Management Made Easy.

πŸš€ Use Cases

  • Database API Gateway

    Unlock legacy databases and expose them via modern REST APIs.

  • Custom Backend Logic for APIs

    Build and manage custom business logic tailored to your domain.

  • Gateway for Microservices

    Route, orchestrate, and secure traffic between internal services.

  • API Developer Portal

    Provide docs, testing, and SDKs for internal or external developers.

  • API Monetization

    Enable freemium or tiered access with quotas, limits, and billing hooks.

  • Fast API Prototyping

    Quickly scaffold APIs for testing, MVPs, or frontend-backend integration.

  • API Usage Analytics

    Monitor traffic, detect issues early, and understand API consumption.

  • Headless CMS Backend

    Manage and expose structured content to any frontend via APIs.

  • SDK Automation

    Automatically generate ready-to-use client SDKs (PHP, TypeScript, Python, etc.).

πŸ“¦ Quick Start

πŸ› οΈ Installation

  • Download artifact

    You can either download the official release or clone the repository.

    git clone https://github.com/apioo/fusio.git
    
  • Set up your .env

    Configure fitting database credentials at the APP_CONNECTION variable, all other parameters are optional.

    • MySQL: pdo-mysql://root:test1234@localhost/fusio
    • PostgreSQL: pdo-pgsql://postgres:postgres@localhost/fusio
    • SQLite: pdo-sqlite:///fusio.sqlite
  • Run migrations

    php bin/fusio migrate
    
  • Create administrator user

    After the installation is complete, you have to create a new administrator account. Choose as account type β€œAdministrator”.

    php bin/fusio adduser
    
  • Install backend app

    php bin/fusio marketplace:install fusio
    
  • Start via PHP built-in server

    This should be only used for testing, for production you need a classical Nginx/Apache setup or use Docker, take a look at our installation documentation for more details.

    php -S 127.0.0.1:8080 -t public
    

🌐 Web-Installer

Instead of manual installation you can also use the web installer script located at /install.php
to complete the installation. After installation, it is recommended to delete this β€œinstall” script.

🐳 Docker

To run Fusio with Docker you only need the official Fusio docker image
and a database. The following example shows a minimal docker-compose.yaml which you can use to run Fusio.

version: '3'
services:
  fusio:
    image: fusio/fusio
    restart: always
    environment:
      FUSIO_PROJECT_KEY: "42eec18ffdbffc9fda6110dcc705d6ce"
      FUSIO_CONNECTION: "pdo-mysql://fusio:61ad6c605975@mysql-fusio/fusio"
      FUSIO_BACKEND_USER: "test"
      FUSIO_BACKEND_EMAIL: "[email protected]"
      FUSIO_BACKEND_PW: "test1234"
    links:
      - mysql-fusio
    ports:
      - "8080:80"

  mysql-fusio:
    image: mysql:8.0
    restart: always
    environment:
      MYSQL_RANDOM_ROOT_PASSWORD: "1"
      MYSQL_USER: "fusio"
      MYSQL_PASSWORD: "61ad6c605975"
      MYSQL_DATABASE: "fusio"
    volumes:
      - ./db:/var/lib/mysql

🧩 Apps

Fusio includes a flexible app system that lets you install various web-based apps to support
different API-related use cases. These apps are typically simple JavaScript frontends that
interact with Fusio’s internal API.

You can browse all available apps in the Fusio Marketplace,
and install them using either the CLI:

php bin/fusio marketplace:install fusio

or directly through the backend interface.

πŸ–₯️ Backend

Backend

The backend app is the main app to configure and manage your API located at /apps/fusio/.

πŸ’‘ VSCode

Fusio provides a VSCode extension
which can be used to simplify action development.

πŸ”— Integration

🧰 SDK

To build and integrate applications with Fusio, you can use one of our officially supported SDKs, which simplify interaction with a Fusio instance. Alternatively, you can directly communicate with the REST API for full control and flexibility.

Language GitHub Package Example
C# GitHub NuGet Example
Go GitHub Example
Java GitHub Maven Example
Javascript GitHub NPM
PHP GitHub Packagist Example
Python GitHub PyPI Example

πŸ–₯️ Frontend

Framework GitHub Package Example
Angular GitHub NPM Example

πŸ“‘ REST API

Domain Documentation Specification
Backend ReDoc OpenAPI
Consumer ReDoc OpenAPI
System ReDoc OpenAPI

🌍 Ecosystem

Besides our core product, we offer additional services to augment the functionality of Fusio.

  • SDKgen
    SDKgen is a powerful code generator to automatically build client SDKs for your REST API.
  • APIgen
    Generate fully working and customizable APIs based on your data model.
  • APImon
    APImon provides an intuitive service to monitor and analyze API endpoints.
  • TypeSchema
    A JSON format to describe data models in a language neutral format.
  • TypeAPI
    An OpenAPI alternative to describe REST APIs for type-safe code generation.
  • TypeHub
    A collaborative platform to design and build API models and client SDKs.
  • PSX
    An innovative PHP framework dedicated to build fully typed REST APIs.

🏷️ Domains

By default, the entire Fusio project can be hosted on a single domain. In this setup:

This setup is quick to get started with and requires no additional configuration.
For production environments, we recommend a subdomain-based structure:

  • api.acme.com
    Hosts only the Fusio API. In this setup, you can safely remove the apps/ folder from the public/ directory.
  • developer.acme.com
    Hosts the Developer App, a portal where third-party developers can register, view documentation, and access their credentials.
  • fusio.acme.com (optional)
    Hosts the Backend App, used to manage your Fusio instance. You can also host this on a separate internal domain.

Note: This is just a suggested setup. You’re free to choose any domain or subdomain structure that best fits your infrastructure.

πŸ“š Documentation

Please check out our official documentation website where we bundle all documentation resources:

https://docs.fusio-project.org/

🀝 Support

πŸ’¬ Get Help

If you have questions or run into issues while using Fusio:

  • Open a discussion for general questions, feedback, or feature ideas.
  • Report bugs or technical problems via the issue tracker.
  • Join our Discord community to chat directly with the developers and other users.

If you’re a company or freelancer looking for more tailored help, please check out our consulting services below.


πŸ“£ Promotion & Media

Are you a blogger, writer, or run a developer-focused publication? We’d love for you to cover Fusio!

Visit the Media Page to download official icons for use in your articles or videos.


πŸ§‘β€πŸ« Consulting & Workshops

For companies or freelancers who want in-depth guidance on using and integrating Fusio:

  • We offer consulting services to help you evaluate whether Fusio fits your architecture.
  • Our workshops walk you through key functionality, answer your specific questions, and help identify the best integration approach.

Feel free to contact us for more details.


πŸ’– Support Fusio

If Fusio helps you build APIs faster or adds value to your projects, please consider supporting our work:

  • ⭐ Star the project on GitHub
  • β˜• Sponsor via GitHub
  • πŸ’¬ Spread the word on social media or write about Fusio

Every bit of support helps us continue improving the platform!


🀝 Project Partners

We’re grateful to our partners who support the Fusio project and share our vision of advancing open API development.

If your company is interested in becoming a partner and being listed here, consider becoming a sponsor.