Skip to main content

Python bindings for Sift Science's API

Project description

============================
Sift Science Python Bindings |TravisCI|_
============================

.. |TravisCI| image:: https://travis-ci.org/SiftScience/sift-python.png?branch=master
.. _TravisCI: https://travis-ci.org/SiftScience/sift-python

Bindings for Sift Science's `Events <https://siftscience.com/resources/references/events-api.html>`_, `Labels <https://siftscience.com/resources/references/labels-api.html>`_, and `Score <https://siftscience.com/resources/references/score-api.html>`_ 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


1.1.2.1 (2015-05-18)
====================
* Added Python 2.6 compatibility
* Added Travis CI
* Minor bug fixes

1.1.2.0 (2015-02-04)
====================
* Added Unlabel functionaly
* Minor bug fixes.

1.1.1.0 (2014-09-3)
===================
* Added timeout parameter to track, score, and label functions.

1.1.0.0 (2014-08-25)
====================
* Added Module-scoped API key.
* Minor documentation updates.

0.2.0 (2014-08-20)
==================
* Added Label and Score functions.
* Added Python 3 compatibility.

0.1.1 (2014-02-21)
==================
* Bump default API version to v203.

0.1.0 (2013-01-08)
==================
* Just the Python REST client itself.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Sift-1.1.2.5.tar.gz (6.1 kB view details)

Uploaded Source

File details

Details for the file Sift-1.1.2.5.tar.gz.

File metadata

  • Download URL: Sift-1.1.2.5.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for Sift-1.1.2.5.tar.gz
Algorithm Hash digest
SHA256 d1bfef9a54d931540fbc3b7d7466b2a2186babb9550edb4f56c54f4a06d1b52a
MD5 1b40e90378e3d0dc0fd87c015f983288
BLAKE2b-256 c9c4198cea0a2982ffa598a980f806c14ee5f1876418304d3a8ef37ff18947bf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page