Bulk create activities
Creates up to 100 timeline activities such as email, meeting, call, link click, or other interaction records. created_at must not be in the future (a few minutes of clock skew is tolerated); a later value rejects the request with 422. Activities never create accounts or contacts: participants are matched to existing contacts, and any participant email with no contact is listed in that item’s unknown_participants.
POST
/
v1
/
activities
/
bulk
Bulk create activities
curl --request POST \
--url https://api.octolane.com/v1/activities/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"title": "<string>",
"description": "<string>",
"participants": [],
"domains": [],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
]
'import requests
url = "https://api.octolane.com/v1/activities/bulk"
payload = [
{
"title": "<string>",
"description": "<string>",
"participants": [],
"domains": [],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
title: '<string>',
description: '<string>',
participants: [],
domains: [],
metadata: {},
created_at: '2023-11-07T05:31:56Z'
}
])
};
fetch('https://api.octolane.com/v1/activities/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octolane.com/v1/activities/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'title' => '<string>',
'description' => '<string>',
'participants' => [
],
'domains' => [
],
'metadata' => [
],
'created_at' => '2023-11-07T05:31:56Z'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.octolane.com/v1/activities/bulk"
payload := strings.NewReader("[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.octolane.com/v1/activities/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/activities/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}Authorizations
Personal API key. Requests act as the workspace member who created the key, with that member's current access, and stop working when the key is disabled or its creator leaves the workspace.
Body
application/json
Array of activity payloads. Maximum 100 items.
Required array length:
1 - 100 elementsAvailable options:
EMAIL, MEETING, EMAIL_OPEN, LINK_CLICK, CALL, COMMENT, IN_PERSON_MEETING, LINKEDIN_CONNECTION, LINKEDIN_MESSAGE, X_ACTIVITY, TEXT_MESSAGE, WHATSAPP_MESSAGE, CONTACT_ADDED, OTHER When the activity happened. Must not be in the future.
Was this page helpful?
⌘I
Bulk create activities
curl --request POST \
--url https://api.octolane.com/v1/activities/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"title": "<string>",
"description": "<string>",
"participants": [],
"domains": [],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
]
'import requests
url = "https://api.octolane.com/v1/activities/bulk"
payload = [
{
"title": "<string>",
"description": "<string>",
"participants": [],
"domains": [],
"metadata": {},
"created_at": "2023-11-07T05:31:56Z"
}
]
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify([
{
title: '<string>',
description: '<string>',
participants: [],
domains: [],
metadata: {},
created_at: '2023-11-07T05:31:56Z'
}
])
};
fetch('https://api.octolane.com/v1/activities/bulk', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.octolane.com/v1/activities/bulk",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
[
'title' => '<string>',
'description' => '<string>',
'participants' => [
],
'domains' => [
],
'metadata' => [
],
'created_at' => '2023-11-07T05:31:56Z'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.octolane.com/v1/activities/bulk"
payload := strings.NewReader("[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.octolane.com/v1/activities/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/activities/bulk")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "[\n {\n \"title\": \"<string>\",\n \"description\": \"<string>\",\n \"participants\": [],\n \"domains\": [],\n \"metadata\": {},\n \"created_at\": \"2023-11-07T05:31:56Z\"\n }\n]"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": true,
"message": "<string>",
"data": "<unknown>"
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}{
"success": false,
"message": "Validation failed",
"statusCode": 400
}