Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

onlyrohits/sendgrid-python

Open more actions menu
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

177 Commits
177 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SendGrid-Python

This library allows you to quickly and easily use SendGrid API using Python.

Example

import sendgrid

sg = sendgrid.SendGridToolkitClient('YOUR_SENDGRID_USERNAME','YOUR_SENDGRID_PASSWORD',endpoint="/api/stats.get.json")


## example for General Statistics

general_st = sendgrid.GeneralStatistics()
general_st.set_days(2)
general_st.set_start_date("2014-04-14")
general_st.set_end_date("2014-04-20")
general_st.set_aggregate(0)
general_st.set_category("WebD:CampId:3100")
status, msg = sg.send(general_st)


#or
general_st = sendgrid.GeneralStatistics(days=2,start_date="2014-04-14",end_date="2014-04-20",
                                aggregate=0,category="WebD:CampId:3100")

status, msg = sg.send(general_st)

## example for Advanced Statistics

#Note: Mandatory Parameters : data_type and start_date
#By default data_type will be global and start_date will be set as current date

advanced_st = sendgrid.AdvancedStatistics()
    

advanced_st.set_data_type("browsers")
advanced_st.set_start_date("2014-02-14")
advanced_st.set_end_date("2014-04-14")
advanced_st.set_metric("bounce")
advanced_st.set_category("WebD:CampId:3150")
advanced_st.set_aggregated_by("day")
advanced_st.set_country("US")
status,msg = sg.send(advanced_st)

#or
advanced_st = sendgrid.AdvancedStatistics(data_type="global",start_date="2014-04-13",validate=True,end_date="2014-04-17",
                                           metric="all",category="WebD:CampId:3100",aggregated_by="day",country="US")
status,msg = sg.send(advanced_st)

##Validation By default set method will not validate the parameters however you can pass validate=True to GeneralStatistics or AdvancedStatistics constructor to validate the parameters before sending

For Example:

        general_st = sendgrid.GeneralStatistics(days=2,start_date="2014-04-14",end_date="2014-04-20",
                                            aggregate=0,category="WebD:CampId:3100",validate=True)
        status, msg = sg.send(general_st)
        

        advanced_st = sendgrid.AdvancedStatistics(data_type="global",start_date="2014-04-13",validate=True,end_date="2014-04-17",
                                            metric="all",category="WebD:CampId:3100")
        status,msg = sg.send(advanced_st)

Error handling

By default, .send method returns a tuple (http_status_code, message), however you can pass raise_errors=True to SendGridToolkitClient constructor, then .send method will raise SendGridClientError for 4xx errors, and SendGridServerError for 5xx errors.

from sendgrid import SendGridError, SendGridClientError, SendGridServerError

sg = sendgrid.SendGridToolkitClient(username, password, raise_errors=True)

try:
    sg.send(message)
except SendGridClientError:
    ...
except SendGridServerError:
    ...

This behavior is going to be default from version 1.0.0. You are encouraged to set raise_errors to True for forwards compatibility.

SendGridError is a base-class for all SendGrid-related exceptions.

Methods for General Statistics
general_st = sendgrid.GeneralStatistics()

Setting the days

general_st.set_days(2)

Setting the start_date

general_st.set_start_date("2014-04-14")

Setting the end_date

general_st.set_end_date("2014-04-20")

Setting the Aggregate

general_st.set_aggregate(0)

Setting the Category

general_st.set_category("WebD:CampId:3100")

Add Categories

general_st.add_category("WebD:CampId:3150")
Methods for Advanced Statistics
advanced_st = sendgrid.AdvancedStatistics(data_type="global", start_date="2014-04-14")

Setting the data_type

advanced_st.set_data_type("browsers")

Setting Start date

advanced_st.set_start_date("2014-02-14")

Setting end date

advanced_st.set_end_date("2014-04-14")

Setting Metric

advanced_st.set_metric("bounce")

Setting Aggregated By

advanced_st.set_aggregated_by("day")

Setting Category

Category Can be a String or a list of categories
advanced_st.set_category("WebD:CampId:3150")
advanced_st.set_category(["WebD:CampId:3150"])

Setting Country

advanced_st.set_country("US")

Add Category

advanced_st.add_category(["WebD:CampId:3150"])
advanced_st.add_category("WebD:CampId:3150")

TODO:

  • Add support for other APIs

Tests

python test/__init__.py

MIT License

About

SendGrid Python Library

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Python 100.0%
Morty Proxy This is a proxified and sanitized view of the page, visit original site.