Fabric API: the shared hook layer every Fabric mod builds on
Essential hooks for modding with Fabric.
At a glance
- What is it?
- Fabric API is a Java library mod that supplies the events, registries and rendering hooks Fabric mods share. This covers what it provides, how to install it as a player or pull it in as a developer, and where it stops being the right tool.
- Who is it for?
- Adopt Fabric API if you are running or writing Fabric mods; it is the interoperability layer most of them assume is present, and skipping it is a common cause of a mod that loads but does nothing. Do not adopt it expecting a Forge or NeoForge equivalent, and do not expect it to be a mod loader, since Fabric Loader is a separate project it requires.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly Java, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The gap Fabric API fills between the loader and your mods
Fabric Loader is described in the README as the (mostly) version-independent mod loader that powers Fabric. Loader gets mods into the game. It does not give them a shared vocabulary. Two mods that both want to react to a player joining a world, or both want to add a biome, have nothing in common to build on unless something supplies the events and the registration plumbing. That something is Fabric API, which the README calls the library for essential hooks and interoperability mechanisms for Fabric mods.
The audience splits cleanly. Players install it because individual mods declare a dependency on it and will not function without it. Developers add it as a build dependency because writing a mixin against raw Minecraft internals for every common need is wasted effort, and because two mods that each invent their own particle or dimension handling cannot interoperate. The README lists the concrete categories: exposing functionality that is useful but difficult to access, such as particles, biomes and dimensions; adding events, hooks and APIs to improve interoperability between mods; essential features such as registry synchronization and adding information to crash reports; and an advanced rendering API designed for compatibility with optimization mods and graphics overhaul mods.
Modular by design, and why the module list matters to you
Fabric API is not one monolith. The README states it is designed to be modular for ease of updating, which also splits the codebase into smaller chunks. The repository root confirms this: it holds dozens of directories, each one a module, from fabric-api-base and fabric-lifecycle-events-v1 through fabric-networking-api-v1, fabric-renderer-api-v1, fabric-registry-sync-v0, fabric-loot-api-v3 and fabric-transfer-api-v1, among many others. Each module is supposed to carry its own README explaining its purpose, though the main README is candid that this documentation work is incomplete: the README for each module is being worked on; not every module has a README at the moment.
That incompleteness is the single biggest practical friction for developers. The module names tell you roughly what area each covers, but the version suffix (v0, v1, v2, v3) is a real signal, not decoration. It indicates that the API surface for that area has been revised, and older mods may still target an earlier revision. When you are reading a mod's source to understand which Fabric API pieces it needs, expect to consult the module directories themselves rather than a single consolidated reference.
There is also a deprecated directory at the repository root, which is where superseded API surfaces live. If you are porting an older mod forward, that directory is the first place to look when a symbol you depended on has vanished from its original module.
Installing Fabric API to play with mods
The README is explicit about ordering: make sure you have installed Fabric Loader first. Fabric API is a mod like any other Fabric mod, which requires Fabric Loader to be installed. Installing Fabric API without Loader gets you a jar that nothing will read.
Once Loader is in place, the README points to three download locations: CurseForge, GitHub Releases and Modrinth. Pick the build that matches your Minecraft version. The release names encode this, for example 0.161.0+26.3 and 0.161.0+26.2, where the suffix after the plus sign identifies the game version the build targets. A build for one version will not load on another.
Placement is the step people get wrong. The README says the downloaded jar file should be placed in your mods folder. That means the jar itself sits directly in the folder, not inside a subfolder you created for tidiness. A common failure is a jar nested one directory deeper than Loader scans, which produces a game that starts with no error and no mod. If a mod loads but its features never appear, the first thing to check is whether Fabric API is present at all, since many mods assume it rather than declaring it prominently.
Depending on Fabric API from a Gradle build
The README directs developers to the Fabric example mod and its instructions, noting that the example mod already depends on Fabric API. That is the intended starting point, and it saves you from assembling the toolchain yourself.
If you want the full Fabric API with all modules in the development environment, the README gives a one-line dependency for the Gradle buildscript. The Groovy form is:
implementation "net.fabricmc.fabric-api:fabric-api:FABRIC_API_VERSION"The Kotlin DSL form is the same coordinate with parentheses:
implementation("net.fabricmc.fabric-api:fabric-api:FABRIC_API_VERSION")The README also shows how to pull in modules individually, which is the path you want if you are shipping a mod and would rather not drag the entire library into your jar. The Groovy example builds a set of module names and loops over them, calling fabricApi.module with the module name and the version constant, then wrapping the result in include so the module jar is bundled into your mod jar. The README's sample list is fabric-api-base, fabric-command-api-v1, fabric-lifecycle-events-v1 and fabric-networking-api-v1.
On the version constant itself, the README notes that instead of hardcoding version constants all over the build script, Gradle properties may be used, defined in the gradle.properties file at the root of a project. That is standard Gradle practice, and the README links to the Gradle documentation on declaring properties rather than restating it.
Where Fabric API is the wrong answer
Fabric API is not a loader, and the README says so indirectly by requiring Fabric Loader as a prerequisite. If your problem is getting mods loaded at all, Fabric API does not address it. If your problem is that a mod was written for Forge or NeoForge, Fabric API will not make it run. Those are different ecosystems with different loaders and different mod formats, and no amount of installing Fabric API bridges them.
The second limitation is documentation coverage. The README admits that not every module has a README yet. For a developer trying to use an unfamiliar module, that means reading the module source or the module's own directory rather than a written guide. Budget for that.
The third is version coupling. Fabric API builds are tied to Minecraft versions, as the release naming shows, and the project publishes separate builds for separate game versions rather than one build spanning them. If you are on an older Minecraft release, you need the Fabric API build cut for that release, and that build may predate API surfaces added later. Nothing in the README promises backward compatibility across game versions.
Finally, if you are building a mod that touches none of the shared concerns (no events, no registries, no rendering, no networking), pulling in Fabric API adds a dependency your users must satisfy for no benefit. The modular build path exists precisely so you can take only what you use.
Fabric API against the Forge and NeoForge approach
The closest comparison is Forge, and later NeoForge, which people search for alongside Fabric API. The difference is architectural rather than feature-by-feature. Forge and NeoForge are loaders that also ship a broad API surface inside the loader itself, so a mod author targets one artifact that provides both loading and hooks. Fabric splits those responsibilities: Fabric Loader handles loading and stays (mostly) version-independent, while Fabric API is a mod like any other, versioned against specific Minecraft releases and installed into the mods folder.
That split has a visible consequence. On Fabric, a mod can declare a dependency on a specific Fabric API module, and the loader will enforce that the user has it. On Forge and NeoForge, the API travels with the loader, so there is no separate jar for the user to fetch. It also means Fabric API can be updated on its own cadence, which the release history reflects: 0.161.1+26.4, 0.161.0+26.3 and 0.161.0+26.2 all landed within days of each other, each pinned to a different game version.
The trade-off is user burden. Fabric users install one more jar than Forge users do, and that jar must match their game version. In exchange, Fabric API's rendering work is explicitly aimed at compatibility with optimization mods and graphics overhaul mods, a design goal the README states outright.
Maintenance, licensing and what upgrading costs
The repository is not archived, and the last push was on 2026-09-22. Releases are frequent and version-specific, with three published between 2026-09-18 and 2026-09-22. For a library that sits under a large mod ecosystem, that cadence is the thing to plan around: a Minecraft update generally means a new Fabric API build, and mods that have not been rebuilt against it may lag.
The licence is Apache-2.0, per the repository metadata and the LICENSE file at the root. Apache-2.0 is a permissive licence that permits use, modification and redistribution with the conditions the licence text sets out, including attribution and notice requirements. Bundling modules into your mod jar, which the README's include example does, is a redistribution, so read the licence text and the HEADER file at the repository root for the notice conventions the project uses. This is a description of what the licence is, not legal advice.
Upgrade cost is concentrated in two places. For players, it is matching the Fabric API build to the game version. For developers, it is the module version suffixes: when a module moves from v1 to v2, code written against the older surface needs attention, and the deprecated directory at the root exists to hold what was left behind. The README does not document a deprecation timeline or a support window for superseded module versions, so treat the version suffix as the signal and check the module directory before assuming an old call still compiles.
Editorial conclusion
Adopt Fabric API if you are running or writing Fabric mods; it is the interoperability layer most of them assume is present, and skipping it is a common cause of a mod that loads but does nothing. Do not adopt it expecting a Forge or NeoForge equivalent, and do not expect it to be a mod loader, since Fabric Loader is a separate project it requires. Before filing a bug, verify that the Fabric API build you downloaded matches your Minecraft version, that the jar sits directly in the mods folder rather than inside a subfolder, and that you are on Fabric Loader rather than Forge or NeoForge.
Frequently asked questions
Do you need to install Fabric API?
You need it if the mods you want to run depend on it, which many Fabric mods do. Fabric API is itself a mod that requires Fabric Loader, so installing it only makes sense once Loader is in place.
Is Fabric Loader the same as Fabric API?
No. Fabric Loader is the (mostly) version-independent mod loader that powers Fabric, while Fabric API is a mod like any other Fabric mod which requires Fabric Loader to be installed. Loader loads mods; Fabric API supplies the shared hooks those mods use.
How do you install Fabric API?
Install Fabric Loader first, then download Fabric API from CurseForge, GitHub Releases or Modrinth, and place the downloaded jar file in your mods folder. Pick the build whose name matches your Minecraft version.
How do you put Fabric API in the mods folder?
The README says the downloaded jar file should be placed in your mods folder. The jar goes directly in that folder; nesting it inside a subfolder is not what the instructions describe.
How do you use Fabric API with Forge or NeoForge?
You do not. Fabric API is a Fabric mod that requires Fabric Loader, and the README describes no path for running it under Forge or NeoForge, which are separate loaders.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/fabricmc-fabric-api)