--- pagename: Get Net Handle Time by Skill sitesection: Documents categoryname: Reporting documentname: Net Handle Time API subfoldername: Methods permalink: net-handle-time-api-methods-get-net-handle-time-by-skill.html indicator: both --- This method provides the Net Handle Time (NHT) at a skill level. The API retrieves up to 9 weeks of information. {:.notice} Some metrics are calculated only in 60-minute intervals. These metrics, when calling the API in a 15-minutes interval, will be replicated for each timeframe. {: .important} In case there is no data available, the response element will contain -1. ### Request | Method | URL | | --- | --- | | GET | https://[{domain}](/agent-domain-domain-api.html)/operations/api/account/{accountId}/nht?fromDate={timestamp}&toDate={timestamp}&skillIds={comma separated skill ids}&interval={interval in minutes}&source={source name}&v={api version} #### Request Query Parameters | Name | Description | Type | Required? | Notes | | --- | --- | --- | --- | --- | | v | The version of the API | Numeric | No | Two versions are supported: v1 and v2 (If not provided, will be set to v1 for backward compatibility).
**v1**: default version (basic maintenance).
**v2**: pagination support (maintained version) | | source | Used to describe the originator of the call. The source name should be unique for every project/process within the organization | String | Yes | Source name should be up to 20 characters.
Example: LP_AgentUI | | fromDate | Query period: Query start date | ISO format. UTC timezone | Yes - conditional | **fromMillis must not be provided**.
The query period will be limited to 1 week.
example format: 2021-07-05T05:00:00 | | fromMillis | Query start date (same as above) in Epoch time format | long - Epoch time | Yes - conditional | **fromDate must not be provided**.
The query period will be limited to 1 week.
example format: 2021-07-05T05:00:00 | | toDate | Query period: Query end date | ISO format. UTC timezone | Yes - conditional | **toMillis must not be provided**.
The query period will be limited to 1 week.
example format: 2021-07-05T05:00:00 | | toMillis | Query end date (same as above) in Epoch time format | long - Epoch time | Yes - conditional | **toDate must not be provided**.
The query period will be limited to 1 week.
example format: 2021-07-05T05:00:00 | | interval | Interval size in minutes. When provided, the returned data will be aggregated by intervals of the requested size.
The buckets will be rounded to the closest rounded time (e.g. 11:00, 11:15, 11:30) | Numeric | No | Available intervals: 15/30/60.
Default: 60 | | skillIds | When provided, will return the information for the specific skills. Can be more than 1 skill | String | No | If not provided all skills will be returned. | | limit | limits the number of skills per page | Numeric | Optional | Default = 10, Maximum = 10 | | offset | staring skill offset | Numeric | Optional | Default = 0 | ### Response | Property Name | Description | Type | Notes | | --- | --- | --- | --- | | fromDate | The requested start date | ISO format. UTC timezone | | | fromMillis | Query start date (same as above) in Epoch time format | Long - Epoch time | | | toDate | The requested end date | ISO format. UTC timezone | | | toMillis | Query end date (same as above) in Epoch time format | Long - Epoch time | | | Interval | The requested interval | Integer | | | skillInfo | Skill information container | Array of objects | | | skillId | The skill Id | Long | | | metricsByIntervals | Contains a summary of the requested metrics by intervals | Container only | | | timestamp | Interval start time (human-readable format) | ISO format. UTC timezone | | | epochTimestamp | Interval start time (epoch format) | Long - Epoch time | | | arrivals | Segments arrived to the queue/skill of all types (new conversation, back2Q, transfer to skill) in the interval | Integer | | | AvgTimeInQueue | The average time a segment waits in the queue before assignment to an agent | Double | | | totalAgentSegmentDuration | Total time of all closed segments ending by any means within the interval | Long | | | AvgAgentSegmentDuration | Average duration of all closed segments ending by any means within the interval | Double | | | avgAvailableLoad | Weighted average load of logged in agents within the interval, this is represented in percentage value for agents that have the skill | Double | Used for the NHT calculation.
60 minutes metric | | messagesSent | Total individual messages sent to consumers within time step by human agents | Integer | Used for the NHT calculation.
60 minutes metric | | handledSegments | Number of individual segments within current interval that have sent at least 1 human agent message (assigned agent) | Integer | Used for the NHT calculation.
60 minutes metric | | avgSegmentWorkTime | The average time it takes for all agents in the skill to work on a message response per skill | Double | Used for the NHT calculation.
60 minutes metric | | netHandleTime | Effort time heuristic LP calculation (NHT) | Double | Used for the NHT calculation.
60 minutes metric | | metadata | Container for additional data | Container | | | count | The total number of results for the query (skills) | Numeric | | | references | An array of links to the pages in the response | Array | | | rel | Pagination: The name of the link. This is based on the “offset” and “limit” elements | String | Possible values:
**self** - the link to the same page in the query.
**previous** - link to the previous page of results.
**previous** - link to the previous page of results.
**first** - link to the first page of the query results.
**last** - link to the last page of the query results.| | href | Pagination: The specific link for each one of the above values | String | The values: self, first, and last will always be returned whereas the others will be returned if there is more than 1 page in the response | #### Response Example (V2) ```json { "_metadata": { "count": 458, "references": [{ "rel": "self", "href": "https://[domain].liveperson.net/operations/api/account/[account]/nht?fromDate=2022-05-19T09:00:00&toDate=2022-05-20T10:00:00&offset=0&limit=10&source=sanity&interval=60&v=2" }, { "rel": "next", "href": "https://[domain].liveperson.net/operations/api/account/[account]/nht?fromDate=2022-05-19T09:00:00&toDate=2022-05-20T10:00:00&offset=10&limit=10&source=sanity&interval=60&v=2" }, { "rel": "last", "href": "https://[domain].liveperson.net/operations/api/account/[account]/nht?fromDate=2022-05-19T09:00:00&toDate=2022-05-20T10:00:00&offset=450&limit=8&source=sanity&interval=60&v=2" }, { "rel": "first", "href": "https://[domain].liveperson.net/operations/api/account/[account]/nht?fromDate=2022-05-19T09:00:00&toDate=2022-05-20T10:00:00&offset=0&limit=10&source=sanity&interval=60&v=2" } ] }, "timeframe": { "fromDate": "2022-05-19T09:00:00", "toDate": "2022-05-19T10:00:00", "fromMillis": 1652950800000, "toMillis": 1652954400000 }, "interval": 60, "skillInfo": [{ "skillId": 773431, "metricsByIntervals": [{ "timestamp": "2022-05-19T09:00", "epochTimestamp": 1652950800000, "arrivals": -1, "avgAgentSegmentDuration": 3127.00, "totalAgentSegmentDuration": 3127, "avgTimeInQueue": 3.00, "netHandleTime": 699.72, "handledSegments": 1, "avgAvailableLoad": 0.70, "avgSegmentWorkTime": 99.96, "messagesSent": 7 }, { "timestamp": "2022-05-19T10:00", "epochTimestamp": 1652954400000, "arrivals": -1, "avgAgentSegmentDuration": 31.15, "totalAgentSegmentDuration": -1, "avgTimeInQueue": 31.15, "netHandleTime": 1421.36, "handledSegments": 1, "avgAvailableLoad": 0.71, "avgSegmentWorkTime": 236.89, "messagesSent": 6 } ] }] } ```