Skip to content

List people

GET/v1/organization/{orgId}/crm/people

US Region: https://public-api.sessionboard.com · EU Region: https://public-api-eu.sessionboard.com

Everyone the organization knows, one row per email: contacts, attendees, members, prospects and customers, and the team. The same People list Sessionboard Marketing reads, with the CRM view of each. Attendees and members are people, not contacts, until POST …/crm/people/add-to-contacts. Reads only. Requires read:crm. Refused for a key restricted to particular events. Also at GET /v1/org/{orgId}/crm/people, and at GET /v1/crm/people with the organization taken from the token.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/crm/people' \
--header 'x-access-token: <api-token>'

Try it

Authorization

Your token stays in this page. It is sent only to the region above and is never saved; it is gone when you leave or reload the page.

Path parameters
Query parameters
GET

Authorizations

  • x-access-tokenstringheader

    Organization API token. Generate from Organization Settings → API Tokens.

  • AuthorizationBearer <token>headeror

    OAuth 2.1 access token. Obtained via the OAuth PKCE flow at /oauth/token.

Send one of these. See Authentication.

Path parameters

  • orgIdstringpathrequired

    Your organization ID. Any other organization returns 404.

Query parameters

  • qstringquery

    Search name, email and company.

    Max length
    200
  • rolesstringquery

    Comma-separated tag chips (speaker,member): people with any of them. Also untagged.

  • all_rolesstringquery

    true: people with every tag in roles.

    Allowed values
    "true"
  • company_idstringquery

    People who work at this company.

  • rolestringquery

    Only people with this role: speaker, sponsor, attendee, member, added…

  • typestringquery

    Only people whose contact has this type.

    Allowed values
    "speaker", "sme", "influencer", "exhibitor", "sponsor"
  • memberstringquery

    Members (from the AMS) or not.

    Allowed values
    "true", "false"
  • lifecyclestringquery

    The CRM's latest lifecycle stage: customer, prospect, lead…

  • in_pipelinestringquery

    In the pipeline or not (through their contact).

    Allowed values
    "true", "false"
  • stage_idstring<uuid>query

    People at this open pipeline stage (from GET /crm/pipeline/stages). Wins over in_pipeline.

  • linkedstringquery

    Source: people linked to this connected system (its slug from facets.linked.systems, e.g. fonteva), or none for people linked to none. Each person carries linked: one entry per system with system, name, external_id, last_synced_at, direction (pull / push / both) and url (the record there, or null).

  • attendedstringquery

    Came, or registered and did not; with event_id, that event.

    Allowed values
    "yes", "no", "any"
  • event_idstringquery

    Only people of this event.

    Pattern
    ^[0-9]+$
  • warmstringquery

    Warm opportunities: 5 or more distinct webinars or events attended, not in the pipeline, not a customer.

    Allowed values
    "true"
  • activestringquery

    Active contacts in the last 365 days, or not.

    Allowed values
    "true", "false"
  • sortstringquery

    A leading - sorts descending.

    Allowed values
    "name", "-name", "company", "-company", "events_attended", "-events_attended", "webinars_attended", "-webinars_attended", "last_signal", "-last_signal"
  • pagestringquery

    Page, from 1.

    Default
    "1"
    Pattern
    ^[0-9]+$
  • per_pagestringquery

    Rows per page, up to 100.

    Default
    "50"
    Pattern
    ^[0-9]+$

Responses

200application/json

OK

  • successboolean
  • payloadCrmPersonList
    Show child attributes
    • peopleCrmPerson[]
      Show child attributes
      • keystring
      • idstring | null

        The People record id; null for someone known only from a source.

      • emailstring<email>
      • namestring | null
      • first_namestring | null
      • last_namestring | null
      • titlestring | null
      • companystring | null

        The company name as text.

      • companiesobject[]
        Show child attributes
        • idstring
        • namestring
      • rolesstring[]

        The tags set on the person.

        Allowed values
        "speaker", "member", "customer", "prospect", "influencer", "attendee"
      • derived_rolesstring[]

        Roles read from their activity (for example attendee from an attended event), not set as tags.

      • contact_idstring | null

        The linked contact, the record the pipeline and contracts use.

      • memberboolean
      • lifecyclestring | null
      • pipeline_stagestring | null
      • events_attendedinteger
      • webinars_attendedinteger
      • last_signal_atstring<date-time> | null
      • activeboolean
      • warmboolean
    • totalinteger
    • pageinteger
    • per_pageinteger
    • facetsobject

401

Missing, invalid or expired token.

403application/json

  • SCOPE_REQUIRED: the token lacks read:crm.
  • ORG_WIDE_TOKEN_REQUIRED: the key is restricted to particular events; use a key without an event restriction.
  • FORBIDDEN: the token's user cannot read the organization's contacts.
  • successboolean
  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • codestring

    A more specific reason: exists, read_only, platform_customer.

  • messagestringrequired
  • contactCrmContact

    With code: exists: the contact that has the email.

    Show child attributes
    • idstring
    • first_namestring
    • last_namestring | null
    • namestring
    • emailstring<email>
    • companystring | null
    • titlestring | null

      Job title.

    • avatar_urlstring | null
    • typesstring[]
      Allowed values
      "speaker", "sme", "influencer", "exhibitor", "sponsor"
    • tagsCrmTag[]
      Show child attributes
      • idstring
      • namestring
    • events_countinteger
    • sessions_countinteger
    • last_activity_atstring<date-time> | null
    • activeboolean

      An active contact in the last 365 days.

    • sourcestring | null

      Where the contact came from.

    • created_atstring<date-time>
    • hrefstring

      The contact in Sessionboard CRM.

    • stageobject | null

      The contact's pipeline stage; null when not in the pipeline.

      Show child attributes
      • idstring
      • labelstring

404application/json

NOT_FOUND: orgId is not the token's organization, or the contact, tag or app is not in it.

  • successboolean
  • errorstring
    Allowed values
    "VALIDATION_ERROR", "SCOPE_REQUIRED", "ORG_WIDE_TOKEN_REQUIRED", "FORBIDDEN", "NOT_FOUND", "CONFLICT", "QUOTA_EXCEEDED"
  • codestring

    A more specific reason: exists, read_only, platform_customer.

  • messagestringrequired
  • contactCrmContact

    With code: exists: the contact that has the email.

    Show child attributes
    • idstring
    • first_namestring
    • last_namestring | null
    • namestring
    • emailstring<email>
    • companystring | null
    • titlestring | null

      Job title.

    • avatar_urlstring | null
    • typesstring[]
      Allowed values
      "speaker", "sme", "influencer", "exhibitor", "sponsor"
    • tagsCrmTag[]
      Show child attributes
      • idstring
      • namestring
    • events_countinteger
    • sessions_countinteger
    • last_activity_atstring<date-time> | null
    • activeboolean

      An active contact in the last 365 days.

    • sourcestring | null

      Where the contact came from.

    • created_atstring<date-time>
    • hrefstring

      The contact in Sessionboard CRM.

    • stageobject | null

      The contact's pipeline stage; null when not in the pipeline.

      Show child attributes
      • idstring
      • labelstring

429

The token's request limit (100 requests per 15 minutes by default) or, for writes, its daily write quota. Wait Retry-After seconds.

  • Retry-Afterintegerheader

    Seconds to wait before retrying.

Response examples

{
"success": true,
"payload": {
"people": [
{
"key": "<string>",
"id": "<string>",
"email": "jane@example.com",
"name": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"title": "<string>",
"company": "<string>",
"companies": [
{
"id": "<string>",
"name": "<string>"
}
],
"roles": [
"speaker"
],
"derived_roles": [
"<string>"
],
"contact_id": "<string>",
"member": true,
"lifecycle": "<string>",
"pipeline_stage": "<string>",
"events_attended": 123,
"webinars_attended": 123,
"last_signal_at": "2026-01-15T09:30:00Z",
"active": true,
"warm": true
}
],
"total": 123,
"page": 123,
"per_page": 123,
"facets": {}
}
}