Skip to content

lemuelf/sift-python

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

86 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sift Science Python Bindings TravisCI

Bindings for Sift Science's Events, Labels, and Score APIs.

Installation

Set up a virtual environment with virtualenv (otherwise you will need to make the pip calls as sudo):

virtualenv venv
source venv/bin/activate

Get the latest released package from pip:

Python 2:

pip install sift

Python 3:

pip3 install sift

or install newest source directly from GitHub:

Python 2:

pip install git+https://github.com/SiftScience/sift-python

Python 3:

pip3 install git+https://github.com/SiftScience/sift-python

Usage

Here's an example:

import sift.client

sift.api_key = '<your api key here>'
client = sift.Client()

user_id= "23056"    # User ID's may only contain a-z, A-Z, 0-9, =, ., -, _, +, @, :, &, ^, %, !, $

# Track a transaction event -- note this is blocking
event = "$transaction"

properties = {
  "$user_id" : user_id,
  "$user_email" : "buyer@gmail.com",
  "$seller_user_id" : "2371",
"seller_user_email" : "seller@gmail.com",
  "$transaction_id" : "573050",
  "$payment_method" : {
    "$payment_type"    : "$credit_card",
    "$payment_gateway" : "$braintree",
    "$card_bin"        : "542486",
    "$card_last4"      : "4444"
},
"$currency_code" : "USD",
"$amount" : 15230000,
}

response = client.track(event, properties)


response.is_ok()  # returns True of False

print response # prints entire response body and http status code


# Request a score for the user with user_id 23056
response = client.score(user_id)

# Label the user with user_id 23056 as Bad with all optional fields
response = client.label(user_id,{ "$is_bad" : True, "$reasons" : ["$chargeback", ], "$description" : "Chargeback issued", "$source" : "Manual Review", "$analyst" : "analyst.name@your_domain.com"})

# Remove a label from a user with user_id 23056
response = client.unlabel(user_id)

Testing

Before submitting a change, make sure the following commands run without errors from the root dir of the repository:

PYTHONPATH=. python tests/client_test.py
PYTHONPATH=. python3 tests/client_test.py

About

Sift Science API (Python client)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%