NAV
shell

Introduction

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

Welcome to the Overloop.ai API! You can use our API to access Overloop.ai 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.ai/public/v1/XXX"
  -H "Authorization: your_api_key"

Make sure to replace your_api_key with your API key.

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

Overloop.ai 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.ai/public/v1/leads?sort=-created_at

Get leads 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.ai/public/v1/leads/?filter=first_name:john,last_name:doe

Get leads 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.ai/public/v1/leads?page%5Bnumber%5D=2&page%5Bsize%5D=1",
    "first": "https://api.overloop.ai/public/v1/leads?page%5Bnumber%5D=1&page%5Bsize%5D=1",
    "prev": "https://api.overloop.ai/public/v1/leads?page%5Bnumber%5D=1&page%5Bsize%5D=1",
    "next": "https://api.overloop.ai/public/v1/leads?page%5Bnumber%5D=3&page%5Bsize%5D=1",
    "last": "https://api.overloop.ai/public/v1/leads?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.ai/public/v1/leads?include=organization

Get leads 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, Lead#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.ai/public/v1/leads?include=organization,creator

# RETURNS
{
    "data": {
        "id": "29964",
        "type": "leads",
        "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.ai",
                "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 lead 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.ai/#authentication"
    }
  ]
}

Overloop.ai 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 lead cannot be created, etc.), and codes in the 5xx range indicate an error with Overloop.ai's servers.

Error Code Meaning
400 Bad Request -- Your request is invalid.
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
422 Unprocessable Entity -- You've provided invalid parameters with your request
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.

API Endpoints

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": "Brussels Region",
      "city": "Brussels",
      "industry": "IT",
      "lists": [
        "CEO",
        "BE"
      ],
      "email_status": "found",
      "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.ai/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
opened_at no datetime
The date and time when the prospect last opened an email
open_count no integer
The number of times the prospect opened any of your emails
clicked yes boolean
Wheter or not the prospect clicked a link in any of your emails
clicked_at no datetime
The date and time when the prospect last clicked a link in an email
click_count no integer
The number of times the prospect clicked a link in any of your emails
replied yes boolean
Whether or not the prospect replied to one of your emails or LinkedIn messages
replied_at no datetime
The date and time when the prospect last replied to an email or a LinkedIn message
email_reply_count no integer
The number of times the prospect replied to one of your emails
linkedin_reply_count no integer
The number of times the prospect replied to one of your LinkedIn messages
bounced yes boolean
Whether or not the prospect email bounced
url no string
The full URL to the prospect on Overloop.ai
lists no array
Name of the lists of the prospect
email_status no string
Indicate if the prospect’s email address has been searched for by the Email Finder and the result of the last search. Can be found, searching, search_failed, user_edited or not_searched
created_at no datetime
ISO 8601 format with timezone offset
updated_at no datetime
ISO 8601 format with timezone offset

Prospect 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

Create a prospect

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

# EXAMPLE
curl -X POST "https://api.overloop.ai/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",
      "lists": ["CEO", "BE"],
      "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
array
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 prospect if a prospect with that email or LinkedIn profile already exists (with 200 HTTP status code, 422 otherwise).

Returns

Returns the prospect object.

Retrieve a prospect

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

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/prospects/{PROSPECT_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.ai/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
array
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.ai/public/v1/prospects/{PROSPECT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.ai/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.ai/public/v1/prospects

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/prospects/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/prospects/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/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.ai",
      "description": null,
      "website": "https://overloop.com",
      "email": "contact@overloop.com",
      "phone": "+32-481-754-301",
      "country": "Belgium",
      "state": "Brussels Region",
      "city": "Brussels",
      "address": "Rue des Pères Blancs 4",
      "c_custom_field_a": "My organization’s custom field value",
      "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 email
phone yes string
The organization’s 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 array
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

Organization 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.ai/public/v1/organizations

# EXAMPLE
curl -X POST "https://api.overloop.ai/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",
      "lists": ["Belgium", "IT"],
      "c_custom_field_a": "My organization’s custom field value"
    }
  }
}'

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
string
NULL The name of the organization
website
string
NULL The organization’s website
description
string
NULL The organization’s description
email
string
NULL The organization’s email
phone
string
NULL The organization’s phone number
country
string
NULL The organization’s country
city
string
NULL The organization’s city
state
string
NULL The organization’s state
address
string
NULL The organization’s full address
lists
array
NULL Name of the lists of the organization
owner_id
integer
ID of the user who created the organization The ID of the user owning this 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 organization object.

Retrieve an organization

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

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/organizations/{ORGANIZATION_ID}

# EXAMPLE
curl -X PATCH "https://api.overloop.ai/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": "My organization’s custom field value"
    }
  }
}'

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
string
The name of the organization
website
string
The organization’s website
description
string
The organization’s description
email
string
The organization’s email
phone
string
The organization’s phone number
country
string
The organization’s country
city
string
The organization’s city
state
string
The organization’s state
address
string
The organization’s full address
lists
array
Name of the lists of the organization
owner_id
integer
The ID of the user owning this organization

Returns

Returns the organization object.

Delete an organization

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

# EXAMPLE
curl -X DELETE "https://api.overloop.ai/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.ai/public/v1/organizations

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/organizations/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/organizations/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/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.

Automations

The automation object

The automation object regroups campaigns, used for outbound, and workflows, used for productivity. They can be differenciated using the automation_type variable.

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "automations",
    "attributes": {
      "name": "Public API Automation Example",
      "enter_triggers": [
        "prospect.created",
      ],
      "enter_trigger_attributes": {},
      "exit_triggers": [
        "prospect.replied"
      ],
      "status": "on",
      "sending_days": [
        "monday",
        "tuesday",
        "wednesday",
        "thursday",
        "friday"
      ],
      "start_sending_minutes": 480,
      "end_sending_minutes": 1020,
      "timezone": "Etc/UTC",
      "automation_type": "campaign",
      "record_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": "automations_steps"
          },
          {
            "id": "a-z0-9-abc2",
            "type": "automations_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 automation
name no string
The automation's name
automation_type yes string
Either campaign or workflow
record_type yes string
The type of records that can be enrolled into the automation. Always prospects for campaigns, either prospects, organizations, or conversations for workflows
enter_triggers no array
An array containing the events that will make records entering the automation. Possible values depends on the record_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 records exit the automation. Possible values depends on the record_type
status yes string
The automation's status that can take 2 different values: on, off
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 automation.
enter_segment The reference of the automation filters for the enter_segment trigger event.
filters The conditions of the enter_segment trigger event.

Retrieve an automation

# DEFINITION
GET https://api.overloop.ai/public/v1/automations/{AUTOMATION_ID}

# EXAMPLE
curl -X GET "https://api.overloop.ai/public/v1/automations/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 automation to retrieve

Returns

Returns the automation object.

List automations

# DEFINITION
GET https://api.overloop.ai/public/v1/automations

# EXAMPLE
curl -X GET "https://api.overloop.ai/public/v1/automations" \
-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": "automations",
      "attributes": {
        ...
      },
      "relationships": {
        "steps": {
          "data": [
            ...
          ]
        },
        "segment": {
          "data": {
            ...
          }
        }
      }
    },
    {
      "id": "2",
      "type": "automations",
      "attributes": {
        ...
      },
      "relationships": {
        "steps": {
          "data": [
            ...
          ]
        },
        "segment": {
          "data": {
            ...
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.ai/public/v1/automations/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/automations/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/public/v1/automations/?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of automations.

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

Automation Steps

The automation step object

# EXAMPLE OBJECT
{
  "data": [
    {
      "id": "a-z0-9-abc1",
      "type": "automations_steps",
      "attributes": {
        "step_type": "email",
        "position": 0,
        "previous_step_id" : null,
        "created_at": "2024-01-31T12:00:00.000Z",
        "updated_at": "2024-01-31T12:00:00.000Z",
        "config": {
          "generate_with_ai": true,
          "message_personalization_settings": {
            "email_structure": "aida",
            "icebreaker_enabled": true, 
            "subject_line_style": "intriguing"
          }
        }
      },
      "relationships": {
        "automation": {
          "data": {
            "id": "1",
            "type": "automations"
          }
        }
      }
    }
  ]
}

Object attributes

Attribute Description
id integer
A unique identifier for the automation step
step_type string
The type of step. Possible values depend on the automation 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 automation
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
automation The parent automation

Retrieve a automation step

# DEFINITION
GET https://api.overloop.ai/public/v1/automations/{AUTOMATION_ID}/steps/{STEP_ID}

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

Parameters

Parameter Description
automation_id
required - integer
The ID of the automation
id
required - integer
The ID of the automation step to retrieve

Returns

Returns the automation step object.

List automation steps

# DEFINITION
GET https://api.overloop.ai/public/v1/automations/{AUTOMATION_ID}/steps

# EXAMPLE
curl -X GET "https://api.overloop.ai/public/v1/automations/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": "automations_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "automation": {
          "data": {
            "id": "1",
            "type": "automations"
          }
        }
      }
    },
    {
      "id": "a-z0-9-abc2",
      "type": "automations_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "automation": {
          "data": {
            "id": "1",
            "type": "automations"
          }
        }
      }
    },
    {
      "id": "a-z0-9-abc3",
      "type": "automations_steps",
      "attributes": {
        ...
      },
      "relationships": {
        "automation": {
          "data": {
            "id": "1",
            "type": "automations"
          }
        }
      }
    }
  ],
  "links": {
    "self": "https://api.overloop.ai/public/v1/automations/1/steps?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/automations/1/steps?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/public/v1/automations/1/steps?page%5Bnumber%5D=5&page%5Bsize%5D=100"
  }
}

Returns a list of automation steps.

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

Account

The account object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "companies",
    "attributes": {
      "name": "Overloop.ai",
      "website": "https://overloop.ai",
      "phone_number": "",
      "billing_name": "Overloop.ai SRL",
      "address": "rue des Pères Blancs 4, 1040 Brussels",
      "country": "BE",
      "vat": "BE0645917753",
      "plan_name": "Starter",
      "plan_code": "starter_monthly_usd",
      "remaining_credits": 249,
      "created_at": "2024-08-15T16:48:46+02:00",
      "updated_at": "2025-10-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.ai/public/v1/account

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai",
      "role": "admin",
      "phone_number": "",
      "disabled": false,
      "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, user or read_only
phone_number no string
The user’s phone number
disabled yes boolean
Whether the user is disabled or not
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

List users

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

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/users?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/users?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/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",
      "list_type": "prospects",
      "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
list_type yes string
The type of the list’s associated record, either prospects or organizations
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.ai/public/v1/lists

# EXAMPLE
curl -X POST "https://api.overloop.ai/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"
      "list_type": "prospects"
    }
  }
}'

This will create a new list.

Parameters

Parameter Default Description
name
required - string
/ The list’s name
list_type
required - string
/ The type of the list’s associated record, either prospects or organizations

Returns

Returns the list object.

Update a list

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

# EXAMPLE
curl -X PATCH "https://api.overloop.ai/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.ai/public/v1/lists/{CONTACT_ID}

# EXAMPLE
curl -X DELETE "https://api.overloop.ai/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 Description
id
required - integer
The ID of the list to

Returns

Returns the list object.

List lists

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

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai/public/v1/lists/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/lists/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/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.

Exclusion list items

The exclusion list item object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "exclusion_list_item",
    "attributes": {
      "value": "vincenzo@overloop.ai",
      "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.ai/public/v1/exclusion_list_items

# EXAMPLE
curl -X POST "https://api.overloop.ai/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.ai",
        "item_type": "email"
      }
    }
  }
'

The above command returns JSON structured like this:

{
    "data": {
        "id": "1",
        "type": "exclusion_list_item",
        "attributes": {
            "value": "vincenzo@overloop.ai",
            "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

List exclusion list items

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

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.ai",
        "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.ai/public/v1/exclusion_list_items/?page%5Bnumber%5D=1&page%5Bsize%5D=100",
    "next": "https://api.overloop.ai/public/v1/exclusion_list_items/?page%5Bnumber%5D=2&page%5Bsize%5D=100",
    "last": "https://api.overloop.ai/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.

Custom Fields

The custom field object

# EXAMPLE OBJECT
{
  "data": {
    "id": "1",
    "type": "custom_fields",
    "attributes": {
      "identifier": "c_custom_field_a",
      "name": " My prospect custom field",
      "type": "prospects",
      "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
type no string
The type of record associated to the custom field, either prospects or organizations
options no array
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.ai/public/v1/custom_fields

# EXAMPLE
curl -X GET "https://api.overloop.ai/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.