Skip to Content
TwinsJira

Jira

Twin of the Jira Cloud Platform REST API v3.

Twin of the Jira Cloud Platform REST API v3.

Coversapi.atlassian.com
AuthAtlassian OAuth access tokens
WebhooksNo
Operations87

Coverage

Issue lifecycle and search, comments, attachments with real byte round-trip, issue links, watchers and worklogs, plus the reference reads you need to use those without magic ids: projects, issue types, fields, statuses, priorities, resolutions and users. Paths keep the vendor’s gateway shape, /ex/jira/{cloudId}/rest/api/3/…, and /oauth/token/accessible-resources is served on the same base.

Credentials

Jira sits behind Atlassian’s identity service. It verifies access tokens the Atlassian Identity twin mints and issues none of its own, so point your app’s Atlassian OAuth URLs there and send what it returns as a bearer here. See Credentials.

Only a three-legged OAuth bearer is accepted; there is no Basic email plus API token lane. A token missing a scope gets a 401 Unauthorized; scope does not match, not a 403.

Vendor specific details

  • The old /rest/api/3/search is refused outright. Use /search/jql. Some vendor quickstarts still show the old path.
  • /search/jql returns no startAt and no total, only isLast, issues and a nextPageToken. Offset paging does not work.
  • Omit fields on /search/jql and every issue comes back as {"id": "…"} and nothing else. No key, no self, no fields.
  • A comment body must be Atlassian Document Format. An issue description may be ADF or a plain string, but a comment may not.
  • Uploading an attachment without X-Atlassian-Token: no-check is a 404 whose body is the bare text XSRF check failed, not a 400 and not JSON.

self links point at https://api.atlassian.com, exactly as the vendor writes them, so a client that follows one walks out of the sandbox. Address issues by id or key instead.

Its own notes

Once a sandbox is running, this twin serves its own operating notes at {control_url}/veris/manual: the credentials it accepts, the API versions it serves, and the fault statuses you can arm against it. They are generated from the same source as its behaviour, so they cannot drift.