NAV
shell

Introduction

# API Endpoint
https://api.overloop.com/public/v1/

Welcome to the Overloop API! You can use our API to access Overloop API endpoints.

Our API follows the JSON API specification. You can view code examples in the dark area to the right.

Authentication

To authorize, use this code:

# With shell, you can just pass the correct header with each request
curl "https://api.overloop.com/public/v1/XXX"
  -H "Authorization: your_api_key"

Make sure to replace your_api_key with your API key.

Overloop uses API keys to allow access to the API. You can get a new API key in your Overloop account.

Overloop expects for the API key to be included in all API requests to the server in a header that looks like the following:

Authorization: your_api_key

Sorting

# EXAMPLE
GET https://api.overloop.com/public/v1/prospects?sort=-created_at

Get prospects sorted by creation date DESC (most recents first)

Our APIs supports requests to sort resource collections according to one or more criteria using a sort query parameter. The value for sort must represent the object attributes.

We support multiple sort attributes by using comma-separated “,” attributes. Sort attributes are applied in the order specified.

The sort order for each sort attributes is ascending by default unless it is prefixed with a minus “-”, in which case it is descending.

Filtering

# EXAMPLE
GET https://api.overloop.com/public/v1/prospects/?filter=first_name:john,last_name:doe

Get prospects whose first name is ‘john’ and last name is 'doe’.

Resource collections retrieved through the API can be filtered using one or several object attributes, in the form of a comma separated list. The filterable attributes accepted by the API for each object collection are detailed in the section of the doc on the considered object.

Pagination

{
  "data": [
    {
      ...
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/prospects?page%5Bnumber%5D=2&page%5Bsize%5D=1",
    "first": "https://api.overloop.com/public/v1/prospects?page%5Bnumber%5D=1&page%5Bsize%5D=1",
    "prev": "https://api.overloop.com/public/v1/prospects?page%5Bnumber%5D=1&page%5Bsize%5D=1",
    "next": "https://api.overloop.com/public/v1/prospects?page%5Bnumber%5D=3&page%5Bsize%5D=1",
    "last": "https://api.overloop.com/public/v1/prospects?page%5Bnumber%5D=2203&page%5Bsize%5D=1"
  }
}

Collection APIs paginate their results. The first request returns up to 100 records. If the request returns more than 100 records and links will be include in the result. This object may contains the following keys:

Relationships

# EXAMPLE
GET https://api.overloop.com/public/v1/prospects?include=organization

Get prospects with their associated organizations

Resources returned by the API are returned in the JSON API format, which means that related entities are linked using a “relationship” section in the JSON payloads. This section only contains the links between the unique identifier of related records (in the example, Prospect#29964 and Organization#1).

In order to get access to associated information on an entity, you can use the parameter ?include=, which will create a new section “included” containing the full payload of all the associated data. Notice that you can include multiple relationships by joining them using a comma: GET https://api.overloop.com/public/v1/prospects?include=organization,creator

# RETURNS
{
    "data": {
        "id": "29964",
        "type": "prospects",
        "attributes": {},
        "relationships": {
            "creator": {
                "data": {
                    "id": "181",
                    "type": "users"
                }
            },
            "owner": {
                "data": {
                    "id": "181",
                    "type": "users"
                }
            },
            "organization": {
                "data": {
                    "id": "1",
                    "type": "organizations"
                }
            }
        }
    },
    "included": [
        {
            "id": "1",
            "type": "organizations",
            "attributes": {
                "name": "Overloop",
                "created_at": "2020-11-06T13:56:44Z",
                "updated_at": "2020-11-06T13:56:44Z",
                "updater_id": 181,
                "creator_id": 181,
                "website": null,
                "phone": null,
                "email": null,
                "country": null,
                "city": null,
                "state": null,
                "address": null,
                "description": null,
                "lists": []
            }
        }
    ]
}

Errors

# EXAMPLE OBJECT
## When trying to add a prospect with a duplicate email address
{
  "errors": [
    {
      "source": {
        "pointer": "/data/attributes/email"
      },
      "detail": "has already been taken"
    }
  ]
}
## Error on authentication
{
  "errors": [
    {
      "code": "unauthorized",
      "message": "Your API key is wrong. More information here https://apidoc.overloop.com/#authentication"
    }
  ]
}

Overloop uses conventional HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information (e.g. a required parameter was missing, a prospect cannot be created, etc.), and codes in the 5xx range indicate an error with Overloop’s servers.

Error Code Meaning
400 Bad Request – Your request sucks
401 Unauthorized – Your API key is wrong
403 Forbidden – The resource requested is hidden for administrators only
404 Not Found – The specified resource could not be found
405 Method Not Allowed – You tried to access a resource with an invalid method
406 Not Acceptable – You requested a format that isn’t json
410 Gone – The resource requested has been removed from our servers
410 Gone – The resource requested has been removed from our servers
500 Unprocessable Entity – You’ve provided invalid parameters with your request
503 Service Unavailable – We’re temporarily offline for maintenance. Please try again later.

Main API

Prospects

The prospect object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "prospects",
    "attributes": {
      "email": "vincenzo@overloop.com",
      "first_name": "Vincenzo",
      "last_name": "Ruggiero",
      "description": null,
      "jobtitle": "CEO",
      "linkedin_profile": "https://www.linkedin.com/in/vincenzor",
      "phone": "+32-481-754-301",
      "title": "Mr.",
      "country": "Belgium",
      "state": "Walloon Brabant",
      "city": "Wavre",
      "industry": "IT",
      "c_custom_field_a": "Hot lead",
      "created_from": "extension",
      "last_emailed_at": null,
      "opened": false,
      "opened_at": null,
      "clicked": false,
      "clicked_at": null,
      "bounced": false,
      "replied": false,
      "replied_at": null,
      "excluded": false,
      "url": "https://overloop.com/prospects/1",
      "lists": ["Belgium", "Manager"],
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    },
    "relationships": {
      "creator": {
        "data": {
          "id": "1",
          "type": "users"
        }
      },
      "owner": {
        "data": {
          "id": "2",
          "type": "users"
        }
      },
      "organization": {
        "data": {
          "id": "2",
          "type": "organizations"
        }
      }
    }
  }
}

Object attributes

Attribute Filterable? Description
id yes integer
A unique identifier for the prospect
email yes string
The prospect’s email address
first_name yes string
The prospect’s first name
last_name yes string
The prospect’s last name
description no string
A text description of the prospect
jobtitle yes string
The prospect’s job title
linkedin_profile no string
A link to the prospect’s LinkedIn profile
phone yes string
The prospect’s phone number
title yes string
The prospect’s title of civility
country yes string
The prospect’s country
state yes string
The prospect’s state or region
city yes string
The prospect’s city
industry yes string
The prospect’s industry
created_from no string
The source of the prospect. Can be web, extension, api or import
last_emailed_at no datetime
The date and time of the last email sent to this prospect in ISO 8601 format with timezone offset
excluded yes boolean
Whether or not the prospect is marked as excluded
opened yes boolean
Wheteer or not the prospect opened any of your emails
clicked yes boolean
Wheter or not the prospect clicked a link in any of your emails
replied yes boolean
Whether or not the prospect replied to any of your emails
bounced yes boolean
Whether or not the prospect email bounced
opened_at no datetime
The date and time when the prospect last opened an email
clicked_at no datetime
The date and time when the prospect last clicked a link in an email
replied_at no datetime
The date and time when the prospect last replied to an email
url no string
The full URL to the prospect on Overloop
lists no string[]
Name of the lists of the prospect
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Custom Fields

Custom fields can be used as normal attributes by using their identifier as attribute key, see the c_custom_field_a example in the above payload.

You can retrieve the list of your custom fields by using the custom fields index endpoint.

They accept a value depending on their format

Relationships

Object Description
creator The user who created the prospect
organization The organization of this prospect
owner The user who owns the prospect
enrollments The enrollments of the prospect in workflows

Create a prospect

# DEFINITION
POST https://api.overloop.com/public/v1/prospects

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/prospects" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "prospects",
    "attributes": {
      "email": "vincenzo@overloop.com",
      "first_name": "Vincenzo",
      "last_name": "Ruggiero",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

This will create a new prospect. If you don’t set the owner_id parameter then the user who performed the action will be assigned as the owner.

Parameters

Parameter Default Description
email
string
NULL The prospect’s email
first_name
string
NULL The prospect’s first name
last_name
string
NULL The prospect’s last name
description
string
NULL A text description of the prospect
jobtitle
string
NULL The prospect’s job title
linkedin_profile
string
NULL A link to the prospect’s LinkedIn profile
phone
string
NULL The prospect’s phone number
title
string
NULL The prospect’s title of civility
country
string
NULL The prospect’s country
state
string
NULL The prospect’s state or region
city
string
NULL The prospect’s city
industry
string
NULL The prospect’s industry
lists
string[]
NULL Name of the lists where to save the prospect
(note: we will create the lists if they don’t exist)
owner_id
integer
ID of the user who created the prospect The ID of the user owning this prospect
organization_id
integer
ID of the organization this prospect belongs to See create an organization

This method accepts an optional URL parameter return_existing. When set to true (default is false), that will return an existing organization if an organization with that name already exists (with 200 HTTP status code, 422 otherwise).

Returns

Returns the prospect object.

Retrieve a prospect

# DEFINITION
GET https://api.overloop.com/public/v1/prospects/{PROSPECT_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/prospects/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the prospect to retrieve

Returns

Returns the prospect object.

Update a prospect

# DEFINITION
PATCH https://api.overloop.com/public/v1/prospects/{PROSPECT_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/prospects/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "prospects",
    "attributes": {
      "email": "vincenzo@overloop.com",
      "first_name": "Vincent",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
The ID of the prospect to update
email
string
The prospect’s email
first_name
string
The prospect’s first name
last_name
string
The prospect’s last name
description
string
A text description of the prospect
jobtitle
string
The prospect’s job title
linkedin_profile
string
A link to the prospect’s LinkedIn profile
phone
string
The prospect’s phone number
title
string
The prospect’s title of civility
country
string
The prospect’s country
state
string
NULL
city
string
NULL
industry
string
The prospect’s industry
lists
string[]
Name of the lists where to save the prospect
(note: we will create the lists if they don’t exist)
owner_id
integer
The ID of the user owning this prospect
organization_id
integer
ID of the organization this prospect belongs to

Returns

Returns the prospect object.

Delete a prospect

# DEFINITION
DELETE https://api.overloop.com/public/v1/prospects/{PROSPECT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/prospects/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "prospects"
  }
}

Permanently deletes a prospect. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the prospect to delete

Returns

Returns an object containing the prospect ID.

List prospects

# DEFINITION
GET https://api.overloop.com/public/v1/prospects

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/prospects" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "prospects",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    },
    {
      "id": "2",
      "type": "prospects",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/prospects/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/prospects/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/prospects/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of prospects.

This list is paginated by 100 records. It can also be sorted or filtered.

Returns

Returns the prospect object.

Organizations

The organization object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "organizations",
    "attributes": {
      "name": "Overloop",
      "description": null,
      "website": "https://overloop.com",
      "email": "contact@overloop.com",
      "phone": "+32-481-754-301",
      "country": "Belgium",
      "state": "Walloon Brabant",
      "city": "Wavre",
      "address": "Wavre",
      "c_custom_field_a": "Hot lead",
      "created_from": "extension",
      "lists": ["Belgium", "IT"],
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  }
}

Object attributes

Attribute Filterable? Description
id yes integer
A unique identifier for the organization
name yes string
The name of the organization
website yes string
The organization’s website
description yes string
The organization’s description
email yes string
The organization’s contact email
phone yes string
The organization’s contact phone number
country yes string
The organization’s country
city yes string
The organization’s city
state yes string
The organization’s state
address yes string
The organization’s full address
lists no string[]
Name of the lists of the organization
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Custom Fields

Custom fields can be used as normal attributes by using their identifier as attribute key, see the c_custom_field_a example in the above payload.

You can retrieve the list of your custom fields by using the custom fields index endpoint.

They accept a value depending on their format

Relationships

Object Description
creator The user who created the organization
updater The user who updated the organization

Create an organization

# DEFINITION
POST https://api.overloop.com/public/v1/organizations

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/organizations" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "organizations",
    "attributes": {
      "name": "Overloop",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

This will create a new organization. If you don’t set the owner_id parameter then the user who performed the action will be assigned as the owner.

Parameters

Parameter Default Description
name NULL The name of the organization
website NULL The organization’s website
description NULL The organization’s description
email NULL The organization’s contact email
phone NULL The organization’s contact phone number
country NULL The organization’s country
city NULL The organization’s city
state NULL The organization’s state
address NULL The organization’s full address
lists NULL Name of the lists of the organization
owner_id
integer
The ID of the user owning this organization
created_at NULL ISO 8601 format with timezone offset
updated_at NULL ISO 8601 format with timezone offset

This method accepts an optional URL parameter return_existing. When set to true (default is false), that will return an existing organization if an organization with that name already exists (with 200 HTTP status code, 422 otherwise).

Returns

Returns the organization object.

Retrieve an organization

# DEFINITION
GET https://api.overloop.com/public/v1/organizations/{ORGANIZATION_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/organizations/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the organization to retrieve

Returns

Returns the organization object.

Update an organization

# DEFINITION
PATCH https://api.overloop.com/public/v1/organizations/{ORGANIZATION_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/organizations/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "organizations",
    "attributes": {
      "name": "Overloop",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
A unique identifier for the organization
name The name of the organization
website The organization’s website
description The organization’s description
email The organization’s contact email
phone The organization’s contact phone number
country The organization’s country
city The organization’s city
state The organization’s state
address The organization’s full address
lists Name of the lists of the organization
owner_id The ID of the user owning this organization
created_at ISO 8601 format with timezone offset
updated_at ISO 8601 format with timezone offset

Returns

Returns the organization object.

Delete an organization

# DEFINITION
DELETE https://api.overloop.com/public/v1/organizations/{ORGANIZATION_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/organizations/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "organizations"
  }
}

Permanently deletes an organization. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the organization to delete

Returns

Returns an object containing the organization ID.

List organizations

# DEFINITION
GET https://api.overloop.com/public/v1/organizations

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/organizations" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "organizations",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    },
    {
      "id": "2",
      "type": "organizations",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/organizations/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/organizations/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/organizations/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of organizations.

This list is paginated by 100 records. It can also be sorted or filtered.

Pipelines

The pipeline object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "pipelines",
    "attributes": {
      "name": "LinkedIn",
      "currency_code": "EUR",
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  }
}

Object attributes

Attribute Filterable? Description
id no integer
A unique identifier for the pipeline
name no string
The pipeline’s name
currency_code no string
ISO code of the currency to use in this pipeline
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Create a pipeline

# DEFINITION
POST https://api.overloop.com/public/v1/pipelines

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/pipelines" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "pipelines",
    "attributes": {
      "name": "A pipeline name"
    }
  }
}'

This will create a new pipeline.

Parameters

Parameter Default Description
name
required - string
/ The pipeline’s name
currency_code
required - string
/ The pipeline’s currency code

Returns

Returns the pipeline object.

Retrieve a pipeline

# DEFINITION
GET https://api.overloop.com/public/v1/pipelines/{PIPELINE_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/pipelines/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the pipeline to retrieve

Returns

Returns the pipeline object.

Update a pipeline

# DEFINITION
PATCH https://api.overloop.com/public/v1/pipelines/{PIPELINE_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/pipelines/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "pipelines",
    "attributes": {
      "name": "Germany"
      "currency_code": "EUR"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
The ID of the pipeline to update
name
string
The pipeline’s name
currency_code
string
The pipeline’s currency code

Returns

Returns the pipeline object.

Delete a pipeline

# DEFINITION
DELETE https://api.overloop.com/public/v1/pipelines/{PROSPECT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/pipelines/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "pipelines"
  }
}

Permanently deletes a pipeline. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the pipeline to delete

Returns

Returns an object containing the pipeline ID.

List pipelines

# DEFINITION
GET https://api.overloop.com/public/v1/pipelines

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/pipelines" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "pipelines",
      "attributes": {
        ...
      }
    },
    {
      "id": "2",
      "type": "pipeline",
      "attributes": {
        ...
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/pipelines/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/pipelines/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/pipelines/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of pipelines.

This pipeline is paginated by 100 records and can also be sorted or filtered.

Stages

The stage object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "stages",
    "attributes": {
      "name": "Qualified",
      "position": 3,
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  },
  "relationships": {
    "pipeline": {
      "data": {
        "id": "1",
        "type": "pipelines"
      }
    }
  }
}

Object attributes

Attribute Filterable? Description
id no integer
A unique identifier for the stage
name no string
The stage’s name
probability no number
The stage’s probability (use 10 for 10%)
position no number
The stage’s position in pipeline (starts at 0)
rotting days no number
The number of days before considering a deal as “rotting”
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Create a stage

# DEFINITION
POST https://api.overloop.com/public/v1/stages

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/stages" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "stages",
    "attributes": {
      "name": "A stage name",
      "probability": 33,
      "pipeline_id": 2
    }
  }
}'

This will create a new stage.

Parameters

Parameter Default Description
name
required - string
/ The stage’s name
probability
required - string
/ The stage’s probability
pipeline_id
required - string
/ The stage’s pipeline
rotting / The number of days before considering a deal as “rotting”
position / The position of the stage in the pipeline

Returns

Returns the stage object.

Retrieve a stage

# DEFINITION
GET https://api.overloop.com/public/v1/stages/{STAGE_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/stages/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the stage to retrieve

Returns

Returns the stage object.

Update a stage

# DEFINITION
PATCH https://api.overloop.com/public/v1/stages/{STAGE_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/stages/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "stages",
    "attributes": {
      "name": "Qualified bis"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
The ID of the stage to update
probability /
rotting /
position /

Returns

Returns the stage object.

Delete a stage

# DEFINITION
DELETE https://api.overloop.com/public/v1/stages/{PROSPECT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/stages/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "stages"
  }
}

Permanently deletes a stage. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the stage to delete

Returns

Returns an object containing the stage ID.

List stages

# DEFINITION
GET https://api.overloop.com/public/v1/stages

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/stages" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "stages",
      "attributes": {
        ...
      }
    },
    {
      "id": "2",
      "type": "stage",
      "attributes": {
        ...
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/stages/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/stages/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/stages/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of stages.

This stage is paginated by 100 records and can also be sorted or filtered.

Deals

The deal object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "deals",
    "attributes": {
      "title": "3 licences for Apple INC",
      "value": "123456",
      "status": "won",
      "closed_at": "2015-08-15T16:48:46+02:00",
      "expected_close_date": "2015-09-15T16:48:46+02:00",
      "entered_stage_at": "2015-08-15T16:48:46+02:00",
      "c_custom_field_a": "Hot lead",
      "created_from": "web",
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  },
  "relationships": {
    "creator": {
      "data": {
        "id": "1",
        "type": "users"
      }
    },
    "updater": {
      "data": {
        "id": "1",
        "type": "users"
      }
    },
    "owner": {
      "data": {
        "id": "2",
        "type": "users"
      }
    },
    "organization": {
      "data": {
        "id": "2",
        "type": "organizations"
      }
    },
    "prospect": {
      "data": {
        "id": "4",
        "type": "prospects"
      }
    },
    "stage": {
      "data": {
        "id": "9b13c0d1-a306-4f39-b851-dbddbbdde381",
        "type": "stages"
      }
    }
  }
}

Object attributes

Attribute Filterable? Description
id yes integer
A unique identifier for the deal
title yes string
The name of the deal
value yes decimal
The value of the deal
status yes string
The deal’s status (won, lost or open)
closed_at no datetime
ISO 8601 format of the moment when the deal was closed
expected_close_date no datetime
ISO 8601 format of the moment we expect the deal to close
entered_stage_at no datetime
ISO 8601 format of the last moment stage changed
created_at no datetime
ISO 8601 format of the moment the deal has been created
updated_at no datetime
ISO 8601 format of the moment the deal has been updated

Custom Fields

Custom fields can be used as normal attributes by using their identifier as attribute key, see the c_custom_field_a example in the above payload.

You can retrieve the list of your custom fields by using the custom fields index endpoint.

They accept a value depending on their format

Relationships

Object Description
creator The user who created the deal
updater The user who updated the deal
owner The user who owns deal
prospect The prospect of this deal
organization The organization of this deal
stage The stage of this deal

Create a deal

# DEFINITION
POST https://api.overloop.com/public/v1/deals

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/deals" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "deals",
    "attributes": {
      "title": "16 licenses for ACME corp",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

This will create a new deal.

Parameters

Attribute Default Description
id NULL A unique identifier for the deal
stage_id
required - integer
NULL The stage of the deal
title NULL The name of the deal
value NULL The value of the deal
status NULL The deal’s status (won, lost or open)
closed_at NULL ISO 8601 format of the moment when the deal was closed
expected_close_date NULL ISO 8601 format of the moment we expect the deal to close
entered_stage_at NULL ISO 8601 format of the last moment stage changed
created_at NULL ISO 8601 format of the moment the deal has been created
updated_at NULL ISO 8601 format of the moment the deal has been updated

Returns

Returns the deal object.

Retrieve a deal

# DEFINITION
GET https://api.overloop.com/public/v1/deals/{DEAL_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/deals/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the deal to retrieve

Returns

Returns the deal object.

Update a deal

# DEFINITION
PATCH https://api.overloop.com/public/v1/deals/{DEAL_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/deals/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "deals",
    "attributes": {
      "title": "4 licenses for ACME Corp",
      "c_custom_field_a": "Hot lead"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
A unique identifier for the deal
title The name of the deal
value The value of the deal
status The deal’s status (won, lost or open)
closed_at ISO 8601 format of the moment when the deal was closed
expected_close_date ISO 8601 format of the moment we expect the deal to close
entered_stage_at ISO 8601 format of the last moment stage changed
created_at ISO 8601 format of the moment the deal has been created
updated_at ISO 8601 format of the moment the deal has been updated

Returns

Returns the deal object.

Delete a deal

# DEFINITION
DELETE https://api.overloop.com/public/v1/deals/{DEAL_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/deals/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "deals"
  }
}

Permanently deletes a deal. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the deal to delete

Returns

Returns an object containing the deal ID.

List deals

# DEFINITION
GET https://api.overloop.com/public/v1/deals

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/deals" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "deals",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    },
    {
      "id": "2",
      "type": "deals",
      "attributes": {
        ...
      },
      "relationships": {
        "owner": {
          "data": {
            ...
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/deals/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/deals/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/deals/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of deals.

This list is paginated by 100 records. It can also be sorted or filtered.

Mark as won

# DEFINITION: Mark as won
POST https://api.overloop.com/public/v1/deals/{DEAL_ID}/mark_as_won

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/deals/1/mark_as_won" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

# DEFINITION: Mark as not won
DELETE https://api.overloop.com/public/v1/deals/{DEAL_ID}/mark_as_won

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/deals/1/mark_as_won" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Mark a deal as won or not.

Parameters

Parameter Required? Type Description
id yes integer The ID of the deal to mark as (not) won

Returns

Returns the deal object.

Mark as lost

# DEFINITION: Mark as lost
POST https://api.overloop.com/public/v1/deals/{DEAL_ID}/mark_as_lost

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/deals/1/mark_as_lost" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"
-d '{
  "data": {
    "type": "deals",
    "attributes": {
      "lost_reason": "my reason"
    }
  }
}'

### Parameters
Parameter | Description
--------- | -----------
id<br />**required** - *integer* | A unique identifier for the deal
lost_reason | The reason to mark the deal as lost

### Returns
Returns the [deal object](#the-deal-object).

# DEFINITION: Mark as not lost
DELETE https://api.overloop.com/public/v1/deals/{DEAL_ID}/mark_as_lost

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/deals/1/mark_as_lost" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Mark a deal as lost or not.

Parameters

Parameter Required? Type Description
id yes integer The ID of the deal to mark as (not) lost

Returns

Returns the deal object.

Workflows

The workflow object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "workflows",
    "attributes": {
      "name": "Public API Workflow Example",
      "enter_triggers": [
        "prospect.created",
      ],
      "enter_trigger_attributes": {},
      "exit_triggers": [
        "prospect.replied"x
      ],
      "status": "on",
      "send_as_thread": true,
      "sending_days": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday"
      ],
      "start_sending_minutes": 480,
      "end_sending_minutes": 1020,
      "timezone": "Etc/UTC",
      "type": "prospects",
      "created_at": "2020-01-31T12:00:00.000Z",
      "updated_at": "2020-01-31T12:00:00.000Z"
    },
    "relationships": {
      "steps": {
        "data": [
          {
            "id": "a-z0-9-abc1",
            "type": "workflows_steps"
          },
          {
            "id": "a-z0-9-abc2",
            "type": "workflows_steps"
          }
        ]
      },
      "segment": {
        "data": {
          "id": "a-z0-9-abc3",
          "type": "segments"
        }
      }
    }
  },
  "included": [
    {
      "id": "a-z0-9-abc3",
      "type": "segments",
      "attributes": {
        "name": null,
        "combination_operator": "and"
      },
      "relationships": {
        "filters": {
          "data": [
            {
              "id": "a-z0-9-abc4",
              "type": "filters"
            }
          ]
        }
      }
    },
    {
      "id": "a-z0-9-abc4",
      "type": "filters",
      "attributes": {
        "attribute_name": "email",
        "operator": "doesnotcontain",
        "option_value": "info"
      },
      "relationships": {
        "segment" : {
          "data": {
            "id": "a-z0-9-abc3",
            "type": "segments"
          }
        }
      }
    }
  ]
}

Object attributes

Attribute Filterable? Description
id no integer
A unique identifier for the workflow
name no string
The workflow’s name
type yes string
The type of records that can be enrolled into the workflow, either prospects, organizations or deals
enter_triggers no array
An array containing the events that will make prospects entering the workflow. Possible values depends on the type.
enter_trigger_attributes no json
A json object containing additional information about the enter triggers settings. Its content varies depending on the selected enter triggers.
exit_triggers no array
An array containing the events that will make prospects exit the workflow. Possible values depends on the type.
status yes string
The workflow’s status that can take 3 different values: on, off
send_as_thread no boolean
The workflow’s emails should be sent as threads.
sending_days no array
An array containing days during which emails can be sent (“monday”, “tuesday”, etc.)
start_sending_minutes no integer
The hour at which we can start sending emails, between 00:00 and 23:45 with 15 minutes intervals. Value is in minutes between 0 and 1425.
end_sending_minutes no integer
The hour at which we can stop sending emails, between 00:00 and 23:45 with 15 minutes intervals. Value is in minutes between 0 and 1425.
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Relationships

Object Description
steps The steps of the workflow.
enter_segment The reference of the workflow filters for the enter_segment trigger event.
filters The conditions of the enter_segment trigger event.

Retrieve a workflow

# DEFINITION
GET https://api.overloop.com/public/v1/workflows/{WORKFLOW_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/workflows/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the workflow to retrieve

Returns

Returns the workflow object.

List workflows

# DEFINITION
GET https://api.overloop.com/public/v1/workflows

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/workflows" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "workflows",
      "attributes": {
        ...
      },
      "relationships": {
        "steps": {
          "data": [
            ...
          ]
        },
        "segment": {
          "data": {
            ...
          }
        }
      }
    },
    {
      "id": "2",
      "type": "workflows",
      "attributes": {
        ...
      },
      "relationships": {
        "steps": {
          "data": [
            ...
          ]
        },
        "segment": {
          "data": {
            ...
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/workflows/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/workflows/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/workflows/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of workflows.

This list is paginated by 100 records and can also be sorted or filtered.

Workflow Steps

The workflow step object

# EXAMPLE OBJECT
{
  "data": [
    {
      "id": "a-z0-9-abc1",
      "type": "workflows_steps",
      "attributes": {
        "step_type": "task",
        "position": 0,
        "previous_step_id" : null,
        "created_at": "2020-01-31T12:00:00.000Z",
        "updated_at": "2020-01-31T12:00:00.000Z",
        "config": {
          "title": "Public API Workflow Step Example",
          "due_time": "09:00:00",
          "due_offset": 1,
          "description": "This is an example description",
          "task_category": null,
          "prospect_segment": null,
          "wait_for_completion": true
        }
      },
      "relationships": {
        "workflow": {
          "data": {
            "id": "1",
            "type": "workflows"
          }
        }
      }
    }
  ]
}

Object attributes

Attribute Description
id integer
A unique identifier for the workflow step
step_type string
The type of step. Possible values depend on the workflow type.
position integer
When the previous_step is not a condition, the position will always be 0. Otherwise, 0 is the left/yes branch of a condition, while 1 is the right/no branch.
previous_step_id string
The unique identifier of the previous step. A null value will always be assigned to the first step of the workflow.
created_at datetime
ISO 8601 format with timezone offset
updated_at datetime
ISO 8601 format with timezone offset
config object
All specific attributes related to the step_type

Relationships

Object Description
workflow The parent workflow

Retrieve a workflow step

# DEFINITION
GET https://api.overloop.com/public/v1/workflows/{WORKFLOW_ID}/steps/{STEP_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/workflows/1/steps/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
workflow_id
required - integer
The ID of the workflow
id
required - integer
The ID of the workflow step to retrieve

Returns

Returns the workflow step object.

List workflows steps

# DEFINITION
GET https://api.overloop.com/public/v1/workflows/{WORKFLOW_ID}/steps

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/workflows/1/steps" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "a-z0-9-abc1",
      "type": "workflows_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "workflow": {
          "data": {
            "id": "1",
            "type": "workflows"
          }
        }
      }
    },
    {
      "id": "a-z0-9-abc2",
      "type": "workflows_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "workflow": {
          "data": {
            "id": "1",
            "type": "workflows"
          }
        }
      }
    },
    {
      "id": "a-z0-9-abc3",
      "type": "workflows_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "workflow": {
          "data": {
            "id": "1",
            "type": "workflows"
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/workflows/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/workflows/1/steps?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/workflows/1/steps?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of workflows steps.

This list is paginated by 100 records and can also be sorted.

Enrollments

The enrollment object

To add a desired prospect/organization/deal to a specific workflow you have to create an enrollment. The enrollment is then used to describe the progression of the record into the workflow.

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "workflows_enrollments",
    "attributes": {
      "workflow_id": 1,
      "prospect_id":30332,
      "deal_id":null,
      "organization_id":null,
      "disenrolled_at": null,
      "start_at": "2020-08-20T08:00:00+02:00",
      "throttled": null,
      "created_at": "2020-08-13T10:12:23+02:00",
      "updated_at": "2020-08-13T10:12:23+02:00"
    },
    "relationships": {
      "current_step": {
        "data": {
          "id": "a-z0-9-abc1",
          "type": "workflows_steps"
        }
      },
      "automation": {
        "data": {
          "id": "374",
          "type": "automations"
        }
      },
      "record":{
        "data":{
          "id":"30332",
          "type":"prospects"
        }
      },
      "prospect": {
        "data": {
          "id": "30332",
          "type": "prospects"
        }
      },
      "organization": {
        "data": null
      },
      "deal": {
        "data": null
      }
    },
    "included": [
      {
        "id": "a-z0-9-abc1",
        "type": "workflows_steps",
        "attributes": {
          "step_type": "note",
          "position": 0,
          "previous_step_id": null,
          "created_at": "2020-01-31T12:00:00.000Z",
          "updated_at": "2020-01-31T12:00:00.000Z",
          "config": {
            "content": "Sample note text"
          }
        },
        "relationships": {
          "workflow": {
              "data": {
                "id": "1",
                "type": "workflows"
            }
          }
        }
      }
    ]
  }
}

Object attributes

Attribute Description
id integer
A unique identifier for the enrollment
record_id integer
The unique identifier of the enrolled record
record_type string
The type of the enrolled record (organization, deal or prospect)
disenrolled_at datetime
The date and time when the record has been leaved the workflow in ISO 8601 format with timezone
start_at datetime
The date and time on which the enrollment must be started in ISO 8601 format with timezone offset. If not set or set in the past, the enrollment starts immediately.
throttled boolean
If the enrollment start is being throttled.
created_at datetime
ISO 8601 format with timezone offset
updated_at datetime
ISO 8601 format with timezone offset

Relationships

Object Description
current_step The current step of this enrollment.
workflow The current workflow of this enrollment.
prospect The current prospect of this enrollment (for prospect-based workflows).
organization The current organization of this enrollment (for organization-based workflows).
deal The current deal of this enrollment (for deal-based workflows).

Create an enrollment

# DEFINITION
POST https://api.overloop.com/public/v1/workflows/{{WORKFLOW_ID}}/enrollments

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/workflows/1/enrollments" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "enrollments",
    "attributes": {
      "prospect_id": 1,
      "step_id": "abc123",
      "reenroll": false,
      "start_at": "2020-08-20T08:00:00+02:00",
      "include": "current_step"
    }
  }
}'

This will create a new enrollment.

Parameters

Parameter Required? Type Description
prospect_id yes integer The prospect’s ID (required only for prospect-based workflows)
organization_id yes integer The organization’s ID (required only for organization-based workflows)
deal_id yes integer The deal’s ID (required only for deal-based workflows)
step_id no string The step’s ID of the workflow at which the prospect must be enrolled.
reenroll no boolean Set to false if you want to prevent re enroll the prospect because he already has been enrolled. If not set to false this parameter will always be true
start_at no string The date and time on which the enrollment must be started in the ISO 8601 format with timezone offset. If not set or set in the past, the enrollment will start immediately.

Returns

Returns the enrollment object.

Stop an enrollment

# DEFINITION
DELETE https://api.overloop.com/public/v1/workflows/{{WORKFLOW_ID}}/enrollments/{{ENROLLMENT_ID}}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/workflows/1/enrollments/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

This will stop an enrollment.

Parameters

Parameter Required? Type Description
id yes integer The ID of the enrollment to stop

Returns

Returns the enrollment object.

Retrieve an enrollment

# DEFINITION
GET https://api.overloop.com/public/v1/workflows/{{WORKFLOW_ID}}/enrollments/{{ENROLLMENT_ID}}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/workflows/1/enrollments/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Required? Type Description
id yes integer The ID of the enrollment to retrieve

Returns

Returns the enrollment object.

List enrollments

# DEFINITION
GET https://api.overloop.com/public/v1/enrollments

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/enrollments" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "36",
      "type": "workflows_enrollments",
      "attributes": {
        "disenrolled_at": "2020-06-03T13:01:15.697Z",
        "start_at": null,
        "created_at": "2020-03-10T13:35:21Z",
        "updated_at": "2020-09-30T08:02:51Z"
      },
      "relationships": {
        "prospect": {
          "data": {
            "id": "29646",
            "type": "prospects"
          }
        },
        "workflow": {
          "data": {
            "id": "3",
            "type": "workflows"
          }
        },
        "current_step": {
          "data": null
        }
      }
    }
  ],
  "links": {
    "self": "https://localhost:3000/api/public/v1/enrollments?filter=prospect_id%3A29646&page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "first": "https://localhost:3000/api/public/v1/enrollments?filter=prospect_id%3A29646&page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "prev": null,
    "next": null,
    "last": "https://localhost:3000/api/public/v1/enrollments?filter=prospect_id%3A29646&page%5Bnumber%5D=1&page%5Bsize%5D=100"
  }
}

Returns a list of enrollments.

This list is paginated by 100 records and can also be sorted or filtered.

Account

The account object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "companies",
    "attributes": {
      "name": "Overloop",
      "website": "https://overloop.com",
      "phone_number": "",
      "billing_name": "Overloop SRL",
      "address": "rue de l'Evêché 10, 5000 Namur",
      "country": "BE",
      "vat": "BE0645917753",
      "plan_name": "5K Credits",
      "plan_code": "monthly_credits_5k",
      "remaining_credits": 4999,
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  }
}

Object attributes

Attribute Description
id integer
A unique identifier for the account
name string
The account’s name
website string
The account’s website
phone_number string
The account’s phone number
billing_name string
The account’s billing name (the name that will appear on invoices)
address string
The account’s address
country string
The account’s country code (ISO)
vat string
The account’s VAT number
plan_name string
The account’s plan
plan_code string
The account’s plan code
remaining_credits integer
The number of credits remaining
created_at datetime
ISO 8601 format with timezone offset
updated_at datetime
ISO 8601 format with timezone offset

Retrieve your account

# DEFINITION
GET https://api.overloop.com/public/v1/account

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/account" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

none

Returns

Returns the account object.

Users

The user object

# EXAMPLE OBJECT
{
  "data": {
    "id": "11",
    "type": "users",
    "attributes": {
      "name": "Vincenzo Ruggiero",
      "email": "vincenzo@overloop.com",
      "role": "admin",
      "phone_number": "",
      "skype": "ruggiero.vincenzo",
      "signature": "<p class=\"p1\"><span class=\"s1\">--&nbsp;<br /></span><span class=\"s1\"><strong>Vincenzo Ruggiero<br /></strong></span><span class=\"s1\">Founder<br /></span><span class=\"s2\"><a href=\"https://overloop.com/\"><strong>Overloop</strong><br /></a></span><span class=\"s2\"><a href=\"mailto:vincenzo@overloop.com\">vincenzo@overloop.com</a></span></p>",
      "disabled": false,
      "from_name": "Vincenzo Ruggiero",
      "timezone": "Brussels",
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    },
    "relationships": {
      "company": {
        "data": {
          "id": "5",
          "type": "companies"
        }
      }
    }
  }
}

Object attributes

Attribute Filterable? Description
id no integer
A unique identifier for the user
name no string
The user’s name
email no string
The user’s email address
role no string
The user’s role. Can be admin or user
phone_number no string
The user’s phone number
skype no string
The user’s Skype username
signature no string
The user’s HTML signature
disabled yes boolean
Whether or not the user is disabled or not
from_name no string
The name we put in the email from field
timezone no string
The user’s time zone
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Relationships

Object Description
company The user’s company

Retrieve a user

# DEFINITION
GET https://api.overloop.com/public/v1/users/{USER_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/users/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the user to retrieve

Returns

Returns the user object.

Me

# DEFINITION
GET https://api.overloop.com/public/v1/me

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/me" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

You can call this endpoint to retrive your personnal information.

Parameters

none

Returns

Returns your user object.

List users

# DEFINITION
GET https://api.overloop.com/public/v1/users

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/users" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "11",
      "type": "users",
      "attributes": {
        ...
      }
    },
    {
      "id": "38",
      "type": "users",
      "attributes": {
        ...
      }
    },
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/users?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/users?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of users.

This list is paginated by 100 records and can also be sorted or filtered.

Lists

The list object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "lists",
    "attributes": {
      "name": "LinkedIn",
      "created_at": "2015-08-15T16:48:46+02:00",
      "updated_at": "2016-11-25T12:40:46+01:00"
    }
  }
}

Object attributes

Attribute Filterable? Description
id no integer
A unique identifier for the list
name no string
The list’s name
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Create a list

# DEFINITION
POST https://api.overloop.com/public/v1/lists

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/lists" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "lists",
    "attributes": {
      "name": "A list name"
    }
  }
}'

This will create a new list.

Parameters

Parameter Default Description
name
required - string
/ The list’s name

Returns

Returns the list object.

Retrieve a list

# DEFINITION
GET https://api.overloop.com/public/v1/lists/{LIST_ID}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/lists/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Parameters

Parameter Description
id
required - integer
The ID of the list to retrieve

Returns

Returns the list object.

Update a list

# DEFINITION
PATCH https://api.overloop.com/public/v1/lists/{LIST_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.com/public/v1/lists/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '{
  "data": {
    "type": "lists",
    "attributes": {
      "name": "LinkedIn bis"
    }
  }
}'

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

Parameters

Parameter Description
id
required - integer
The ID of the list to update
name
string
The list’s name

Returns

Returns the list object.

Delete a list

# DEFINITION
DELETE https://api.overloop.com/public/v1/lists/{PROSPECT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/lists/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "lists"
  }
}

Permanently deletes a list. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the list to delete

Returns

Returns an object containing the list ID.

List lists

# DEFINITION
GET https://api.overloop.com/public/v1/lists

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/lists" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "lists",
      "attributes": {
        ...
      }
    },
    {
      "id": "2",
      "type": "list",
      "attributes": {
        ...
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/lists/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/lists/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/lists/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of lists.

This list is paginated by 100 records and can also be sorted or filtered.

Custom Fields

The custom field object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "custom_fields",
    "attributes": {
      "identifier": "c_custom_field_a",
      "name": "Lead Value",
      "options": [],
      "value_type": "text"
    }
  }
}

Object attributes

Attribute Filterable? Description
id no string
A UUID key for the custom field
identifier no string
The custom field’s identifier to be used as attribute key into prospect objects’ payload
name no string
The custom field’s name/label
options no string[]
The custom field’s value options (for list_single and list_multiple)
value_type no string
The custom field’s value type, can be one of the following: numeric, text, text_long, phone, url, boolean, list_single, list_multiple, datetime, date

Value format

Depending on the type of custom field, it can accept different kinds of value:

List Custom Fields

# DEFINITION
GET https://api.overloop.com/public/v1/custom_fields

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/custom_fields" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "custom_fields",
      "attributes": {
        ...
      }
    },
    {
      "id": "2",
      "type": "custom_fields",
      "attributes": {
        ...
      }
    }
  ]
}

Returns all custom fields.

Exclusion list items

The exclusion list item object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "exclusion_list_item",
    "attributes": {
      "value": "vincenzo@overloop.com",
      "item_type": "email",
      "created_at": "2015-08-15T16:48:46+02:00"
    }
  }
}

Object attributes

Attribute Filterable? Description
id no string
The id of the exclusion list item
value yes string
The value of the exclusion list item
item_type yes string
The type of the exclusion list item, can be one of the following: email, domain
created_at no datetime
ISO 8601 format with timezone offset

Create an exclusion list item

This will create a new exclusion list item.

# DEFINITION
POST https://api.overloop.com/public/v1/exclusion_list_items

# EXAMPLE
curl -X POST "https://api.overloop.com/public/v1/exclusion_list_items" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8" \
-d '
  {
    "data": {
      "type": "exclusion_list_item",
      "attributes": {
        "value": "vincenzo@overloop.com",
        "item_type": "email"
      }
    }
  }
'

The above command returns JSON structured like this:

{
    "data": {
        "id": "1",
        "type": "exclusion_list_item",
        "attributes": {
            "value": "vincenzo@overloop.com",
            "item_type": "email",
            "created_at": "2015-08-15T16:48:46+02:00"
        }
    }
}

Parameters

Attribute Default Description
item_type NULL What would you like to exclude: “domain” or “email”
value NULL The domain or email value to exclude

Delete an exclusion list item

# DEFINITION
DELETE https://api.overloop.com/public/v1/exclusion_list_items/{ITEM_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.com/public/v1/exclusion_list_items/1" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": {
    "id": "1",
    "type": "exclusion_list_items"
  }
}

Permanently deletes an exclusion list item. It cannot be undone.

Parameters

Parameter Required? Type Description
id yes integer The ID of the item to delete

Returns

Returns an object containing the exclusion list item ID.

List exclusion list items

# DEFINITION
GET https://api.overloop.com/public/v1/exclusion_list_items

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/exclusion_list_items" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

The above command returns JSON structured like this:

{
  "data": [
    {
      "id": "1",
      "type": "exclusion_list_item",
      "attributes": {
        "value": "vincenzo@overloop.com",
        "item_type": "email",
        "created_at": "2015-08-15T16:48:46+02:00"
      }
    },
    {
      "id": "1",
      "type": "exclusion_list_item",
      "attributes": {
        "value": "gmail.com",
        "item_type": "domain",
        "created_at": "2015-08-15T16:48:46+02:00"
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.com/public/v1/exclusion_list_items/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.com/public/v1/exclusion_list_items/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.com/public/v1/exclusion_list_items/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of exclusion list items.

This list is paginated by 100 records. It can also be sorted or filtered.

Emails API

Search

The Emails Search API lets you find email addresses associated with a company or a domain name.

The search result object

# EXAMPLE OBJECT
{
  "data": [
    {
      "id": "72947",
      "type": "emails",
      "attributes": {
        "value": "vincenzo@overloop.com",
        "type": "personal",
        "confidence": "98",
        "company": "Prospect",
        "first_name": "Vincenzo",
        "last_name": "Ruggiero"
      },
      "relationships": {
        "domain": {
          "data": {
            "id": "1",
            "type": "domains"
          }
        }
      }
    }
  ],
  "included": [
    {
      "id": "1",
      "type": "domains",
      "attributes": {
        "name": "overloop.com",
        "pattern": "{first}",
        "company_name": "Overloop"
      }
    }
  ]
}

Search result object attributes

Attribute Description
id integer
A unique identifier for the email
value string
The email address
confidence integer
Our estimation between 0 and 100 of the probability the email address returned is correct. It depends on several criteria such as the number and quality of sources
first_name string
First name of the person
last_name string
Last name of the person
company string
Company name of the person

Relationships

Object Description
domain The domain (company) information

Domain object attributes

Attribute Description
id integer
A unique identifier for the domain
name string
The domain name
pattern string
The pattern used in this companies for emails. Common values are: {first}, {first}.{last}, {f}.{last}, …
company_name string
Name of the company associated to the domain name

Search for emails

# DEFINITION
GET https://api.overloop.com/public/v1/emails/search?domain={{DOMAIN}}&first_name={{FIRST_NAME}}&last_name={{LAST_NAME}}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/emails/search?domain=overloop.com&first_name=Vincenzo&last_name=Ruggiero" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Every call returning at least 1 email address go against your quota and will cost you 1 credit.

Parameters

Parameter Description
domain
required - string
Domain name from which you want to find the email addresses. For example, “overloop.com”.
first_name
string
The person’s first name
last_name
string
The person’s last name

Returns

Returns the email search object.

Verify

The Emails Verify API lets you check in real time the deliverability (how likely it is to bounce or not from the mail server) of any email address without sending an email.

The verify result object

# EXAMPLE OBJECT
{
  "data": [],
  "meta": {
    "email": "vincenzo@overloop.com",
    "score": 84,
    "disposable": false,
    "role_address": false,
    "error_code": null
  }
}

Verify result object attributes

Attribute Description
email string
The email address verified
score integer
The validity score of this email. A value of 100 means we highly trust this email to be valid. A value of 0 indicates that we don’t think the email is valid.

Verify an email

# DEFINITION
GET https://api.overloop.com/public/v1/emails/verify?email={{EMAIL_ADDRESS}}

# EXAMPLE
curl -X GET "https://api.overloop.com/public/v1/emails/verify?email=vincenzo@overloop.com" \
-H "Authorization: your_api_key" \
-H "Content-Type: application/vnd.api+json; charset=utf-8"

Every call will go against your quota and will cost you 1 credit.

Parameters

Parameter Description
email
required - string
The email addresses to verify. For example, “vincenzo@overloop.com”.

Returns

Returns the verify result object.