Skip to content

@forge-clients

Stop writing URLs. Start writing features.

@forge-clients is a set of generated, type-safe REST API clients for Atlassian Forge apps. Instead of hand-writing requestJira('/rest/api/3/issue/PROJ-123'), you call:

import { ForgeFunctionAdapter, asApp, asUser } from '@forge-clients/core';
import { getIssue, getCurrentUser } from '@forge-clients/jira/v3';
const adapter = new ForgeFunctionAdapter({ product: 'jira' });
const app = asApp(adapter); // make calls as the Forge app
const user = asUser(adapter); // make calls as the invoking user
const issue = await getIssue(app, { path: { issueIdOrKey: 'PROJ-123' } });
// ^^ fully typed as Types.IssueBean
const me = await getCurrentUser(user, {});

Every function is named, typed, and tree-shakeable. Your IDE autocompletes parameters. TypeScript catches mistakes before they reach production.

Type-safe functions

Every Jira and Confluence endpoint becomes a named TypeScript function with typed parameters and return values.

All Forge contexts

Works in Forge Functions, Custom UI, Forge Containers, and Forge Remotes via swappable adapter pattern.

asApp & asUser

First-class support for both app-level and user-impersonation auth contexts on every request.

Tree-shakeable

Individual named function exports — bundlers eliminate unused API functions automatically.

Generated from live specs

Clients are generated from Atlassian’s official OpenAPI specs with post-processing to fix known defects.

Full coverage

1,529 operations across Jira v3, Jira v2, Jira Software, Jira Service Management, and Confluence v1.

PackageDescription
@forge-clients/jiraJira Cloud REST API clients (v3, v2, Software, Service Management)
@forge-clients/confluenceConfluence Cloud REST API client (v1)
@forge-clients/coreAdapters, auth helpers, error types, retry, pagination
@forge-clients/generatorThe generator CLI — update specs and regenerate clients
@forge-clients/specsCleaned OpenAPI specs (post-processed from Atlassian’s originals)