NAV
shell ruby python csharp php

Lead

The Lead object

The Lead object looks like this in JSON:

{
    "object": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": 1011,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}
Attribute Required Data Type
id Yes int
person_id Yes int
status Yes enum (prospect, inquiry, application_started, application_completed, accepted, confirmed, enrolled)
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
active Yes bool
inactive_on No date
lead_source_id No int
ceeb_code No int
source_comment No text
education_level_id No int
declined_reason_id No int
declined_reason_comment No text
counselor_id No int
highschool_graduation_date No date
most_recent Yes bool
added_on No date
import_id No int
added_at No datetime
added_by_id No int
updated_at No datetime
updated_by_id No int
sandbox No bool

index

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/leads" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
-d '{
    "filter": {"0":{"logic":"ALL","fields":[{"name":"program","value":"NONE","positive":1}]}}
}' \ 
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leads',
 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/leads"), 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/leads');
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": 3,
    "results": 3,
    "results_per_page": 200,
    "pages": 1,
    "page": 1,
    "offset": 0,
    "has_more": false,
    "data": [
        {
            "object": "lead",
            "id": 6,
            "person_id": 12,
            "status": "inquiry",
            "program_id": null,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": null,
            "active": true,
            "inactive_on": null,
            "lead_source_id": null,
            "ceeb_code": null,
            "source_comment": null,
            "education_level_id": null,
            "declined_reason_id": null,
            "declined_reason_comment": null,
            "counselor_id": 185037,
            "highschool_graduation_date": null,
            "most_recent": false,
            "added_on": "2013-10-28",
            "import_id": null,
            "added_at": "2013-10-28T17:23:53+00:00",
            "added_by_id": 185037,
            "updated_at": "2013-10-28T17:23:53+00:00",
            "updated_by_id": 185037,
            "report_data": {
                "person_first_name": "Alice",
                "person_preferred_name": "",
                "person_last_name": "Admin",
                "program_name": null,
                "academic_term_display_name": null,
                "counselor_name": null,
                "counselor_first_name": null,
                "counselor_last_name": null,
                "lead_source_name": null,
                "row_id": 6
            }
        }
    ],
    "sandbox": true
}

Retrieves all Lead objects that match given filter conditions.

HTTP Request

GET /leads

Parameters

Name Required Data Type Description
filter No mixed See available filter conditions
page No int The page of results to return if more than 200 records are found.

Expandable Properties

Filter Condition Parameters

These conditions can be used to narrow the results returned.

Name Type
first_name text
last_name text
birthdate date
birthday month_day
age integer
gender enum (male, female, unknown, other)
race_ethnicity raceethnicity
student_housing student_housing
status enum
program object id
degree object id
specialization specialization
academic_term object_id
academic_term_type academic_term_type
counselor admissions_counselor
source leadsource
education_level object id
added_on date
updated_at datetime
active bool
inactive_on date
email email
phone phone
has_verified_text_messaging_number bool
address_city text
address_state state
address_zip alphanumeric
address_country country
home_city text
home_state state
home_country country
citizenship countrymodel
declined_reason object id
provisional bool
has_active_student_role enum (yes, no)
tag tag
custom_field custom
hsgrad_date date
import object id

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)/leads" \
-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)/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 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)/leads"), 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)/leads');
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": "lead",
            "id": 6,
            "person_id": 12,
            "status": "inquiry",
            "program_id": null,
            "degree_id": null,
            "specialization_id": null,
            "academic_term_id": null,
            "active": true,
            "inactive_on": null,
            "lead_source_id": null,
            "ceeb_code": null,
            "source_comment": null,
            "education_level_id": null,
            "declined_reason_id": null,
            "declined_reason_comment": null,
            "counselor_id": 185037,
            "highschool_graduation_date": null,
            "most_recent": false,
            "added_on": "2013-10-28",
            "import_id": null,
            "added_at": "2013-10-28T17:23:53+00:00",
            "added_by_id": 185037,
            "updated_at": "2013-10-28T17:23:53+00:00",
            "updated_by_id": 185037
        }
    ],
    "sandbox": true
}

Retrieves all Lead objects tied to a specific Person.

HTTP Request

GET /people/(person)/leads

Parameters

None

Permissions

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

show

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/leads/(lead)" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X GET
require 'httparty'
response = HTTParty.get(
 'https://yourschool.populiweb.com/api2/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/leads/(lead)',
 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/leads/(lead)"), 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/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": 1011,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Retrieves a specific Lead object.

HTTP Request

GET /leads/(lead)

Parameters

No additional parameters are needed beyond the ID of the object being requested that appears in the URL.

Expandable Properties

Permissions

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

create

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads" \
-H "Content-Type: application/json" \ 
-H "Authorization: Bearer YOUR_POPULI_API_KEY" \ 
-X POST
require 'httparty'
response = HTTParty.post(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.post(
 'https://yourschool.populiweb.com/api2/people/(person)/leads',
 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)/leads"), Method.Post);
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)/leads');
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Authorization: Bearer YOUR_POPULI_API_KEY']);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'POST');
$response = curl_exec($curl);
$response_decoded = json_decode($response);
var_dump($response_decoded);

Example response:

{
    "object": "lead",
    "id": 8,
    "person_id": 12,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": null,
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": null,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": null,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2026-07-25T00:00:00-0700",
    "import_id": null,
    "added_at": "2026-07-25T16:24:12+00:00",
    "added_by_id": 22,
    "updated_at": "2026-07-25T16:24:12+00:00",
    "updated_by_id": 22,
    "sandbox": true
}

Creates a new Lead object.

HTTP Request

POST /people/(person)/leads

Parameters

Name Required Data Type Description
status No enum (prospect, inquiry, application_started, application_completed, accepted, confirmed, enrolled)
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
lead_source_id No int
source_comment No text
education_level_id No int
declined_reason_comment No text
declined_reason_id No int
counselor_id No int
hsgrad_date No date
active No bool
ceeb_code No int

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)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.get(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": 1011,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Retrieves a specific Lead object.

HTTP Request

GET /people/(person)/leads/(lead)

Parameters

No additional parameters are needed beyond the ID of the object being requested that appears in the URL.

Expandable Properties

Permissions

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

update

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.put(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "person_id": 1,
    "status": "prospect",
    "program_id": null,
    "degree_id": null,
    "specialization_id": null,
    "academic_term_id": null,
    "active": true,
    "inactive_on": "2013-10-02",
    "lead_source_id": null,
    "ceeb_code": null,
    "source_comment": null,
    "education_level_id": 0,
    "declined_reason_id": null,
    "declined_reason_comment": null,
    "counselor_id": 1011,
    "highschool_graduation_date": null,
    "most_recent": false,
    "added_on": "2013-10-02",
    "import_id": null,
    "added_at": "2013-10-02T20:37:53+00:00",
    "added_by_id": 185755,
    "updated_at": "2013-10-02T14:35:29+00:00",
    "updated_by_id": 1999,
    "sandbox": true
}

Updates an existing Lead object.

HTTP Request

PUT /people/(person)/leads/(lead)

Parameters

Name Required Data Type Description
status No enum (prospect, inquiry, application_started, application_completed, accepted, confirmed, enrolled)
program_id No int
degree_id No int
specialization_id No int
academic_term_id No int
lead_source_id No int
source_comment No text
education_level_id No int
declined_reason_comment No text
declined_reason_id No int
counselor_id No int
hsgrad_date No date
active No bool
ceeb_code No int

Permissions

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

delete

Example code to call this method:

curl "https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)" \
-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)/leads/(lead)',
 headers: {
  'Authorization' => 'Bearer YOUR_POPULI_API_KEY'
 },
)
puts response.body
import requests
response = requests.delete(
 'https://yourschool.populiweb.com/api2/people/(person)/leads/(lead)',
 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)/leads/(lead)"), 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)/leads/(lead)');
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": "lead",
    "id": 1,
    "deleted": true
}

Deletes an existing Lead object.

HTTP Request

DELETE /people/(person)/leads/(lead)

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: