curl --request POST \
--url https://app.octavehq.com/api/v2/person/resolve-email \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"linkedInProfile": "https://www.linkedin.com/in/jane-doe",
"firstName": "<string>",
"lastName": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"minConfidence": "LOW",
"effort": "standard"
}
'import requests
url = "https://app.octavehq.com/api/v2/person/resolve-email"
payload = {
"linkedInProfile": "https://www.linkedin.com/in/jane-doe",
"firstName": "<string>",
"lastName": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"minConfidence": "LOW",
"effort": "standard"
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedInProfile: 'https://www.linkedin.com/in/jane-doe',
firstName: '<string>',
lastName: '<string>',
companyName: '<string>',
companyDomain: '<string>',
minConfidence: 'LOW',
effort: 'standard'
})
};
fetch('https://app.octavehq.com/api/v2/person/resolve-email', 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://app.octavehq.com/api/v2/person/resolve-email",
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([
'linkedInProfile' => 'https://www.linkedin.com/in/jane-doe',
'firstName' => '<string>',
'lastName' => '<string>',
'companyName' => '<string>',
'companyDomain' => '<string>',
'minConfidence' => 'LOW',
'effort' => 'standard'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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://app.octavehq.com/api/v2/person/resolve-email"
payload := strings.NewReader("{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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://app.octavehq.com/api/v2/person/resolve-email")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/person/resolve-email")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}"
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"found": true,
"meetsConfidenceThreshold": true,
"effort": "standard",
"creditsCharged": 123,
"email": "jane@acme.com",
"emailStatus": "valid",
"confidence": "LOW",
"matchedProfile": {
"firstName": "Jane",
"lastName": "Doe",
"fullName": "Jane Doe",
"title": "VP of Engineering",
"headline": "<string>",
"seniority": "<string>",
"jobFunction": "<string>",
"linkedInUrl": "https://www.linkedin.com/in/jane-doe",
"linkedInSlug": "jane-doe",
"companyName": "Acme",
"companyDomain": "acme.com",
"companyLinkedInUrl": "<string>",
"location": "San Francisco, CA",
"city": "San Francisco",
"countryCode": "US",
"summary": "<string>",
"photoUrl": "<string>"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Resolve Email from Profile
Resolve the best work email for a person from their LinkedIn profile (or name + company) using Octave’s enrichment data, with a deliverability status. The reverse of resolveProfile. Supports a confidence threshold and an optional thorough effort mode. Charges credits only when a deliverable email is found at or above the requested confidence.
curl --request POST \
--url https://app.octavehq.com/api/v2/person/resolve-email \
--header 'Content-Type: application/json' \
--header 'api_key: <api-key>' \
--data '
{
"linkedInProfile": "https://www.linkedin.com/in/jane-doe",
"firstName": "<string>",
"lastName": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"minConfidence": "LOW",
"effort": "standard"
}
'import requests
url = "https://app.octavehq.com/api/v2/person/resolve-email"
payload = {
"linkedInProfile": "https://www.linkedin.com/in/jane-doe",
"firstName": "<string>",
"lastName": "<string>",
"companyName": "<string>",
"companyDomain": "<string>",
"minConfidence": "LOW",
"effort": "standard"
}
headers = {
"api_key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {api_key: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
linkedInProfile: 'https://www.linkedin.com/in/jane-doe',
firstName: '<string>',
lastName: '<string>',
companyName: '<string>',
companyDomain: '<string>',
minConfidence: 'LOW',
effort: 'standard'
})
};
fetch('https://app.octavehq.com/api/v2/person/resolve-email', 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://app.octavehq.com/api/v2/person/resolve-email",
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([
'linkedInProfile' => 'https://www.linkedin.com/in/jane-doe',
'firstName' => '<string>',
'lastName' => '<string>',
'companyName' => '<string>',
'companyDomain' => '<string>',
'minConfidence' => 'LOW',
'effort' => 'standard'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"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://app.octavehq.com/api/v2/person/resolve-email"
payload := strings.NewReader("{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("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://app.octavehq.com/api/v2/person/resolve-email")
.header("api_key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.octavehq.com/api/v2/person/resolve-email")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["api_key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"linkedInProfile\": \"https://www.linkedin.com/in/jane-doe\",\n \"firstName\": \"<string>\",\n \"lastName\": \"<string>\",\n \"companyName\": \"<string>\",\n \"companyDomain\": \"<string>\",\n \"minConfidence\": \"LOW\",\n \"effort\": \"standard\"\n}"
response = http.request(request)
puts response.read_body{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"found": true,
"meetsConfidenceThreshold": true,
"effort": "standard",
"creditsCharged": 123,
"email": "jane@acme.com",
"emailStatus": "valid",
"confidence": "LOW",
"matchedProfile": {
"firstName": "Jane",
"lastName": "Doe",
"fullName": "Jane Doe",
"title": "VP of Engineering",
"headline": "<string>",
"seniority": "<string>",
"jobFunction": "<string>",
"linkedInUrl": "https://www.linkedin.com/in/jane-doe",
"linkedInSlug": "jane-doe",
"companyName": "Acme",
"companyDomain": "acme.com",
"companyLinkedInUrl": "<string>",
"location": "San Francisco, CA",
"city": "San Francisco",
"countryCode": "US",
"summary": "<string>",
"photoUrl": "<string>"
},
"message": "<string>"
}{
"_metadata": {
"requestId": "requestId",
"timestamp": "2021-01-01T00:00:00.000Z",
"usage": 0,
"message": "message"
},
"message": "<string>"
}Authorizations
Body
Identifiers to resolve an email from
LinkedIn profile URL or slug. The strongest identifier for resolving an email.
"https://www.linkedin.com/in/jane-doe"
First name (used with company when no LinkedIn)
Last name (used with company when no LinkedIn)
Company name (used with name when no LinkedIn)
Company domain (used with name when no LinkedIn)
Minimum confidence required for the email to count as found. Lower-confidence emails are returned as found=false (no credits charged).
LOW, MEDIUM, HIGH standard resolves the profile via the strongest identifier only; thorough also tries the alternate resolution path.
standard, thorough Response
Resolution result (found may be false)
Show child attributes
Show child attributes
Whether an email met the confidence threshold
standard, thorough Credits charged for this call (0 if not found)
"jane@acme.com"
Deliverability status from the email provider
valid, invalid, accept_all, webmail, catchall, disposable, unknown, not_found, null LOW, MEDIUM, HIGH, null The profile the email was resolved for
Show child attributes
Show child attributes