JIRA Cloud API v3 request via Basic Authentication not working

Hello

We are trying to access the API of our JIRA cloud instance, in order to create issues via a script. When trying this on my computer with my user, it seems basic authentication is not working for me.

I worked with my email address and a scoped API token that has write and read access for all issue permissions (56 items).

Also, when opening the url via REST API in a browser window where I am logged in, it works, I get JSON back. So it clearly is an authentication issue.

I have tried via Postman and curl. I don’t know how to proceed further.

Is there any permission my user is lacking? Is there anything to allow the use of the API? Or is JIRA cloud API v3 not working with basic authentication user email and api token anymore?

Thanks for your input and help!

Here you have output from my curl request:
Host ourhost:443 was resolved.

  • IPv6: —
  • IPv4: —-
  • Trying —…
  • Connected to our jira (xxx.xxx.xxx) port 443
  • ALPN: curl offers h2,http/1.1
  • (304) (OUT), TLS handshake, Client hello (1):
  • CAfile: /etc/ssl/cert.pem
  • CApath: none
  • (304) (IN), TLS handshake, Server hello (2):
  • (304) (IN), TLS handshake, Unknown (8):
  • (304) (IN), TLS handshake, Certificate (11):
  • (304) (IN), TLS handshake, CERT verify (15):
  • (304) (IN), TLS handshake, Finished (20):
  • (304) (OUT), TLS handshake, Finished (20):
  • SSL connection using TLSv1.3 / AEAD-AES128-GCM-SHA256 / [blank] / UNDEF
  • ALPN: server accepted h2
  • Server certificate:
  • subject: CN=xxx
  • start date: Oct 27 00:00:00 2025 GMT
  • expire date: Nov 25 23:59:59 2026 GMT
  • subjectAltName: host “ourhost” matched cert’s “ourhost”
  • issuer: C=US; O=Amazon; CN=Amazon RSA 2048 M04
  • SSL certificate verify ok.
  • using HTTP/2
  • Server auth using Basic with user ‘nicolas@v-b.be’
  • [HTTP/2] [1] OPENED stream for ourhost/rest/api/3/issue/issueid
  • [HTTP/2] [1] [:method: GET]
  • [HTTP/2] [1] [:scheme: https]
  • [HTTP/2] [1] [:authority: ourhost]
  • [HTTP/2] [1] [:path: /rest/api/3/issue/issueid]
  • [HTTP/2] [1] [authorization: Basic xxx]
  • [HTTP/2] [1] [user-agent: curl/8.7.1]
  • [HTTP/2] [1] [accept: application/json]

GET /rest/api/3/issue/issueid HTTP/2
Host: ourhost
Authorization: Basic xxx
User-Agent: curl/8.7.1
Accept: application/json

  • Request completely sent off
    < HTTP/2 404
    < content-type: application/json;charset=UTF-8
    < date: Sun, 25 Jan 2026 15:20:52 GMT
    < server: AtlassianEdge
    < timing-allow-origin: *
    < x-arequestid: uuid
    < x-seraph-loginreason: AUTHENTICATED_FAILED
    < set-cookie: atlassian.xsrf.token=xxx; Path=/; SameSite=None; Secure
    < cache-control: no-cache, no-store, no-transform
    < x-content-type-options: nosniff
    < x-xss-protection: 1; mode=block
    < atl-traceid: uuid
    < atl-request-id: uuid
    < strict-transport-security: max-age=63072000; includeSubDomains; preload
    < report-to: {“endpoints”: [{“url”: “cloudfront”}], “group”: “endpoint-1”, “include_subdomains”: true, “max_age”: 600}
    < nel: {“failure_fraction”: 0.01, “include_subdomains”: true, “max_age”: 600, “report_to”: “endpoint-1”}
    < server-timing: atl-edge;dur=151,atl-edge-internal;dur=15,atl-edge-upstream;dur=136,atl-edge-pop;desc=“aws-eu-central-1”
    < x-cache: Error from cloudfront
    < via: 1.1 cloudfront (CloudFront)
    < x-amz-cf-pop: AMS58-P2
    < x-amz-cf-id: xxx
    <
  • Connection #0 to host ourhost left intact
    {“errorMessages”:[“Issue does not exist or you do not have permission to see it.”],“errors”:{}}

For the new scoped API tokens, requests are made via api.atlassian.com (not https://your-domain.atlassian.net) e.g. https://api.atlassian.com/ex/jira/{cloudId}/rest/api/3/issue/{issueId}

More info