Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


toc


REST API
The REST Api is mainly used for the Solarplus SolarPlus Wordpress plugin and can be use with other applications.

Authentication
The authentication requires token that can be generated through http://dev.solarplus.co/user/api to be passed through Authentication header of the requests.

Generating access token
To generate go to http://dev.solarplus.co/user/api , Click on the “Generate new Secreto Key” button and after that click “Generate new Token” button.

Base Api Url
http://

...

v3.solarplus.

...

api

Appending Authentication Token
Every request to the api must have token key attached to the header Authorization. Place your generated token key like so:
{code:title=Append authentication token|linenumbers=true|language=php|firstline=0001|collapse=true}
Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60
{code}


Creating Contact
API Path: /api/contact
HTTP Verb: POST or PUT
Form Parameters:

Name
Key
Values
Required
Comments
Contact
First Name
first_name
String
Yes
Last name of the contact

Last Name
last_name
String
Yes
Last name of the contact

Email Address
email
String
Yes
Email address of the customer

Primary Phone
primary_phone
String
No
Primary phone number of the customer

Full Address
full_address
String
Yes
Full address of the customer

Business Name
business_name
String
No
Business name of the contact

Full Address
full_address
String
Yes
Contact and Site full address.

Notes
notes
String
No
Notes for this customer

Business Name as Client
business_as_client
Boolean
No
Whether to set the Site name the same as the Business Name.

Source
source
String
No
Contact source it can be one of the following: Other, TV, Radio, Press, Google, Tradeshow, Friends, Website, Word of Mouth

Status
status
String
No
Status can be one of the following: Lead, Active, Closed
Categories

categories[category_name]
Array of Strings
No
Business Category of the Contact.
Custom Fields
Custom Fields
custom_fields[field_name]
Array of Strings
Yes or No
Contact custom fields that the business has. The requirement depends on the creation of the field.

Sample PHP Code Using cURL:

{code:title=Creating Contact|linenumbers=true|language=php|firstline=0001|collapse=true}
<?php

$url = 'http://dev.solarplus.co/api/contact';
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60';
$auth_header = 'Authorization Bearer ' . $token;


$form = array(
   'first_name' => 'John',
   'last_name' => 'Doe',
   'email' => 'john.doe@domain.com',
   'primary_phone' => '123-123-123',
   'full_address' => '222 Exhibition St, Melbourne VIC 3000, Australia',
   'business_name' => 'John Solar Power',
   'notes' => 'Nullam id dolor id nibh ultricies vehicula ut id elit.'

   'categories' => array(
       'Category 1' => 'Some value',
   ),

   'custom_fields' => array(
       'custom_text_12' => 'Some value',
   ),

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($form));

$response = curl_exec($ch);
$json = json_decode($response);

curl_close($ch);

echo '<pre>';
print_r($json);
echo '</pre>';

...

JSON Response:

{
   "success": "true",
   "message": "Contact successfully created.",
   "data": {
       "id": "19670",

       "business_name": null,

       "business_as_client": 0,

       "source": "Other",

       "status": "Lead",

       "first_name": "John",

       "last_name": "Doe",

       "email": "john.doe@domain.com",

       "primary_phone": "123-123-123",

       "secondary_phone": null,

       "full_address": "222 Exhibition St, Melbourne VIC 3000, Australia",

       "categories": null,

       "notes": "Nullam id dolor id nibh ultricies vehicula ut id elit."
   }
}

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

...

Data

...

Customer Id

...

data[customer_id]

...

Integer

...

The customer identification number.

...

Business Name

...

data[business_name]

...

String

...

Business name of the contact

...

Business Name as Client

...

data[business_as_client]

...

Boolean

...

Whether it was set to the Site name the same as the Business Name.

...

Source

...

data[source]

...

String

...

Contact source

...

Status

...

data[status]

...

String

...

Contact status

...

First Name

...

data[first_name]

...

String

...

Contact first name

...

Last Name

...

data[last_name]

...

String

...

Contact last name

...

Email Address

...

data[email]

...

String

...

Contact email address

...

Primary Phone

...

data[primary_phone]

...

String

...

Contact primary phone

...

Secondary Phone

...

data[secondary_phone]

...

String

...

Contact secondary phone

...

Full Address

...

data[full_address]

...

String

...

Contact full address

...

Notes

...

data[notes]

...

String

...

Contact notes

...

Categories

...

Categories

...

data[categories]

...

Array

...

Contains categories names.

Getting Contact

API Path: /contact/<id>

HTTP Verb: GET

Form Parameters:

...

Name

...

Key

...

Values

...

Required

...

Comments

Sample PHP Code Using cURL:
{code}


JSON Response:

{

...

       "id": "19669",

       "business_name": null,

       "business_as_client": 0,

       "source": "Other",

       "status": "Lead",

       "first_name": "John",

       "last_name": "Doe",

       "email": null,

       "primary_phone": null,

       "secondary_phone": null,

       "full_address": "B58 L12 Bloomingdale Subd., Iponan, Cagayan de Oro City, Philippines, 9000",

       "categories": null,

       "notes": null
   }

}

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

...

Data

...

Customer Id

...

data[customer_id]

...

Integer

...

The customer identification number.

...

Business Name

...

data[business_name]

...

String

...

Business name of the contact

...

Business Name as Client

...

data[business_as_client]

...

Boolean

...

Whether it was set to the Site name the same as the Business Name.

...

Source

...

data[source]

...

String

...

Contact source

...

Status

...

data[status]

...

String

...

Contact status

...

First Name

...

data[first_name]

...

String

...

Contact first name

...

Last Name

...

data[last_name]

...

String

...

Contact last name

...

Email Address

...

data[email]

...

String

...

Contact email address

...

Primary Phone

...

data[primary_phone]

...

String

...

Contact primary phone

...

Secondary Phone

...

data[secondary_phone]

...

String

...

Contact secondary phone

...

Full Address

...

data[full_address]

...

String

...

Contact full address

...

Notes

...

data[notes]

...

String

...

Contact notes

...

Categories

...

Categories

...

data[categories]

...

Array

...

Contains categories names.

Updating Contact

API Path: /api/contact/<id>

HTTP Verb: POST

Form Parameters:

...

Name

...

Key

...

Values

...

Required

...

Comments

...

Contact

...

First Name

...

first_name

...

String

...

Yes

...

Last name of the contact

...

Last Name

...

last_name

...

String

...

Yes

...

Last name of the contact

...

Email Address

...

email

...

String

...

Yes

...

Email address of the customer

...

Primary Phone

...

primary_phone

...

String

...

No

...

Primary phone number of the customer

...

Full Address

...

full_address

...

String

...

Yes

...

Full address of the customer

...

Business Name

...

business_name

...

String

...

No

...

Business name of the contact

...

Full Address

...

full_address

...

String

...

Yes

...

Contact and Site full address.

...

Notes

...

notes

...

String

...

No

...

Notes for this customer

...

Business Name as Client

...

business_as_client

...

Boolean

...

No

...

Whether to set the Site name the same as the Business Name.

...

Source

...

source

...

String

...

No

...

Contact source it can be one of the following: Other, TV, Radio, Press, Google, Tradeshow, Friends, Website, Word of Mouth

...

Status

...

status

...

String

...

No

...

Status can be one of the following: Lead, Active, Closed

...

Categories

...

categories[category_name]

...

Array of Strings

...

No

...

Business Category of the Contact.

...

Custom Fields

...

Custom Fields

...

custom_fields[field_name]

...

Array of Strings

...

Yes or No

...

Contact custom fields that the business has. The requirement depends on the creation of the field.

Sample PHP Code Using cURL:

<?php

$url = 'http://dev.solarplus.co/api/contact/19668;

'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60';

$auth_header = 'Authorization Bearer ' . $token;

$form = array(

   'first_name' => 'John',

   'last_name' => 'Doe',

   'email' => 'john.doe@domain.com',

   'primary_phone' => '123-123-123',

   'full_address' => '222 Exhibition St, Melbourne VIC 3000, Australia',

   'business_name' => 'John Solar Power',

   'notes' => 'Nullam id dolor id nibh ultricies vehicula ut id elit.'

   'categories' => array(

       'Category 1' => 'Some value',

   ),

   'custom_fields' => array(

       'custom_text_12' => 'Some value',

   ),

);

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_POST, 1);

curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($form));

$response = curl_exec($ch);

$json = json_decode($response);

curl_close($ch);

echo '<pre>';

print_r($json);

echo '</pre>';

JSON Response:

...

code:title=JSON Response|linenumbers=true|language=php|firstline=0001|collapse=true}

{
   "success": "true",

...


   "message": "Contact successfully

...

created.",

...


   "data": {

...


       "id": "19670",
       "business_name": null,
       "business_as_client": 0,
       "source": "Other",
       "status": "Lead",
       "first_name": "John",
       "last_name": "Doe",
       "email": "john.doe@domain.com",
       "primary_phone": "123-123-123",
       "secondary_phone": null,
       "full_address": "222 Exhibition St, Melbourne VIC 3000, Australia",
       "categories": null,
       "notes": "Nullam id dolor id nibh ultricies vehicula ut id elit."

...


   }

...

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

...

Data

...

Customer Id

...

data[customer_id]

...

Integer

...

The customer identification number.

...

Business Name

...

data[business_name]

...

String

...

Business name of the contact

...

Business Name as Client

...

data[business_as_client]

...

Boolean

...

Whether it was set to the Site name the same as the Business Name.

...

Source

...

data[source]

...

String

...

Contact source

...

Status

...

data[status]

...

String

...

Contact status

...

First Name

...

data[first_name]

...

String

...

Contact first name

...

Last Name

...

data[last_name]

...

String

...

Contact last name

...

Email Address

...

data[email]

...

String

...

Contact email address

...

Primary Phone

...

data[primary_phone]

...

String

...

Contact primary phone

...

Secondary Phone

...

data[secondary_phone]

...

String

...

Contact secondary phone

...

Full Address

...

data[full_address]

...

String

...

Contact full address

...

Notes

...

data[notes]

...

String

...

Contact notes

...

Categories

...

Categories

...

data[categories]

...

Array

...

Contains categories names.

Deleting Contact

API Path: /api/contact/<id>

HTTP Verb: DELETE

Form Parameters:

...

Name

...

Key

...

Values

...

Required

...

Comments

Sample PHP Code Using cURL:

<?php

$url = 'http://dev.solarplus.co/api/contact/19668;

'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60';

$auth_header = 'Authorization Bearer ' . $token;

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

$json = json_decode($response);

curl_close($ch);

echo '<pre>';

print_r($json);

echo '</pre>';

JSON Response:

{

   "success": true,

   "message": "Successfully deleted contact record."

}

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

Getting Contact Fields

API Path: /contact/fields

HTTP Verb: GET

Form Parameters:

...

Name

...

Key

...

Values

...

Required

...

Comments

Sample PHP Code Using cURL:

<?php

$url = 'http://dev.solarplus.co/api/contact/fields;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60';

$auth_header = 'Authorization Bearer ' . $token;

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

$json = json_decode($response);

curl_close($ch);

echo '<pre>';

print_r($json);

echo '</pre>';

JSON Response:

{

   "success": true,

   "message": "Successfully retrieve Contact fields list.",

   "data": {

       "fields": [

           {

               "name": "business_name",

               "label": "Business Name (opt)",

               "type": "text",

               "required": false

           },

           {

               "name": "business_as_client",

               "label": "Use Bus. Name as Client",

               "type": "checkbox",

               "required": false

           },

           {

               "name": "source",

               "label": "Source",

               "type": "select",

               "required": true,

               "options": [

                   {

                       "value": 0,

                       "label": "Other"

                   },

                   {

                       "value": 1,

                       "label": "TV"

                   },

                   {

                       "value": 2,

                       "label": "Radio"

                   },

                   {

                       "value": 3,

                       "label": "Press"

                   },

                   {

                       "value": 4,

                       "label": "Google"

                   },

                   {

                       "value": 5,

                       "label": "Tradeshow"

                   },

                   {

                       "value": 6,

                       "label": "Friends"

                   },

                   {

                       "value": 7,

                       "label": "Website"

                   },

                   {

                       "value": 8,

                       "label": "Word of Mouth"

                   }

               ]

           },

           {

               "name": "status",

               "label": "Status",

               "type": "select",

               "required": true,

               "options": [

                   {

                       "value": 0,

                       "label": "Lead"

                   },

                   {

                       "value": 1,

                       "label": "Active"

                   },

                   {

                       "value": 2,

                       "label": "Closed"

                   }

               ]

           },

           {

               "name": "first_name",

               "label": "First Name",

               "type": "text",

               "required": true

           },

           {

               "name": "last_name",

               "label": "Last Name",

               "type": "text",

               "required": true

           },

           {

               "name": "email",

               "label": "Email",

               "type": "email",

               "required": false

           },

           {

               "name": "primary_phone",

               "label": "Primary Phone",

               "type": "text",

               "required": false

           },

           {

               "name": "secondary_phone",

               "label": "Secondary Phone",

               "type": "text",

               "required": false

           },

           {

               "name": "notes",

               "label": "Notes",

               "type": "textarea",

               "required": false

           },

           {

               "name": "full_address",

               "label": "Full Address",

               "type": "textarea",

               "required": true

           }

       ],

       "categories": []

   }

}

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

...

Data

...

Fields

...

data[fields]

...

Array

...

This will contain the list of available contact fields. The items will contain Name, Label, Type, Required, Options (if it is a select input)

Getting Contact Custom Fields

API Path: /contact/custom-fields

HTTP Verb: GET

Form Parameters:

...

Name

...

Key

...

Values

...

Required

...

Comments

Sample PHP Code Using cURL:

<?php

$url = 'http://dev.solarplus.co/api/contact/fields;

$token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC93d3cuc29sYXJwbHVzLmNvbVwvYXBpXC8iLCJpYXQiOjE0OTg0OTEwMTgsImV4cCI6MTUzMDAzMTAxOCwidHRsIjoiMy4xNTRlKzciLCJ1aWQiOiIxMTI5In0.hfg_GnZSzsFbCesTMGr2CqJAZr8V7lCN6diL95COx60';

$auth_header = 'Authorization Bearer ' . $token;

$ch = curl_init();

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $auth_header));

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$response = curl_exec($ch);

$json = json_decode($response);

curl_close($ch);

echo '<pre>';

print_r($json);

echo '</pre>';

JSON Response:

{

   "success": true,

   "message": "Successfully retrieve Custom Contact fields list.",

   "data": {

       "fields": [

           {

               "name": "custom_text_12",

               "label": "Custom Text",

               "type": "text",

               "required": false

           },

           {

               "name": "custom_select_13",

               "label": "Custom Select",

               "type": "select",

               "required": false,

               "options": [

                   {

                       "value": "1",

                       "label": "One"

                   },

                   {

                       "value": "Two",

                       "label": "2"

                   },

                   {

                       "value": "Three",

                       "label": "3"

                   }

               ]

           }

       ]

   }

}

Response Table:

...

Name

...

Key

...

Values

...

Description

...

Status

...

Success

...

success

...

Boolean

...

A boolean value, if true then request was a success and failed in other case.

...

Message

...

message

...

String or Array

...

A descriptive message about the status of the request.

...

Data

...

Fields

...

data[fields]

...

Array

...


}
{code}


Response Table: