Skip to content

Jira API

Programmatic access to the Jira integration uses the generic Ticketing and Anomaly Ticket Link endpoints on the Qualytics REST API. The requests below cover ticket lookup, ticket creation for an anomaly, and management of the links between anomalies and Jira issues. Requests share the same base URL and Bearer token authentication as the rest of the platform API.

  • Base URL. Your deployment's platform host (for example, https://<your-tenant>.qualytics.io/api).
  • Auth. Bearer token in the Authorization header. See Access Tokens to create one.
  • Content type. application/json on every request that carries a body.

Complete API Reference

The endpoints below are illustrative. For the full request and response schemas, live examples, and every field that each endpoint accepts, see the interactive API reference at demo.qualytics.io/api/docs.

Ticketing Integration Endpoints

Operation Method Endpoint Description
Get Ticketing Form Specification GET /api/integrations/ticketing/form-specification Return the form specification used to build the "Create Ticket" modal for the configured ticketing provider.
Search Tickets GET /api/integrations/ticketing/tickets/search Search for tickets in the configured ticketing provider (for example, by summary or issue key).
Get Ticket By Id GET /api/integrations/ticketing/tickets/{ticket_id} Return a specific ticket by its provider-side identifier.
Create Ticket For Anomaly POST /api/integrations/ticketing/anomalies/{anomaly_id}/tickets Create a new Jira issue and link it to an anomaly in one call.
Operation Method Endpoint Description
Get Anomaly Ticket Links GET /api/anomalies/{anomaly_id}/ticket-links List every ticket link attached to an anomaly.
Create Anomaly Ticket Link POST /api/anomalies/{anomaly_id}/ticket-links Attach an existing Jira issue to an anomaly.
Delete Anomaly Ticket Link DELETE /api/anomalies/{anomaly_id}/ticket-links/{link_id} Remove a link between an anomaly and a Jira issue. The Jira issue itself is not deleted.

Sample curl Requests

The following requests illustrate the most common operations. Replace $QUALYTICS_TOKEN, the tenant hostname, and identifier placeholders with your own values.

Search tickets with curl
curl -X GET "https://<your-tenant>.qualytics.io/api/integrations/ticketing/tickets/search?query=customer" \
  -H "Authorization: Bearer $QUALYTICS_TOKEN"

Returns a paginated list of tickets whose summary or key matches the query.

Get a ticket by id with curl
curl -X GET "https://<your-tenant>.qualytics.io/api/integrations/ticketing/tickets/10428" \
  -H "Authorization: Bearer $QUALYTICS_TOKEN"

Returns the single ticket record for the given provider-side identifier.

Create a ticket for an anomaly with curl
curl -X POST "https://<your-tenant>.qualytics.io/api/integrations/ticketing/anomalies/1/tickets" \
  -H "Authorization: Bearer $QUALYTICS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Investigate CUSTOMER_NAME similarity anomaly",
    "description": "Follow-up on an anomaly detected during the daily scan.",
    "priority": "Medium"
  }'

Creates a Jira issue and links it to anomaly 1 in one call. See the request and response payloads in the tabs below for the full shape.

List anomaly ticket links with curl
curl -X GET "https://<your-tenant>.qualytics.io/api/anomalies/1/ticket-links" \
  -H "Authorization: Bearer $QUALYTICS_TOKEN"

Returns every ticket link attached to the anomaly, including issues linked after the fact via Link Existing Ticket.

Sample Payloads

Sent when a user creates a ticket from an anomaly detail page.

POST /api/integrations/ticketing/anomalies/{anomaly_id}/tickets

{
  "title": "summary of ticket",
  "description": "description of the ticket",
  "priority": "Medium"
}

The response includes the created ticket record and its association to the anomaly.

{
  "ticket": {
    "ticket_id": "10428",
    "ticket_number": "SCRUM-40",
    "title": "summary of ticket",
    "description": "description of the ticket\n ---\n Qualytics Anomaly Linked [2026-01-23 20:22:04 UTC] Anomaly ID: 1 Status: Acknowledged Type: shape Detected: 2025-12-21 01:48:42.988233+00:00\n Failed Checks: - 8 values in CUSTOMER_NAME were resolved to 7 distinct entities using similarity matching. 1 of those entities is assigned more than one value of CUSTOMER_ID\n View in Qualytics: https://your-qualytics-instance.qualytics.io/datastores/1/anomalies?id=1\n",
    "status": "Idea",
    "priority": "Medium",
    "urgency": null,
    "impact": null,
    "category": "Task",
    "subcategory": null,
    "created_at": "2026-01-23T15:22:05",
    "updated_at": "2026-01-23T15:22:05",
    "resolved_at": null,
    "closed_at": null,
    "assigned_to": null,
    "assigned_group": null,
    "requester": "User Name",
    "url": "https://your-domain.atlassian.net/browse/SCRUM-40",
    "comments_count": null,
    "metadata": {
      "project_key": "SCRUM",
      "issue_type": "Task"
    }
  },
  "anomaly_id": 1,
  "integration_id": 2,
  "message": "Ticket SCRUM-40 created and linked to anomaly 1"
}

Returned by GET /api/integrations/ticketing/tickets/search?query=<term>.

{
  "items": [
    {
      "ticket_id": "10002",
      "ticket_number": "SCRUM-3",
      "title": "Task 3",
      "description": null,
      "status": "To Do",
      "priority": null,
      "created_at": "2025-12-02T12:34:20",
      "updated_at": "2025-12-02T12:34:21",
      "assigned_to": null,
      "url": "https://your-domain.atlassian.net/browse/SCRUM-3"
    }
  ],
  "total": 1,
  "page": 1,
  "size": 50,
  "pages": 1
}

Related