Postman ServiceNow
Introduction
Postman ServiceNow integration testing is a practical way for developers, administrators, and integration consultants to validate ServiceNow REST APIs before connecting ServiceNow with enterprise applications. Instead of waiting for a complete integration to be developed, a consultant can use Postman to test authentication, endpoints, query parameters, request payloads, HTTP methods, response codes, and error handling independently.
In a typical implementation, ServiceNow may need to exchange data with Oracle Fusion Cloud, Oracle Integration Cloud (OIC), SAP, Workday, Microsoft applications, custom Java applications, or external IT systems. Before building the production integration, Postman provides a controlled environment for proving that the ServiceNow API actually behaves as expected.
ServiceNow provides REST APIs for accessing and updating platform data. Its REST API Explorer can be used to discover and test APIs, while Postman is useful when the integration team wants a reusable collection of API requests and more controlled testing outside the ServiceNow instance. ServiceNow currently documents REST APIs, Table API operations, API versioning, OAuth 2.0, and REST API security controls.
This article walks through a realistic implementation scenario: using Postman to authenticate against ServiceNow, retrieve incidents, create a new incident, update it, and troubleshoot common API errors.
What Is Postman ServiceNow API Testing?
Postman is an API client used to construct and execute HTTP requests. ServiceNow exposes REST endpoints that accept requests and return structured responses, commonly JSON.
For example, a ServiceNow incident API request can look like:
GET https://instance.service-now.com/api/now/table/incident
A POST request can create an incident:
POST https://instance.service-now.com/api/now/table/incident
with a JSON body such as:
{
"short_description": "Unable to access corporate VPN",
"urgency": "2",
"impact": "2"
}
ServiceNow’s Table API supports CRUD operations against existing tables, subject to the calling user’s roles, ACLs, and web-service access controls. The current ServiceNow documentation also supports versioned API paths such as /api/now/v1/table/{tableName}.
The practical relationship is:
Postman
|
| HTTP Request
v
ServiceNow REST Endpoint
|
| Authentication
v
ServiceNow Security / ACL
|
| Authorization
v
ServiceNow Table / Scripted REST API
|
| JSON Response
v
Postman
Postman does not replace ServiceNow’s REST API Explorer. A common consultant workflow is:
Discover the API in ServiceNow REST API Explorer.
Test the basic request in ServiceNow.
Recreate the request in Postman.
Test authentication independently.
Add realistic payloads and query parameters.
Save the working request in a Postman collection.
Hand the API specification to the integration development team.
Why Use Postman With ServiceNow?
There are several practical reasons.
1. API validation before integration development
Suppose an organization wants Oracle Integration Cloud to create ServiceNow incidents whenever a critical Oracle Fusion process fails.
Before building the OIC integration, the consultant can prove:
POST ServiceNow Incident API
↓
Authentication successful
↓
Payload accepted
↓
Incident created
↓
sys_id returned
This separates ServiceNow API problems from OIC mapping problems.
2. Faster troubleshooting
If an OIC integration returns HTTP 400, the consultant can reproduce the same request in Postman.
If it fails in Postman too, the issue is probably related to:
Endpoint
Authentication
Payload
Field name
ACL
ServiceNow configuration
If the same request works in Postman but fails in OIC, investigation can move toward the OIC connection, headers, mapping, or runtime configuration.
3. Reusable API collections
A project may have dozens of ServiceNow APIs:
Incident
Problem
Change
User
Group
Configuration Item
Catalog Item
Custom tables
Saving these requests in Postman provides a reusable technical test library.
Real-World ServiceNow Integration Use Cases
Use Case 1 – Oracle Fusion failures create ServiceNow incidents
Consider a company running Oracle Fusion Cloud applications.
An OIC integration executes every night and sends employee or supplier data to another enterprise system.
If the integration fails, the requirement is:
OIC Integration Failure
↓
OIC Error Handler
↓
ServiceNow Incident API
↓
Incident created
↓
Support team receives ticket
Before developing the OIC flow, the integration consultant can use Postman to test the ServiceNow POST endpoint.
Example:
{
"short_description": "Oracle Integration failed - Supplier Sync",
"description": "Supplier synchronization failed during scheduled execution.",
"urgency": "2",
"impact": "2"
}
Once the request works, the same structure can be implemented in OIC.
Use Case 2 – Employee onboarding
A company may use Oracle Fusion HCM as the employee master system and ServiceNow for IT service management.
When an employee joins:
Oracle Fusion HCM
↓
OIC
↓
ServiceNow REST API
↓
Request / Incident
↓
IT provisioning team
Postman can be used to validate the ServiceNow API before the HCM-to-OIC-to-ServiceNow integration is built.
Use Case 3 – ServiceNow data extraction
An integration may need active incidents for reporting or operational monitoring.
A GET request can retrieve incidents with query parameters such as:
/api/now/table/incident?sysparm_limit=10
ServiceNow documents the Table API GET operation and query parameters for retrieving records.
The consultant can first test:
GET /api/now/table/incident
and then refine the query using parameters such as:
sysparm_query
sysparm_fields
sysparm_limit
sysparm_display_value
This is particularly useful before creating an OIC REST integration.
ServiceNow REST API Architecture With Postman
A typical architecture looks like this:
+----------------------+
| Postman |
|----------------------|
| GET / POST / PATCH |
| Headers |
| Authentication |
| JSON Payload |
+----------+-----------+
|
| HTTPS
v
+----------------------+
| ServiceNow Instance |
+----------+-----------+
|
+--------------+--------------+
| |
v v
Authentication API Security
OAuth / Basic Auth ACL / Roles
| |
+--------------+--------------+
|
v
+----------------------+
| REST API |
| Table API |
| Scripted REST API |
+----------+-----------+
|
v
+----------------------+
| ServiceNow Tables |
| incident |
| problem |
| change_request |
| custom tables |
+----------------------+
ServiceNow REST APIs support methods including GET, POST, PUT, PATCH, DELETE, and HEAD. ServiceNow also supports versioned REST API URIs; using an explicit version can help protect an integration from unexpected behavior changes associated with a latest-version endpoint.
Prerequisites
Before starting Postman testing, confirm the following.
| Requirement | Example |
|---|---|
| ServiceNow instance | https://dev12345.service-now.com |
| API | Table API |
| Table | incident |
| HTTP method | GET / POST / PATCH |
| Authentication | OAuth 2.0 or Basic Auth |
| Integration user | Dedicated service account |
| Roles | Appropriate API/table permissions |
| Postman | Desktop or web client |
| Content type | application/json |
| Test data | Non-production records |
Do not use a production administrator account simply because it makes testing easier. A dedicated integration identity with only the permissions required by the API is easier to audit and safer to operate.
Step-by-Step: Test ServiceNow REST API Using Postman
Step 1 – Identify the API in ServiceNow
Log in to the ServiceNow instance.
Navigate to:
All → System Web Services → REST → REST API Explorer
Depending on the current ServiceNow UI and application configuration, the exact navigation presentation can vary.
REST API Explorer allows a consultant to select the API, version, HTTP method, table, parameters, and request body. ServiceNow’s current documentation provides examples for creating and retrieving incident records through the REST API Explorer.
For our example, select:
API: Table API
Version: v1
Method: GET
Table: incident
The resulting endpoint can be:
https://instance.service-now.com/api/now/v1/table/incident
Step 2 – Create a Postman Request
Open Postman.
Create a new HTTP request.
Select:
GET
Enter:
https://instance.service-now.com/api/now/v1/table/incident
For an initial test, add:
sysparm_limit=10
The URL becomes:
https://instance.service-now.com/api/now/v1/table/incident?sysparm_limit=10
Step 3 – Configure Authentication
ServiceNow REST APIs support authentication mechanisms including Basic Authentication and OAuth 2.0.
For a simple development test, Basic Auth can be used where it is permitted.
In Postman:
Authorization
↓
Type: Basic Auth
↓
Username: <integration_user>
Password: <password>
For a more production-oriented design, OAuth 2.0 should generally be evaluated according to the organization’s security architecture.
ServiceNow’s developer documentation demonstrates configuring Postman for an OAuth authorization-code flow using the instance OAuth endpoints.
Step 4 – Add Request Headers
For JSON APIs, configure:
Accept: application/json
Content-Type: application/json
For a GET request, Content-Type is normally not important because there is no request body, but explicitly setting Accept helps communicate the expected response format.
Step 5 – Send the GET Request
Click Send.
A successful response may look conceptually like:
{
"result": [
{
"sys_id": "46b2c...123",
"number": "INC0010042",
"short_description": "Unable to access VPN",
"priority": "2 - High"
}
]
}
The important checks are:
HTTP status is successful.
resultexists.Records are returned.
Required fields are present.
Data corresponds to the expected ServiceNow records.
The REST API Explorer itself reports status code and execution time, and its incident retrieval example demonstrates record retrieval through the Table API.
Step 6 – Create an Incident Using POST
Create another Postman request.
Method:
POST
URL:
https://instance.service-now.com/api/now/v1/table/incident
Go to:
Body → raw → JSON
Enter:
{
"short_description": "Postman API Test Incident",
"description": "Incident created during ServiceNow REST API testing using Postman.",
"urgency": "2",
"impact": "2"
}
Make sure the header contains:
Content-Type: application/json
Click Send.
A successful creation should return a successful HTTP response and information about the created record. ServiceNow’s current API documentation describes POST against the Table API and provides an example of creating an incident record.
Capture the returned:
sys_id
number
For example:
Number: INC0010043
sys_id: 9f8a...
The sys_id is particularly important for subsequent GET, PATCH, or DELETE operations.
Step 7 – Retrieve the Created Incident
Use:
GET
with:
https://instance.service-now.com/api/now/v1/table/incident/<sys_id>
For example:
https://instance.service-now.com/api/now/v1/table/incident/9f8a...
The response should contain the incident created in the previous step.
This is a useful integration test because it verifies both sides:
POST → Record created
GET → Same record retrieved
Step 8 – Update the Incident
Use:
PATCH
Endpoint:
https://instance.service-now.com/api/now/v1/table/incident/<sys_id>
Body:
{
"comments": "Incident updated through Postman PATCH request.",
"urgency": "1"
}
Click Send.
Then perform another GET request to verify that the changes were applied.
This produces a simple CRUD validation sequence:
CREATE
↓
READ
↓
UPDATE
↓
READ
↓
DELETE
Use DELETE only in a controlled development/test environment. Do not use destructive API operations merely to prove that an endpoint works.
Step 9 – Test Filtering
For larger tables, retrieving every record is inefficient.
Instead, use query parameters.
For example:
GET /api/now/v1/table/incident
with:
sysparm_limit=10
or a ServiceNow encoded query using:
sysparm_query
For example, conceptually:
sysparm_query=active=true
You can also restrict the response fields with:
sysparm_fields=number,short_description,priority,sys_id
This is important in real integrations because returning unnecessary fields increases payload size and can complicate mapping.
OAuth 2.0 Testing in Postman
For enterprise integrations, OAuth is often the preferred architecture when supported by the project’s security standards.
The flow is conceptually:
Postman
|
| Client credentials / authorization flow
v
ServiceNow OAuth Token Endpoint
|
| Access Token
v
Postman
|
| Authorization: Bearer <token>
v
ServiceNow REST API
ServiceNow’s developer documentation demonstrates using Postman with OAuth and identifies the instance authorization and token endpoints.
A token request may ultimately produce:
{
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 1799
}
The subsequent API request uses:
Authorization: Bearer <access_token>
A critical implementation point is that the client ID and client secret are used to obtain the token; they are not themselves substitutes for the Bearer token in the actual Table API request.
ServiceNow also provides security controls such as authentication scopes and REST API access policies that can restrict which APIs or HTTP methods an OAuth client can access.
Common Errors and Troubleshooting
HTTP 401 – Unauthorized
Typical causes:
Incorrect username/password
Expired OAuth token
Missing Authorization header
Incorrect OAuth configuration
Inactive integration user
Wrong authentication type
First verify authentication independently.
For OAuth, check:
Authorization: Bearer <token>
Do not accidentally send:
Authorization: Basic ...
when the endpoint expects OAuth.
HTTP 403 – Forbidden
A 403 usually indicates that authentication succeeded but authorization failed.
Investigate:
User roles
ACLs
Table access
API access policies
OAuth scopes
Application access configuration
ServiceNow’s REST API documentation specifically notes that the calling user must have sufficient roles to access the requested table data.
HTTP 400 – Bad Request
Common causes include:
Invalid JSON
Incorrect field name
Invalid field value
Missing mandatory information
Incorrect query syntax
For example:
{
"short_description":
}
is invalid JSON.
A valid request would be:
{
"short_description": "VPN access issue"
}
HTTP 404 – Not Found
Check:
Instance URL
API path
API version
Table name
sys_id
For example, these are structurally different:
/api/now/table/incident
and:
/api/now/v1/table/incident
ServiceNow documents that an unversioned REST URI uses the latest REST endpoint for the instance, while a versioned URI explicitly selects a version.
Response Does Not Contain Expected Fields
Do not immediately assume that the API is broken.
Check:
Field name.
User ACL.
sysparm_fields.Display-value settings.
Table configuration.
Whether the field actually contains data.
ServiceNow notes that fields for which the calling entity lacks ACL rights are not returned in REST query responses.
Testing Strategy Used in Real Projects
A practical API test matrix can look like this:
| Test | Method | Expected |
|---|---|---|
| Retrieve incident | GET | 200 |
| Retrieve one incident | GET | 200 |
| Create incident | POST | 201/successful response |
| Update incident | PATCH | Successful response |
| Invalid authentication | GET | 401 |
| Insufficient permission | POST | 403 |
| Invalid JSON | POST | 400 |
| Invalid sys_id | GET | 404 |
This approach is much more useful than testing only the happy path.
For an enterprise integration, test:
Valid request
Invalid request
Missing mandatory field
Unauthorized request
Expired token
Duplicate request
Invalid reference value
Large response
Empty response
Network timeout
Rate-limit behavior
Best Practices for Postman ServiceNow Projects
Use environment variables
Instead of hardcoding:
https://dev12345.service-now.com
create:
{{serviceNowBaseUrl}}
Then define environments for:
DEV
TEST
UAT
PROD
This makes promotion between environments much safer.
Do not store passwords directly in shared collections
ServiceNow community guidance specifically highlights the security risk of placing credentials directly into requests or shared Postman documentation and recommends using environment variables appropriately.
Keep secrets outside shared collections and repositories.
Use a dedicated integration account
Avoid testing with an administrator account.
A better model is:
ServiceNow Integration User
↓
Required API role
↓
Required table access
↓
Required ACL access
Validate in REST API Explorer first
REST API Explorer is particularly useful for discovering the correct endpoint, parameters, and request structure before reproducing the request in Postman.
Use versioned endpoints deliberately
If the project requires a specific API version, explicitly specify it instead of relying on an unversioned latest endpoint.
Minimize returned fields
For integrations, avoid retrieving the entire incident object if the downstream system needs only:
sys_id
number
short_description
priority
state
This reduces payload size and simplifies mappings.
Separate API testing from business validation
A successful HTTP 200 or 201 does not necessarily mean that the complete business process is correct.
For example:
HTTP 201
↓
Incident created
does not prove that:
Correct assignment group was selected.
Priority was calculated correctly.
Notifications were triggered.
SLA processing behaved as expected.
The incident reached the intended workflow state.
Those should be separate business-process validations.
Practical Consultant Scenario: ServiceNow and Oracle Integration Cloud
Consider an enterprise requirement where Oracle Fusion HCM sends employee onboarding information to ServiceNow.
The implementation may look like:
Oracle Fusion HCM
|
| REST API
v
Oracle Integration Cloud
|
| Transform / Validate
v
ServiceNow REST API
|
v
ServiceNow Request / Incident
Before building the OIC integration:
Tes