This section describes a Forge preview feature. Preview features are deemed stable; however, they remain under active development and may be subject to shorter deprecation windows. Preview features are suitable for early adopters in production environments.
We release preview features so partners and developers can study, test, and integrate them prior to General Availability (GA). For more information, see Forge release phases: EAP, Preview, and GA.
Forge app REST APIs let your app expose its own HTTP endpoints so that external systems can call your app code running on Forge.
You can expose app REST APIs so that another system can call your app’s logic directly through a secure, controlled endpoint. For example, you might expose an endpoint that lets a customers internal HR system read employee data your app manages, or allow a reporting service to trigger a long‑running calculation in your app.
Currently, this functionality is only available for Jira and Confluence apps, and is not available for apps on Isolated Cloud.
This page explains what app REST APIs are in Forge, when to use them, and how they are secured. For reference documentation and tutorials, see:
API route
Reference for defining app REST API endpoints in your manifest using the apiRoute module.
A REST API is a way for software systems to communicate over HTTP using predictable URLs and standard methods like GET, POST, PUT, and DELETE.
In Forge, an app REST API is:
apiRoute module.This is different from:
Apps that expose Forge app REST APIs using apiRoute are eligible for
Runs on Atlassian status, provided they meet all other Runs on Atlassian requirements.
For more details, see Runs on Atlassian.
As a Forge app developer, you should consider exposing app REST APIs when:
/getEmployeeName, /employees/{id}).You would typically not use app REST APIs when:
Forge app REST APIs are defined and enforced by a combination of manifest configuration, app code, and admin/customer controls:
Manifest:
apiRoute module.apiRoute entry specifies a path, HTTP operation, handler function, accepted payload type, and one or more developer‑defined scopes.Developer‑defined scopes:
custom-scopes.yaml file for your app and registered per environment.read:employee:custom, write:employee:custom).App code:
apiRoute entry points to a Forge function in your app that receives the HTTP request and returns a response.3LO integration:
Runtime request flow:
apiRoute.Forge app REST APIs are designed so customers remain in control of who can call their installed app and what data can be accessed.
For detailed instructions, see Access REST APIs exposed by a Forge app.
read:employee:custom) to grant.read:forge-app:jira) are needed.This means:
Developer-defined scopes are a key part of how app REST APIs are secured and should be designed with care. Follow these best practices:
:custom.read, write, or delete.employee, user, or payroll.read:employee:custom for reading employee data.write:employee:custom for writing employee data.write:employee:custom might be reused by
/editEmployeeName and /editEmployeeDob, but should not be used for /getEmployeeName, which
should map to a read scope instead.For details on how to declare and register developer-defined scopes in custom-scopes.yaml, see
Expose Forge app REST APIs.
If you are distributing this app to customers via Atlassian Marketplace, you will need to publish developer documentation specifying the mapping between REST APIs and scopes for your Forge app.
This helps customers decide which scopes to grant when configuring access to your APIs.
Rate this page: