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](#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 "inactivated_at" to the current time and make the profile inactive. Set to anything else to clear "inactivated_at" 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 search_name_or_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 search_name_or_email_or_phone_number ?where[search_name_or_email_or_phone_number]=string
search_phone_number where[search_phone_number] string Query on a specific search_phone_number ?where[search_phone_number]=string
search_phone_number_e164 where[search_phone_number_e164] string Query on a specific search_phone_number_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 "inactivated_at" to the current time and make the profile inactive. Set to anything else to clear "inactivated_at" 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
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_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}/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}/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
  • 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