Jira API Integration Research

Date: 2026-04-10 Product: Atlassian Jira (Cloud + Data Center) Purpose: Evaluate Jira's API capabilities for Orcha integration


1. Summary -- Capability Matrix

Capability Public API Via iPaaS Via Webhooks Via Other Verdict
Read projects, fields, users YES YES N/A CSV export Available now
Read issues (JQL search) YES YES N/A - Available now
Create issues (invoice push) YES YES N/A CSV import Available now
Bulk create issues YES (50/req) Workato only N/A - Available now
Update issues YES YES N/A - Available now
Attach documents (PDF) YES YES N/A - Available now
Trigger workflow transitions YES YES N/A Automation rules Available now
Read status/lifecycle YES YES YES JQL polling Available now
Write custom field values YES YES N/A - Available now
Create custom fields/options YES Limited N/A - Available now (admin perm)
User management Cloud: Admin API Limited N/A SCIM Available (separate API)

Overall assessment: Jira has a comprehensive, mature REST API with full read/write support for all Orcha integration needs. No vendor engagement required -- all capabilities are publicly documented and self-service.


2. API Landscape

API Layers

API Base URL Purpose
Platform REST API v3 /rest/api/3/ Core: issues, projects, fields, workflows, users, search
Platform REST API v2 /rest/api/2/ Same endpoints as v3, but plain text instead of ADF for rich text
Jira Software REST API /rest/agile/1.0/ Agile: boards, sprints, epics, backlogs
Jira Service Management API /rest/servicedeskapi/ ITSM: service desks, requests, customers, assets
Atlassian Admin API api.atlassian.com/admin/v1/ Org-level: user provisioning, SCIM, policies (Enterprise)

Authentication Methods

Method Cloud Data Center Recommended for Orcha
Basic Auth (email + API token) Yes N/A Yes -- simplest for initial integration
OAuth 2.0 (3LO) Yes No Yes -- for multi-tenant / programmatic webhooks
OAuth 1.0a Deprecated Yes Only for DC customers
Connect JWT Yes No Only if building Marketplace app
Forge Yes No Only if building Marketplace app
Personal Access Tokens No Yes (8.14+) For DC customers

Rate Limits (Cloud)

Three independent systems enforced simultaneously:

System Limits Notes
Points-based hourly quota Free: 65K pts/hr; Standard: 100K + 10/user; Premium: 130K + 20/user; Enterprise: 150K + 30/user (max 500K) GET = 1pt, identity reads = 2pts, writes = 1pt
Burst rate (per-second) GET/POST: 100 req/s; PUT/DELETE: 50 req/s Token-bucket algorithm
Per-issue write 20 writes / 2s; 100 writes / 30s Per individual issue

Response: HTTP 429 with Retry-After header. Orcha should implement exponential backoff.


3. Write Verification

Confidence: HIGH. Jira's REST API is comprehensively writable. Nearly every object supports full CRUD.

Confirmed Write Endpoints

Object Create Update Delete Notes
Issues POST /issue PUT /issue/{key} DELETE /issue/{key} Bulk create: POST /issue/bulk (max 50)
Comments POST /issue/{key}/comment PUT .../comment/{id} DELETE .../comment/{id}
Attachments POST /issue/{key}/attachments N/A DELETE /attachment/{id} Multipart, 1GB default limit
Worklogs POST /issue/{key}/worklog PUT .../worklog/{id} DELETE .../worklog/{id}
Projects POST /project PUT /project/{key} DELETE /project/{key} Requires admin
Sprints POST /sprint (agile API) PUT /sprint/{id} DELETE /sprint/{id}
Versions POST /version PUT /version/{id} DELETE /version/{id}
Components POST /component PUT /component/{id} DELETE /component/{id}
Custom fields POST /field PUT /field/{id} DELETE /field/{id} Admin only
Custom field options POST /field/{id}/context/{ctx}/option PUT ... DELETE ...
Workflow transitions POST /issue/{key}/transitions N/A N/A Drives status changes
Issue links POST /issueLink N/A DELETE /issueLink/{id}
Remote links POST /issue/{key}/remotelink PUT ... DELETE ...
Filters POST /filter PUT /filter/{id} DELETE /filter/{id}

Main gap: No native bulk-update endpoint. Bulk updates require iterating individual PUT calls.


4. iPaaS Findings

iPaaS Capability Matrix

Operation Zapier Make.com Workato Celigo n8n
Create Issue Yes Yes Yes Yes Yes
Update Issue Yes Yes Yes Yes Yes
Delete Issue No Yes Yes No Yes
Transition Issue Yes Yes Yes Yes Yes
Add Comment Yes Yes Yes Yes Yes
Add Attachment Yes Yes Yes Yes Yes
Add Worklog Yes Yes Yes No Yes
Create Sprint Yes Yes Yes No No
Create Project No Yes Yes No No
Create Version No No Yes No Yes
Bulk Create No No Yes No No
Upsert (create-or-update) No No No Yes No
Generic API Call No Yes Yes Yes* Yes
Webhook Triggers Polling Yes Yes No Yes

*Celigo via Universal Connector (HTTP)

Ranking by Jira write breadth: Workato > Make.com > n8n > Celigo > Zapier

Key finding: No undocumented capabilities revealed by iPaaS connectors. All iPaaS write operations map to documented Jira REST API endpoints. The connectors simplify access (field mapping, upsert logic, pagination) but do not expose hidden APIs.


5. Alternative Channels

Channel Available Pros Cons
Webhooks Yes (all plans) Real-time, JQL-filterable, field-filterable Best-effort delivery; programmatic registration requires OAuth/Connect app
Jira Automation Yes (all plans) No-code, "Send web request" action can POST to Orcha Monthly execution limits (Free: 100, Std: 500, Premium: 1000)
Atlassian Forge Yes (Cloud) Serverless, built-in auth, UI extension points Node.js only, vendor lock-in, 50K invocations/month free
Atlassian Connect Yes (Cloud) Any stack, self-hosted, mature More complex auth (JWT), must host infrastructure
CSV Import Yes Simple, no technical setup Manual, no automation, import only
Unified APIs (Merge.dev, Klamp) Jira is a connector Normalized ticketing model Extra abstraction layer, cost, only useful if multi-tool
SFTP No - Not available

Webhook Details


6. Licensing & Access Requirements

Cost to Customer: $0 additional for API access

API access is included in all Jira Cloud plans, including Free. There are no separate API licenses, per-call charges, or transaction packages.

Aspect Free Standard (~$8.15/user/mo) Premium (~$16/user/mo) Enterprise (custom)
REST API access Yes Yes Yes Yes
Rate limits Same burst limits Higher hourly quota Higher hourly quota Highest hourly quota
Webhooks Yes Yes Yes Yes
OAuth 2.0 Yes Yes Yes Yes
Advanced Roadmaps API No No Yes Yes
Assets API No No Yes Yes
Audit log API No No Yes Yes
Org-level admin / SCIM No No No Yes

What the Customer Must Buy/Enable Before Integration Can Start

Requirement Cost Who Does It Time
Jira Cloud instance (any plan) Already have it Customer N/A
API token generation $0 Any Jira user 30 seconds
Workflow configuration (approval statuses) $0 Jira admin 30-60 min
Custom field setup (cost centers, etc.) $0 Jira admin (or Orcha via API) 15-30 min
Webhook registration (if needed) $0 Jira admin (manual) 5 min
Atlassian Guard (if SSO/SCIM needed) ~$4/user/month Org admin Optional

Customer Admin Setup Checklist

  1. Log in to id.atlassian.com/manage-profile/security/api-tokens
  2. Click "Create API token", label it "Orcha Integration"
  3. Copy the token and provide it to Orcha along with:
  4. Ensure the token user has appropriate project permissions (Browse, Create, Transition, Attach)
  5. For initial setup (custom field creation): user needs Administer Jira global permission
  6. (Optional) Configure webhook: Jira Admin > System > WebHooks > Create, point to Orcha endpoint
  7. (Optional) If IP allowlisting is enabled (Premium/Enterprise): whitelist Orcha's IP range

Ongoing Costs


7. Orcha-Specific Deep Dive

Integration Capability Summary

Orcha Need Jira Endpoint Method Confidence Notes
Sync cost centers as custom field options /rest/api/3/field/{id}/context/{ctx}/option POST Confirmed Create select-list field, manage options via API
Create invoice issues /rest/api/3/issue POST Confirmed Set project, type, summary, custom fields. Bulk: /issue/bulk (max 50)
Attach invoice PDF /rest/api/3/issue/{key}/attachments POST Confirmed Multipart, requires X-Atlassian-Token: no-check header. 1GB limit.
Trigger approval (transition) /rest/api/3/issue/{key}/transitions POST Confirmed Discover transition IDs via GET first. Can set fields during transition.
Read approval status /rest/api/3/issue/{key} GET Confirmed fields.status.name, changelog for history
Receive status change events Webhooks or JQL polling - Confirmed Webhook: jira:issue_updated with fieldIdsFilter: ["status"]. Polling: JQL status changed after ...
Read projects/users/fields /rest/api/3/project/search, /user/assignable/search, /field GET Confirmed For building mapping UI during setup
JQL search /rest/api/3/search/jql GET/POST Confirmed Full JQL support, paginated (max 100/page)
Create sub-tasks /rest/api/3/issue POST Confirmed Set issuetype to subtask type, add parent.key
Add comments /rest/api/3/issue/{key}/comment POST Confirmed v3 uses ADF format for rich text

Example: Full Invoice Lifecycle

1. SETUP (one-time)
   GET /rest/api/3/project/search          --> discover customer's projects
   GET /rest/api/3/field                    --> discover custom fields
   POST /rest/api/3/field                   --> create "Cost Center" select field (if needed)
   POST /rest/api/3/field/{id}/context/{ctx}/option --> populate cost center options

2. INVOICE INGESTION
   POST /rest/api/3/issue                   --> create issue with invoice metadata
   POST /rest/api/3/issue/{key}/attachments  --> attach invoice PDF
   POST /rest/api/3/issue/{key}/comment      --> add processing notes

3. APPROVAL FLOW
   GET /rest/api/3/issue/{key}/transitions   --> discover "Submit for Approval" transition ID
   POST /rest/api/3/issue/{key}/transitions   --> trigger transition to "Pending Approval"
   -- wait for approval in Jira --
   Webhook fires with status change to "Approved" or "Rejected"
   -- OR --
   GET /rest/api/3/search/jql?jql=project=AP AND status="Approved" AND updated>="-1h"

4. ONGOING SYNC
   JQL polling: status changed after "{last_sync}" AND project = AP
   -- OR --
   Webhook: jira:issue_updated with fieldIdsFilter=["status"]

Technical Considerations


Architecture Decision

Approach Cost Complexity Control Recommendation
Direct REST API (Basic Auth) $0 Low Full Recommended for MVP
Direct REST API (OAuth 2.0) $0 Medium Full Recommended for production (enables programmatic webhooks)
iPaaS middleware $$$/ yr Medium Partial Unnecessary -- Jira API is straightforward
Unified API (Merge.dev) $$/ yr Medium Partial Only if also integrating Asana/Linear/etc.
Forge/Connect app Dev cost High Full Only if building a Marketplace product

Why: Jira's API is mature, well-documented, includes OpenAPI specs, and covers 100% of Orcha's needs. No iPaaS or middleware layer needed. API access is free on all plans with generous rate limits.

Phased Integration Plan

Phase 1 -- Read & Setup (Week 1-2)

Phase 2 -- Invoice Push (Week 2-3)

Phase 3 -- Approval Workflow (Week 3-4)

Phase 4 -- Ongoing Sync & Reconciliation (Week 4-5)


9. Sources

Official Documentation

iPaaS Connectors

Postman Collections

Pricing