Forum Discussion

Silutions's avatar
02-09-2022
Solved

REST API and Python

i'm a Python newbie looking for more REST API script samples using Python.  For example, I'm trying to export a simple user list with email, firstName and lastName with a certain search value using the 0.9 GetUsers endpoint.  I have tested this in the Swagger interface and get the correct results.  I'm trying to use Python to access the data without success.  My code looks like this:

import requests
import json

headers = {
'X-XSRF-TOKEN':'eyJhbGciOiJIUzI1NiIsInxxxxxxxxxxx0ZW5hbnRJZCI6IjYxYjExNmI2OTdiYTBiMDAxYTk2MTgxMyIsImFsbG93ZWRUZW5hbnRzIjpbIjYxYjExNmI2OTdiYTBiMDAxYTk2MTgxMyJdLCJjc3JmVG9rZW4iOiJIaE1yWldBRzBlRUVncG9MRm5VNldlL0J3dEQ4cWJPRkR4azZpdThpVUdzNUh2ZW1haGh3dEJianBsaUYvY0dSIiwiZXhwIjoxNjQ0OTQ5NjM0LCJpYXQiOjE2NDQzNDQ4MzR9.9tWIp0XDzEtZu9Q0WTtSrzB8uGRZM0QFsar7lqZE1wE',
'accept': 'application/json'
}

url = 'https://xxxxx.yyyyy.com/api/v1/users?search=ZZZ&fields=email%2CfirstName%2ClastName'

response = requests.get(url, headers=headers)

print(json.loads(response.text))

This results in a 401 unauthorized error.  I have a feeling something is not right with the header since I did create a user token.

Any assistance will be greatly appreciated.  Note:  This is not really a Notebooks topic, but it was the closest label I spotted.

Regards, Jim

  • Silutions ,

    Please check this python script:

    import requests
    import json
    
    username = 'your username'
    password = 'your password'
    server_name = 'https://XXXXX.YYYYY.com'
    
    login_data =    {  'username' : username,
                            'password' : password
                        }
    
    login_url = server_name + '/api/v1/authentication/login'
    login_res = requests.post(url=login_url, data=login_data).json()
    
    access_token = login_res.get('access_token')
    if len(access_token) > 0:
        print('login succesful.')
        
    api_header = {'Authorization': 'Bearer ' + access_token}
    
    url = server_name + '/api/v1/users?search=ZZZZ&fields=email%2CfirstName%2ClastName'
    
    response = requests.get(url, headers=api_header)
    
    print(json.loads(response.text))

    -Hari

2 Replies

Replies have been turned off for this discussion
  • harikm007's avatar
    harikm007
    Data Warehouse

    Silutions ,

    Please check this python script:

    import requests
    import json
    
    username = 'your username'
    password = 'your password'
    server_name = 'https://XXXXX.YYYYY.com'
    
    login_data =    {  'username' : username,
                            'password' : password
                        }
    
    login_url = server_name + '/api/v1/authentication/login'
    login_res = requests.post(url=login_url, data=login_data).json()
    
    access_token = login_res.get('access_token')
    if len(access_token) > 0:
        print('login succesful.')
        
    api_header = {'Authorization': 'Bearer ' + access_token}
    
    url = server_name + '/api/v1/users?search=ZZZZ&fields=email%2CfirstName%2ClastName'
    
    response = requests.get(url, headers=api_header)
    
    print(json.loads(response.text))

    -Hari