How to export instance table data to CSV using REST API

Tanisha Hudson
ServiceNow Employee
ServiceNow Employee

Hello all,

 

I have some data in an instance that I would like to export to a CSV file using Python and the REST API. I wish to use REST, because there are some rows missing when emailed as a .CSV file. The query gives me 12,000 rows, however, the file that is emailed to me only contains 10,001 rows. 

 

Here is the data I wish to export to CSV:

find_real_file.png

I have added a filter, and it is only about 12,000 rows that I wish to export. This is what I am doing in Python:

 

user = 'tanisha.hudson'
pwd = 'password'



#sysparm_query= import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname
       # =/dev/mapper/backupvg-backuplv^mount_point!=/backup_rada


# Set the request parameters
url = 'https://capman.service-now.com/nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do&sysparm_query=import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname?CSV'

#url = 'https://capman.service-now.com/ nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do?CSV'


# Eg. User name="username", Password="password" for this code sample.

requests.get('https://api.github.com/user', auth=('user', 'pwd'))




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


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

 

 

However, the output appears to be html and CSS:

find_real_file.png

 

 

I am still troubleshooting this, and would like to know if my above code is correct, or what needs to be tweaked to have the data exported in a .csv data-frame format and to a csv file. Any suggestions are appreciated. Thank you

7 REPLIES 7

Try below in your python script

url = 'https://capman.service-now.com/nav_to.do?uri=%2Fx_snc_instance_dc_cmdb_ci_file_system_list.do&sysparm_query=import_dateONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()^nameSTARTSWITHfb^ORname?CSV&sysparm_orderby=sys_id&sysparm_record_count=10000'

 


Please mark my response as correct and helpful if it helped solved your question.
-Thanks

Tanisha Hudson
ServiceNow Employee
ServiceNow Employee

Ok thank you. This is giving me this output:

Is there a way to have the output in .CSV with a row count of greater than 10,000?

find_real_file.png

sysparm_record_count=10000 increase this value as needed in your script.


Please mark my response as correct and helpful if it helped solved your question.
-Thanks