REST API call from Forge App as User

I’m currently developing a Forge app that is intended to fetch and save webhook data from Jira using the REST API. The app is supposed to periodically call the following endpoint:
/rest/api/3/webhook

The flow of my application is:

  1. Use the Forge app to make a request to the Jira API to retrieve webhook data.
  2. Send the fetched data to an external server (via an ngrok URL) for processing and storage.

However, when my scheduled trigger executes and attempts to fetch the webhook data, I consistently receive the following error response:
{
“code”: 401,
“message”: “Unauthorized; scope does not match”
}

Verified that my app manifest includes all relevant scopes:
- manage:jira-webhook
- read:webhook:jira
- read:jql:jira
- read:jira-work
- read:jira-user

the app still receives the 401 Unauthorized error, suggesting a scope issue.

  • Are there any specific scopes I might be missing for fetching webhook data?
  • Is there any additional configuration or authorization step required when using Forge apps to access this endpoint?
  • Could using an external server with an ngrok URL impact the authentication in any way?

Scheduled triggers, web triggers, async events, etc run without a user context so you will have to call the endpoint using asApp.