# Pull Ticket API by Date Range

## Pull Ticket.

<mark style="color:green;">`POST`</mark> [https://](https://devapi.kapturecrm.com/select-ticket-between-start-and-end-dates.html/v.2.0)[\<sub domain>](https://devapi.kapturecrm.com/add-ticket-from-other-source.html/v.2.0)[.kapturecrm.com/select-ticket-between-start-and-end-dates.html/v.2.0](https://devapi.kapturecrm.com/select-ticket-between-start-and-end-dates.html/v.2.0)

{% hint style="info" %}

```
NOTE: Please replace with your sub domain name in the API.
```

{% endhint %}

### Authentication:

To access this API endpoint, you need to include your API key in the request headers. For authentication, use the following header:

```
Basic <Your Token>
```

### Request Body

The request body should be a JSON object containing the details of the ticket to be pulled for a specific date range. Here are the  list of parameters.

<table><thead><tr><th>Name</th><th width="125">Mandatory</th><th width="111">Type</th><th>Description</th></tr></thead><tbody><tr><td>start_date</td><td>Yes</td><td>date</td><td>Date should be in YYYY-MM-DD format. Also at one hit we can pull a data of max 24 hours.</td></tr><tr><td>end_date</td><td>Yes</td><td>date</td><td>Date should be in YYYY-MM-DD format. Also at one hit we can pull a data of max 24 hours.</td></tr></tbody></table>

{% tabs %}
{% tab title="Body Request" %}

```json
[
    {
        “limit” : 1, // Required field ,if PaginationEnabled
        "start_date": "2024-04-22",
        "end_date": "2024-04-22"
    }
]
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
**Please map in the request body if there's any extra associate body according to your use case.**
{% endhint %}

### Response Body

The API responds with a JSON object containing the details of the list of tickets. If successful, the response will include the list of  ticket ID's and the other updated  relevant information.

| Response                                                      | Response Messages                                                                   |
| ------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| { ..., "status": "success"}                                   | Ticket fetched successfully.                                                        |
| {"message": "Invalid Auth Key","status": "failed"}            | Authorization key is either not passed in header, or incorrect, or expired/disabled |
| { "message": "Invalid Json.", "status": "failed" }            | Most probably, data may in array format. It should be in object format.             |
| { "message": "ticket\_ids are missing.", "status": "failed" } | Either ticket\_ids field is missing or empty.                                       |

{% tabs %}
{% tab title="Response" %}

```json
{
    "totalCount": null,
    "message": [
        {
            "tat": "",
            "sla": "",
            "date": "19-04-2024 14:19",
            "status": "Pending",
            "nextFollowUp": "19-04-2024 14:19",
            "lastFollowUp": "22-04-2024 14:31",
            "taskId": 530348198,
            "lastSource": "Mobile App",
            "orderId": "",
            "lastConvesationTime": "19-04-2024 14:19",
            "ticketId": "713516551148",
            "folderId": 0,
            "primarySource": "Mobile App",
            "detail": "",
            "mergedTicketId": "",
            "contactId": 0,
            "productId": 0,
            "creatorId": 209803,
            "substatusKey": "PS",
            "customerId": 0,
            "assignedId": 209803,
            "referenceId": 0,
            "creatorName": "Kapture Dev API&apos;s",
            "priority": "low",
            "pendingTaskId": 0,
            "assignedToName": "Kapture Dev API&apos;s",
            "callBack": "",
            "customer_rating": 0,
            "queueKey": "",
            "lastConversationId": 0,
            "slaStatus": "out of sla",
            "queueName": "",
            "total_conversations": 0,
            "disposition": "Inbox",
            "taskTitle": "TEST 1",
            "taskEnddate": "",
            "url": "https://devapi.kapturecrm.com/employee/view-task-detail.html?detail=5/530348198/713516551148",
            "substatus": "Pending",
            "assigneeCode": "",
            "ftr": "no",
            "email": "",
            "phone": "",
            "attachments": [],
            "additional_info": {}
        }
    ],
    "status": "success"
}
```

{% endtab %}
{% endtabs %}

### Error Codes

| Error Codes | Description                                      |
| ----------- | ------------------------------------------------ |
| 400         | Bad Request - Invalid parameters or missing data |
| 401         | Unauthorized - Invalid or missing API key        |
| 403         | Forbidden - Insufficient permissions             |
| 404         | Not Found - Resource or endpoint not found       |
| 500         | Internal Server Error - Server-side issue        |

### Example of a working curl

{% tabs %}
{% tab title="cURL" %}

```json
curl --location 'https://devapi.kapturecrm.com/select-ticket-between-start-and-end-dates.html/v.2.0' \
--header 'Authorization: Basic <Your Token>' \
--header 'Content-Type: application/json' \
--header 'Cookie: JSESSIONID=; _KAPTURECRM_SESSION=' \
--data '[
    {
        "start_date": "2024-04-19",
        "end_date": "2024-04-20"
    }
]'
```

{% endtab %}

{% tab title="Python" %}

```python
import http.client
import json

conn = http.client.HTTPSConnection("devapi.kapturecrm.com")
payload = json.dumps([
  {
    "start_date": "2024-04-19",
    "end_date": "2024-04-20"
  }
])
headers = {
  'Authorization': 'Basic <Your Token>',
  'Content-Type': 'application/json',
  'Cookie': 'JSESSIONID=; _KAPTURECRM_SESSION='
}
conn.request("POST", "/select-ticket-between-start-and-end-dates.html/v.2.0", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
```

{% endtab %}

{% tab title="Node.js" %}

```
var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://devapi.kapturecrm.com/select-ticket-between-start-and-end-dates.html/v.2.0',
  'headers': {
    'Authorization': 'Basic <Your Token>',
    'Content-Type': 'application/json',
    'Cookie': 'JSESSIONID=; _KAPTURECRM_SESSION='
  },
  body: JSON.stringify([
    {
      "start_date": "2024-04-19",
      "end_date": "2024-04-20"
    }
  ])

};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

```

{% endtab %}
{% endtabs %}
