Permissions, conditions and limitations at a glance
Conditions
- License and copyright noticeA copy of the license and the copyright notice must be included when distributing.
- State changesChanges made to the original must be indicated.
- Disclose sourceSource code must be made available when distributing.
- Network use is distributionUsers who interact with the software over a network are also entitled to receive the source.
- Same licenseModifications and derivatives must be distributed under the same (or a compatible) license.
Limitations
- LiabilityExpressly states that there is no liability for damages.
- WarrantyExpressly states that no warranty is provided.
Permissions, conditions and limitations are classified using data from choosealicense.com (GitHub, MIT License).
What kind of license is it?
The FSF published AGPL-3.0 in November 2007. Its text is nearly identical to GPL-3.0, except for Section 13, "Remote Network Interaction". Under the GPL, the obligation to provide source arises only when the program is "conveyed", so a web service that runs modified GPL software only on its servers does not have to publish its source. This is the so-called "SaaS loophole", and the AGPL closes it. Mastodon, the Nextcloud server and Grafana (which switched from Apache-2.0 in 2021) use AGPL-3.0.
What Section 13 requires
If you modify the program, you must prominently offer all users interacting with it remotely through a computer network an opportunity to receive the Corresponding Source of your version. This is usually satisfied by placing a "source code" link in the service's interface.
What you must do when distributing
All GPL-3.0 obligations (providing source, keeping notices, marking changes, same license, no further restrictions) apply as is, with Section 13 added on top.
Common misconceptions
- "Merely using AGPL software on a server means I must publish my entire service" — Section 13 requires the source of the modified program when it is provided over a network. The common interpretation is that simply using an unmodified AGPL database as a separate process does not create obligations for your whole application, but the answer can depend on how things are combined.
- "The AGPL forbids commercial use" — It does not. You can use it in commercial services as long as you meet the conditions.
- "The AGPL is not open source" — It is an OSI-approved open source license and an FSF-recognized free software license. Some confusion stems from MongoDB moving from the AGPL to the SSPL in 2018, but the SSPL is a separate license that has not been approved by the OSI.
- "It cannot be mixed with GPL code" — GPL-3.0 and AGPL-3.0 permit combination through each other's Section 13. In the combined work, the network clause continues to apply to the AGPL part.
How to apply it
Keep the text unchanged in LICENSE and attach the official AGPL notice to each file. For a web service, building a feature into the code that links from the user interface to the source repository makes it easier for anyone running a modified version to comply with Section 13. The SPDX identifier is AGPL-3.0-only or AGPL-3.0-or-later.
When it fits
It is mainly used when publishing software that runs on servers (web applications, collaboration tools, analytics platforms) while preventing other companies from running modified versions as closed services. It is also frequently chosen in dual licensing models alongside a commercial license.
Can AGPL-3.0 code go into another project?
General verdicts for taking code released under this license and distributing it combined into a project under each license below. See other combinations in the compatibility checker →
| Target project | Verdict | Notes |
|---|---|---|
| Proprietary (closed-source) software | Not allowed | The entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license. |
| MIT | Not allowed | The entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license. |
| Apache-2.0 | Not allowed | The entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license. |
| MPL-2.0 | Not allowed | The entire combined program would have to be released with source under the same GNU license, so it cannot be included while keeping the project's license. |
| LGPL-2.1 | Allowed with conditions | The combined work must be distributed under GPL-3.0 terms. GPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains. |
| LGPL-3.0 | Allowed with conditions | The combined work must be distributed under GPL-3.0 terms. GPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains. |
| GPL-2.0 | Not allowed | Version 3.0 code is incompatible with the terms of GPL-2.0 (only) and cannot be included. |
| GPL-3.0 | Allowed with conditions | GPL-3.0 and AGPL-3.0 each permit combination in their Section 13. In the combined work, the AGPL part's obligation to provide source over a network remains. |
The content on this site is general information, not legal advice. For actual distribution, contracts or disputes, consult a lawyer or other qualified professional.