Skip to content

jay3686/sendwithus_python

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

143 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sendwithus python-client

Build Status

requirements

python requests library

installation

pip install sendwithus

usage

For all examples, assume:

import sendwithus
api = sendwithus.api(api_key='YOUR-API-KEY')

Templates

Get your templates

api.templates()

Create a template

api.create_template(
    name='Email Name',
    subject='Email Subject',
    html='<html><head></head><body>Valid HTML</body></html>',
    text='Optional text content')

We validate all HTML and will return an error if it's invalid.

r.status_code
# 400
r.content
# 'email html failed to validate'

Send

Call with REQUIRED parameters only

The email_data field is optional, but highly recommended!

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={'address': 'us@sendwithus.com'})
print r.status_code
# 200

Call with REQUIRED parameters and email_data

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={'address': 'us@sendwithus.com'},
    email_data={ 'first_name': 'Matt' })
print r.status_code
# 200

Optional Sender

The sender['address'] is a required sender field

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={ 'name': 'Matt',
                'address': 'us@sendwithus.com'},
    email_data={ 'first_name': 'Matt' },
    sender={ 'address':'company@company.com' })
print r.status_code
# 200

Optional Sender with reply_to address

sender['name'] and sender['reply_to'] are both optional

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={ 'name': 'Matt',
                'address': 'us@sendwithus.com'},
    email_data={ 'first_name': 'Matt' },
    sender={ 'name': 'Company',
                'address':'company@company.com',
                'reply_to':'info@company.com'})
print r.status_code
# 200

Optional CC

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={'name': 'Matt',
                'address': 'us@sendwithus.com'},
    cc=[
        {'address': 'company@company.com'},
        {'address': 'info@company.com'}
    ])
print r.status_code
# 200

Optional BCC

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={'name': 'Matt',
                'address': 'us@sendwithus.com'},
    bcc=[
        {'address': 'company@company.com'},
        {'address': 'info@company.com'}
    ])
print r.status_code
# 200

Optional ESP Account

r = api.send(
    email_id='YOUR-EMAIL-ID',
    recipient={'name': 'Matt',
                'address': 'us@sendwithus.com'},
    esp_account='esp_1234asdf1234')
print r.status_code
# 200

Drip Campaigns

Deactive a drip campaign

You can deactivate pending drip campaign emails for a customer

api.drip_deactivate('customer@example.com')

Drip Campaigns 2.0

List all drip campaigns

List all drip campaigns for the current profile

api.list_drip_campaigns()

Start a customer on a drip campaign

Starts a customer on the first step of a specified drip campaign

api.start_on_drip_campaign('customer@email.com', 'dc_1234asdf1234')

Extra Data

You may specify extra data to be merged into the templates in the drip campaign

api.start_on_drip_campaign('customer@email.com', 'dc_1234asdf1234', email_data={'color': 'blue'})

Remove a customer from a drip campaign

Deactivates all pending emails for a customer on a specified drip campaign

api.remove_from_drip_campaign('customer@email.com', 'dc_1234asdf1234')

List the details of a specific campaign

api.drip_campaign_details('dc_1234asdf1234')

List the active customers on a drip campaign

api.drip_campaign_customers('dc_1234asdf1234')

List the active customers on a specific drip step

api.drip_campaign_step_customers('dc_1234asdf1234', 'dcs_jklqwer567')

Customers

Create/update Customer

You can use the same endpoint to create or update a customer. Sendwithus will peform a merge of the data on the customer profile, preferring the new data.

api.customer_create('customer@example.com', data={'first_name': 'Matt'})

Delete a Customer

api.customer_delete('customer@example.com')

Segmentation

Send Template to Segment

You can use the Segments api to send a template to all customers who match a segment. The Segment must be created in the Sendwithus dashboard, which is where you will find the segment_id for use in this api.

api.send_segment('tem_12345', 'seg_1245')

Extra Data

You may specify extra data to be merged into the template, alongside the individual customer profiles

api.send_segment('tem_12345', 'seg_12345', email_data={'color': 'blue'})

expected response

Success

>>> r.status_code
200

>>> r.json().get('success')
True

>>> r.json().get('status')
u'OK'

>>> r.json().get('receipt_id')
u'numeric-receipt-id'

Error cases

  • malformed request

      >>> r.status_code
      400
    
  • bad api key

      >>> r.status_code
          403
    

to run tests

python setup.py test

packaging (internal)

    python setup.py sdist upload

About

sendwithus python client

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%