The Jql service wraps Jira Cloud helper endpoints for JQL autocomplete, suggestions, parsing, matching, and issue picker scenarios. These APIs are useful when building tools that help users write or validate Jira searches.
Use parsing to validate JQL before storing or executing it.
var parsed = await client.Jql.ParseAsync(new[]
{
"project = PROJ AND status = Done"
});
The typed result lets calling code inspect parse errors without handling raw JSON directly.
Use matching when a set of issues needs to be tested against one or more JQL expressions.
var matches = await client.Jql.MatchAsync(
issueIds: new[] { 10001L, 10002L },
jqls: new[] { "status = Done" });
This is useful for rule engines, filters, or diagnostics that need to explain why an issue does or does not match a saved query.
Use autocomplete data and field suggestions when building search experiences.
var autocomplete = await client.Jql.GetAutocompleteDataAsync();
var fieldSuggestions = await client.Jql.GetFieldSuggestionsAsync("status");
These methods help keep user-facing JQL tools aligned with Jira's own field names and supported operators.
The issue picker helper can support user interfaces where a person searches for an issue by key, summary, or recent context.
var picked = await client.Jql.PickIssuesAsync("PROJ-123");
Normal methods return typed models. Raw Jira JSON is available through matching methods with a Json suffix, such as ParseJsonAsync.
Use typed methods for application workflows. Use raw JSON methods for diagnostics, forward compatibility, or features that need Jira response details not yet modeled by the client.
The JQL service helps validate and build searches. Issue search executes them.
var parseResult = await client.Jql.ParseAsync(new[]
{
"project = PROJ AND assignee = currentUser()"
});
var issues = await client.Issues.SearchAsync(
"project = PROJ AND assignee = currentUser()",
maxResults: 50);
For everyday search code, prefer the fluent issue query builder:
var issues = await client.Issues.Query()
.ForSpace("PROJ")
.AssignedToCurrentUser()
.ToListAsync();