Bulk create notes
Creates up to 100 notes and links each to existing accounts (by domain) and contacts (by email). Notes never create accounts or contacts: an item naming a domain or email that matches no record is not created and comes back with an empty note_id and unknown_entities, the same rule as the single-note 404. Domains are matched as their root domain (https://www.acme.com/x matches acme.com) and automated no-reply emails are ignored.
POST
/
v1
/
notes
/
bulk
Bulk create notes
curl --request POST \
--url https://api.octolane.com/v1/notes/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"note": {
"title": "<string>",
"content": "<string>"
},
"account_domains": [
"<string>"
],
"contact_emails": [
"jsmith@example.com"
]
}
]
'import requests
url = "https://api.octolane.com/v1/notes/bulk"
payload = [
{
"note": {
"title": "<string>",
"content": "<string>"
},
"account_domains": ["<string>"],
"contact_emails": ["jsmith@example.com"]
}
]
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([
{
note: {title: '<string>', content: '<string>'},
account_domains: ['<string>'],
contact_emails: ['jsmith@example.com']
}
])
};
fetch('https://api.octolane.com/v1/notes/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/notes/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([
[
'note' => [
'title' => '<string>',
'content' => '<string>'
],
'account_domains' => [
'<string>'
],
'contact_emails' => [
'jsmith@example.com'
]
]
]),
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/notes/bulk"
payload := strings.NewReader("[\n {\n \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\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/notes/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/notes/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 \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\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 note payloads. Maximum 100 items.
Was this page helpful?
⌘I
Bulk create notes
curl --request POST \
--url https://api.octolane.com/v1/notes/bulk \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
[
{
"note": {
"title": "<string>",
"content": "<string>"
},
"account_domains": [
"<string>"
],
"contact_emails": [
"jsmith@example.com"
]
}
]
'import requests
url = "https://api.octolane.com/v1/notes/bulk"
payload = [
{
"note": {
"title": "<string>",
"content": "<string>"
},
"account_domains": ["<string>"],
"contact_emails": ["jsmith@example.com"]
}
]
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([
{
note: {title: '<string>', content: '<string>'},
account_domains: ['<string>'],
contact_emails: ['jsmith@example.com']
}
])
};
fetch('https://api.octolane.com/v1/notes/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/notes/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([
[
'note' => [
'title' => '<string>',
'content' => '<string>'
],
'account_domains' => [
'<string>'
],
'contact_emails' => [
'jsmith@example.com'
]
]
]),
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/notes/bulk"
payload := strings.NewReader("[\n {\n \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\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/notes/bulk")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("[\n {\n \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\n }\n]")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.octolane.com/v1/notes/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 \"note\": {\n \"title\": \"<string>\",\n \"content\": \"<string>\"\n },\n \"account_domains\": [\n \"<string>\"\n ],\n \"contact_emails\": [\n \"jsmith@example.com\"\n ]\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
}