Streak

The Streak Developer Hub

Welcome to the Streak developer hub. You'll find comprehensive guides and documentation to help you start working with the Streak API as quickly as possible, as well as support if you get stuck. Let's jump right in!

Suggest Edits

Get Current User

Each Streak user has a corresponding user object. Creation of users is done when a user signs up for Streak and these objects can not be altered through the API. Since API keys are associated with the user, each API key only has privileges to access its own user object.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/users/me
curl --request GET \
  --url https://www.streak.com/api/v1/users/me
var request = require("request");

var options = { method: 'GET', url: 'https://www.streak.com/api/v1/users/me' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/users/me")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/users/me");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/users/me"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "email": "tesla@streak.com",
  "lowercaseEmail": "tesla@streak.com",
  "creationTimestamp": 1347660765134,
  "lastUpdatedTimestamp": 1348463195997,
  "lastSeenTimestamp": 1348470000000,
  "isOauthComplete": true,
  "userKey": "agptYWlIEVXNlchgBDA",
  "displayName": "tesla@streak.com",
  "key": "agptYWlIEVXNlchgBDA"
}
 
Property Name
Description

email

The email address of the user

lowercaseEmail

A lower case version of the users email address. Useful for normalization

lastSeenTimestamp

The date the user last used into Streak

isOauthComplete

Whether the user has completed the OAuth process. Useful to determine whether they can successfully share emails

displayName

A display friendly name, usually the users full name if it exists in their profile

Suggest Edits

Get User

This call will return the public details for the user specified.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/users/userKey
curl --request GET \
  --url https://www.streak.com/api/v1/users/userKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/users/userKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/users/userKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/users/userKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/users/userKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "email": "tesla@streak.com",
  "lowercaseEmail": "tesla@streak.com",
  "creationTimestamp": 1347660765134,
  "lastUpdatedTimestamp": 1348463195997,
  "lastSeenTimestamp": 1348470000000,
  "isOauthComplete": true,
  "userKey": "agptYWlIEVXNlchgBDA",
  "displayName": "tesla@streak.com",
  "key": "agptYWlIEVXNlchgBDA"
}

Path Params

userKey
string
required

The key/identifier for the user

 
Suggest Edits

Get my teams

Users can be on 0 or more teams. This endpoint will return all the teams a user is on.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/users/me/teams
curl --request GET \
  --url https://www.streak.com/api/v2/users/me/teams
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/users/me/teams' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/users/me/teams")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/users/me/teams");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/users/me/teams"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "creationDate": 1490042016548,
      "creator": "agxzfm1hgLzluZUKDA",
      "members": [
        {
          "role": "Owner",
          "inviteDate": 1490042016548,
          "inviteStatus": "Accepted",
          "orgKey": "agxzrLmNvbQw",
          "displayName": "Opera Ghost",
          "fullName": "The Phantom of the Opera",
          "email": "og@streak.com",
          "image": "https://lh5.googleusercontent.com/photo.jpg",
          "userKey": "agxzfm1hgLzluZUKDA"
        }
      ],
      "name": "og@streak.coms Team",
      "sharingRestrictedToTeam": false,
      "key": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
      "lastSavedTimestamp": 1490042016549
    }
  ]
}
 
Suggest Edits

Get a team

Get a specific team by its key.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/teams/teamKey
curl --request GET \
  --url https://www.streak.com/api/v2/teams/teamKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/teams/teamKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/teams/teamKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/teams/teamKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/teams/teamKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "creationDate": 1490042016548,
  "creator": "agxzfm1uZUKDA",
  "members": [
    {
      "role": "Owner",
      "inviteDate": 1490042016548,
      "inviteStatus": "Accepted",
      "orgKey": "agxrLmNvbQw",
      "displayName": "Oscar",
      "fullName": "Oscar The Grouch",
      "email": "oscar@streak.com",
      "image": "https://lh5.googleusercontent.com/photo.jpg",
      "userKey": "agxzfm1uZUKDA"
    }
  ],
  "name": "oscar@streak.com's Team",
  "sharingRestrictedToTeam": false,
  "key": "agxzfCIvJO1pQgM",
  "lastSavedTimestamp": 1490042016549
}

Path Params

teamKey
string
required

Team key

 
Suggest Edits

List all pipelines

Pipelines are a core data object in Streak. They represent a business process that a user or set of users would like managed. Pipelines are typically used for Sales, Hiring, Product Development, Bug Tracking, Project Management, Fundraising, Dealflow and others.

A pipeline defines the schema for the boxes it contains. It defines the set of stages that contained boxes can be in as well as the set of custom fields. A pipeline is created by a single user but can be shared to other users or to an entire organization.

Pipelines have several fields that describe the schema of the pipeline and hence describe the schema of any boxes contained within it.

The stages and fields properties are embedded in the pipeline object for convenience, however, to update these properties you must use the respective endpoints listed in the Stages and Fields sections.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[{"creatorKey": "agptYWlsXNlchgBDA",
    "name": "Hiring",
    "fields": [
      {"name": "Position",
        "key": "1002",
        "type": "TEXT_INPUT"},
      {"name": "Start Date",
        "key": "1003",
        "type": "DATE"}],
    "stages": {
      "5001": {
        "name": "Resume",
        "key": "5001"},
      {...},
      "5006": {
        "name": "Hired",
        "key": "5006"}},
    "stageOrder": ["5001","5002","5003","5004","5005","5006","5007"],
    "creationTimestamp": 1347993556572,
    "lastUpdatedTimestamp": 1348342589349,
    "aclEntries": [
      {	"email": "muggle@streak.com",
        "isOwner": false}],
    "pipelineKey": "agptYWlb3cYMww",
    "key": "agptYWlb3cYMww"},
  {"creatorKey": "agptYWllchgBDA",
    "name": "Sales / CRM",
    "description": "Use this pipeline to manage your sales process.",
    "orgWide": true,
    "fields": [
      {	"name": "Assigned To",
        "key": "1001",
        "type": "PERSON"},
      {	"name": "Deal Size",
        "key": "1002",
        "type": "TEXT_INPUT"}],
    "stages": {
      "5001": {
        "name": "Lead",
        "key": "5001"},
      {...},
      "5006": {
        "name": "Closed",
        "key": "5006"}},
    "stageOrder": ["5001","5002","5003","5004","5005","5006"],
    "creationTimestamp": 1347993563027,
    "lastUpdatedTimestamp": 1348342568733,
    "aclEntries": [],
    "owner": {
      "email": "tesla@streak.com",
      "isOwner": true},
    "pipelineKey": "agptYWlsZZsb3cYPww",
    "key": "agptYWlsZZsb3cYPww"}]

Query Params

sortBy
string

What order to sort the pipelines by. There are two valid sorts: creationTimestamp and lastUpdatedTimestamp. Both are in descending order.

 
Property Name
Description

creatorKey

The user key of the user that created the pipeline

name

The name of this pipeline

teamWide

Whether this pipeline is shared with all users in the organization (same domain in email address)

fields

Describes what fields each box within the pipeline can have. This field is read-only. To modify, refer to the fields endpoints

stages

A map describing the set of possible stages a box within the pipeline can be in. Read-only. Can only be modified using stages endpoints

stageOrder

Editable array which allows you to reorder the stages. This modifies the order of the stages that appear in the web UI.

aclEntries

An array of ACL objects (with properties: fullName, email, isOwner, image) which determines a list of users who have access to this pipeline.

owner

An object with the same properties as elements in the aclEntries array specifying the creator of this pipeline.

The aclEntries field specifies the individual users, other than the owner, who have permission exceptions compared with the teamWide entries. Currently, sharing a pipeline to another user gives them full access to reading, writing and management of that pipeline. The orgWide field specifies whether this pipeline is shared with everyone inside the users organization. An organization is defined as users with the same google apps for your domain.

Suggest Edits

Get a pipeline

This call will give you a single pipeline given the key.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/pipelineKey
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/pipelineKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "creatorKey": "agptYWXNlchgBDA",
  "name": "Hiring",
  "teamWide": false,
  "fields": [
    {"name": "Assigned To",
      "key": "1001",
      "type": "PERSON"},
    {"name": "Position",
      "key": "1002",
      "type": "TEXT_INPUT"}],
  "stages": {
    "5002": {
      "name": "Phone Screen",
      "key": "5002"},
    {...},
    "5006": {
      "name": "Hired",
      "key": "5006"}},
  "stageOrder": ["5001","5002","5003","5004","5005","5006","5007"],
  "creationTimestamp": 1347993556572,
  "lastUpdatedTimestamp": 1347993573832,
  "aclEntries": [],
  "owner": {"email": "tesla@streak.com",
            "isOwner": true},
  "pipelineKey": "agptYWya2Zsb3cYMww"}

Path Params

pipelineKey
string
required

Pipeline Key

 
Suggest Edits

Create a pipeline

This endpoint currently only accepts url-encoded requests

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://www.streak.com/api/v1/pipelines
curl --request PUT \
  --url https://www.streak.com/api/v1/pipelines
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.streak.com/api/v1/pipelines' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://www.streak.com/api/v1/pipelines");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "creatorKey": "agptYWNlchgBDA",
  "name": "Foo",
  "teamWide": false,
  "fields": [],
  "stages": {},
  "stageOrder": [],
  "creationTimestamp": 1348417307038,
  "lastUpdatedTimestamp": 1348417307038,
  "aclEntries": [],
  "owner": {
    "email": "tesla@streak.com",
    "isOwner": true
  },
  "pipelineKey": "agptYb3cYZAw",
  "key": "agptYb3cYZAw"
}

Form Data

name
string
required

The name of the pipeline you are creating

teamWide
boolean

Whether the pipeline will be shared with all users in the team

fieldNames
string

The fields each box within the pipeline can have. Fields should be given as a comma-separated array of names and a comma-separated array of corresponding field types (of equal length). To modify after creation use the Field endpoint. Example: ["Sleepy", "Sneezy", "Doc"].

fieldTypes
string

The type of the field. Can be any of: TEXT_INPUT, DATE, TAG, FORMULA, DROPDOWN, CHECKBOX, or TEAM_CONTACT. Should be an array of strings, ie ["TAG", "CHECKBOX", "DROPDOWN"].

stageNames
string

The possible stages a box within a pipeline can be in, separated by comma. To modify after creation use the Stage endpoint. As an example, try ["Snow", "White"].

teamKey
string

The key of the team the pipeline will be shared with

 
Suggest Edits

Update a pipeline

This call lets you edit the properties of a pipeline.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/pipelines/pipelineKey
curl --request POST \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/pipelines/pipelineKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "creatorKey": "agptYWXNlchgBDA",
  "name": "NewName",
  "description": "NewDescription",
  "orgWide": false,
  "fields": [],
  "stages": {},
  "stageOrder": [],
  "creationTimestamp": 1348417307038,
  "lastUpdatedTimestamp": 1348418701278,
  "aclEntries": [],
  "owner": {
    "email": "tesla@streak.com",
    "isOwner": true
  },
  "pipelineKey": "agptYWls3cYZAw",
  "key": "agptYWls3cYZAw"
}

Path Params

pipelineKey
string
required

The key of the pipeline to be edited

Body Params

name
string

The new name of the pipeline

stageOrder
array of strings

A JSON array containing ordering of stage keys. The elements of this array are allowed to be re-ordered only. The order of this array affects the UI of the pipeline in the Web UI.

orgWide
boolean

A boolean indicating whether this pipeline is shared to everyone in the organization. For Google apps customers this means any other user with the same domain in their email address. This field has no effect for regular Gmail users.

teamKey
string

A new team to share this pipeline

aclEntries
array of objects

This is a JSON array of objects representing who the pipeline is currently shared with. You can add and remove objects in a single update. Each object in this array is required to have 1 property - email. Adding a user to the aclEntries causes them to receive an email informing them that the pipeline has been shared with them.

email
 

To change the fields or the stages property, you must use different endpoints. The fields and stages are only provided as a convenience here. The necessary endpoints are specified in the Field and Stage section of this document.

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a pipeline

This call lets you delete a pipeline. You can only delete pipelines that are empty and have no boxes in them.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v1/pipelines/pipelineKey
curl --request DELETE \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v1/pipelines/pipelineKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
	"success":true 
} 

Path Params

pipelineKey
string
required

The key of the pipeline to be deleted

 
Suggest Edits

Move boxes to a different pipeline (batch)

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/pipelines/key/boxes/batch
curl --request POST \
  --url https://www.streak.com/api/v2/pipelines/key/boxes/batch
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/pipelines/key/boxes/batch' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/pipelines/key/boxes/batch")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/pipelines/key/boxes/batch");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/pipelines/key/boxes/batch"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "lastSavedTimestamp": 1513289387644,
    "pipelineKey": "agptAgAsM",
    "creatorKey": "agpICACgw",
    "creationTimestamp": 1510706377829,
    "stageKey": "5001",
    "fields": {
      "1004": "a",
      "1003": "9001",
      "1001": "9"
    },
    "boxKey": "agptYWBQw",
    "key": "agptYWBQw"
  },
  {
    "lastSavedTimestamp": 1513289387644,
    "pipelineKey": "agptAgAsM",
    "creatorKey": "agpICACgw",
    "creationTimestamp": 1510706377829,
    "stageKey": "5003",
    "fields": {
      "1004": "b",
      "1003": "9002",
      "1001": "42"
    },
    "boxKey": "agptYWB0Qw2",
    "key": "agptYWB0Qw2"
  },
  {
    "lastSavedTimestamp": 1513289387644,
    "pipelineKey": "agptAgAsM",
    "creatorKey": "agpICACgw",
    "creationTimestamp": 1510706377829,
    "stageKey": "5001",
    "fields": {
      "1004": "c",
      "1003": "9003",
      "1001": "54"
    },
    "boxKey": "agptWBgw1",
    "key": "agptWBgw1"
  },
]

Path Params

key
string
required

Pipeline key you are moving the boxes from.

Body Params

json
json
required

An array containing information on the boxes to be moved. ex [{"key":"boxKey1","boxKey":"boxKey1","pipelineKey":"newPipelineKey"},{"key":"boxKey2","boxKey":"boxKey2","pipelineKey":"newPipelineKey"}] Please note that this example through readme.io will not work because our API expects the JSON array to begin immediately. An example is given below.

 

Our API expects the JSON object to start immediately, eg:
-d '[{"key":"boxKey1","boxKey":"boxKey1","pipelineKey":"newPipelineKey"},{"key":"boxKey2","boxKey":"boxKey2","pipelineKey":"newPipelineKey"}]'
The example will not work through readme.io because of the json key in front of the data.

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

List all boxes in pipeline

This call lets you get all boxes contained in the specified pipeline. Use limits and pages to refine your request.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/pipelines/pipelineKey/boxes
curl --request GET \
  --url https://www.streak.com/api/v2/pipelines/pipelineKey/boxes
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/pipelines/pipelineKey/boxes' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/pipelines/pipelineKey/boxes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/pipelines/pipelineKey/boxes");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/pipelines/pipelineKey/boxes"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "pipelineKey": "agptYWlssb3cYMww",
    "creatorKey": "agpgBDA",
    "creationTimestamp": 1348419890781,
    "lastUpdatedTimestamp": 1348419903270,
    "name": "FooBox",
    "notes": "Sample notes.",
    "stageKey": "5001",
    "fields": {
      "1002": "Developer"
    },
    "followerKeys": ["agpgBDA"],
    "followerCount": 1,
    "commentCount": 0,
    "taskTotal": 0,
    "gmailThreadCount": 1,
    "fileCount": 0,
    "boxKey": "agptYWRh-DA",
    "key": "agptYWRh-DA"
  },
  {
    "pipelineKey": "agptYWlssb3cYMww",
    "creatorKey": "agpgBDA",
    "creationTimestamp": 1348260320367,
    "lastUpdatedTimestamp": 1348342557726,
    "name": "MySampleBox",
    "stageKey": "5002",
    "fields": {
      "1003": 1347451200000
    },
    "followerKeys": ["agpgBDA"],
    "followerCount": 1,
    "commentCount": 0,
    "taskTotal": 0,
    "gmailThreadCount": 1,
    "fileCount": 0,
    "boxKey": "agptYRhaDA",
    "key": "agptYRhaDA"
  }
]   

Path Params

pipelineKey
string
required

The key of the pipeline for which you want the boxes listed

Query Params

sortBy
string

What order to sort the boxes by. There are two valid sorts: creationTimestamp and lastUpdatedTimestamp. Both are in descending order.

limit
int32

The number of boxes to receive back on each page.

page
int32

The page number you'd like to view. If there are more results to show, hasNextPage will be true. Pages are 0 indexed.

stageKey
string

Stage to search (not repeatable)

 
Suggest Edits

Get a box

This call gives you a specific box based on the key you provide.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/boxes/boxKey
curl --request GET \
  --url https://www.streak.com/api/v1/boxes/boxKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/boxes/boxKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/boxes/boxKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "pipelineKey": "agpWlsZm9cYPww",
  "creatorKey": "agptgBDA",
  "creationTimestamp": 1348260320367,
  "lastUpdatedTimestamp": 1348342557726,
  "name": "MySampleBox",
  "stageKey": "5002",
  "fields": {
    "1003": 1347451200000
  },
  "followerKeys": [
    "agptgBDA"
  ],
  "followerCount": 1,
  "commentCount": 0,
  "taskTotal": 0,
  "gmailThreadCount": 1,
  "fileCount": 0,
  "boxKey": "agptYzZRhaDA",
  "key": "agptYzZRhaDA"
} 

Path Params

boxKey
string
required

The key of the box

 
Suggest Edits

Create a box

This call creates a box based on the pipelineKey you provide.

This endpoint currently only accepts url-encoded requests

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://www.streak.com/api/v1/pipelines/pipelineKey/boxes
curl --request PUT \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/boxes
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/boxes' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/boxes")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://www.streak.com/api/v1/pipelines/pipelineKey/boxes");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/boxes"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "pipelineKey": "agptYWl3cYPww",
  "creatorKey": "agptXNlchgBDA",
  "creationTimestamp": 1348436318347,
  "lastUpdatedTimestamp": 1348436318347,
  "name": "NewBox",
  "stageKey": "5001",
  "fields": {},
  "followerKeys": ["agptXNlchgBDA"],
  "followerCount": 1,
  "commentCount": 0,
  "taskTotal": 0,
  "gmailThreadCount": 1,
  "fileCount": 0,
  "boxKey": "agptYWRiZAQw",
  "key": "agptYWRiZAQw"
}  

Path Params

pipelineKey
string
required

The key of the pipeline this box should belong to

Form Data

name
string
required

The name of this box

stageKey
string

The stage of this box

notes
string

The notes on the box

assignedToSharingEntries
string

The member(s) of your team this box will be assigned to. Try this as an example: [{email=ginny@weasley.com}, {email=fred@weasley.com}, {email=george@weasley.com}]', keeping in mind that any assigned-to users must have access to the pipeline.

 
Suggest Edits

Update a box

This call lets you edit the properties of a box.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/boxes/boxKey
curl --request POST \
  --url https://www.streak.com/api/v1/boxes/boxKey
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/boxes/boxKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/boxes/boxKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "pipelineKey": "agptYWl3cYPww",
  "creatorKey": "agptXNlchgBDA",
  "creationTimestamp": 1348436318347,
  "lastUpdatedTimestamp": 1348436318347,
  "name": "NewBox",
  "stageKey": "5001",
  "fields": {},
  "followerKeys": ["agptXNlchgBDA"],
  "followerCount": 1,
  "commentCount": 0,
  "taskTotal": 0,
  "gmailThreadCount": 1,
  "fileCount": 0,
  "boxKey": "agptYWRiZAQw",
  "key": "agptYWRiZAQw"
}  

Path Params

boxKey
string
required

The key of the box you'd like to update

Body Params

name
string

The new name of the box

notes
string

The notes of the box

stageKey
string

The key of the stage that this box should be in. A list of valid stage keys can be found from the pipeline that this box belongs to

followerKeys
array of strings

A JSON array of user keys who are following this box. When a user follows a box, they receive notification emails upon major changes to the box

linkedBoxKeys
array of strings

The list of box keys you would like to link to the current box.

 

The post data for this request must be a well formed JSON object. The properties of the JSON object determine what properties of the box get updated. The above are the allowable properties for that JSON object. All other properties will be ignored.

To change the fields or the stages property, you must use different endpoints. The fields and stages are only provided as a convenience here. The necessary endpoints are specified in the Field and Stage section of this document.

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a box

This call lets you delete a particular box. It also deletes all of the relevant data such as files, emails, and tasks for that box.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v1/boxes/boxKey
curl --request DELETE \
  --url https://www.streak.com/api/v1/boxes/boxKey
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v1/boxes/boxKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v1/boxes/boxKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success":true
}

Path Params

boxKey
string
required

The key of the box you'd like to delete

 
Suggest Edits

Updating multiple fields in a box

Editing a single field of a box can be achieved through its own endpoint. However, this endpoint allows you to edit multiple fields at once.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/boxes/key
curl --request POST \
  --url https://www.streak.com/api/v1/boxes/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/boxes/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/boxes/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "lastSavedTimestamp": 1501786362702,
  "pipelineKey": "agxzfm1haWxmb29nYWVyMQsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEghXb3JrZmxvdxiAgIC85aOMCgw",
  "creationTimestamp": 1496942106767,
  "lastUpdatedTimestamp": 1501786362702,
  "name": "Goodnight Moon",
  "stageKey": "5001",
  "contacts": [
    {
      "isStarred": false,
      "key": "VGVhbUNvbnRhY3Qsfn5zdHJlYWtsb25naWR-fjc0NTA2OTc0MjE"
    }
  ],
  "fields": {
    "1007": "Goodnight Lamp",
    "1039": "22"
  },
  "boxKey": "agxzfm1haWxmb29nYWVyKgsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEgRDYXNlGIrA7oYIDA"
}

Path Params

key
string
required

Box key

Body Params

fields
json
required

Field keys and corresponding values. eg {"1007":"String", "1039":42}

 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Put an email in a box

See here for more information on threads.

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://www.streak.com/api/v1/boxes/key/threads
curl --request PUT \
  --url https://www.streak.com/api/v1/boxes/key/threads
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.streak.com/api/v1/boxes/key/threads' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key/threads")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://www.streak.com/api/v1/boxes/key/threads");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key/threads"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "creatorKey": "agxzfm1huZUKDA",
    "boxKey": "agxzfm1h0JDA",
    "pipelineKey": "agxzfmZaXCgw",
    "creationTimestamp": 1506709102707,
    "lastUpdatedTimestamp": 1506709102707,
    "numberOfEmails": 0,
    "names": [],
    "emailAddresses": [],
    "threadGmailId": "15eced88bfb784fc",
    "fileKeys": [],
    "gmailThreadKey": "agxBj5n-GeCQw",
    "key": "agxBj5n-GeCQw",
    "lastSavedTimestamp": 1506709102772
  }
]

Path Params

key
string
required

Box key

Form Data

boxKey
string
required

Box key

threadGmailId
string
required

The Gmail thread you'd like to add to the box (eg 15d52837dc00ff8e)

 
Suggest Edits

List all stages in pipeline

Stages are different possible states a box can be in. The list of valid stages a box can be in are defined in the pipeline it belongs to. All boxes in the same pipeline all have the same set of permissible stages. Listing the stages for a given pipeline can be done by (getting a specific pipeline)[reference#getting-a-specific-pipeline] or using the list stages endpoint below. To set what stage a given box is in, update the stageKey property of a box using the edit box endpoint.

This call lists the stages defined in a pipeline. Remember, this is only the definition of the stages - to change what stage a box is in, simply update the box with a new stageKey.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/pipelineKey/stages
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/stages
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/stages' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/stages")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/pipelineKey/stages");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/stages"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "5002": {
    "name": "Phone Screen",
    "key": "5002"
  },
  "5001": {
    "name": "Resume",
    "key": "5001"
  },
  "5003": {
    "name": "Interview",
    "key": "5003"
  },
  "5007": {
    "name": "Passed",
    "key": "5007"
  },
  "5005": {
    "name": "Offer Negotiation",
    "key": "5005"
  },
  "5006": {
    "name": "Hired",
    "key": "5006"
  }
}  

Path Params

pipelineKey
string
required

The key of the pipeline

 
Suggest Edits

Get a stage

This call gives you a specific stage defined in a pipeline.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "Interview",
  "key": "5003"
} 

Path Params

pipelineKey
string
required

The key of the pipeline

stageKey
string
required

The key of the stage

 
Suggest Edits

Create a stage

This call lets you create a stage defined in a pipeline.

This endpoint currently only accepts url-encoded requests

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://www.streak.com/api/v1/pipelines/pipelineKey/stages
curl --request PUT \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/stages
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/stages' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/stages")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://www.streak.com/api/v1/pipelines/pipelineKey/stages");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/stages"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "NewStage",
  "key": "5008"
} 

Path Params

pipelineKey
string
required

The key of the pipeline to which you're adding the new stage

Form Data

name
string
required

The name of the stage you'd like to add to the pipeline

 

Stage Names

You can not duplicate a stage name in a pipeline. If you try, your request will fail and you will see the error stage name already exists.

Suggest Edits

Update a stage

This call lets you edit the name of a stage.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
curl --request POST \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "EditedStage",
  "key": "5008"
}

Path Params

pipelineKey
string
required

The key of the pipeline

stageKey
string
required

The key of the stage

Body Params

name
string
required

The new name for the stage

 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a stage

This call lets you delete a stage defined in a pipeline.

This call will only succeed if there are no boxes tagged with the key of this stage, else it throws a 400.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
curl --request DELETE \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/stages/stageKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success":true
}

Path Params

pipelineKey
string
required

The key of the pipeline

stageKey
string
required

The key of the stage you wish to delete

 
Suggest Edits

List all fields in a pipeline

Fields allow users to define custom schema on their boxes.

That is, a field is user defined metadata on a box. In the web UI of Streak, a field shows up as an additional column in the pipeline view and box views. Fields are defined on a per pipeline basis. This means that all boxes in the same pipeline have the same custom fields (schema).

Fields have a name and a type. The type can be any of: TEXT_INPUT, DATE, TAG, FORMULA, DROPDOWN, CHECKBOX, or `TEAM_CONTACT'.

This call lists the fields defined in a pipeline. Remember, this is only the definition of the fields - to change the value of the field for a specific box, use the edit field for box endpoint.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/pipelineKey/fields
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/fields
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/fields' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/fields")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/pipelineKey/fields");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/fields"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "name": "Free Form Column",
    "key": "1001",
    "type": "TEXT_INPUT",
    "lastUpdatedTimestamp": 1495822628851
  },
  {
    "name": "Date Column",
    "key": "1002",
    "type": "DATE",
    "lastUpdatedTimestamp": 1495822635178
  },
  {
    "name": "Checkbox Column",
    "key": "1003",
    "type": "CHECKBOX",
    "lastUpdatedTimestamp": 1495822640009
  }
]  

Path Params

pipelineKey
string
required

The key of the pipeline

 
Suggest Edits

Get a field

This call lets you get a specific field defined in a pipeline.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "Start Date",
  "key": "1003",
  "type": "DATE"
} 

Path Params

pipelineKey
string
required

The key of the pipeline

fieldKey
string
required

The key of the field

 
Suggest Edits

Create a field

This call lets you create a field for a pipeline. This defines the field in the pipeline so that you can add values for that field for each box in the pipeline.

This endpoint currently only accepts url-encoded requests

 

Basic Auth

 Authentication is required for this endpoint.
puthttps://www.streak.com/api/v1/pipelines/pipelineKey/fields
curl --request PUT \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/fields
var request = require("request");

var options = { method: 'PUT',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/fields' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/fields")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Put.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("PUT", "https://www.streak.com/api/v1/pipelines/pipelineKey/fields");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/fields"

response = requests.request("PUT", url)

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "NewField",
  "key": "1001",
  "type": "TEXT_INPUT"
} 

Path Params

pipelineKey
string
required

The key of the pipeline

Form Data

name
string
required

The name of the field

type
string
required

The type of the field. Can be any of: TEXT_INPUT, DATE, TAG, FORMULA, DROPDOWN, CHECKBOX, or TEAM_CONTACT.

 
Suggest Edits

Update a field

This call lets you edit the name of a field. Note that editing the type of a field is not currently permitted and will give you the error Can't change the type of a field. See here for more information on field types.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
curl --request POST \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "name": "MyEditedFieldName",
  "key": "1001",
  "type": "PERSON"
}  

Path Params

pipelineKey
string
required

The key of the pipeline

fieldKey
string
required

The key of the field

Body Params

name
string
required

The new name of the field

 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a field

This call lets you delete a field defined in a pipeline. Note: this will also remove the values of this field for every box in the pipeline.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
curl --request DELETE \
  --url https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/pipelineKey/fields/fieldKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success":true
}

Path Params

pipelineKey
string
required

The key of the pipeline

fieldKey
string
required

The key of the field

 
Suggest Edits

List field values for a box

This call lists the field values for the box specified.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/boxes/boxKey/fields
curl --request GET \
  --url https://www.streak.com/api/v1/boxes/boxKey/fields
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/boxes/boxKey/fields' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey/fields")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/boxes/boxKey/fields");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey/fields"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "key": "1001",
    "value": {
      "email":"foo@bar.com"
    }
  },
  {
    "key": "1002"
    "value": "Some string"
  },
  {
    "key": "1003",
    "value": 1347451200000
  },
  {
    "key": "1004",
  }
]  

Path Params

boxKey
string
required

The key of the box

 

Fields w/ no value

For fields that have no value set, the value property is omitted from the returned JSON.

Suggest Edits

Get a field value

This call gets a specific field value for the box specified.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey
curl --request GET \
  --url https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "key": "1003",
  "value": 1347451200000
}

Path Params

boxKey
string
required

The key of the box

fieldKey
string
required

The key of the field

 
Suggest Edits

Update field value

This call lets you edit the value of a field for a particular box.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey
curl --request POST \
  --url https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/boxKey/fields/fieldKey"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "key": "1003",
  "value": 1347451200000
}

Path Params

boxKey
string
required

The key of the box

fieldKey
string
required

The key of the field

Body Params

value
string

The new value for the field

 

Different field types require different value inputs.

  • TEXT_INPUT example: {"value": "String"}
  • DATE example: {"value": 1510700044000}
  • CHECKBOX example: {"value": true}
  • DROPDOWN example: {"value": "9002"}
  • TAG example: {"value": ["9003"]}
  • TEAM_CONTACT example: {"value": ["contactKey1", "contactKey2"]}

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Get a contact

Gets a given contact by providing the contact key.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/contacts/key
curl --request GET \
  --url https://www.streak.com/api/v2/contacts/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/contacts/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/contacts/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/contacts/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/contacts/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyDgsSBFRlYW0Y2b2FiBYM",
  "emailAddresses": [
    "sushiritto@gmail.com"
  ],
  "lastEnrichmentTimestamp": 1500496120500,
  "lastSavedUserKey": "agxzfm1haWxmb29nYWVyLQsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEgRVc2VyGICAgLzluZUKDA",
  "creatorKey": "agxzfm1haWxmb29nYWVyLQsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEgRVc2VyGICAgLzluZUKDA",
  "creationDate": 1500496093244,
  "key": "VGVhbUNvbnRhY3Qsfn5zdHJlYWtsb25naWR-fjc1MDI1NzcxMzk",
  "versionTimestamp": 1500496120500,
  "lastSavedTimestamp": 1500496120501
}

Path Params

key
string
required

Contact key

 
Suggest Edits

Create a contact

Create a new contact. All contacts are scoped to a particular team so a teamKey is required. When creating a contact you can provide al of the contact info in a single call. See the possible parameters below.

Contacts must have at least one of name or emailaddresses set.

Note: Including the parameter getIfExisting limits the parameters you can include in the call.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/teams/key/contacts/
curl --request POST \
  --url https://www.streak.com/api/v2/teams/key/contacts/
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/teams/key/contacts/' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/teams/key/contacts/")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/teams/key/contacts/");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/teams/key/contacts/"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "givenName": "Billie",
  "familyName": "Jean",
  "title": "Not my lover",
  "emailAddresses": [
    "mjackson@gmail.com"
  ],
  "phoneNumbers": [
    "919.989.9909"
  ],
  "addresses": [
    "1005 Cherry Street"
  ],
  "creationDate": 1501633590512,
  "key": "VGVhbUNvbnRhY3Qsfn5zdHJlYWtsb25naWR-fjc1MTg3NDcyMDY",
  "lastSavedTimestamp": 1501633590850
}

Path Params

key
string
required

Team key

Query Params

getIfExisting
boolean

If set to true, will check for existing contact based on email. If contact does exist, call will return existing contact; else, call will create new contact. Either way, the call will return a contact. If you include this parameter, the call can only take a teamKey and a contact's emailAddresses. If you have more information on your contact, you'll need to run a separate call to update it. See Update a contact.

Body Params

givenName
string

First name

familyName
string

Last name

emailAddresses
array of strings
required

The only email addresses associated with the contact will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

title
string

Contact's title/description

other
string

Notes or other uncategorized information.

addresses
array of strings

The only addresses associated with the contact will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

phoneNumbers
array of strings

The only phone numbers associated with the contact will be the ones you include here; make sure to include any previously associated numbers as well as the new one(s).

twitterHandle
string
facebookHandle
string
linkedinHandle
string
photoUrl
string
 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Error
Example
Details

Missing parameters

{ "error": "Insufficient params for TeamContact", "success": false }

You might be missing the teamKey, emailAddresses, givenName, or familyName

Incorrect teamKey, API path has something mis-spelled or missing

{ "success": false }
OR
{ "error": "Invalid API path specified", "success": false }

We can't find the teamKey you've provided.

Need more information on the contact

"Need to specify at least a name or email address"

We require one of the following to create a contact:

  • givenName
  • familyName
  • emailAddresses

Need appropriate header

{ "error": "Missing parameters", "success": false }

If you do not have the header
-H "Content-Type: application/json" your call will return this error.

Duplicate email addresses

{ "error": "Contacts can't have duplicate emails: sally.ride@ladynerds.com, "errorCode": 801, "success": false }

You can not pass duplicate email addresses, ie ["sally.ride@ladynerds.com", "sally.ride@ladynerds.com"]

Check if contact exists?

If the getIfExisting parameter is included, you can ONLY pass the parameter of emailAddresses.

Suggest Edits

Update a contact

Update a contact by providing the contact key.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/contacts/key
curl --request POST \
  --url https://www.streak.com/api/v2/contacts/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/contacts/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/contacts/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/contacts/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/contacts/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "givenName": "Billie",
  "familyName": "Jean",
  "title": "Not my lover",
  "emailAddresses": [
    "mike.jackson@gmail.com",
    "mjackson@gmail.com"
  ],
  "phoneNumbers": [
    "919.989.9909"
  ],
  "addresses": [
    "4406 W Beach Park Drive",
    "1005 Cherry Street",
    "3030 Castro Street"
  ],
  "twitterHandle": "@justagirlwhothinksthatIamtheone",
  "creationDate": 1501633590512,
  "key": "VGVhbUNvbnRhY3Qsfn5zdHJlYWtsb25naWR-fjc1MTg3NDcyMDY"
}

Path Params

key
string
required

Contact key

Body Params

givenName
string

First name

familyName
string

Last name

emailAddresses
array of strings

The only email addresses associated with the contact will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

title
string

Contact's title/description

other
string

Notes or other uncategorized information.

addresses
array of strings

The only addresses associated with the contact will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

phoneNumbers
array of strings

The only phone numbers associated with the contact will be the ones you include here; make sure to include any previously associated numbers as well as the new one(s).

twitterHandle
string
facebookHandle
string
linkedinHandle
string
photoUrl
string
teamKey
string

Streak team key

 

You can update the following fields on a contact:
givenName, familyName, title, other, twitterHandle, facebookHandle, linkedinHandle, photoUrl, addresses, phoneNumbers, and emailAddresses.

All of these fields are strings except for the last three, which are arrays (of strings).

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a contact

Delete a contact by providing the contact key.

  • Upon deleting a contact, the contact will also be removed from any associated boxes.
 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v2/contacts/key
curl --request DELETE \
  --url https://www.streak.com/api/v2/contacts/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v2/contacts/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/contacts/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v2/contacts/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/contacts/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success": true
}

Path Params

key
string
required

Contact key

 

You must be part of the team on which a contact is created in order to delete it.

Suggest Edits

Add contact(s) to a box

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/boxes/key
curl --request POST \
  --url https://www.streak.com/api/v1/boxes/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/boxes/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/boxes/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "lastSavedTimestamp": 1501634851661,
  "pipelineKey": "agxzfm1haWxmb29nYWVyMQsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEghXb3JrZmxvdxiAgIC85aOMCgw",
  "creationTimestamp": 1494883606528,
  "lastUpdatedTimestamp": 1501634851660,
  "firstEmailFrom": "wicked.witch@greenmail.com",
  "name": "Flying Monkey Inn",
  "stageKey": "5001",
  "contacts": [
    {
      "isStarred": true,
      "key": "VGVhbUNvbnRhY3Qsfn5zdHJlYWtsb25naWR-fjc0MDcyNTczOTc"
    }
  ],
  "fields": {
    ...
  },
  "boxKey": "agxzfm1haWxmb29nYWVyKgsSDE9yZ2FuaXphdGlvbiIKc3RyZWFrLmNvbQwLEgRDYXNlGLn31-oHDA"
}

Path Params

key
string
required

Box key

Body Params

contacts
array of objects

The only contacts associated with the box will be the ones you include here; make sure to include any previously associated contacts as well as the new one(s).

key
isStarred
 

The process for adding one or many contacts to a box is the same.

Don't accidentally remove your contacts from a box

Only the contacts you list in your array will be associated with your box!

In other words, if you're adding contacts to a box that already has contacts (and you don't want to remove them), you'll have to send those contacts along with this call, as well.

Suggest Edits

Contacts: FAQ

 

Is there a way to get a list of contacts from a box?

Yes! Take a look under contacts when you call for a box:
curl 'https://www.streak.com/api/v1/boxes/{boxKey}' -u YOUR API KEY:

Is there a way to search for contacts by email address?

You bet! This will search orgs, boxes, and contacts, so make sure you're looking under contacts when you try this:
curl 'https://www.streak.com/api/v1/search?query='sally.ride@gmail.com' -u YOUR API KEY:

Suggest Edits

Get an Organization

Read the information for a given organization by providing the organization key.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/organizations/key
curl --request GET \
  --url https://www.streak.com/api/v2/organizations/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/organizations/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/organizations/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/organizations/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/organizations/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "name": "Kittens r Us",
  "other": "Spay and Neuter your pets!",
  "domains": ["kittensrus.com"],
  "industry": "KITTIES",
  "phoneNumbers": [],
  "addresses": ["101 Kitten Lane"],
  "employeeCount": "42",
  "logoURL": "http://www.pngmart.com/files/4/Kitten-Transparent-Background.png",
  "twitterHandle": "www.twitterHandle.com",
  "facebookHandle": "www.facebookHandle.com",
  "linkedinHandle": "www.linkedInHandle.com",
  "lastSavedUserKey": "agxzfm1hauZUKDA",
  "creatorKey": "agxzfm1hauZUKDA",
  "creationDate": 1506639583680,
  "key": "VGV2xvb-Nz3A",
  "versionTimestamp": 1506639583680,
  "lastSavedTimestamp": 1506639583936
}

Path Params

key
string
required

Organization key

 
Suggest Edits

Create an Organization

Create a new organization. All organizations are scoped to a particular team so a teamKey is required. When creating an organization you can provide al of the organization info in a single call. See the possible parameters below.

Organizations must have at least one of name or domains set.

Note: Including the parameter getIfExisting limits the parameters you can include in the call.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/teams/key/organizations
curl --request POST \
  --url https://www.streak.com/api/v2/teams/key/organizations
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/teams/key/organizations' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/teams/key/organizations")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/teams/key/organizations");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/teams/key/organizations"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "name": "Kittens r Us",
  "other": "Spay and Neuter your pets!",
  "domains": ["kittensrus.com"],
  "industry": "KITTIES",
  "phoneNumbers": [],
  "addresses": ["101 Kitten Lane"],
  "employeeCount": "42",
  "logoURL": "http://www.pngmart.com/files/4/Kitten-Transparent-Background.png",
  "twitterHandle": "www.twitterHandle.com",
  "facebookHandle": "www.facebookHandle.com",
  "linkedinHandle": "www.linkedInHandle.com",
  "lastSavedUserKey": "agxzfm1hauZUKDA",
  "creatorKey": "agxzfm1hauZUKDA",
  "creationDate": 1506639583680,
  "key": "VGV2xvb-Nz3A",
  "versionTimestamp": 1506639583680,
  "lastSavedTimestamp": 1506639583936
}

Path Params

key
string
required

Team key

Query Params

getIfExisting
boolean

If set to true, will check for existing organization based on website(s). Including the getIfExisting parameter will return an organization with a matching website if it exists, otherwise it will create the organization. Either way, the call will return an organization. This particular call can only take a teamKey and a organization's domains. If you have more information on your organization, you'll need to run a separate call to update it.

Body Params

name
string
required

Organization name

domains
array of strings

The only websites associated with the organization will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

industry
string

Organization industry

phoneNumbers
array of strings

The only phone numbers associated with the organization will be the ones you include here; make sure to include any previously associated numbers as well as the new one(s).

addresses
array of strings

The only addresses associated with the organization will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

employeeCount
int32

Employee count at the organization

logoURL
string

URL of the organization's logo

other
string

Notes or other uncategorized information.

twitterHandle
string
facebookHandle
string
linkedinHandle
string
 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

  • You must include a name OR a website (domains) in your request, or your organization will fail to create.
  • You may not have duplicated websites.
  • You must have permissions to create an organization for the team or you will not be able to complete this request.

Check if organization exists?

If the getIfExisting parameter is included, you can ONLY pass the parameter of domains.

Suggest Edits

Check for existing organizations

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/teams/key/organizations
curl --request POST \
  --url https://www.streak.com/api/v2/teams/key/organizations
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/teams/key/organizations' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/teams/key/organizations")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/teams/key/organizations");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/teams/key/organizations"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "name": "Kittens r Us",
  "other": "Spay and Neuter your pets!",
  "domains": ["kittensrus.com"],
  "industry": "KITTIES",
  "phoneNumbers": [],
  "addresses": ["101 Kitten Lane"],
  "employeeCount": "42",
  "logoURL": "http://www.pngmart.com/files/4/Kitten-Transparent-Background.png",
  "twitterHandle": "www.twitterHandle.com",
  "facebookHandle": "www.facebookHandle.com",
  "linkedinHandle": "www.linkedInHandle.com",
  "lastSavedUserKey": "agxzfm1hauZUKDA",
  "creatorKey": "agxzfm1hauZUKDA",
  "creationDate": 1506639583680,
  "key": "VGV2xvb-Nz3A",
  "versionTimestamp": 1506639583680,
  "lastSavedTimestamp": 1506639583936
}

Path Params

key
string
required

Team key

Query Params

getIfExisting
boolean

If set to true, will check for existing organization based on website(s).

Body Params

domains
array of strings
 

Including the getIfExisting parameter as true will return an organization with a matching website if it exists, otherwise it will create the organization. Either way, the call will return an organization.

This particular call can only take a teamKey and a organization's websites. If you have more information on your organization, you'll need to run a separate call to update it. See Update an organization.

Suggest Edits

Update an organization

Update an organization by providing the organization key.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/organizations/key
curl --request POST \
  --url https://www.streak.com/api/v2/organizations/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/organizations/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/organizations/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/organizations/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/organizations/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "teamKey": "agxzfm1haWxmb29nYWVyEQsSBFRlYW0YgICIvJO1pQgM",
  "name": "Kittens r Us",
  "other": "Spay and Neuter your pets!",
  "domains": ["kittensrus.com"],
  "industry": "KITTIES",
  "phoneNumbers": [],
  "addresses": ["101 Kitten Lane"],
  "employeeCount": "42",
  "logoURL": "http://www.pngmart.com/files/4/Kitten-Transparent-Background.png",
  "twitterHandle": "www.twitterHandle.com",
  "facebookHandle": "www.facebookHandle.com",
  "linkedinHandle": "www.linkedInHandle.com",
  "lastSavedUserKey": "agxzfm1hauZUKDA",
  "creatorKey": "agxzfm1hauZUKDA",
  "creationDate": 1506639583680,
  "key": "VGV2xvb-Nz3A",
  "versionTimestamp": 1506639583680,
  "lastSavedTimestamp": 1506639583936
}

Path Params

key
string
required

Organization key

Body Params

name
string

Organization name

domains
string

The only websites associated with the organization will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

industry
string

Organization industry

phoneNumbers
string

The only phone numbers associated with the organization will be the ones you include here; make sure to include any previously associated numbers as well as the new one(s).

addresses
string

The only addresses associated with the organization will be the ones you include here; make sure to include any previously associated addresses as well as the new one(s).

employeeCount
string

Employee count at the organization

logoURL
string

URL of the organization's logo

other
string

Notes or other uncategorized information.

twitterHandle
string
facebookHandle
string
linkedinHandle
string
 

For any field on an organization that is a list, keep in mind that only the values you put into the array will appear for that organization; calls are not aware of previous values and will not keep them.

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete an organization

Delete an organization by providing the organization key.

  • Upon deleting a organization, the organization will also be removed from any associated boxes.
 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v2/organizations/key
curl --request DELETE \
  --url https://www.streak.com/api/v2/organizations/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v2/organizations/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/organizations/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v2/organizations/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/organizations/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success": true
}

Path Params

key
string
required

Organization key

 
Suggest Edits

Add organization(s) to box

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v1/boxes/key
curl --request POST \
  --url https://www.streak.com/api/v1/boxes/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v1/boxes/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v1/boxes/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "lastSavedTimestamp": 1501634851661,
  "pipelineKey": "agxzfm1haZIC85aOMCgw",
  "creationTimestamp": 1494883606528,
  "lastUpdatedTimestamp": 1501634851660,
  "firstEmailFrom": "wicked.witch@greenmail.com",
  "name": "Flying Monkey Inn",
  "stageKey": "5001",
  "organizations": [
    {
      "isStarred": true,
      "key": "VG2haWR-fjcOTc"
    }
  ],
  "fields": {
    ...
  },
  "boxKey": "agxzfm1hNlGLn31-oHDA"
}

Path Params

key
string
required

Box key

Body Params

organizations
array of objects

The only organizations associated with the box will be the ones you include here; make sure to include any previously associated organizations as well as the new one(s).

isStarred
key
 

The process for adding one or many organizations to a box is the same.

Don't accidentally remove your organizations from a box

Only the organizations you list in your array will be associated with your box!

In other words, if you're adding organizations to a box that already has organizations (and you don't want to remove them), you'll have to send those organizations along with this call, as well.

Suggest Edits

Searching for boxes, contacts, and organizations by query

Any search by query will return results on orgs, boxes, and contacts.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/search?query=query
curl --request GET \
  --url 'https://www.streak.com/api/v1/search?query=query'
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/search',
  qs: { query: 'query' } };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/search?query=query")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/search?query=query");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/search"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": {
    "orgs": [{
        "name": "Batman's Trinkets",
        "key": "VGVhbU9yg5NzM4Mw",
        "industry": "Diversified Consumer Services",
        "domains": ["batman.com"]
      }],
    "boxes": [{
        "boxKey": "agxzfGDA",
        "name": "I'm Batman",
        "lastUpdatedTimestamp": 115984034,
        "stageKey": "5001",
        "pipelineKey": "agxzfm1hCgleiCCgw"
      }],
    "contacts": [{
        "key": "VGVhbUNvc2ODgwNTQ",
        "emailAddresses": ["bruce.wayne@batman.com"],
        "title": "Definitely not Batman",
      }]
  },
  "page": 0,
  "query": "Batman"
}

Path Params

query
string
required

Search Term

Query Params

pipelineKey
string

Limit your search to boxes on particular pipelines. Valid for boxes results only. pipelineKey is repeatable in order to search content on multiple pipelines.

stageKey
string

Limit your search to boxes on a particular stage. stageKeys come in the format of 5001, 5002, 5003, etc. Valid for boxes results only. stageKey is repeatable in order to search content in multiple stages.

 

Boxes

The search endpoint allows you to search the contents on boxes. The search functionality returns a relevance sorted list of boxes. query will return a search on name, notes, emails, text formula custom fields, and text freeform custom fields.

Boxes come back in the following format:

Property Name
Description

boxKey

The key of the box found

name

Name of the box found

lastUpdatedTimestamp

Timestamp of the last time the box was updated

assignedToKeys

List of the keys of users assigned to the box

pipelineKey

Key of the pipeline the box is in

stageKey

Stage the box is in

Below is an example of a request that limits search to 2 pipelines and three stages. Replace the {{double brackets}} and the text within to use the request yourself.

curl 'https://www.streak.com/api/v1/search?query={{Everything+is+awesome%21}}&pipelineKey={{agxaWmb29nE9yRyZXb3JrXCgw}}&pipelineKey={{agb29nYaXphdGlvb3JrZmxv}}&stageKey={{5003}}&stageKey={{5005}}&stageKey={{5007}}' -u {{YOUR API KEY}}:

Suggest Edits

Searching for a box by name

Box name is an exact search.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/search?name=name
curl --request GET \
  --url 'https://www.streak.com/api/v1/search?name=name'
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/search',
  qs: { name: 'name' } };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/search?name=name")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/search?name=name");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/search"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": {
    "boxes": [
      {
        "boxKey": "agxzfm1haWx1t0IDA",
        "name": "Boaty McBoatFace",
        "lastUpdatedTimestamp": 199995918,
        "assignedToKeys": ["agxzaWxmb29LzluZUKDA"],
        "stageKey": "5004",
        "pipelineKey": "agxzfm1vbiIKc3RyZWirZaXCgw"
      }
    ]
  },
  "page": 0
}

Path Params

name
string
required

Exact box name

Query Params

pipelineKey
string

Limit your search to boxes on particular pipelines. pipelineKey is repeatable in order to search content on multiple pipelines.

stageKey
string

Limit your search to boxes on a particular stage. stageKey is repeatable in order to search content in multiple stages.

 
Parameter
Description

query

Text to look for in a box

name

The exact box name to search for

page

The search page to request (pages are up to 1000 boxes)

pipelineKey

Pipeline to search (repeatable to search multiple)

stageKey

Stage to search (repeatable to search multiple)

Suggest Edits

Get a task

This call lets you get a specific task.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/tasks/key
curl --request GET \
  --url https://www.streak.com/api/v2/tasks/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/tasks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/tasks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/tasks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/tasks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agxzfm1haJq3iOsIDA",
  "pipelineKey": "agxzfm1hirZaXCgw",
  "creatorKey": "agxzfm1hagLzluZUKDA",
  "creationDate": 1504139600683,
  "lastStatusChangeDate": 1504139600683,
  "text": "Wake me up before you go go",
  "status": "NOT_DONE",
  "assignedToSharingEntries": [{
      "displayName": "Becca S",
      "fullName": "Becca Saines",
      "userKey": "agxzfm1CAgLzluZUKDA"
    }],
  "key": "agxzfmWxmPK9xZsKDA",
  "lastSavedTimestamp": 1504199083804
}

Path Params

key
string
required

Task key

 
Suggest Edits

Get tasks in a box

Tasks allow you to create a task list per box. All tasks have the text property. They can optionally be assigned to any member of the pipeline. They also have an optional due date, which when set, adds the task to the creators calendar and sends an email reminder when due.

This call lets you get all the tasks associated with a particular box.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/boxes/key/tasks
curl --request GET \
  --url https://www.streak.com/api/v2/boxes/key/tasks
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/boxes/key/tasks' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/boxes/key/tasks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/boxes/key/tasks");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/boxes/key/tasks"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{"results": [
    {
      "boxKey": "agxzfm1q3iOsIDA",
      "pipelineKey": "agxzfm1hrZaXCgw",
      "lastStatusChangeDate": 1504211088721,
      "text": "All the things!",
      "status": "NOT_DONE",
      "assignedToSharingEntries": [{
          "displayName": "Becca S",
          "userKey": "agxzfm1hluZUKDA"}],
      "key": "agxzfmPKd5Y8JDA",
      "lastSavedTimestamp": 1504211088820
    },
    {
      "boxKey": "agxzfm1hGJq3iOsIDA",
      "pipelineKey": "agxzCirZaXCgw",
      "lastStatusChangeDate": 1504139600683,
      "text": "Moar things!",
      "status": "NOT_DONE",
      "assignedToSharingEntries": [{
          "displayName": "Becca S",
          "userKey": "agxzfm1hgLzluZUKDA"}],
      "key": "agxzfm1CAgPK9xZsKDA",
      "lastSavedTimestamp": 1504199083804
    }
  ]}

Path Params

key
string
required

Box key.

 
Property Name
Description

creatorKey

The user key of the user that created the task

creationDate

The date the task was created

dueDate

The date the task is due and a reminder is sent

text

The text of a task

status

Whether the task is DONE or NOT_DONE

reminderStatus

Gets the status of the reminder if this task has a due date, can be: NONE, SCHEDULED, REMINDED or ERROR_ON_REMINDER

assignedToSharingEntries

Who the task is assigned to

Suggest Edits

Create a task

This call lets you create a task.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/boxes/key/tasks
curl --request POST \
  --url https://www.streak.com/api/v2/boxes/key/tasks
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/boxes/key/tasks' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/boxes/key/tasks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/boxes/key/tasks");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/boxes/key/tasks"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agxzfm1haJq3iOsIDA",
  "pipelineKey": "agxzfm1hirZaXCgw",
  "creatorKey": "agxzfm1hagLzluZUKDA",
  "creationDate": 1504139600683,
  "lastStatusChangeDate": 1504139600683,
  "text": "Walk 500 miles",
  "status": "NOT_DONE",
  "assignedToSharingEntries": [{
      "displayName": "Becca S",
      "fullName": "Becca Saines",
      "userKey": "agxzfm1CAgLzluZUKDA"
    }],
  "key": "agxzfmWxmPK9xZsKDA",
  "lastSavedTimestamp": 1504199083804
}

Path Params

key
string
required

Box key

Body Params

key
string
required

Box key

text
string
required

Task description

dueDate
int64

Milliseconds since epoch (eg 1504213700003)

assignedToSharingEntries
array of objects

Each object needs a key of email and a value of the assignee's email.

email
 

All new tasks have status automatically set to NOT_DONE.

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Update a task

This call lets you edit a specific task.

The post data for this request must be a well formed JSON object. The properties of the JSON object determine what properties of the task get updated. The following are the allowable properties for that JSON object. All other properties will be ignored.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/tasks/key
curl --request POST \
  --url https://www.streak.com/api/v2/tasks/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/tasks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/tasks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/tasks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/tasks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agxzfm1haJq3iOsIDA",
  "pipelineKey": "agxzfm1hirZaXCgw",
  "creatorKey": "agxzfm1hagLzluZUKDA",
  "creationDate": 1504139600683,
  "lastStatusChangeDate": 1504139600683,
  "text": "Walk 500 miles",
  "status": "DONE",
  "assignedToSharingEntries": [{
      "displayName": "Becca S",
      "fullName": "Becca Saines",
      "userKey": "agxzfm1CAgLzluZUKDA"
    }],
  "key": "agxzfmWxmPK9xZsKDA",
  "lastSavedTimestamp": 1504199083804
}

Path Params

key
string
required

Task key

Body Params

text
string

Updated task description

dueDate
int64

Updated dueDate (in MS since epoch)

status
string

Either DONE or NOT_DONE

assignedToSharingEntries
array of objects

Each object needs a key of email and a value of the assignee's email.

email
 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a task

This call lets you delete a specific task.

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v2/tasks/key
curl --request DELETE \
  --url https://www.streak.com/api/v2/tasks/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v2/tasks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/tasks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v2/tasks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/tasks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success":true
}

Path Params

key
string
required

Task key

 
 

Webhooks will POST an object to a target URL when certain events happen. Updated object(s) will be in an array. If the POST request gets a http 410 Gone response, the webhook will delete itself. If it gets a response other than 200 or 410, the webhook will retry with a backoff delay.

Property Name
Description

event

type of webhook event

targetUrl

url to POST the updated object to

Webhook Events

The event specified will decide the type of object that is sent.

Event Name
Category
Object Type
Description

BOX_CREATE

Pipeline

Box

When a new box is created

BOX_DELETE

Pipeline

Box

When a box is deleted

STAGE_CREATE

Pipeline

Stage

When a new stage is created

BOX_NEW_EMAIL_ADDRESS

Pipeline

Box

When a new email address is detected on a box

BOX_EDIT

Pipeline

Box

When a custom field, notes, assigned to, or name is edited on a box

BOX_CHANGE_STAGE

Pipeline

Box

When a box changes stage

BOX_CHANGE_PIPELINE

Pipeline

Box

When a box changes pipeline

COMMENT_CREATE

Pipeline

Comment

When a comment is created

TASK_CREATE

Pipeline

Task

When a task is created

TASK_COMPLETE

Pipeline

Task

When a task is complete

TASK_DUE

Pipeline

Task

When a task is due

CONTACT_CREATE

Team

Contact

When a contact is created

ORG_CREATE

Team

Organization

When an organization is created

CONTACT_UPDATE

Team

Contact

When a contact is updated

ORG_UPDATE

Team

Organization

When an organization is updated

CONTACT_DELETE

Team

Contact

When a contact is deleted

ORG_DELETE

Team

Organization

When an organization is deleted

Suggest Edits

Get all pipeline-based webhooks

This endpoint will get all the currently registered webhooks for a particular pipeline. Webhooks are not scoped to a user so multiple users could have created these webhooks.

A pipeline based webhook involves any objects like boxes or comments or call logs that are scoped to a particular pipeline. For other types of webhooks, see team based webhooks below.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/pipelines/key/webhooks
curl --request GET \
  --url https://www.streak.com/api/v2/pipelines/key/webhooks
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/pipelines/key/webhooks' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/pipelines/key/webhooks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/pipelines/key/webhooks");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/pipelines/key/webhooks"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "event": "STAGE_CREATE",
      "targetUrl": "{targetUrl}",
      "pipelineKey": "agptYWlsCA9AkM",
      "userKey": "agptgID0Cgw",
      "key": "agptYIDA",
      "creationDate": 1458603027590,
      "lastSavedTimestamp": 1458603027599
    },
    {
      "event": "BOX_CREATE",
      "targetUrl": "{targetUrl}",
      "pipelineKey": "agptYWlsCA9AkM",
      "userKey": "agptgID0Cgw",
      "key": "agptNILDA",
      "creationDate": 1458602998870,
      "lastSavedTimestamp": 1458602998960
    }
  ]
}

Path Params

key
string
required

Pipeline key

 
Suggest Edits

Get all team-based webhooks

This endpoint will get all the currently registered webhooks for a particular team. Webhooks are not scoped to a user so multiple users could have created these webhooks.

A team based webhook involves any objects like contacts ororganizations that are scoped to a particular team.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/teams/key/webhooks
curl --request GET \
  --url https://www.streak.com/api/v2/teams/key/webhooks
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/teams/key/webhooks' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/teams/key/webhooks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/teams/key/webhooks");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/teams/key/webhooks"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "results": [
    {
      "event": "CONTACT_CREATE",
      "targetUrl": "{targetUrl}",
      "pipelineKey": "agptYWlsCA9AkM",
      "userKey": "agptgID0Cgw",
      "key": "agptYIDA",
      "creationDate": 1458603027590,
      "lastSavedTimestamp": 1458603027599
    },
    {
      "event": "ORG_UPDATE",
      "targetUrl": "{targetUrl}",
      "pipelineKey": "agptYWlsCA9AkM",
      "userKey": "agptgID0Cgw",
      "key": "agptNILDA",
      "creationDate": 1458602998870,
      "lastSavedTimestamp": 1458602998960
    }
  ]
}

Path Params

key
string
required

Team key

 
Suggest Edits

Get a webhook by key

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/webhooks/key
curl --request GET \
  --url https://www.streak.com/api/v2/webhooks/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/webhooks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/webhooks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/webhooks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/webhooks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "event": "TASK_CREATE",
  "targetUrl": "https://hooks.catchme.com/",
  "pipelineKey": "agxzfm1hZaXCgw",
  "userKey": "agxAgLUKDA",
  "key": "sYgICIv9QoM",
  "creationDate": 1507226274178,
  "lastSavedTimestamp": 1507226274203
}
{
  "success": false
}

Path Params

key
string
required

Webhook key

 
Suggest Edits

Create a webhook

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/webhooks
curl --request POST \
  --url https://www.streak.com/api/v2/webhooks
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/webhooks' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/webhooks")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/webhooks");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/webhooks"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "event": "TASK_CREATE",
  "targetUrl": "https://hooks.catchme.com/",
  "pipelineKey": "agxzfm1hZaXCgw",
  "userKey": "agxzluZUKDA",
  "key": "gICIxYzv9QoM",
  "creationDate": 1507226274178,
  "lastSavedTimestamp": 1507226274203
}

Query Params

pipelineKey
string

Pipeline key. You must specify either a pipelineKey or a teamKey; this parameter will define if the webhook is pipeline or team-based.

teamKey
string

Pipeline key. You must specify either a pipelineKey or a teamKey; this parameter will define if the webhook is pipeline or team-based.

Body Params

event
string
required

For a complete list of events, please check the list above.

targetUrl
string
required

The url to which the event will be sent.

 
Suggest Edits

Update a webhook

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/webhooks/key
curl --request POST \
  --url https://www.streak.com/api/v2/webhooks/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/webhooks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/webhooks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/webhooks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/webhooks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "event": "TASK_CREATE",
  "targetUrl": "https://hooks.catchme.com/",
  "pipelineKey": "agxzfm1hZaXCgw",
  "userKey": "agxzluZUKDA",
  "key": "gICIxYzv9QoM",
  "creationDate": 1507226274178,
  "lastSavedTimestamp": 1507226274203
}

Path Params

key
string
required

Webhook key. You can not switch a team-based webhook to a pipeline-based webhook (or vice versa).

Body Params

event
string

For a complete list of events, please check the list above.

targetUrl
string

The url to which the event will be sent.

 

The post data for this request must be a well formed JSON object. The properties of the JSON object determine what properties of the webhook get updated. event and targetUrl are the allowable properties for that JSON object. All other properties will be ignored.

You can not update a pipeline-based webhook to become a team-based webhook or vice-versa.

Suggest Edits

Delete a webhook

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v2/webhooks/key
curl --request DELETE \
  --url https://www.streak.com/api/v2/webhooks/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v2/webhooks/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/webhooks/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v2/webhooks/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/webhooks/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success": true
}

Path Params

key
string
required

Webhook key

 
Suggest Edits

Files

Files are automatically extracted from emails that exist in a box. Each file is associated with the box it's in.

 
Property Name
Description

fileOwner

Each file comes from a particular email that was added to a box. This property is the key of the user that added the email to the box.

size

The size of the file in bytes

mimeType

The mime type of the file

fileName

The filename with extension

mainFileName

The filename without the extension

fileType

Type will be either GMAIL_API or DRIVE. GMAIL_API means the information was scraped from email attachments in a box.
DRIVE means the user added a drive file to the box directly.
Only contents of GMAIL_API files can be retrieved via the Streak API.

Suggest Edits

Get files in a box

This call lets you get all the files associated with a particular box.

You can only get the contents of files that are of the type GMAIL_API.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/boxes/key/files
curl --request GET \
  --url https://www.streak.com/api/v1/boxes/key/files
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/boxes/key/files' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key/files")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/boxes/key/files");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key/files"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "fileType": "GMAIL_API",
    "fileOwner": "agxzfm1hagLzluZUKDA",
    "creationTimestamp": 1516216459359,
    "lastUpdatedTimestamp": 1516216459359,
    "size": "477759",
    "mimeType": "image/png",
    "fileName": "files4Fun.png",
    "mainFileName": "files4Fun.png",
    "isCurrentUserOwnerInDrive": false,
    "fileKey": "agxzfm1haraoKDA",
    "key": "agxzfm1haraoKDA",
    "boxKey": "agxzfm1KoKDA",
    "gmailAPIFileId": "ANGjdJ-brnIrEuzwa5C-wcjtfh",
    "gmailMessageId": "161058a7a652b7e0",
    "lastSavedTimestamp": 1516216459374
  }
]

Path Params

key
string
required

The key of the box for which you want the files listed

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Get specific file

This call lets you get a specific file.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/files/key
curl --request GET \
  --url https://www.streak.com/api/v1/files/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/files/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/files/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/files/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/files/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "fileType": "GMAIL_API",
  "fileOwner": "agxzfm1hagLzluZUKDA",
  "creationTimestamp": 1516216459359,
  "lastUpdatedTimestamp": 1516216459359,
  "size": "477759",
  "mimeType": "image/png",
  "fileName": "files4Fun.png",
  "mainFileName": "files4Fun.png",
  "isCurrentUserOwnerInDrive": false,
  "fileKey": "agxzfm1haraoKDA",
  "key": "agxzfm1haraoKDA",
  "boxKey": "agxzfm1KoKDA",
  "gmailAPIFileId": "ANGjdJ-brnIrEuzwa5C-wcjtfh",
  "gmailMessageId": "161058a7a652b7e0",
  "lastSavedTimestamp": 1516216459374
}

Path Params

key
string
required

The key of the file.

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Get file contents

This call lets you get the binary contents of the file. The mime type of the response contents is based on the file type.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/files/key/contents
curl --request GET \
  --url https://www.streak.com/api/v1/files/key/contents
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/files/key/contents' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/files/key/contents")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/files/key/contents");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/files/key/contents"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

Try the API to see results

Path Params

key
string
required

The key of the file

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Threads

Streak associates a list of gmail threads with each box in a pipeline.

 
Property Name
Description

subject

The subject of the first email in the thread

names, emailAddresses

The senders and recipients on the gmail thread

lastEmailTimestamp

The date and time of the last email in the thread, as a unix timestamp

threadGmailId

Gmail's key for the thread

files

Attachments on messages in the thread

Suggest Edits

Get threads in a box

This call lets you get all the threads in a particular box.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/boxes/key/threads
curl --request GET \
  --url https://www.streak.com/api/v1/boxes/key/threads
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/boxes/key/threads' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/boxes/key/threads")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/boxes/key/threads");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/boxes/key/threads"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[
  {
    "creatorKey": "agptYWlchgBDA",
    "boxKey": "agptYWlsFzZRgJDA",
    "pipelineKey": "agptYZsb3cYBQw",
    "creationTimestamp": 1367889076605,
    "lastUpdatedTimestamp": 1367889076605,
    "lastEmailTimestamp": 1367886197000,
    "subject": "Re: Some email subject line",
    "names": [
      "Adam Sandler",
      "Betty White",
      "Jon Hamm"
    ],
    "emailAddresses": [
      "asandler@example.com",
      "bwhite@example.com",
      "jon.hamm@example.com"
    ],
    "threadGmailId": "13e7c4bcce4c3693",
    "fileKeys": [],
    "files": [],
    "gmailThreadKey": "agptYWlslYWQYKQw",
    "key": "agptYWlslYWQYKQw"
  }
] 

Path Params

key
string
required

The key of the box for which you want the threads listed

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Get a specific thread

This call lets you get a specific thread.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/threads/key
curl --request GET \
  --url https://www.streak.com/api/v1/threads/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/threads/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/threads/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/threads/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/threads/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "creatorKey": "agptYWlsZmhgBDA",
  "boxKey": "agptYWZRgJDA",
  "pipelineKey": "agptYWlsb3cYBQw",
  "creationTimestamp": 1367889076605,
  "lastUpdatedTimestamp": 1367889076605,
  "lastEmailTimestamp": 1367886197000,
  "subject": "Re: Some email subject line",
  "names": [
    "Adam Sandler",
    "Betty White",
    "Jon Hamm"
  ],
  "emailAddresses": [
    "asandler@example.com",
    "bwhite@example.com",
    "jon.hamm@example.com"
  ],
  "threadGmailId": "13e7c4bcce4c3693",
  "fileKeys": [],
  "files": [],
  "gmailThreadKey": "agptYWlslYWQYKQw",
  "key": "agptYWlslYWQYKQw"
}  

Path Params

key
string
required

The key of the thread.

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Put a thread in a box

 
Suggest Edits

Comments

Each box in Streak can have 0 or more comments associated with it. Any user who has access to the pipeline can create a comment.

 
Property Name
Description

message

The message content of the comment

timestamp

The date and time of the comment was created

creatorKey

The key of the user that created the timestamp

Suggest Edits

Get a comment

This call lets you get all a specific comment.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v2/comments/key
curl --request GET \
  --url https://www.streak.com/api/v2/comments/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v2/comments/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/comments/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v2/comments/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/comments/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agxzf7aoKDA",
  "pipelineKey": "agxzfmICirZaXCgw",
  "creatorKey": "agxzfzluZUKDA",
  "newsfeedEntryKey": "agxzfmSOhAsM",
  "timestamp": 1516238421169,
  "message": "do you feel lucky?",
  "commentKey": "agxzfm1nPtqsKDA",
  "key": "agxzfm1nPtqsKDA",
  "lastSavedTimestamp": 1516238545102
}

Path Params

key
string
required

The comment key for the comment you'd like to retrieve

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Create a comment

This call lets you create a comment associated with a particular box.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/boxes/key/comments
curl --request POST \
  --url https://www.streak.com/api/v2/boxes/key/comments
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/boxes/key/comments' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/boxes/key/comments")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/boxes/key/comments");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/boxes/key/comments"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agptYWlsZRjJBAw",
  "pipelineKey": "agptYWls2Zsb3cYjgIM",
  "timestamp": 1369697984568,
  "creatorKey": "agptYWlsZchgBDA",
  "message": "bar",
  "commentKey": "agptYWludBjTBAw",
  "key": "agptYWldBjTBAw"
} 

Path Params

key
string
required

The key of the box for which you want the comment created

Body Params

message
string
required

The text of the comment.

 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Update a comment

This call lets you update the message text of a specific comment.

 

Basic Auth

 Authentication is required for this endpoint.
posthttps://www.streak.com/api/v2/comments/key
curl --request POST \
  --url https://www.streak.com/api/v2/comments/key
var request = require("request");

var options = { method: 'POST',
  url: 'https://www.streak.com/api/v2/comments/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/comments/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://www.streak.com/api/v2/comments/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/comments/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "boxKey": "agptYWlsZRjJBAw",
  "pipelineKey": "agptYWls2Zsb3cYjgIM",
  "timestamp": 1369697984568,
  "creatorKey": "agptYWlsZchgBDA",
  "message": "bar",
  "commentKey": "agptYWludBjTBAw",
  "key": "agptYWldBjTBAw"
} 

Path Params

key
string
required

The comment key for the comment you wish to update

Body Params

message
string
required

The updated message text

 

Content Type and Auth

Make sure to include -H "Content-Type: application/json" and your authorization in any request you make on your own.

Suggest Edits

Delete a comment

 

Basic Auth

 Authentication is required for this endpoint.
deletehttps://www.streak.com/api/v2/comments/key
curl --request DELETE \
  --url https://www.streak.com/api/v2/comments/key
var request = require("request");

var options = { method: 'DELETE',
  url: 'https://www.streak.com/api/v2/comments/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v2/comments/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Delete.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("DELETE", "https://www.streak.com/api/v2/comments/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v2/comments/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

{
  "success": true
}

Path Params

key
string
required

The key of the comment you wish to delete

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Snippets

Snippets are saved fragments of text that can be inserted into emails. A snippet can optionally be associated with a pipeline so that it is shared to every user in that has access to that pipeline.

 
Property Name
Description

userKey

The key of the user that created the snippet.

creationDate

The date and time the snippet was created.

partOfPipeline

Whether this snippet is part of a pipeline or not.

snippetText

The text of the snippet.

snippetName

The name of the snippet.

snippetType

The type of the snippet, can be TEXT or HTML.

Suggest Edits

Get all snippets

This call lets you get all the snippets for a user.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/snippets
curl --request GET \
  --url https://www.streak.com/api/v1/snippets
var request = require("request");

var options = { method: 'GET', url: 'https://www.streak.com/api/v1/snippets' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/snippets")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/snippets");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/snippets"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[{
  "userKey": "agptYWlhgBDA",
  "creationDate": 1372272713606,
  "partOfPipeline": false,
  "snippetText": {
    "value": "bar"
  },
  "snippetName": "Foo",
  "snippetType": "HTML",
  "snippetKey": "agptYWdBjGAQw",
  "key": "agptYWdBjGAQw"
}] 
 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Get a specific snippet

This call lets you get a single snippet.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/snippets/key
curl --request GET \
  --url https://www.streak.com/api/v1/snippets/key
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/snippets/key' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/snippets/key")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/snippets/key");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/snippets/key"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[{
  "userKey": "agptYWlhgBDA",
  "creationDate": 1372272713606,
  "partOfPipeline": false,
  "snippetText": {
    "value": "bar"
  },
  "snippetName": "Foo",
  "snippetType": "HTML",
  "snippetKey": "agptYWdBjGAQw",
  "key": "agptYWdBjGAQw"
}] 

Path Params

key
string
required

The key of the snippet you're requesting

 

Authorization

Make sure to include your authorization in any request you make on your own.

Suggest Edits

Newsfeed

The Newsfeed endpoint gives you historical data on a specific entity. Most edits on the entity and creation of child entities will generate newsfeed events. There are several constants that give you details on what changed, by whom and to what entity.

 
Property Name
Description

creatorKey

The user key of the user that created this newsfeed item

timestamp

The datetime when this event occurred

newsfeedEntryScope

What this event applies to - either a BOX or PIPELINE

newsfeedEntryOperation

Whether this event refers to an CREATE, UPDATE, or DELETE

newsfeedEntrySpecific

What specifically happened to cause this event

specificVariables

Am object containing additional information regarding this specific event type

Suggest Edits

Newsfeed for pipelines

This endpoint will give you not only the historical changes for a particular pipeline, but also the historical changes for all boxes contained within the pipeline. It is limited to the 50 most recent events.

 

Basic Auth

 Authentication is required for this endpoint.
gethttps://www.streak.com/api/v1/pipelines/key/newsfeed
curl --request GET \
  --url https://www.streak.com/api/v1/pipelines/key/newsfeed
var request = require("request");

var options = { method: 'GET',
  url: 'https://www.streak.com/api/v1/pipelines/key/newsfeed' };

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

  console.log(body);
});
require 'uri'
require 'net/http'

url = URI("https://www.streak.com/api/v1/pipelines/key/newsfeed")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)

response = http.request(request)
puts response.read_body
var data = JSON.stringify(false);

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://www.streak.com/api/v1/pipelines/key/newsfeed");

xhr.send(data);
import requests

url = "https://www.streak.com/api/v1/pipelines/key/newsfeed"

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

print(response.text)
A binary file was returned

You couldn't be authenticated

[{
    "creatorKey": "agxzfUKDA",
    "timestamp": 1507635543727,
    "newsfeedEntryScope": "BOX",
    "newsfeedEntryOperation": "CREATE",
    "newsfeedEntrySpecific": "NEW_BOX",
    "specificVariables": {
      "PIPELINE_NAME": "Zapier Testing",
      "STAGE_KEY": "5001",
      "STORY_AUTHOR_DISPLAY_NAME": "Becca S",
      "BOX_NAME": "I Am New Box From corgis@cuteDogs.org"
    },
    "boxKey": "agxzfqwJDA",
    "pipelineKey": "agxzfmrZaXCgw",
    "moved": false,
    "storyTextGlobal": "<STORY_AUTHOR_DISPLAY_NAME> created the <BOX> box",
    "storyTextPipeline": "<STORY_AUTHOR_DISPLAY_NAME> created the <BOX> box",
    "storyTextBox": "<STORY_AUTHOR_DISPLAY_NAME> created the box",
    "newsfeedItemKey": "agxzfm1haWxmbjgoM",
    "collapsedEntries": [],
    "lastSavedTimestamp": 1507635543728
  },
  {
    "creatorKey": "agxzfm1haluZUKDA",
    "timestamp": 1507635542587,
    "newsfeedEntryScope": "BOX",
    "newsfeedEntryOperation": "CREATE",
    "newsfeedEntrySpecific": "NEW_BOX",
    "specificVariables": {
      "STAGE_KEY": "5001",
      "PIPELINE_NAME": "Zapier Testing",
      "STORY_AUTHOR_DISPLAY_NAME": "Becca S",
      "BOX_NAME": "I Am New Box From beagles@cuteDogs.org"
    },
    "boxKey": "agxzf36sJDA",
    "pipelineKey": "agxzfmrZaXCgw",
    "storyTextGlobal": "<STORY_AUTHOR_DISPLAY_NAME> created the <BOX> box",
    "storyTextPipeline": "<STORY_AUTHOR_DISPLAY_NAME> created the <BOX> box",
    "storyTextBox": "<STORY_AUTHOR_DISPLAY_NAME> created the box",
    "newsfeedItemKey": "agxzfm1hrQoM",
    "lastSavedTimestamp": 1507635542587
  }]

Path Params

key
string
required

The pipeline for which you want the newsfeed for

Query Params

detailLevel
string

This is similar to the specifics parameter but uses a predetermined set of specifics to filter on. The possible values for this parameter are ALL or CONDENSED. The CONDENSED value limits the results to only certain important specific parameters determined by Streak.