NAV
shell ruby python csharp php

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
email 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:

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:

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
email Yes text (255)

Permissions

One of the following roles is required to call this method:

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
email Yes text (255)

Permissions

One of the following roles is required to call this method:

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
email Yes text (255)
type Yes enum (work, other)

Permissions

One of the following roles is required to call this method:

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:

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
email 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:

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:

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
email 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:

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:

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
email 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:

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:

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
email 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: