Table API - GET /now/table/{tableName}

This method retrieves multiple records for the specified table with proper pagination information.

URL format

Versioned URL: /api/now/v2/table/{tableName}

Default URL: /api/now/table/{tableName}

Supported request parameters

Table 1. Parameters
Parameter Description
sysparm_query Encoded query used to filter the result set.

For example:


The encoded query supports order by. To sort responses based on certain fields, use the ORDERBY and ORDERBYDESC clauses in sysparm_query. For example, sysparm_query=active=true^ORDERBYnumber^ORDERBYDESCcategory filters all active records and orders the results in ascending order by number first, and then in descending order by category.

If part of the query is invalid, such as by specifying an invalid field name, the instance ignores the invalid part. It then returns rows using only the valid portion of the query. You can control this behavior using the property glide.invalid_query.returns_no_rows. Set this property to true to return no rows on an invalid query.
Note: This property controls the behavior of all queries across the instance, such as in lists, scripts (GlideRecord.query()), and web service APIs.
sysparm_display_value Data retrieval operation for reference and choice fields.
Based on this value, retrieves the display value and/or the actual value from the database.
  • true returns display values for all fields.
  • false returns actual values from the database. If a value is not specified, this parameter defaults to false.
  • all returns both actual and display values.
Note: There is no preferred method for setting this parameter. However, specifying the display value may cause performance issues since it is not reading directly from the database and may include referencing other fields and records. For more information on display values and actual values, see Table API FAQs (KB0534905).
sysparm_fields Comma-separated field names to return in the response.
sysparm_view UI view to determine fields returned in the response.
Note: If both sysparm_fields and sysparm_view are specified, the sysparm_fields parameter takes priority.
sysparm_limit Limit to be applied on pagination. The default is 10000.

Unusually large sysparm_limit values can impact system performance.

sysparm_offset Number of records to exclude from the query. Use this parameter to obtain more records than specified in sysparm_limit. For example, if sysparm_limit is set to 500, but there are additional records you want to query, specify a sysparm_offset value of 500 to get the second set of records. Do not pass a negative number in the sysparm_offset parameter.
sysparm_exclude_reference_link Additional information provided for reference fields, such as the URI to the reference resource, is suppressed.
sysparm_read_replica_category Category value to read data from read replicas.
Note: This parameter is not commonly used. The instance must have read replica support.
sysparm_suppress_pagination_header Set this value to true to remove the Link header from the response. The Link header enables you to request additional pages of data when the number of records matching your query exceeds the query limit.
Key-Value Pairs

Alternative to using the sysparm_query parameter. You can filter a query using key-value pairs where the key is the name of a field. This functionality is available for GET queries.

For example, instead of using the parameter &sysparm_query=active=true, you can use &active=true. You can use the display value when the field is a choice or reference type field, such as &state=closed instead of &state=7. To specify multiple key-value pairs, separate each with an ampersand, such as &active=true&assigned_to=john.smith.


The following request and response headers apply to this HTTP action only, or apply to this action in a distinct way. For a list of general headers used in the REST API, see REST API headers.

Table 2. Request headers
Header Description
Table 3. Response headers
Header Description
Link REST message data can be split into multiple result sets rather than forcing the user to submit multiple requests. The header has different links available for the first set, previous set, next set, and the last set of records, where applicable.

For example:

https://<instance name>>;rel="next",

https://<instance name>>;rel="prev",

https://<instance name>>;rel="first",

https://<instance name>>;rel="last"
Note: The limit parameter defaults to 10,000 records. This limit can be set to any value. Be aware, however, that an unusually large value can impact system performance.
X-Total-Count Total count of records returned by the query.

Status codes

The following status codes apply to this HTTP action. For a list of possible status codes used in the REST API, see REST API response codes.

Table 4. Status codes
Status code Description
200 Request completed successfully. If a valid query returned no results, the response body contains only an empty result array.

Sample cURL request

curl "" \
--request GET \
--header "Accept:application/json" \
--user 'username':'password'
  "result": [
      "parent": "",
      "made_sla": "true",
      "watch_list": "",
      "upon_reject": "cancel",
      "sys_updated_on": "2016-01-19 04:52:04",
      "approval_history": "",
      "number": "PRB0000050",
      "sys_updated_by": "glide.maint",
      "opened_by": {
        "link": "",
        "value": "glide.maint"
      "user_input": "",
      "sys_created_on": "2016-01-19 04:51:19",
      "sys_domain": {
        "link": "",
        "value": "global"
      "state": "4",
      "sys_created_by": "glide.maint",
      "knowledge": "false",
      "order": "",
      "closed_at": "2016-01-19 04:52:04",
      "cmdb_ci": {
        "link": "",
        "value": "55b35562c0a8010e01cff22378e0aea9"
      "delivery_plan": "",
      "impact": "3",
      "active": "false",
      "work_notes_list": "",
      "business_service": "",
      "priority": "4",
      "sys_domain_path": "/",
      "time_worked": "",
      "expected_start": "",
      "rejection_goto": "",
      "opened_at": "2016-01-19 04:49:47",
      "business_duration": "1970-01-01 00:00:00",
      "group_list": "",
      "work_end": "",
      "approval_set": "",
      "wf_activity": "",
      "work_notes": "",
      "short_description": "Switch occasionally drops connections",
      "correlation_display": "",
      "delivery_task": "",
      "work_start": "",
      "assignment_group": "",
      "additional_assignee_list": "",
      "description": "Switch occasionally drops connections",
      "calendar_duration": "1970-01-01 00:02:17",
      "close_notes": "updated firmware",
      "sys_class_name": "problem",
      "closed_by": "",
      "follow_up": "",
      "sys_id": "04ce72c9c0a8016600b5b7f75ac67b5b",
      "contact_type": "phone",
      "urgency": "3",
      "company": "",
      "reassignment_count": "",
      "activity_due": "",
      "assigned_to": "",
      "comments": "",
      "approval": "not requested",
      "sla_due": "",
      "comments_and_work_notes": "",
      "due_date": "",
      "sys_mod_count": "1",
      "sys_tags": "",
      "escalation": "0",
      "upon_approval": "proceed",
      "correlation_id": "",
      "location": ""

Sample Python request

#Need to install requests package for python
#easy_install requests
import requests

# Set the request parameters
url = ''

# Eg. User name="admin", Password="admin" for this code sample.
user = 'username'
pwd = 'password'

# Set proper headers
headers = {"Content-Type":"application/json","Accept":"application/json"}

# Do the HTTP request
response = requests.get(url, auth=(user, pwd), headers=headers  )

# Check for HTTP codes other than 200
if response.status_code != 200: 
    print('Status:', response.status_code, 'Headers:', response.headers, 'Error Response:',response.json())

# Decode the JSON response into a dictionary and use the data
data = response.json()
<?xml version="1.0" encoding="UTF-8"?>
      <parent />
      <caused_by />
      <watch_list />
      <upon_reject />
      <sys_updated_on>2016-01-19 20:16:07</sys_updated_on>
      <child_incidents />
      <hold_reason />
      <approval_history />
      <user_input />
      <sys_created_on>2014-05-20 18:24:13</sys_created_on>
      <order />
      <closed_at>2015-10-20 23:10:06</closed_at>
      <delivery_plan />
      <work_notes_list />
      <business_service />
      <rfc />
      <time_worked />
      <expected_start />
      <rejection_goto />
      <opened_at>2015-10-19 23:09:51</opened_at>
      <business_duration>1970-01-22 21:46:21</business_duration>
      <group_list />
      <work_end />
      <resolved_at>2016-01-19 19:56:12</resolved_at>
      <approval_set />
      <subcategory />
      <wf_activity />
      <work_notes />
      <short_description>Can't read email</short_description>
      <close_code>Closed/Resolved by Caller</close_code>
      <correlation_display />
      <delivery_task />
      <work_start />
      <additional_assignee_list />
      <description>User can't access email on</description>
      <calendar_duration>1970-04-02 20:46:21</calendar_duration>
      <close_notes>Closed before close notes were made mandatory</close_notes>
      <follow_up />
      <parent_incident />
      <contact_type />
      <company />
      <activity_due />
      <comments />
      <approval />
      <sla_due />
      <comments_and_work_notes />
      <due_date />
      <reopen_count />
      <sys_tags />
      <upon_approval />
      <correlation_id />