API
⌘K
My Developer Account

Person

A person record represents a single member/user of the application. Each person has different permissions that determine how the user can use this app (if at all).

Example Request

curl https://api.planningcenteronline.com/people/v2/people

View in API Explorer →

Example Object

{
  "type": "Person",
  "id": "1",
  "attributes": {
    "accounting_administrator": true,
    "anniversary": "2000-01-01",
    "avatar": "string",
    "birthdate": "2000-01-01",
    "can_create_forms": true,
    "can_email_lists": true,
    "child": true,
    "created_at": "2000-01-01T12:00:00Z",
    "demographic_avatar_url": "string",
    "directory_shared_info": {},
    "directory_status": "string",
    "first_name": "string",
    "gender": "string",
    "given_name": "string",
    "grade": 1,
    "graduation_year": 1,
    "inactivated_at": "2000-01-01T12:00:00Z",
    "last_name": "string",
    "login_identifier": "string",
    "medical_notes": "string",
    "membership": "string",
    "mfa_configured": true,
    "middle_name": "string",
    "name": "string",
    "nickname": "string",
    "passed_background_check": true,
    "people_permissions": "string",
    "remote_id": 1,
    "resource_permission_flags": {},
    "school_type": "string",
    "site_administrator": true,
    "status": "string",
    "stripe_customer_identifier": "string",
    "updated_at": "2000-01-01T12:00:00Z"
  },
  "relationships": {
    "primary_campus": {
      "data": {
        "type": "PrimaryCampus",
        "id": "1"
      }
    },
    "created_by": {
      "data": {
        "type": "Person",
        "id": "1"
      }
    }
  }
}

Attributes

Name Type Description
accounting_administrator boolean
anniversary date
avatar string

File UUID (see File Uploads section)

birthdate date
can_create_forms boolean
can_email_lists boolean
child boolean
created_at date_time
demographic_avatar_url string
directory_shared_info json

Only available when requested with the ?fields param

directory_status string
first_name string
gender string
given_name string
grade integer
graduation_year integer
id primary_key
inactivated_at date_time

Set to an ISO 8601 date or time to make the profile inactive. Set to "null" to reactivate the profile.

last_name string
login_identifier string
medical_notes string
membership string
mfa_configured boolean

Only available when requested with the ?fields param

middle_name string
name string
nickname string
passed_background_check boolean
people_permissions string
remote_id integer
resource_permission_flags json
school_type string
site_administrator boolean
status string

Set to "inactive" to set "inactivatedat" to the current time and make the profile inactive. Set to anything else to clear "inactivatedat" and reactivate the profile.

stripe_customer_identifier string

Only available when requested with the ?fields param

updated_at date_time

Relationships

Name Type Association Type Note
primary_campus PrimaryCampus to_one
created_by Person to_one

Can Include

Parameter Value Description Assignable
include addresses

include associated addresses

create and update
include emails

include associated emails

create and update
include field_data

include associated field_data

include households

include associated households

include inactive_reason

include associated inactive_reason

create and update
include marital_status

include associated marital_status

create and update
include name_prefix

include associated name_prefix

create and update
include name_suffix

include associated name_suffix

create and update
include organization

include associated organization

include person_apps

include associated person_apps

include phone_numbers

include associated phone_numbers

create and update
include platform_notifications

include associated platform_notifications

include primary_campus

include associated primary_campus

create and update
include school

include associated school

create and update
include social_profiles

include associated social_profiles

create and update

Order By

Parameter Value Type Description
order accounting_administrator string

prefix with a hyphen (-accounting_administrator) to reverse the order

order anniversary string

prefix with a hyphen (-anniversary) to reverse the order

order birthdate string

prefix with a hyphen (-birthdate) to reverse the order

order child string

prefix with a hyphen (-child) to reverse the order

order created_at string

prefix with a hyphen (-created_at) to reverse the order

order first_name string

prefix with a hyphen (-first_name) to reverse the order

order gender string

prefix with a hyphen (-gender) to reverse the order

order given_name string

prefix with a hyphen (-given_name) to reverse the order

order grade string

prefix with a hyphen (-grade) to reverse the order

order graduation_year string

prefix with a hyphen (-graduation_year) to reverse the order

order inactivated_at string

prefix with a hyphen (-inactivated_at) to reverse the order

order last_name string

prefix with a hyphen (-last_name) to reverse the order

order membership string

prefix with a hyphen (-membership) to reverse the order

order middle_name string

prefix with a hyphen (-middle_name) to reverse the order

order nickname string

prefix with a hyphen (-nickname) to reverse the order

order people_permissions string

prefix with a hyphen (-people_permissions) to reverse the order

order remote_id string

prefix with a hyphen (-remote_id) to reverse the order

order site_administrator string

prefix with a hyphen (-site_administrator) to reverse the order

order status string

prefix with a hyphen (-status) to reverse the order

order updated_at string

prefix with a hyphen (-updated_at) to reverse the order

Query By

Name Parameter Type Description Example
accounting_administrator where[accounting_administrator] boolean

Query on a specific accounting_administrator

?where[accounting_administrator]=true
anniversary where[anniversary] date

Query on a specific anniversary

?where[anniversary]=2000-01-01
birthdate where[birthdate] date

Query on a specific birthdate

?where[birthdate]=2000-01-01
child where[child] boolean

Query on a specific child

?where[child]=true
created_at where[created_at] date_time

Query on a specific created_at

?where[created_at]=2000-01-01T12:00:00Z
first_name where[first_name] string

Query on a specific first_name

?where[first_name]=string
gender where[gender] string

Query on a specific gender

?where[gender]=string
given_name where[given_name] string

Query on a specific given_name

?where[given_name]=string
grade where[grade] integer

Query on a specific grade

?where[grade]=1
graduation_year where[graduation_year] integer

Query on a specific graduation_year

?where[graduation_year]=1
id where[id] primary_key

Query on a specific id

?where[id]=primary_key
inactivated_at where[inactivated_at] date_time

Set to an ISO 8601 date or time to make the profile inactive. Set to "null" to reactivate the profile.

?where[inactivated_at]=2000-01-01T12:00:00Z
last_name where[last_name] string

Query on a specific last_name

?where[last_name]=string
medical_notes where[medical_notes] string

Query on a specific medical_notes

?where[medical_notes]=string
membership where[membership] string

Query on a specific membership

?where[membership]=string
mfa_configured where[mfa_configured] boolean

Set to "true" or "false" to filter. Can only be viewed and queried by an Organization Administrator.

?where[mfa_configured]=true
middle_name where[middle_name] string

Query on a specific middle_name

?where[middle_name]=string
nickname where[nickname] string

Query on a specific nickname

?where[nickname]=string
people_permissions where[people_permissions] string

Query on a specific people_permissions

?where[people_permissions]=string
primary_campus_id where[primary_campus_id] integer

Query on a related primary_campus

?where[primary_campus_id]=1
remote_id where[remote_id] integer

Query on a specific remote_id

?where[remote_id]=1
search_name where[search_name] string

Query on a specific search_name

?where[search_name]=string
search_name_or_email where[search_name_or_email] string

Query on a specific searchnameor_email

?where[search_name_or_email]=string
search_name_or_email_or_phone_number where[search_name_or_email_or_phone_number] string

Query on a specific searchnameoremailorphonenumber

?where[search_name_or_email_or_phone_number]=string
search_phone_number where[search_phone_number] string

Query on a specific searchphonenumber

?where[search_phone_number]=string
search_phone_number_e164 where[search_phone_number_e164] string

Query on a specific searchphonenumber_e164

?where[search_phone_number_e164]=string
site_administrator where[site_administrator] boolean

Query on a specific site_administrator

?where[site_administrator]=true
status where[status] string

Set to "inactive" to set "inactivatedat" to the current time and make the profile inactive. Set to anything else to clear "inactivatedat" and reactivate the profile.

?where[status]=string
updated_at where[updated_at] date_time

Query on a specific updated_at

?where[updated_at]=2000-01-01T12:00:00Z

Pagination

Name Parameter Type Description
per_page per_page integer

how many records to return per page (min=1, max=100, default=25)

offset offset integer

get results from given offset

Endpoints

Listing

HTTP Method Endpoint
GET /people/v2/people

Reading

HTTP Method Endpoint
GET /people/v2/people/{id}

Creating

HTTP Method Endpoint Assignable Attributes
POST /people/v2/people
  • accounting_administrator
  • anniversary
  • birthdate
  • child
  • given_name
  • grade
  • graduation_year
  • middle_name
  • nickname
  • people_permissions
  • site_administrator
  • gender
  • inactivated_at
  • medical_notes
  • membership
  • stripe_customer_identifier
  • created_by_id
  • avatar
  • first_name
  • last_name
  • primary_campus_id
  • remote_id
  • status

Updating

HTTP Method Endpoint Assignable Attributes
PATCH /people/v2/people/{id}
  • accounting_administrator
  • anniversary
  • birthdate
  • child
  • given_name
  • grade
  • graduation_year
  • middle_name
  • nickname
  • people_permissions
  • site_administrator
  • gender
  • inactivated_at
  • medical_notes
  • membership
  • stripe_customer_identifier
  • avatar
  • first_name
  • last_name
  • primary_campus_id
  • remote_id
  • status

Deleting

HTTP Method Endpoint
DELETE /people/v2/people/{id}

Associations

HTTP Method Endpoint Returns Details Filter By
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/addresses Address
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/apps App
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/background_checks BackgroundCheck
  • awaiting_applicant
  • canceled
  • complete_clear
  • complete_not_clear
  • current

    filter background checks to only those considered "current"

  • expired
  • expired_invitation
  • needs_review
  • not_expired
  • report_processing
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/connected_people ConnectedPerson
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/emails Email
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/field_data FieldDatum
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/household_memberships HouseholdMembership
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/households Household
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/inactive_reason InactiveReason
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/marital_status MaritalStatus
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/message_groups MessageGroup
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/messages Message

The Person's received messages. Can also receive a filter to return sent or unread e.g. ?filter=sent

  • created_after
  • received
  • sent
  • unread
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/name_prefix NamePrefix
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/name_suffix NameSuffix
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/notes Note
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/organization Organization
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/person_apps PersonApp
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/phone_numbers PhoneNumber
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/platform_notifications PlatformNotification
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/primary_campus Campus
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/school SchoolOption
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/social_profiles SocialProfile
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_assignee_workflow_summaries WorkflowAssigneeWorkflowSummary
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_cards WorkflowCard
  • assigned
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_shares WorkflowShare

Belongs To

HTTP Method Endpoint Association Details Filter By
GET https://api.planningcenteronline.com/people/v2/background_checks/{background_check_id}/created_by BackgroundCheck
GET https://api.planningcenteronline.com/people/v2/background_checks/{background_check_id}/person BackgroundCheck
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/rules/{rule_id}/conditions/{condition_id}/created_by Condition
GET https://api.planningcenteronline.com/people/v2/emails/{email_id}/person Email
GET https://api.planningcenteronline.com/people/v2/field_data/{field_datum_id}/person FieldDatum
GET https://api.planningcenteronline.com/people/v2/forms/{form_id}/form_submissions/{form_submission_id}/person FormSubmission
GET https://api.planningcenteronline.com/people/v2/households/{household_id}/household_memberships/{household_membership_id}/person HouseholdMembership
GET https://api.planningcenteronline.com/people/v2/households/{household_id}/people Household
  • non_pending
  • without_deceased
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/created_by List
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/people List
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/list_results/{list_result_id}/person ListResult
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/shares/{list_share_id}/person ListShare
GET https://api.planningcenteronline.com/people/v2/lists/{list_id}/updated_by List
GET https://api.planningcenteronline.com/people/v2/message_groups/{message_group_id}/from MessageGroup
GET https://api.planningcenteronline.com/people/v2/messages/{message_id}/to Message
GET https://api.planningcenteronline.com/people/v2/note_categories/{note_category_id}/shares/{note_category_share_id}/person NoteCategoryShare
GET https://api.planningcenteronline.com/people/v2/note_categories/{note_category_id}/subscribers NoteCategory
GET https://api.planningcenteronline.com/people/v2/note_category_subscriptions/{note_category_subscription_id}/person NoteCategorySubscription
GET https://api.planningcenteronline.com/people/v2/notes/{note_id}/created_by Note
GET https://api.planningcenteronline.com/people/v2/notes/{note_id}/person Note
GET https://api.planningcenteronline.com/people/v2/people Organization
  • admins
  • created_since

    filter people created in the last 24 hours; pass an additional time parameter in ISO 8601 format to specify your own timeframe

  • organization_admins
GET https://api.planningcenteronline.com/people/v2/people_imports/{people_import_id}/histories/{people_import_history_id}/person PeopleImportHistory
GET https://api.planningcenteronline.com/people/v2/reports/{report_id}/created_by Report
GET https://api.planningcenteronline.com/people/v2/reports/{report_id}/updated_by Report
GET https://api.planningcenteronline.com/people/v2/social_profiles/{social_profile_id}/person SocialProfile
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_cards/{workflow_card_id}/assignee WorkflowCard
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_cards/{workflow_card_id}/person WorkflowCard
GET https://api.planningcenteronline.com/people/v2/people/{person_id}/workflow_shares/{workflow_share_id}/person WorkflowShare
GET https://api.planningcenteronline.com/people/v2/workflows/{workflow_id}/shared_people Workflow
GET https://api.planningcenteronline.com/people/v2/workflows/{workflow_id}/steps/{step_id}/assignee_summaries/{workflow_step_assignee_summary_id}/person WorkflowStepAssigneeSummary
GET https://api.planningcenteronline.com/people/v2/workflows/{workflow_id}/steps/{workflow_step_id}/default_assignee WorkflowStep