Welcome to the GrowSumo Integration Docs

Here you can find guides, documentation, support and FAQs to get you setup on GrowSumo.

Chat with us by clicking the message bubble in the bottom right if you are having any trouble!

Get Started
Suggest Edits

Customers Overview

Create a referred customer in GrowSumo

 

Remember: You must create a customer for all referred users

Customers in GrowSumo are used to connect partners and their referrals.

Description

Customers represent the users who have been referred by a Partner.

Customers are linked to the Partner that referred them through a partner_key which must be provided on the Create Customer endpoint.

The partner_key is retrievable from growsumo.data.partner_key, which is created by the GrowSumoJS snippet.

Model

Attribute
Type
Description
Limit
Example

key

string

A unique identifier used to reference the customer

255

cus_a80cb515fe

provider_key

string

A unique identifier given by a payment provider (Stripe, Recurly, Chargebee etc)

255

name

string

Should be either the customer's name, or the company name

100

John Smith

email

string

The customers email, must be a valid email

255

johnsmith@gmail.com

test

boolean

True if created by a test partner

created_at

unix timestamp

Immutable Unix timestamp in milliseconds taken at time of creation

1472503412153

updated_at

unix timestamp

Unix timestamp in milliseconds taken at time of last update

1472503412153

Suggest Edits

Create Customer

 
posthttps://api.growsumo.com/v1/customers
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/customers',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      key: "cus_a80SV515feLAA",
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
      name: "John Smith"
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"key":"cus_a80SV515feLAA","partner_key":"bertramgilfoyle","email":"johnsmith@gmail.com","name":"John Smith"}' \
    --url "https://api.growsumo.com/v1/customers"
import requests
import json

url = "https://api.growsumo.com/v1/customers"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "key": "cus_a80SV515feLAA", 
    "partner_key": "bertramgilfoyle",
    "email": "johnsmith@gmail.com",
    "name": "John Smith",
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    key: "cus_a80SV515feLAA",
    partner_key: "bertramgilfoyle",
    email: "johnsmith@gmail.com",
    name: "John Smith",
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
    'key' => 'cus_a80SV515feLAA',
  	'partner_key' => 'bertramgilfoyle',
    'email' => 'johnsmith@gmail.com',
    'name'   => 'John Smith',
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer created",
  "rdata": {
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Body Params

key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer. This is the same as the "Customer_key" that can be assigned using GrowSumoJS

partner_key
string
required

(e.g. bertramgilfoyle) The key of the partner that is responsible for the customer

email
string
required

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

name
string

(e.g. John Smith) Should be either the customer's name, or the company name

 
Suggest Edits

Get Customers

Returns a list of all your customers

 
gethttps://api.growsumo.com/v1/customers
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/customers',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/customers
import requests

url = "https://api.growsumo.com/v1/customers"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customers returned",
  "rdata": [
   	{
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  	},
    {...},
    {...}
  ]
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Query Params

min_created
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response created_at

max_created
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response created_at

min_updated
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response updated_at

max_updated
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response updated_at

group
string

e.g (resellers) Will filter for customers attached to partnerships who are in a group with the specified name. Name must have spaces and special characters removed

partner_key
string

e.g (partnerKey) Will filter customers to a specific partnerships partner_key, which can be found using the partnerships get endpoint or from the partnership view in your GrowSumo dashboard.

 
Suggest Edits

Update Customer

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

 
patchhttps://api.growsumo.com/v1/customers/key
var request = require("request");

var options = {
  method: 'PATCH',
  url: 'https://api.growsumo.com/v1/customers/cus_a80SV515feLAA',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      key: "cus_a80SV515feLAA",
      email: "johnsmith@gmail.com",
      name: "John Smith"
  }),
 };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PATCH \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"key":"cus_a80SV515feLAA","email":"johnsmith@gmail.com","name":"John Smith"}' \
    --url "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA"
import requests
import json

url = "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "key": "cus_a80SV515feLAA",
    "email": "johnsmith@gmail.com",
    "name": "John Smith",
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)

function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    key: "cus_a80SV515feLAA",
    email: "johnsmith@gmail.com",
    name: "John Smith",
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("PATCH", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers/cus_a80SV515feLAA');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
    'key' => 'cus_a80SV515feLAA',
    'email' => 'johnsmith@gmail.com',
    'name'   => 'John Smith',
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer updated",
  "rdata": {
      "key": "cus_a80SV515feLAA",
      "provider_key": "cus_A2VAIipQOkS7nV",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"test": false,
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

Body Params

key
string

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

email
string

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

name
string

(e.g. John Smith) Should be either the customer's name, or the company name

 
Suggest Edits

Archive Customer

Archives the specified customer

 
deletehttps://api.growsumo.com/v1/customers/key
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.growsumo.com/v1/customers/cus_a80SV515feLAA',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA"
import requests
import json

url = "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("POST", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers/cus_a80SV515feLAA";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("DELETE", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send();
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers/cus_a80SV515feLAA');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

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

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Customer archived"
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

 
Suggest Edits

Leads Overview

Create a lead in GrowSumo

 

Description

Leads represent a lead that had been submitted by a Partner as a potential customer for your sales team to close.

Leads are linked to the Partner that submitted them through a partner_key which must be provided on the Create Lead endpoint.

The partner_key is retrievable from growsumo.data.partner_key, which is created by the GrowSumoJS snippet. You may also view it under the partner view within your GrowSumo dash.

Model

Attribute
Type
Description
Limit
Example

key

string

A unique identifier used to reference the lead

255

lead_a80cb515fe

name

string

The name of the contact

100

John Smith

email

string

The contacts email, must be a valid email

255

johnsmith@gmail.com

status

string

The current status of the lead, must be either new, qualified , unqualified, closed won or closed lost. This value is optional on create and defaults to open

open

meta

object

Key value pairs of additional data about the lead. Eligible keys are configured in your GrowSumo dashboard under the groups tab. First name, last name and company will be stored within meta and are all required on create.
(e.g If you configure the question Company Size within a lead submission form assign meta as
{company_size: 100}

{
companysize: 100,
companycity: Toronto,
jobtitle: CEO
}

created_at

unix timestamp

Immutable Unix timestamp in milliseconds taken at time of creation

1472503412153

updated_at

unix timestamp

Unix timestamp in milliseconds taken at time of last update

1472503412153

Suggest Edits

Get Leads

 
gethttps://api.growsumo.com/v1/leads
var request = require("request");

var options = {
  method: 'GET',
  url: 'https://api.growsumo.com/v1/leads',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d       partner_key: "bertramgilfoyle",
      'email: "johnsmith@gmail.com", status: "new", first_name: "John", last_name: "Smith", comapany: "GrowSumo", meta: {company_size: 100,previous_company:Google}'\
    --url "https://api.growsumo.com/v1/leads"
import requests
import json

url = "https://api.growsumo.com/v1/leads"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/leads";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send();
<?php
$ch = curl_init('https://api.growsumo.com/v1/leads');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Lead created",
  "rdata": [
{
        'created_at': 1538064385263,
        'email': 'email@email.email',
        'key': 'lead_gkzBI4O8TdzrtE',
        'meta': {
                  'company': 'assumenda',
                  'first_name': 'porro',
                  'last_name': 'consequatur',
                  'company_size': 400,
                  'previous_company': 'hatsfordogs.com'
                },
        'name': 'porro consequatur',
        'partner_key': 'partnerKey456',
        'status': 'new',
        'updated_at': 1538064385263
    },
    {
        'created_at': 1538064385324,
        'email': 'email2@email.email',
        'key': 'lead_xmluT3wIgcDJNo',
        'meta': {
                  'company': 'eos',
                  'first_name': 'qui',
                  'last_name': 'quis',
                  'company_size': 300,
                  'previous_company': 'pizzafordogs.com'
                },
        'name': 'qui quis',
        'partner_key': 'partnerKey123',
        'status': 'new',
        'updated_at': 1538064385324
    }
]

}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Query Params

min_created
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response created_at

max_created
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response created_at

min_updated
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response updated_at

max_updated
int32

e.g (1538352000000) Applies a minimum epoch timestamp (ms) filter to the response updated_at

group
string

e.g (resellers) Will filter for leads submitted by partners who are in a group with the specified name. Name must have spaces and special characters removed

partner_key
string

e.g (partnerKey) Will filter leads to a specific partnerships partner_key, which can be found using the partnerships get endpoint or from the partnership view in your GrowSumo dashboard.

 
Suggest Edits

Create Lead

 
posthttps://api.growsumo.com/v1/leads
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/leads',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
  		status: 'new',
      first_name: "John",
      last_name: "Smith",
      company: "GrowSumo",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google',
      }        	
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d       partner_key: "bertramgilfoyle",
      'email: "johnsmith@gmail.com", status: "new", first_name: "John", last_name: "Smith", comapany: "GrowSumo", meta: {company_size: 100,previous_company:Google}'\
    --url "https://api.growsumo.com/v1/leads"
import requests
import json

url = "https://api.growsumo.com/v1/leads"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
  		status: 'new',
      first_name: "John",
      last_name: "Smith",
      company: "GrowSumo",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google',
      }   
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/leads";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
  		status: 'new',
      first_name: "John",
      last_name: "Smith",
      company: "GrowSumo",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google',
      }   
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/leads');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
 	  'partner_key' => "bertramgilfoyle",
  	'status' => 'new',
    'email' => 'johnsmith@gmail.com',
    'first_name'   => 'John',
    'last_name' => 'Smith',
  	'meta' => {
      	'company_size': '100',
        'previous_company': 'Google',
      }    		
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Lead created",
  "rdata": {
      "key": "lead_a70SVH76feL8K",
    	"status": "new",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"meta": {
        'company': 'GrowSumo',
        'first_name': 'John',
        'last_name': 'Smith',
        'company_size': '100',
        'previous_company': 'Google',
      },
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Body Params

email
string
required

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

first_name
string
required

(e.g. John) Should be the first name of the lead

partner_key
string
required

(e.g. bertramgilfoyle) The key of the partner that is responsible for the customer

last_name
string
required

(e.g. Smith) Should be the last name of the lead

company
string
required

(e.g. GrowSumo) The name of company that this lead works at

status
string

(e.g. new) The status of this lead, on create can either be 'new' or 'qualified'

meta
object

(e.g. {'company_size': 100, 'previous_company': 'Google'} Additional values to capture on the lead. Note, acceptable keys are the names of Lead form fields as configured within you GrowSumo dashboard under the groups tab.

 
Suggest Edits

Update Lead

 
patchhttps://api.growsumo.com/v1/leads/key
var request = require("request");

var options = {
  method: 'PATCH',
  url: 'https://api.growsumo.com/v1/leads/lead_2jeklf9343',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
  		status: 'qualified',
      first_name: "John",
      last_name: "Smith",
      company: "GrowSumo",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google',
      }        	
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d       partner_key: "bertramgilfoyle",
      'email: "johnsmith@gmail.com", status: "qualified", first_name: "John", last_name: "Smith", comapany: "GrowSumo", meta: {company_size: 100,previous_company:Google}'\
    --url "https://api.growsumo.com/v1/leads/lead_2jeklf9343"
import requests
import json

url = "https://api.growsumo.com/v1/leads/lead_2jeklf9343"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
      partner_key: "bertramgilfoyle",
      email: "johnsmith@gmail.com",
  		status: 'qualified',
      first_name: "John",
      last_name: "Smith",
      company: "GrowSumo",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google',
      }   
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/leads/lead_2jeklf9343";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
 	  'partner_key' => "bertramgilfoyle",
  	'status' => 'new',
    'email' => 'johnsmith@gmail.com',
    'first_name'   => 'John',
    'last_name' => 'Smith',
  	'meta' => {
      	'company_size': '100',
        'previous_company': 'Google',
      }    	
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/leads/lead_2jeklf9343');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
  	'owner' => 'partner',
  	'status' => 'open',
    'email' => 'johnsmith@gmail.com',
    'name'   => 'John Smith',
  	'meta' => {
      	'companysize': '100',
        'previouscompany': 'Google',
        'favoritecolor': '#FF0000'
      }    		
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Lead updated",
  "rdata": {
      "key": "lead_a70SVH76feL8K",
    	"status": "qualified",
      "name": "John Smith",
      "email": "johnsmith@gmail.com",
      "partner_key": "bertramgilfoyle",
    	"meta": {
        'company': 'GrowSumo',
        'first_name': 'John',
        'last_name': 'Smith',
        'company_size': '100',
        'previous_company': 'Google',
      },
      "created_at":1472503412153,
      "updated_at":1472503412153
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Body Params

email
string

(e.g. johnsmith@gmail.com) The customers email, must be a valid email

first_name
string

(e.g. John) Should be the first name of the lead

last_name
string

(e.g. Smith) Should be the last name of the lead

company
string

(e.g. GrowSumo) The name of company that this lead works at

status
string

(e.g. qualified) The status of this lead, must either be 'new', 'qualified', 'unqualified', 'closed won', 'closed lost'

meta
object

(e.g. {'company_size': 100, 'previous_company': 'Google'} Additional values to capture on the lead, the acceptable keys for this object will vary and are configured within you GrowSumo dashboard under the groups tab

 
Suggest Edits

Archive Lead

Archives the specified customer

 
deletehttps://api.growsumo.com/v1/leads/key
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.growsumo.com/v1/leads/lead_a80SV515feLAA',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url "https://api.growsumo.com/v1/leads/lead_a80SV515feLA"
import requests
import json

url = "https://api.growsumo.com/v1/leads/lead_a80SV515feLA"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("DELETE", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/leads/lead_a80SV515feLA;
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("DELETE", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send();
<?php
$ch = curl_init('https://api.growsumo.com/v1/leads/lead_a80SV515feLA');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

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

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Lead archived"
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. deal_a80SV515feLA) A unique identifier used to reference the deal

 
Suggest Edits

Deals Overview

 

When enabled, Deals allow your partners to submit accounts they are working to your sales team to avoid channel conflicts and earn commissions for closed accounts.

Typically the Deals experience is handled through a CRM integration like Salesforce. However you may opt to use the Deals API to have GrowSumo interact with a custom data warehouse rather than directly with your CRM.

Data Model

Attribute
Type
Description
Limit
Example

key

string

Unique key to reference this Deal

255

deal_a80cb515fe

partner_key

string

The unique key of the partner who owns this deal

255

KermitFrog

account_name

string

Name of the account

255

Digital Agency Acme

contact_first_name

string

First name of the account's contact

255

Big

contact_last_name

string

Last name of the account's contact

255

Bird

amount

integer

Deal amount in cents

255

250000

stage

string

Current stage of this deal. Must appear in Deals Stage list found in group settings.

255

closed/won

close_date

string

YYYY/MM/DD

255

2018/01/25

meta

object

Key value pairs of additional data about the Deal. Note keys must have spaces and special characters remove.

255

{
discount_code: 224 ,
product_code: "Alpha1"
}

Suggest Edits

Create Deal

 
posthttps://api.growsumo.com/v1/deals
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/deals',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
    key: "deal_a80cb515fe",
    partner_key: "KermitFrog",
    account_name: "Agency Inc",
    contact_first_name: 'John',
    contact_last_name: 'Doe',
    amount: "John Smith",
    stage: "closed/won",
    close_date: "2018-01-25",
    meta: {
      	'company_size': '100',
        'previous_company': 'Google'
    }        	
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d       "key=deal_a80cb515fe&partner_key=KermitFrog&account_name=johnsmith@gmail.com&contact_first_name=Jon&contact_last_name=open&amount=JohnSmith&stage=closed/won&close_date:2018-01-25"\
    --url "https://api.growsumo.com/v1/deals"
import requests
import json

url = "https://api.growsumo.com/v1/deals"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
  		key: "deal_a80cb515fe",
      partner_key: "KermitFrog",
      account_name: "johnsmith@gmail.com",
      contact_first_name: 'Joh',
  		contact_last_name: 'open',
      amount: "John Smith",
    	stage: "closed/won",
    	close_date: "2018-01-25",
    	meta: {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    	key: "deal_a80cb515fe",
      partner_key: "KermitFrog",
      account_name: "johnsmith@gmail.com",
      contact_first_name: 'Joh',
  		contact_last_name: 'open',
      amount: "John Smith",
    	stage: "closed/won",
    	close_date: "2018-01-25",
    	meta: {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
 	  key => "deal_a80cb515fe",
      "partner_key" => "KermitFrog",
      "account_name" => "johnsmith@gmail.com",
      "contact_first_name" => 'Joh',
  		"contact_last_name" => 'open',
      "amount" => "John Smith",
    	"stage" => "closed/won",
    	"close_date" => "2018-01-25",
    	"meta" => {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
    "message": "Deal created",
    "rdata": {
        "account_name": "Agency Inc.",
        "amount": 10000,
        "close_date": 1515974400000, //epoch
        "contact_first_name": "John",
        "contact_last_name": "Doe",
        "created_at": 1536613226082, //epoch
        "key": "deal_a80cb515fe",
        "meta": {
        		'companysize': '100',
        		'previouscompany': 'Google'
        },
        "partner_key": "KermitFrog",
        "stage": "closed/won",
        "updated_at": 1536613226082 //epoch
    },
    "status": 200
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Body Params

key
string
required

(e.g. deal_1234) Unique key to reference this Deal

partner_key
string
required

(e.g. bertramgilfoyle) The unique key of the partner who owns this deal

account_name
string
required

(e.g. Agency inc) Name of the account

contact_first_name
string
required

(e.g. John) First name of the account's contact

contact_last_name
string
required

(e.g. Doe) Last name of the account's contact

amount
int32
required

(e.g. 25000) Deal amount in cents

stage
string
required

(e.g. Working) Current stage of this deal. Must appear in Deals Stage list found in group settings.

close_date
date
required

(e.g. 2018-01-28) Expected close date of deal as YYYY-MM-DD

meta
object

(e.g. {position: CEO, company_size: 100}) Additional information about the Deal. Additional values to capture on the lead. Note, acceptable keys are the names of Deal form fields as configured within you GrowSumo dashboard under the groups tab.

 
Suggest Edits

Get Deals

Returns a list of all your leads, min and max created_at filters may be applied

 
gethttps://api.growsumo.com/v1/deals
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/deals',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY>"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/deals
import requests

url = "https://api.growsumo.com/v1/deals"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/deals";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/deals');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
    "message": "Deals retrieved",
    "rdata": [
        {
            "account_name": "Agency Inc",
            "amount": 25000,
            "close_date": 1515974400000, // epoch milliseconds
            "contact_first_name": "John",
            "contact_last_name": "Doe",
            "created_at": 1536606764225, // epoch milliseconds
            "key": "deal_101",
            "meta": {},
            "partner_key": "KermitFrog",
            "stage": "closed/won",
            "updated_at": 1536606764225 // epoch milliseconds
        }
    ],
    "status": 200
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Query Params

min_created
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response created_at

max_created
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response created_at

min_updated
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response updated_at

max_updated
int32

e.g (1538352000000) Applies a minimum epoch timestamp (ms) filter to the response updated_at

group
string

e.g (resellers) Will filter for customers attached to partnerships who are in a group with the specified name. Name must have spaces and special characters removed

partner_key
string

e.g (partnerKey) Will filter deals to a specific partnerships partner_key, which can be found using the partnerships get endpoint or from the partnership view in your GrowSumo dashboard.

 
Suggest Edits

Update Deal

 
patchhttps://api.growsumo.com/v1/deals/key
var request = require("request");

var options = {
  method: 'PATCH',
  url: 'https://api.growsumo.com/v1/deals',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
    	key: "deal_a80cb515fe",
      partner_key: "KermitFrog",
      account_name: "Agency Inc",
      contact_first_name: 'John',
  		contact_last_name: 'Doe',
      amount: "John Smith",
    	stage: "closed/won",
    	close_date: "2018-01-25",
    	meta: {
      	'company_size': '100',
        'previous_company': 'Google'
      }        	
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PATCH \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d       "key=deal_a80cb515fe&partner_key=KermitFrog&account_name=johnsmith@gmail.com&contact_first_name=Jon&contact_last_name=open&amount=JohnSmith&stage=closed/won&close_date:2018-01-25"\
    --url "https://api.growsumo.com/v1/deals"
import requests
import json

url = "https://api.growsumo.com/v1/deals"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
  		key: "deal_a80cb515fe",
      partner_key: "KermitFrog",
      account_name: "johnsmith@gmail.com",
      contact_first_name: 'Joh',
  		contact_last_name: 'open',
      amount: "John Smith",
    	stage: "closed/won",
    	close_date: "2018-01-25",
    	meta: {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
})

response = requests.request("PATCH", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/deals/{key}";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    	key: "deal_a80cb515fe",
      partner_key: "KermitFrog",
      account_name: "johnsmith@gmail.com",
      contact_first_name: 'Joh',
  		contact_last_name: 'open',
      amount: "John Smith",
    	stage: "closed/won",
    	close_date: "2018-01-25",
    	meta: {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("PATCH", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/deals/{key}');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
 	  key => "deal_a80cb515fe",
      "partner_key" => "KermitFrog",
      "account_name" => "johnsmith@gmail.com",
      "contact_first_name" => 'Joh',
  		"contact_last_name" => 'open',
      "amount" => "John Smith",
    	"stage" => "closed/won",
    	"close_date" => "2018-01-25",
    	"meta" => {
      	'companysize': '100',
        'previouscompany': 'Google'
      }        	
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
    "message": "Deal created",
    "rdata": {
        "account_name": "Agency Inc.",
        "amount": 10000,
        "close_date": 1515974400000, //epoch milliseconds
        "contact_first_name": "John",
        "contact_last_name": "Doe",
        "created_at": 1536613226082, //epoch milliseconds
        "key": "deal_a80cb515fe",
        "meta": {},
        "partner_key": "KermitFrog",
        "stage": "closed/won",
        "updated_at": 1536613226082 //epoch milliseconds
    },
    "status": 200
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. deal_1234) Unique key to reference this Deal

Body Params

partner_key
string

(e.g. bertramgilfoyle) The unique key of the partner who owns this deal

account_name
string

(e.g. Agency inc) Name of the account

contact_first_name
string

(e.g. John) First name of the account's contact

contact_last_name
string

(e.g. Doe) Last name of the account's contact

amount
int32

(e.g. 25000) Deal amount in cents

stage
string

(e.g. Closed Won) Current stage of this deal. Must appear in Deals Stage list found in group settings.

close_date
date

(e.g. 2018-01-28) Expected close date of deal as YYYY-MM-DD

meta
object

(e.g. {position: CEO, company_size: 100}) Additional information about the Deal

 
Suggest Edits

Archive Deal

Archives the specified customer

 
deletehttps://api.growsumo.com/v1/deals/key
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.growsumo.com/v1/deals/deal_a80SV515feLAA',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url "https://api.growsumo.com/v1/deals/deal_a80SV515feLA"
import requests
import json

url = "https://api.growsumo.com/v1/deals/deal_a80SV515feLA"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("POST", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/deals/deal_a80SV515feLA";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("DELETE", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send();
<?php
$ch = curl_init('https://api.growsumo.com/v1/deals/deal_a80SV515feLA');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

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

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Deal archived"
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

key
string
required

(e.g. deal_a80SV515feLA) A unique identifier used to reference the deal

 
Suggest Edits

Actions Overview

Tell GrowSumo a customer or partner has taken a specific action

 

Description

Note: This endpoint has been updated, if the type field currently configured cannot be changed, contact support.
Actions represent a rewardable action a customer or partner has made.
Actions are linked to customers through the customer_key and to partners through partner_key or partner_email listed below.

Model

Attribute
Type
Description
Limit
Example

type

string

Type (formerly referenced as name) of the action to be logged in GrowSumo, in the form of noun_verb (eg. post_created, etc).

Type Requirements:

  • Must be 2 words
  • Must be lowercase
  • Words must be separated by an underscore (_)

Depending on the value, this will be represented as You Verb X Noun(s) (eg. If the type is set as post_created on the Front End it will be displayed as You Created 5 Posts)

255

post_created

customer_key

string

Key of the customer the action is tied to

255

cus_a80cb515fe

partner_key

string

Partner Key of the partner that performed the action

255

gstest

partner_email

string

Email address of the partner that performed the action

255

example.partner@email.com

value

integer

The amount of times the action was performed (Default: 1)

1000000

2

key

string

Reference Key for the Action

255

act11234123

Suggest Edits

Create Action

Give a reward for a specific action (use customer/partner values based on who performed the action)

 
posthttps://api.growsumo.com/v1/actions
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/actions',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      customer_key: "cus_a80SV515feLAAas",
      type: "post_created",
      value: 20,
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"customer_key":"cus_a80SV515feLAA","type":"post_created","value":20}' \
    --url "https://api.growsumo.com/v1/actions"
import requests
import json

url = "https://api.growsumo.com/v1/actions"

headers = {
    'Content-Type': "application/json"
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "customer_key": "cus_a80SV515feLAAas",
    "type": "post_created",
    "value": 20
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/actions";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    customer_key: "cus_a80SV515feLAA",
    type: "post_created",
  	value: 20
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/actions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
    'customer_key' => 'cus_a80SV515feLAA',
    'type' => 'post_created',
  	'value' => 20
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
    "adata": null,
    "bdata": null,
    "message": "Event tracked",
    "rdata": null,
    "status": 200
}

Body Params

customer_key
string

The customer that took the action

partner_key
string

The partner that performed the action's partner_key

partner_email
string

The partner that perfomred the action's email address

type
string
required

The type of action being logged. Should match the reward trigger setup in GrowSumo. Should be 2 lowercase words separated by an underscore(_) in the form noun_verb (eg. post_created)

value
int32

Number of times the action was performed (Default 1)

 
Suggest Edits

Transactions Overview

Tell GrowSumo a customer has made a purchase

 

Description

Transactions represent a purchase that a Customer has made. They are linked through the customer_key listed below.

A Transaction has a key that uniquely identifies it.

Model

Attribute
Type
Description
Limit
Example

key

string

Unique immutable identifier set on creation

255

tran_a80cb515fe

customer_key

string

Key of the customer the transaction is tied to

255

cus_a80cb515fe

partner_key

string

Key of the partner who referred the customer

255

bertramgilfoyle

amount

integer

The amount of the transaction in cents. For example, 9000 == $90.00

1000000

9000

currency

string

Must be the ISO 3 character code

3

USD

test

boolean

True if created in test environment

true

created_at

unix timestamp

Immutable Unix timestamp in milliseconds taken at time of last update

1472503412153

updated_at

unix timestamp

Unix timestamp in milliseconds taken at time of last update

1472503412153

Suggest Edits

Create Transaction

Creates a new Subscription

 
posthttps://api.growsumo.com/v1/customers/customer_key/transactions
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      customer_key: "cus_A2ns20a2L93",
      amount: 3000,
      currency: "USD",
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"key":"tran_a80cb515fe","amount":3000,"currency":"USD"}' \
    --url "https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions"
import requests
import json

url = "https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "key": "tran_a80cb515fe",
    "amount":3000,
    "currency": "USD",
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    key: "tran_a80cb515fe",
    amount:3000,
    currency: "USD",
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers/cus_a80SV515feLAA/transactions');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
    'key': 'tran_a80cb515fe',
    'amount':3000,
    'currency': 'USD',
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Transaction created",
  "rdata": {
    "key": "tran_a80cb515fe",
    "customer_key": "cus_A2ns20a2L93",
    "partner_key": "bertramgilfoyle",
    "amount":3000,
    "currency": "USD",
    "created_at":1472503412153,
    "updated_at":1472503412153,
    "test": false,
  }
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

customer_key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

Body Params

key
string

(e.g. tran_a80cb515fe) A unique identifier used to reference the Transaction

amount
int32

(e.g. 2000) The amount of the transaction in cents. For example, 2000 == $20.00

currency
string

(e.g. USD) Must be the ISO 3 character code, a list of supported currencies can be found in API Summary

product_key
string

(e.g. productABC ) Only required for Custom Product offers. A unique identifier used to reference a product.

 
Suggest Edits

Archive Transaction

 
deletehttps://api.growsumo.com/v1/customers/customer_key/transactions/transaction_key
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.growsumo.com/v1/customers/cus_a80SV515feLAAas/transactions/tran_a80cb515fe',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"customer_key":"cus_A2ns20a2L93","transaction_key":"tran_a80cb515fe"}' \
    --url "https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions/tran_a80cb515fe"
import requests
import json

url = "https://api.growsumo.com/v1/customers/cus_a80SV515feLAAas/transactions/tran_a80cb515fe"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("DELETE", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/customers/cus_A2ns20a2L93/transactions/tran_a80cb515fe";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("DELETE", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send();
<?php
$ch = curl_init('https://api.growsumo.com/v1/customers/cus_a80SV515feLAA/transactions/tran_a80cb515fe');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

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

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Transaction archived",
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 401,
  "error": "Unauthorized, you credentials were invalid",
  "message": "Unauthorized, you credentials were invalid"
}
{
  "status": 403,
  "error": "Forbidden, you are not allowed to do this",
  "message": "Forbidden, you are not allowed to do this"
}
{
  "status": 404,
  "error": "Not Found, could not find the requested resource",
  "message": "Not Found, could not find the requested resource"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

customer_key
string
required

(e.g. cus_a80cb515fe) A unique identifier used to reference the customer

transaction_key
string
required

(e.g. tran_a80cb515fe) A unique identifier used to reference the Transaction

 
Suggest Edits

Partnerships Overview

Create a partner within GrowSumo

 

Description

Partners represent users on GrowSumo that will be promoting your company.

Partners created through this endpoint will not join your program until they accept the invitation sent to their email.

Arttribute
Type
Description
Limit

first_name

string

The first name the partner

30

last_name

string

The last name of the partner

40

email

string

The email of the partner

200

group

string

Name of the group that you wish this partner to be placed into. Group must already be created within GrowSumo (if excluded partner will be placed into default group)

partner_key

string

The partner_key you wish to use for this partner. If included, must be unique to this partner. For more information on partner_key see GrowSumoJS

255

meta

object

Contains ref value used for internal tracking.

Example,
"partner_LP_v2"

Suggest Edits

Create Partnership

 
posthttps://api.growsumo.com/v1/partnerships/public_key
// JSON 
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>',
    body: JSON.stringify({
      first_name: "John",
      last_name: "Smith",
      partner_key: "jsmith",
      group: "Top Earners",
      email: "johnsmith@gmail.com",
      metadata: {'ref': 'landing_page'}
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});

// Form data
var formData = require('form-data');
var form = new FormData();

form.append('first_name', 'John');
form.append('last_name', 'Smith');
form.append('partner_key', 'jsmith');
form.append('group', 'Top Earners');
form.append('email', 'johnsmith@gmail.com');
form.append('metadata', {'ref': 'landing_page'});

form.submit('https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>', function(err, res) {
  console.log(res.statusCode);
});
curl --request POST \
    -H "Content-Type: application/json" \
    -d '{"partner_key":"jsmith","email":"johnsmith@gmail.com","first_name":"John", "last_name":"Smith","group":"Top Earners", "metadata": {"ref":"landing_page"}}' \
    --url "https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>"
import requests
import json

url = "https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>"

headers = {'Content-Type': "application/json"}

# May also attach as form data (without doing json.dumps)
data=json.dumps({
    "first_name": "John",
    "last_name": "Smith",
    "partner_key": "jsmith",
    "group": "Top Earners",
    "email": "johnsmith@gmail.com",
    "metadata": {'ref': 'landing_page'}
})

response = requests.request("POST", url, headers=headers, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}
// JSON
var data = JSON.stringify({
      first_name: "John",
      last_name: "Smith",
      partner_key: "jsmith",
      group: "Top Earners",
      email: "johnsmith@gmail.com",
      metadata: {'ref': 'landing_page'}
  }),
var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST","https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>",false);
XMLReq.send(data);

// Form Data
var XMLReq = new XMLHttpRequest();
var form = new FormData();
form.append('first_name', 'John');
form.append('last_name', 'Smith');
form.append('partner_key', 'jsmith');
form.append('group', 'Top Earners');
form.append('email', 'johnsmith@gmail.com');
form.append('metadata', {'ref': 'landing_page'});
XMLReq.open("POST","https://api.growsumo.com/v1/partnerships/<PUBLIC_KEY>",false););
XMLReq.send(form);
<?php
$ch = curl_init('https://api.growsumo.com/v1/partnerships/<GROWSUMO_PUBLIC_KEY>');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>'

$data = [
    'first_name' => 'John',
  	'last_name' => 'Smith',
  	'partner_key' => 'jsmith',
  	'group' => 'Top Earners',
    'email' => 'johnsmith@gmail.com',
    'metadata' => {'ref' => 'landing_page'},
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200,
  "message": "Signup Successful!",
}
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Path Params

public_key
string
required

(e.g. "pk_UIWXFxmzXSnp4TSBdWYhgGwhT9yVkeoS") Your live production public key found in your integration settings.

Body Params

email
string
required

(e.g. johnsmith@gmail.com) The email of the person you want to create a partnership with

first_name
string

(e.g. John) The first name of the person you want to make a partnership with

last_name
string

(e.g. Smith) The last name of the person you want to make a partnership with

group
string

(e.g. Top Earners) The name of the group within GrowSumo that you want this partner to be placed into

partner_key
string

(e.g. jsmith) The partner_key that you want to assign to this partner, note that this must be unique from any other partner_key in your program. If left empty GrowSumo will create a partner_key

metadata
object

(e.g. {ref:landing_page}) An internal reference that you wish to apply to this partnership for tracking purposes

 
Suggest Edits

Get Partnership

Return a single Partner

 
gethttps://api.growsumo.com/v1/partnerships/partner_key/email
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/partnerships/gstest',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/partnerships/gstest
import requests

url = "https://api.growsumo.com/v1/partnerships/gstest"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/partnerships/gstest";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/partnerships/gstest');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "message": "Partner retrieved", 
  "rdata": {
    "created_at": 1537470858509, 
    "email": "testing@growsumo.com", 
    "first_name": "GrowSumo", 
    "group": {
      "id": 1, 
      "name": "Default", 
      "slug": "default"
    }, 
    "key": "part_kchhCJxVVtuTOs", 
    "last_name": "Test Partner", 
    "partner_key": "gstest", 
    "stats": {
      "ACCOUNT_VALUE": 0.0, 
      "COMMISSION_EARNED": 0.0, 
      "COMMISSION_PAID": 0.0, 
      "COMMISSION_UNPAID": 0.0, 
      "CURRENCY_BREAKDOWN": 0.0, 
      "CUSTOMER_COUNT": 0.0, 
      "LINK_CLICKS": 0.0, 
      "MRR": 0.0, 
      "PAID_ACCOUNT_COUNT": 0.0, 
      "REVENUE": 0.0, 
      "SCORE": 0.0, 
      "TRANSACTION_COUNT": 0.0
    }
  }, 
  "status": 200
}

Path Params

partner_key/email
string
required

Email address or Partner Key of partner

 
Suggest Edits

Get Partnerships

Get a list of Partners, stat

 
gethttps://api.growsumo.com/v1/partnerships/
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/partnerships',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/partnerships
import requests

url = "https://api.growsumo.com/v1/partnerships"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/partnerships";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/partnerships');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
    "message": "Influencers retrieved",
    "rdata": [
        {
            "email": "JohnDoe@email.com",
            "first_name": "Jogn",
            "key": "part_oj5WwK8u0xbHCb33",
            "last_name": "Doe",
            "partner_key": "JDoe",
            "stats": {
                "ACCOUNT_VALUE": 0.0,
                "COMMISSION_EARNED": 0.0,
                "COMMISSION_PAID": 0.0,
                "COMMISSION_UNPAID": 0.0,
                "CURRENCY_BREAKDOWN": 0.0,
                "CUSTOMER_COUNT": 0.0,
                "LINK_CLICKS": 0.0,
                "MRR": 0.0,
                "PAID_ACCOUNT_COUNT": 0.0,
                "REVENUE": 0.0,
                "SCORE": 0.0,
                "SIGNUP_COUNT": 0.0,
                "TRANSACTION_COUNT": 0.0
            }
        },
{
  "status": 400,
  "error": "Bad Request, illegal input for operation",
  "message": "Bad Request, illegal input for operation"
}
{
  "status": 500,
  "error": "Internal Server Error, something went wrong",
  "message": "Internal Server Error, something went wrong"
}

Query Params

min_created
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response created_at

max_created
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response created_at

min_updated
int32

e.g (1538062487765) Applies a minimum epoch timestamp (ms) filter to the response updated_at

max_updated
int32

e.g (1538352000000) Applies a maximum epoch timestamp (ms) filter to the response updated_at

group
string

e.g (resellers) Will filter partnerships who are in a group with the specified name. Name must have spaces and special characters removed

 
Suggest Edits

Update Partnership

Updates the specified customer by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

 
patchhttps://api.growsumo.com/v1/partnerships/update/partner_key/email
var request = require("request");

var options = {
  method: 'PATCH',
  url: 'https://api.growsumo.com/v1/partnerships/update/MarshalErikson',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      partner_key: "BigFuzz",
    	group_slug: "tuckahoefunlandlawyers"
  }),
 };


request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request PATCH \
    -H "Content-Type: application/json" \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    -d '{"group_id":102, "partner_key":"BigFuzz"}' \
    --url "https://api.growsumo.com/v1/partnerships/update/MarshalErikson"
import requests
import json

url = "https://api.growsumo.com/v1/partnerships/update/MarshalErikson"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "partner_key": "BigFuzz",
    "group_slug": "lawyers",
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/partnerships/update/MarshalErikson";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
   partner_key: "BigFuzz",
   group_slug: "tuckahoefunlandlawyers"
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("PATCH", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
<?php
$ch = curl_init('https://api.growsumo.com/v1/partnerships/update/MarshalErikson');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

$data = [
    'partner_key' => 'BigFuzz',
    'group_slug' => 'tuckahoefunlandlawyers',
];

curl_setopt($ch, CURLOPT_USERPWD, $auth);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
   "status": 200,
   "message": "Partnership Updated Successfully",
   "bdata": null,
   "adata": null,
   "rdata": {
      "first_name": "Marshal",
      "last_name": "Erikson",
      "stats": {
         "COMMISSION_UNPAID": 42430,
         "COMMISSION_EARNED": 42430,
         "COMMISSION_PAID": 0,
         "REVENUE": 2157211,
         "TRANSACTION_COUNT": 5,
         "MRR": 0,
         "LINK_CLICKS": 0,
         "CUSTOMER_COUNT": 2,
         "SCORE": 0,
         "ACCOUNT_VALUE": 0,
         "PAID_ACCOUNT_COUNT": 2,
         "CURRENCY_BREAKDOWN": 0
      },
      "partner_key": "BigFuzz",
      "created_at": 1536939120318,
      "key": "part_8iySt3iTMdEKQM",
      "group": {
         "id": 87,
         "name": "Tuckahoe Funland Lawyers",
         "slug": "tuckahoefunlandlawyers"
      },
      "email": "marshalerikson@example.com"
   }
}
{
  "message": "No partnership found using: MarshalErikson"
}

Path Params

partner_key/email
string
required

Email address or Partner Key of Partner being updated

Body Params

partner_key
string

New Partner Key to be assigned to Partner

group_id
string

Id of Group to move Partner to

group_slug
string

Group name Lowercase, No-Caps (eg. name: "Top Sellers", slug: "topsellers")

 
Suggest Edits

Create Webhook

Send data from GrowSumo

 
posthttps://api.growsumo.com/v1/webhooks
Accepted Webhook Events

CUSTOMER CREATED = 'customer_created'
CUSTOMER UPDATED = 'customer_updated'
CUSTOMER DELETED = 'customer_deleted'

PARTNERSHIP CREATED = 'partnership_created'
PARTNERSHIP UPDATED = 'partnership_updated'
PARTNERSHIP DELETED = 'partnership_deleted'
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/webhooks',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVATE_KEY>"
  },
  body: JSON.stringify({
      event: "partnership_created",
      target_url: "https://jsonplaceholder.typicode.com/posts",
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
-H "Content-Type: application/json" \
-u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
-d '{"event":"customer_created","target_url":"https://jsonplaceholder.typicode.com/posts"}' \
--url "https://api.growsumo.com/v1/webhooks"
import requests
import json

url = "https://api.growsumo.com/v1/webhooks"

headers = {'Content-Type': "application/json"}

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

data=json.dumps({
    "event": "partnership_created",
    "target_url": "https://jsonplaceholder.typicode.com/posts",
})

response = requests.request("POST", url, headers=headers, auth=auth, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/webhooks";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"
var data = JSON.stringify({
    event: "customer_updated",
    target_url: "https://jsonplaceholder.typicode.com/posts",
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(data);
A binary file was returned

You couldn't be authenticated

{
    "status": 201, 
    "message": "Subscription to event 'customer_created' added successfully", 
    "bdata": null, 
    "adata": null, 
    "rdata": {
        "target_url": "https://jsonplaceholder.typicode.com/posts", 
        "event_type": "customer_created", 
        "key": "gxNi9MNkqre234"
    }
}

Body Params

event
string

(e.g. 'partnership_created') A string reference to the GrowSumo event to be tracked

target_url
string

(e.g. https://jsonplaceholder.typicode.com/posts) URL endpoint webhook data will be sent to

 
Suggest Edits

Get Webhooks

Retrieve all active webhook subscriptions

 
gethttps://api.growsumo.com/v1/webhooks
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/webhooks',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/webhooks
import requests

url = "https://api.growsumo.com/v1/webhooks"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/webhooks";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/webhooks');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200, 
  "message": "Webhooks retrieved", 
  "bdata": null, 
  "adata": null, 
  "rdata": [
    {
      "target_url": "https://jsonplaceholder.typicode.com/posts", 
      "event_type": "customer_created", 
      "key": "P0AdoPHxUJre2M"
    }
  ]
}
 
Suggest Edits

Get Webhook

Retrieve single webhook subscription using key

 
gethttps://api.growsumo.com/v1/webhooks/<webhook_key>
var request = require("request");

var options = { 
  method: 'GET',
  url: 'https://api.growsumo.com/v1/webhooks/P0AdoPHxUJre2M',
  auth: {
	  'user': "<GROWSUMO_PUBLIC_KEY>",
	  'pass': "<GROWSUMO_PRIVAE_KEY"
  }
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request GET \
    -u <GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY> \
    --url https://api.growsumo.com/v1/webhooks/P0AdoPHxUJre2M
import requests

url = "https://api.growsumo.com/v1/webhooks/P0AdoPHxUJre2M"

headers = {
    'Cache-Control': "no-cache",
    }

auth=('<GROWSUMO_PUBLIC_KEY>', '<GROWSUMO_PRIVATE_KEY>')

response = requests.request("GET", url, headers=headers, auth=auth)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/webhooks/P0AdoPHxUJre2M";
var auth = "<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>"

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("GET", url, false);
XMLReq.setRequestHeader("Authorization", "Basic " + btoa(auth));
XMLReq.send(null);
<?php
$ch = curl_init('https://api.growsumo.com/v1/webhooks/P0AdoPHxUJre2M');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$auth = '<GROWSUMO_PUBLIC_KEY>:<GROWSUMO_PRIVATE_KEY>';

curl_setopt($ch, CURLOPT_USERPWD, $auth);

$response = curl_exec($ch);

curl_close($ch);

if($response === false || $response['http_code'] != 200) {
	if (curl_error($ch)) {
  	$response .= "\n  ". curl_error($ch); 
  } 
}

echo($response);
?>
A binary file was returned

You couldn't be authenticated

{
  "status": 200, 
  "message": "Webhook retrieved", 
  "bdata": null, 
  "adata": null, 
  "rdata": {
      "target_url": "https://jsonplaceholder.typicode.com/posts", 
      "event_type": "customer_created", 
      "key": "P0AdoPHxUJre2M"
    }
}

Path Params

webhook_key
string
required

Unique identifier for webhook

 
Suggest Edits

Update Webhook

Updates an existing webhook

 
posthttps://api.growsumo.com/v1/webhooks/webhook_key
var request = require("request");

var options = {
  method: 'POST',
  url: 'https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5',
  body: JSON.stringify({
      event: "partnership_created",
      target_url: "https://jsonplaceholder.typicode.com/posts",
  }),
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request POST \
-H "Content-Type: application/json" \
-d '{"event":"customer_created","target_url":"https://jsonplaceholder.typicode.com/posts"}' \
--url "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5"
import requests
import json

url = "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5"

headers = {'Content-Type': "application/json"}

data=json.dumps({
    "event": "partnership_created",
    "target_url": "https://jsonplaceholder.typicode.com/posts",
})

response = requests.request("POST", url, headers=headers, data=data)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5";
var data = JSON.stringify({
    event: "customer_updated",
    target_url: "https://jsonplaceholder.typicode.com/posts",
});

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("POST", url, false);
XMLReq.send(data);
A binary file was returned

You couldn't be authenticated

{
  "status": 201, 
  "message": "Webhook 'fi41WlslTBLbu5' updated successfully", 
  "bdata": null, 
  "adata": null, 
  "rdata": {
    "target_url": "https://jsonplacewholder.typicode.com/posts", 
    "event_type": "customer_created", 
    "key": "fi41WlslTBLbu5"
  }
}

Body Params

target_url
string

(e.g. https://jsonplaceholder.typicode.com/posters) URL endpoint webhook data will be sent to

event
string

(e.g. 'partnership_created') A string reference to the GrowSumo event to be tracked

 
Suggest Edits

Archive Webhook

End Webhook Subscription to event

 
deletehttps://api.growsumo.com/v1/webhooks/webhook_key
var request = require("request");

var options = {
  method: 'DELETE',
  url: 'https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5',
 };

request(options, function (error, response, body) {
  if (error) throw new Error(error);

  console.log(body);
});
curl --request DELETE \
    -H "Content-Type: application/json" \
    --url "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5"
import requests
import json

url = "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5"

headers = {'Content-Type': "application/json"}

response = requests.request("POST", url, headers=headers)

print(response.text)
function reqListener () {
  console.log(this.responseText);
}

var url = "https://api.growsumo.com/v1/webhooks/fi41WlslTBLbu5";

var XMLReq = new XMLHttpRequest();

XMLReq.addEventListener("load", reqListener);
XMLReq.open("DELETE", url, false);
XMLReq.send();
A binary file was returned

You couldn't be authenticated

{
  "status": 200, 
  "message": "Webhook removed successfully", 
  "bdata": null, 
  "adata": null, 
  "rdata": {
    "target_url": "https://jsonplacewholder.typicode.com/posts", 
    "event_type": "customer_created", 
    "key": "fi41WlslTBLbu5"
  }
}
 
Suggest Edits

Webhook Payloads

Format Webhook Events will be sent with

 

Partnership Events

All Partnership Events (partnership_created, partnership_updated, partnership_deleted) will serve the following data.

{
   "id": 123,
   "partner_key": "JohnSmith",
   "first_name": "John",
   "last_name": "Smith",
   "email": "johnsmith@mailinator.com",
   "group": {
      "id": 22,
      "name": "Top Sellers",
      "slug": "topsellers"
   },
   "event": "partnership_created",
   "archived": "false"
}
Field
Type
Description

id

Integer

Integer assigned to partnership

partner_key

String

Company Specific identifier for partner. (Usually a concatenation of first and last name)

first_name

String

Partner's First Name
eg. John

last_name

String

Partner's Last Name
eg. Smith

email

String

Partner's Email Address
eg. johnsmith@example.com

group

Object/Dictionary

Details about the group the partner is in

event

String

The event that fired the webhook

archived

Boolean

Whether the Partnership between the user (partner) and company exists

Customer Events

All Customer Events (customer_created, customer_updated, customer_deleted) will serve the following data.

{
   "id": 123,
   "key": "crust_a1xlr0s3",
   "email": "rosesandaxels@mailinator.com",
   "name": "Roger Axel",
   "partner_key": "bertramgilfoyle",
   "created_at": 1537205154288,
   "updated_at": 1537205159876,
   "archived": false,
   "event": "customer_updated"
}
Field
Type
Description

id

Integer

Integer assigned to Customer

key

String

Unique identifier for your customer

email

String

Customer's email address
eg. rosesandaxels@mailinator.com

name

String

Customer's name
eg. Roger Axel

partner_key

String

Partner that referred the customer.

created_at

Integer

Epoch (milliseconds) time of Customer creation

updated_at

Integer

Epoch (milliseconds) time of Customer update

archived

Boolean

Whether the customer is 'deleted' or not

event

String

Customer Event that fired the webhook

Transaction Events

All Transaction Events (transaction_created, transaction_deleted) events will serve the following data

{
   "id": 123,
   "customer_key": "crust_Lg23wNmkIF8hnB",
   "partner_key": "MurryFlatley",
   "currency": "USD",
   "amount": 153809,
   "key": "tran_SoaaRTEY7QFA1k",
   "event": "transaction_polled",
   "archived": false,
   "created_at": 1537205154288,
   "updated_at": 1537205159876
}
Field
Type
Description

id

Integer

Integer assigned to Transaction

customer_key

String

Unique Identifier for the Customer making transaction

partner_key

String

Unique Identifier of the Partner that referred the Customer

currency

String

Currency Transaction was processed in

amount

Integer

Transaction amount in cents

key

String

Unique Identifier of the Transaction

event

String

Transaction event that fired the webhook

archived

Boolean

Whether or not the Transaction still exists

created_at

Integer

Epoch (milliseconds) time of Transaction creation

updated_at

Integer

Epoch (milliseconds) time of Transaction update

Offer Events

All Offer Events (offer_created, offer_updated, offer_deleted) will serve the following data

{
    "id": 123,
    "body": "$79.64 USD for every sale made",
    "archived": false,
    "default": true,
    "challenge": {
       "id": 33,
       "name": "Summer Sale",
       "key": "chal_1113"
    },
    "created_at": 1524913412966,
    "updated_at": 1524913412966,
    "value": 7964,
    "currency": "USD",
    "type_": "flat",
    "product_key": "",
    "group": {
       "id": 22,
       "name": "Top Sellers",
       "slug": "topsellers"
    },
    "description": "",
    "has_description": false,
    "event": "offer_polled"
}
Field
Type
Description

id

Integer

Integer assigned to Offer

body

String

Automated description of Offer

archived

Boolean

Whether or not the Offer is active

default

Boolean

Whether or not Offer is for the Default Group

challenge

Object/Dictionary

Details about Challenge attached to offer

created_at

Integer

Epoch (milliseconds) time of Offer creation

updated_at

Integer

Epoch (milliseconds) time of Offer update

value

Integer

Rewarding amount in cents

currency

String

Currency of Offer Reward value

type_

String

Offer's rewarding type (eg. flat: $20, percentage: 20%)

product_key

String

Unique Identifier for a product being rewarded for

group

Object/Dictionary

Details about the group the Offer is available to

description

String

Custom description of the Offer (replaces body if present)

event

String

Offer event that fired the webhook