HTTP extraction from ServiceNow
Use the following settings to configure the connection and HTTP extraction for a ServiceNow system.
Disclaimer
Any references to third-party applications in this documentation are provided solely for informational purposes. Such references do not constitute any contractual commitment, representation, or warranty of any kind. The information is provided “as is,” and no guarantee is made as to the accuracy, completeness, or currentness of information relating to third-party applications.
Connection
REST-API base URL
The typical base URL for ServiceNow REST APIs follows this format.
Example
https://<instance_name>.service-now.com/api/now
Key points:
Replace <instance_name> with your ServiceNow instance name.
Test-connection resources
The simplest endpoint to test connectivity is usually the health check or ping endpoint. A common choice is:
/table/sys_user?sysparm_limit=1
It uses the Table API and fetches just one record from the sys_user table.
If authentication and connectivity are correct, you receive a 200 OK response with a small JSON payload.
Supported authentication methods
Bearer token
OAuth 2.0 (client credentials)
Token endpoint URL
Example
https://<instance_name>.service-now.com/oauth_token.do
Tip
When using OAuth authentication, you must provide the client ID and client secret associated with the ServiceNow application configured for your integration. In the ServiceNow application, you must provide the OAuth client credentials by creating an OAuth API endpoint for external clients.
For more information on enabling OAuth client credentials in the ServiceNow application, please refer to the ServiceNow documentation.
Basic authentication
Requires the user name and password of a valid ServiceNow user account.
Permissions or scopes
In ServiceNow, you can manage user roles in the system security. For more information on assigning user roles and permissions, please refer to the ServiceNow documentation.
If no scopes are configured, the platform uses the permissions associated with the OAuth client and user context by default.
Common ServiceNow OAuth scopes:
Scope | Description |
|---|---|
incident.read | Token can only read incidents. |
incident.write | Token can create or update incidents. |
user.read | Token can read user data. |
user.write | Token can create or update user records. |
catalog.read | Token can read Service Catalog items. |
catalog.write | Token can create or update Service Catalog items. |
cmdb.read | Token can read Configuration Management Database. |
cmdb.write | Token can create or update CMDB records. |
attachment.read | Token can download attachments. |
attachment.write | Token can upload attachments. |
Extraction
ServiceNow API resource endpoints
Common ServiceNow API endpoints for data extraction:
Resource | Endpoint | Method | Sample response structure |
|---|---|---|---|
Incidents | /api/now/table/incident | GET | {"result":[{"sys_id":"","number":"","short_description":"","description":"","state":"","priority":"","impact":"","urgency":"","assignment_group":{"link":"","value":""},"assigned_to":{"link":"","value":""},"opened_at":"","resolved_at":"","closed_at":"","caller_id":{"link":"","value":""},"category":"","subcategory":""}]}
|
Users | /api/now/table/sys_user | GET | {"result":[{"sys_id":"","user_name":"","name":"","first_name":"","last_name":"","email":"","active":"","last_login_time":"","sys_created_on":"","sys_updated_on":"","company":"","department":"","manager":""}]}
|
Attachments | /api/now/attachment | GET | {"result":[{"sys_id":"","file_name":"","content_type":"","download_link":"","image_width":"","image_height":"","size_bytes":"","sys_created_on":"","sys_updated_on":""}]}
|
CMDB records | /api/now/table/cmdb_ci | GET | {"result":[{"sys_id":"","name":"","short_description":"","category":"","subcategory":"","sys_class_name":"","operational_status":"","install_status":"","assigned_to":"","assignment_group":"","company":"","department":"","location":"","ip_address":"","serial_number":"","model_id":"","manufacturer":"","vendor":"","sys_created_on":"","sys_updated_on":""}]}
|
Service catalog | /api/now/table/sc_cat_item | GET | {"result":[{"sys_id":"","name":"","short_description":"","description":"","type":"","price":"","cost":"","active":"","sys_created_on":"","sys_updated_on":"","category":"","workflow":{"link":"","value":""}}]}
|
URL format
Versioned URL: /api/now/{api_version}/table/{tableName}/{sys_id}
Default URL: /api/now/table/{tableName}/{sys_id}
Path parameters
api_version: Version of the endpoint to access. For example, v1 or v2. Only specify this value if you want to use a version other than the latest endpoint version (optional).
Data type: String
sys_id: Sys_id of the record to read.
Data type: String
tableName: Name of the table from which to read the specified record, for example, "incident" or "asset".
Data type: String
Query parameters
ServiceNow APIs share common query parameters. These parameters allow you to filter, sort, paginate, and control the behavior of API requests:
sysparm_fields: A comma-separated list of fields to return in the response
Example: number,priority,severity,category
sysparm_view: Used to filter the properties based on the view (overridden by sysparm_fields)
Example: sysparm_view=mobile or sysparm_view=desktop
sysparm_limit: The maximum number of results returned per page (default: 10,000)
sysparm_offset: Start record index with which the retrieval of data records is to begin.. Use this value to paginate record retrieval.
sysparm_query: An encoded query string used to filter the results
Syntax: sysparm_query=<col_name><operator><value>
Example: sysparm_query=priority=1
Encoded queries also support order by functionality. To sort responses based on certain fields, use the ORDERBY and ORDERBYDESC clauses in sysparm_query.
Syntax: ORDERBY<col_name>
ORDERBYDESC<col_name>
For example: sysparm_query=priority=1^ORDERBYcategory
sysparm_suppress_pagination_header: Flag that indicates whether to remove the link header from the response. The link header provides various URLs to relative pages in the record set, which you can use to paginate the returned record set.
Note: While many query parameters are common across ServiceNow APIs, not all parameters are universally supported. Each API may have specific parameters tailored to its functionality.
HTTP request headers
Accept: Data format of the response body. Supported types: application/json or application/xml.
Default: application/json
Content type: Data format of the request body. Supported types: application/json or application/xml.
Default: application/json
HTTP status codes:
200 (Successful): The request was successfully processed.
400 (Bad Request): A bad request type or malformed request was detected.
404 (Not found): The requested item wasn't found.
Pagination
Type: Offset-based
Parameters:
sysparm_limit - The maximum number of results returned per page (default: 10,000).
sysparm_offset - Starting record index for which to begin retrieving records.
Example: sysparm_limit=50&sysparm_offset=100, Request page 3 (offset 100, limit 50, which is page 3)
Some APIs include the X-Total-Count header in their response, which indicates the total number of records available. This value can be used to determine when pagination should be stopped.
Some APIs include a link header in their response, which provides the URL for the next page of results. This header can be used to implement pagination.
Limitations and known issues
Rate limits
ServiceNow enforces API rate limits based on your instance and subscription.
Typical limits:
10,000 requests per hour per user (default for most instances).
Additional throttling may apply for integrations or MID servers.
If limits are exceeded, the API returns HTTP 429 Too Many Requests.
Known bugs or API instabilities
Some integrations or reporting APIs may use cached data.
Performance Analytics and Aggregate APIs can have slight delays due to data processing.