EmailAddress
The EmailAddress object
The EmailAddress object looks like this in JSON:
{
"object": "email_address",
"id": 1,
"email": "testaddress@nowhere.com",
"owner_type": "person",
"owner_id": 1,
"type": "home",
"primary": false,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null,
"sandbox": true
}
| Attribute | Required | Data Type |
|---|---|---|
| id | Yes | int |
| Yes | text (255) | |
| owner_type | Yes | enum (person, organization, inquiry, application) |
| owner_id | Yes | int |
| type | Yes | enum (home, work, other, school) |
| primary | Yes | bool |
| most_recent_by_type | Yes | bool |
| old | Yes | bool |
| system | Yes | bool |
| public | Yes | bool |
| synced_from | Yes | int |
| delivery_problem | No | enum (bounce, spam_report) |
| delivery_problem_at | No | datetime |
| delivery_problem_info | No | text (500) |
| verified_at | No | datetime |
| unsubscribed_at | No | datetime |
| import_id | No | int |
| added_at | No | datetime |
| added_by_id | No | int |
| sandbox | No | bool |
index (organization)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "list",
"count": 1,
"results": 1,
"results_per_page": null,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "email_address",
"id": 6,
"email": "supercool@nowhere.co",
"owner_type": "organization",
"owner_id": 1,
"type": "work",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null
}
],
"sandbox": true
}
Retrieves all EmailAddress objects tied to a specific Organization.
HTTP Request
GET /organizations/(organization)/emailaddresses
Parameters
None
Permissions
One of the following roles is required to call this method:
- Academic Auditor
- Financial Auditor
- Admissions Auditor
- Staff
index (person)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "list",
"count": 1,
"results": 1,
"results_per_page": null,
"pages": 1,
"page": 1,
"offset": 0,
"has_more": false,
"data": [
{
"object": "email_address",
"id": 17,
"email": "icecream@nowhere.co",
"owner_type": "person",
"owner_id": 12,
"type": "home",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null
}
],
"sandbox": true
}
Retrieves all EmailAddress objects tied to a specific Person.
HTTP Request
GET /people/(person)/emailaddresses
Parameters
None
Permissions
One of the following roles is required to call this method:
- Staff
resubscribe
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/emailaddresses/resubscribe" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X POST
-d '{
"email": "coreycoors@yahoo.com"
}' \
require 'httparty'
response = HTTParty.post(
'https://yourschool.populiweb.com/api2/emailaddresses/resubscribe',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:email => 'coreycoors@yahoo.com'
}.to_json
)
puts response.body
import requests
response = requests.post(
'https://yourschool.populiweb.com/api2/emailaddresses/resubscribe',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'email': 'coreycoors@yahoo.com'
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/emailaddresses/resubscribe"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
email = "coreycoors@yahoo.com"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/emailaddresses/resubscribe');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
'email' => 'coreycoors@yahoo.com'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email",
"email": "coreycoors@yahoo.com",
"action": "resubscribed"
}
HTTP Request
POST /emailaddresses/resubscribe
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| Yes | text (255) |
Permissions
One of the following roles is required to call this method:
- Staff
unsubscribe
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X POST
-d '{
"email": "billyblanton@yahoo.com"
}' \
require 'httparty'
response = HTTParty.post(
'https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:email => 'billyblanton@yahoo.com'
}.to_json
)
puts response.body
import requests
response = requests.post(
'https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'email': 'billyblanton@yahoo.com'
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
email = "billyblanton@yahoo.com"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/emailaddresses/unsubscribe');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
'email' => 'billyblanton@yahoo.com'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email",
"email": "billyblanton@yahoo.com",
"action": "unsubscribed"
}
HTTP Request
POST /emailaddresses/unsubscribe
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| Yes | text (255) |
Permissions
One of the following roles is required to call this method:
- Staff
create (organization)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X POST
-d '{
"email": "bsmith22@somewhere.net",
"type": "work"
}' \
require 'httparty'
response = HTTParty.post(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:email => 'bsmith22@somewhere.net',
:type => 'work'
}.to_json
)
puts response.body
import requests
response = requests.post(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'email': 'bsmith22@somewhere.net',
'type': 'work'
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
email = "bsmith22@somewhere.net",
type = "work"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
'email' => 'bsmith22@somewhere.net',
'type' => 'work'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 32,
"email": "bsmith22@somewhere.net",
"owner_type": "organization",
"owner_id": 1,
"type": "work",
"primary": false,
"most_recent_by_type": true,
"old": false,
"system": false,
"public": false,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": "2026-07-25T16:24:08+00:00",
"added_by_id": 22,
"sandbox": true
}
Creates a new EmailAddress object.
HTTP Request
POST /organizations/(organization)/emailaddresses
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| Yes | text (255) | ||
| type | Yes | enum (work, other) |
Permissions
One of the following roles is required to call this method:
- Staff
show (organization)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 6,
"email": "supercool@nowhere.co",
"owner_type": "organization",
"owner_id": 1,
"type": "work",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null,
"sandbox": true
}
Retrieves a specific EmailAddress object.
HTTP Request
GET /organizations/(organization)/emailaddresses/(emailaddress)
Parameters
No additional parameters are needed beyond the ID of the object being requested that appears in the URL.
Permissions
One of the following roles is required to call this method:
- Staff
update (organization)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X PUT
require 'httparty'
response = HTTParty.put(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.put(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 6,
"email": "supercool@nowhere.co",
"owner_type": "organization",
"owner_id": 1,
"type": "work",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null,
"sandbox": true
}
Updates an existing EmailAddress object.
HTTP Request
PUT /organizations/(organization)/emailaddresses/(emailaddress)
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| No | text (255) | ||
| type | No | enum (work, other) | |
| is_primary | No | bool | |
| old | No | bool | |
| public | No | bool |
Permissions
One of the following roles is required to call this method:
- Staff
delete (organization)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X DELETE
require 'httparty'
response = HTTParty.delete(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.delete(
'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)"), Method.Delete);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/organizations/(organization)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 6,
"deleted": true
}
Deletes an existing EmailAddress object.
HTTP Request
DELETE /organizations/(organization)/emailaddresses/(emailaddress)
Parameters
No additional parameters are needed beyond the ID of the object to delete that appears in the URL.
Permissions
One of the following roles is required to call this method:
- Staff
create (person)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X POST
-d '{
"email": "memelord19@hotmail.com",
"type": "home"
}' \
require 'httparty'
response = HTTParty.post(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:email => 'memelord19@hotmail.com',
:type => 'home'
}.to_json
)
puts response.body
import requests
response = requests.post(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'email': 'memelord19@hotmail.com',
'type': 'home'
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses"), Method.Post);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
email = "memelord19@hotmail.com",
type = "home"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
'email' => 'memelord19@hotmail.com',
'type' => 'home'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 33,
"email": "memelord19@hotmail.com",
"owner_type": "person",
"owner_id": 12,
"type": "home",
"primary": false,
"most_recent_by_type": true,
"old": false,
"system": false,
"public": false,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": "2026-07-25T16:24:10+00:00",
"added_by_id": 22,
"sandbox": true
}
Creates a new EmailAddress object.
HTTP Request
POST /people/(person)/emailaddresses
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| Yes | text (255) | ||
| type | Yes | enum (home, work, school, other) |
Action Parameters
| Name | Data Type | Description |
|---|---|---|
| send_verification_email | Default is false |
Permissions
One of the following roles is required to call this method:
- Staff
show (person)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 16,
"email": "football@nowhere.co",
"owner_type": "person",
"owner_id": 16,
"type": "home",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null,
"sandbox": true
}
Retrieves a specific EmailAddress object.
HTTP Request
GET /people/(person)/emailaddresses/(emailaddress)
Parameters
No additional parameters are needed beyond the ID of the object being requested that appears in the URL.
Permissions
One of the following roles is required to call this method:
- Staff
update (person)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X PUT
require 'httparty'
response = HTTParty.put(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.put(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)"), Method.Put);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'PUT');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 16,
"email": "football@nowhere.co",
"owner_type": "person",
"owner_id": 16,
"type": "home",
"primary": true,
"most_recent_by_type": false,
"old": false,
"system": false,
"public": true,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": null,
"added_by_id": null,
"sandbox": true
}
Updates an existing EmailAddress object.
HTTP Request
PUT /people/(person)/emailaddresses/(emailaddress)
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| No | text (255) | ||
| type | No | enum (home, work, school, other) | |
| is_primary | No | bool | |
| old | No | bool | |
| public | No | bool |
Action Parameters
| Name | Data Type | Description |
|---|---|---|
| send_verification_email | Default is false |
Permissions
One of the following roles is required to call this method:
- Staff
delete (person)
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X DELETE
require 'httparty'
response = HTTParty.delete(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
)
puts response.body
import requests
response = requests.delete(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)"), Method.Delete);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/(emailaddress)');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'DELETE');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 16,
"deleted": true
}
Deletes an existing EmailAddress object.
HTTP Request
DELETE /people/(person)/emailaddresses/(emailaddress)
Parameters
No additional parameters are needed beyond the ID of the object to delete that appears in the URL.
Permissions
One of the following roles is required to call this method:
- Staff
set
Example code to call this method:
curl "https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/set" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \
-X GET
-d '{
"email": "memelord19@hotmail.com",
"type": "home"
}' \
require 'httparty'
response = HTTParty.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/set',
headers: {
'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
},
body: {
:email => 'memelord19@hotmail.com',
:type => 'home'
}.to_json
)
puts response.body
import requests
response = requests.get(
'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/set',
headers={
'Authorization': 'Bearer YOUR_POPULI_API_KEY'
},
json={
'email': 'memelord19@hotmail.com',
'type': 'home'
}
)
print(response.json())
using Newtonsoft.Json;
using RestSharp;
var client = new RestClient();
var request = new RestRequest(new Uri("https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/set"), Method.Get);
request.AddHeader("Authorization", "Bearer YOUR_POPULI_API_KEY");
request.AddJsonBody(new {
email = "memelord19@hotmail.com",
type = "home"
});
var response = client.Execute(request);
var response_object = JsonConvert.DeserializeObject(response.Content);
Console.Write(response_object);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://yourschool.populiweb.com/api2/people/(person)/emailaddresses/set');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode([
'email' => 'memelord19@hotmail.com',
'type' => 'home'
]));
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);
Example response:
{
"object": "email_address",
"id": 33,
"email": "memelord19@hotmail.com",
"owner_type": "person",
"owner_id": 12,
"type": "home",
"primary": false,
"most_recent_by_type": true,
"old": false,
"system": false,
"public": false,
"synced_from": null,
"delivery_problem": null,
"delivery_problem_at": null,
"delivery_problem_info": null,
"verified_at": null,
"unsubscribed_at": null,
"import_id": null,
"added_at": "2026-07-25T16:24:10+00:00",
"added_by_id": 22,
"sandbox": true
}
Creates an email address OR updates it if it already exists.
HTTP Request
GET /people/(person)/emailaddresses/set
Parameters
| Name | Required | Data Type | Description |
|---|---|---|---|
| Yes | text (255) | ||
| type | Yes | enum (home, work, school, other) | |
| is_primary | No | bool | |
| old | No | bool | |
| public | No | bool |
Permissions
One of the following roles is required to call this method:
- Staff