Persistent HTTP 400 "Invalid request payload" on /rest/api/3/search/jql after exhausting all known payload structures

Hello,

I’m encountering a highly persistent and unusual issue with the Jira Cloud REST API. I am unable to successfully execute any JQL search using a POST request, as the server consistently returns an HTTP 400 Bad Request with the error message: {"errorMessages":["Invalid request payload. Refer to the REST API documentation and try again."]}.

This occurs despite trying every documented payload structure on the recommended endpoint, including the standard payload and the bulk query payload.

Environment Details

  • Jira Instance: Cloud (atlassian.net)

  • Domain: hebecom.atlassian.net

  • API Used: /rest/api/3/search/jql

  • Authentication: Basic Auth (Email + API Token) – Assumed correct permissions.

Proof of Payload Exhaustion (The Core Problem)

I’ve tested the following payload structures using a valid API token and a simple, known-good JQL (project = INC). All attempts below resulted in the HTTP 400 “Invalid request payload” error on the /rest/api/3/search/jql endpoint.

Test # Payload Structure Status
1 (Standard) Simple top-level jql, startAt, maxResults, fields. (Standard for /search) Failed (400)
2 (Bulk Nested) queries array at top level, with jql and pagination nested. Failed (400)
3 (Bulk Nested) queries array at top level, with query (instead of jql) and pagination nested. Failed (400)
4 (Bulk Duplicated) Pagination fields at both the top level and nested within queries. Failed (400)

Last Failed Attempt (Code Phrase)

This is the specific JSON payload that fails. This structure represents the most complex, strict configuration for the bulk JQL endpoint, yet it is still rejected:

JSON

{
  "queries": [
    {
      "query": "project = INC", 
      "fields": [ "*all" ],
      "startAt": 0,
      "maxResults": 100
    }
  ],
  "startAt": 0,
  "maxResults": 100 
}

Request for Assistance

Since the simple JQL project = INC is failing under multiple structural variations, this indicates a problem beyond the payload format itself.

  1. Please confirm the precise, required JSON payload structure for a single JQL query POSTed to https://hebecom.atlassian.net/rest/api/3/search/jql.

  2. Please check our instance configuration to ensure the /search/jql endpoint is active and correctly configured for POST requests.

  3. Please confirm that HTTP 400 is not masking a permissions issue related to my API token’s access to the “INC” project.

Thank you for your assistance in resolving this integration blocker.

Hello @AkhilVasantha

Since the simple JQL project = INC is failing under multiple structural variations, this indicates a problem beyond the payload format itself.

The value you have provided for the JQL parameter is valid. One of the other parameters in your payload is invalid.

Refer to this thread over on the Public Community forum where someone else recently had the exact same problem with that API endpoint and was provided with suitable advice on how to solve the problem and work out which specific parameter was invalid.

Have fun!