Skip to main content
Easy Digital Downloads Documentation
Documentation, Reference Materials, and Tutorials for Easy Digital Downloads

Software Licensing API – Example using Python

This document is a subset of the
Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with Perl.

Request

Python 3:

import requests

payload = {
    'edd_action': 'activate_license',  # Valid actions are activate_license, deactivate_license, get_version, check_license
    'license': '', 
    'item_name': '',
    'url': 'domain.com' # If you have disabled URL checking in the settings, you do not need this
}

# Domain to send the request to.
r = requests.post("https://yoursite.com/", data=payload)

# Response JSON available via r.json()
print(r.json())

Python 2:

import httplib, urllib

params = urllib.urlencode({
    'edd_action' : 'activate_license', # Valid actions are activate_license, deactivate_license, get_version, check_license
    'license' : '',
    'item_name' : '',
    'url' : 'domain.com' # If you have disabled URL checking in the settings, you do not need this
    })

headers = {"Content-type": "application/x-www-form-urlencoded", "Accept": "text/plain"}
conn = httplib.HTTPConnection("domain.com:80") # You can use 80 (http) or 443 (https)
conn.request("POST", "/", params, headers) # /edd-sl is the Software Licensing API endpoint
response = conn.getresponse()
# You should check response.status for a `200` before proceeding with parsing the data for
# a Software Licensing response
slData = response.read()
# slData now contains a string in JSON format, to handle with however prefer
print slData
conn.close()

Response

A response to the above query would be a JSON formatted string that would look something like this:

{
	"license": "valid",
	"item_name": "EDD Product name",
	"expires": "2014-10-23 00:00:00",
	"payment_id": 54224,
	"customer_name": "John Doe",
	"customer_email": "john@sample.com"
}