How to invoke Forge LLM API from a Remote Backend? (Alternative to Web Triggers)

Hi everyone,
I am currently building a Jira cloud app using Forge Remote. My architecture relies on a frontend that communicates directly with my own external/remote backend rather than using standard Forge hosted functions.
I am trying to integrate the Forge LLM API into this setup, but I have hit a major roadblock regarding how it is exposed:

  1. Forge Function Limitation: The Forge LLM API is natively designed to work within Forge functions, which I cannot use efficiently given my remote backend architecture.
  2. No Public REST API: There doesn’t seem to be a standard, public Atlassian REST API endpoint for the LLM service that I can hit directly from an external server.
  3. Web Trigger Complexity: I looked into using Forge Web Triggers as a bridge, but managing them is highly complex because a unique URL is generated for every single Jira site/tenant where the app is installed.

My Current Workaround for Jira REST APIs
For context, when my remote backend needs to interact with Jira, I seamlessly use the standard Jira REST APIs by authenticating with the User and System tokens (appUserToken and appSystemToken) sent from the frontend. I am looking for a similar approach for AI features.
My Questions:

  • Is there any way to securely invoke the Forge LLM API from a remote backend using system/user tokens, similar to how we access Jira REST APIs?
  • If a direct REST endpoint doesn’t exist, what is the recommended architectural pattern for Forge Remote apps to utilize Atlassian’s LLM capabilities without getting tangled in complex web trigger management per site?

Any insights, workarounds, or upcoming roadmap updates on this would be greatly appreciated!
Thanks in advance,
Ankit Jangid

Forge LLM is literally just a proxy for Anthropic’s API. So you may as well just use that directly.

Only reason to use Forge LLM is to qualify for “Runs on Atlassian” status which you wouldn’t qualify for when using Forge Remote.

Hey Ankit,

You’ve captured the current state pretty well.

One other option would be using a Forge Function as a resolver and using the Forge Function to Remote pattern for invoking you remote as required. There would be additional cost and latency to factor in with this pattern though.

Like Nathan said, so far we have optimised Forge LLMs for Runs on Atlassian apps that don’t want to add egress permissions.

Forge Remote support for Forge LLMs is not something we’re really considered so far, but if there is enough interest it’s something we could prioritise in future.

Cheers,

Adam