# Software Licensing API - Example using C#

This document is a subset of the [Software Licensing API document](https://easydigitaldownloads.com/docs/software-licensing-api/) which lists all features available via the API. The following is example code showcasing how to implement those features with C#.

### Request

```
using System;&lt;br&gt;&lt;/br&gt;using System.IO;&lt;br&gt;&lt;/br&gt;using System.Net;&lt;br&gt;&lt;/br&gt;using System.Text;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;namespace Rextester&lt;br&gt;&lt;/br&gt;{&lt;br&gt;&lt;/br&gt;    public class Program&lt;br&gt;&lt;/br&gt;    {&lt;br&gt;&lt;/br&gt;        public static void Main(string[] args)&lt;br&gt;&lt;/br&gt;        {&lt;br&gt;&lt;/br&gt;            // Create a request using a URL that can receive a post.&lt;br&gt;&lt;/br&gt;            WebRequest request = WebRequest.Create (&quot;https://yoursite.com/&quot;);&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Set the Method property of the request to POST.&lt;br&gt;&lt;/br&gt;            request.Method = &quot;POST&quot;;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Create POST data and convert it to a byte array. Do not include the URL if you do URL verification in the EDD SL settings&lt;br&gt;&lt;/br&gt;            string postData = &quot;edd_action=check_license&amp;license=&amp;item_id=&amp;url=&quot;;&lt;br&gt;&lt;/br&gt;            byte[] byteArray = Encoding.UTF8.GetBytes (postData);&lt;br&gt;&lt;/br&gt;            request.ContentType = &quot;application/x-www-form-urlencoded&quot;;&lt;br&gt;&lt;/br&gt;            request.ContentLength = byteArray.Length;&lt;br&gt;&lt;/br&gt;            Stream dataStream = request.GetRequestStream ();&lt;br&gt;&lt;/br&gt;            dataStream.Write (byteArray, 0, byteArray.Length);&lt;br&gt;&lt;/br&gt;            dataStream.Close ();&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Get the response.&lt;br&gt;&lt;/br&gt;            WebResponse response = request.GetResponse ();&lt;br&gt;&lt;/br&gt;            dataStream = response.GetResponseStream ();&lt;br&gt;&lt;/br&gt;            StreamReader reader = new StreamReader (dataStream);&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Read the content. This is the response from the Software Licensing API&lt;br&gt;&lt;/br&gt;            string responseFromServer = reader.ReadToEnd ();&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Display the content&lt;br&gt;&lt;/br&gt;            Console.WriteLine (responseFromServer);&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;&lt;br&gt;&lt;/br&gt;            // Clean up the streams.&lt;br&gt;&lt;/br&gt;            reader.Close ();&lt;br&gt;&lt;/br&gt;            dataStream.Close ();&lt;br&gt;&lt;/br&gt;            response.Close ();&lt;br&gt;&lt;/br&gt;        }&lt;br&gt;&lt;/br&gt;    }&lt;br&gt;&lt;/br&gt;}&lt;br&gt;&lt;/br&gt;
```

### Response

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

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