Skip to content

Get a contact

GET/v1/organization/{orgId}/crm/contacts/{contactId}

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

One contact with their history across the organization's events, campaigns, contracts and forms, and the team's notes. Reads only. Requires read:crm. Refused for a key restricted to particular events. Also at GET /v1/org/{orgId}/crm/contacts/{contactId}, and at GET /v1/crm/contacts/{contactId} with the organization taken from the token.

Request example

Terminal window
curl --request GET \
--url 'https://public-api.sessionboard.com/v1/organization/{orgId}/crm/contacts/{contactId}' \
--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
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.

  • contactIdstringpathrequired

    The contact ID.

Responses

200application/json

OK

  • successboolean
  • payloadobject
    Show child attributes
    • contactCrmContact
      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
    • historyCrmHistory[]
      Show child attributes
      • kindstring
        Allowed values
        "speaker", "sponsor", "exhibitor", "attendee", "campaign", "contract", "form"
      • labelstring
      • eventobject | null
        Show child attributes
        • idstring
        • namestring
        • starts_atstring<date-time> | null
      • sessionobject | null
        Show child attributes
        • idstring
        • titlestring
      • atstring<date-time> | null
    • notesCrmNote[]
      Show child attributes
      • idstring
      • textstring
      • authorstring | null
      • created_atstring<date-time>
    • pipelineCrmPipelineEntry | any | null

      The contact's open pipeline entry, if any.

      Show child attributes
      • idstring
      • contactobject
        Show child attributes
        • idstring
        • namestring
        • emailstring<email>
        • companystring | null
        • titlestring | null
        • typesstring[]
          Allowed values
          "speaker", "sme", "influencer", "exhibitor", "sponsor"
      • stageobject
        Show child attributes
        • idstring
        • labelstring
        • categorystring
          Allowed values
          "open", "won", "lost", "nurture"
      • eventobject | null
        Show child attributes
        • idinteger
        • namestring
      • entered_stage_atstring<date-time>
      • last_activity_atstring<date-time> | null
      • created_atstring<date-time>
      • contracts_countinteger
    • contractsCrmContract[]
      Show child attributes
      • idstring
      • titlestring
      • statusstring

        delivered: the signer opened the signing page. completed: everyone signed.

        Allowed values
        "created", "sent", "delivered", "completed", "declined", "voided"
      • sourcestring

        How it was sent: native is Sessionboard e-sign.

      • contactobject | null
        Show child attributes
        • idstring
        • namestring
        • emailstring<email>
      • templateobject | null
        Show child attributes
        • idstring
        • namestring
      • signer_emailstring<email> | null
      • has_pdfboolean

        The signed PDF is ready.

      • sent_atstring<date-time> | null
      • signed_atstring<date-time> | null
      • voided_atstring<date-time> | null
      • updated_atstring<date-time>

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": {
"contact": {
"id": "<string>",
"first_name": "<string>",
"last_name": "<string>",
"name": "<string>",
"email": "jane@example.com",
"company": "<string>",
"title": "<string>",
"avatar_url": "<string>",
"types": [
"speaker"
],
"tags": [
{
"id": "<string>",
"name": "<string>"
}
],
"events_count": 123,
"sessions_count": 123,
"last_activity_at": "2026-01-15T09:30:00Z",
"active": true,
"source": "<string>",
"created_at": "2026-01-15T09:30:00Z",
"href": "<string>",
"stage": {
"id": "<string>",
"label": "<string>"
}
},
"history": [
{
"kind": "speaker",
"label": "<string>",
"event": {
"id": "<string>",
"name": "<string>",
"starts_at": "2026-01-15T09:30:00Z"
},
"session": {
"id": "<string>",
"title": "<string>"
},
"at": "2026-01-15T09:30:00Z"
}
],
"notes": [
{
"id": "<string>",
"text": "<string>",
"author": "<string>",
"created_at": "2026-01-15T09:30:00Z"
}
],
"pipeline": {
"id": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"email": "jane@example.com",
"company": "<string>",
"title": "<string>",
"types": [
"speaker"
]
},
"stage": {
"id": "<string>",
"label": "<string>",
"category": "open"
},
"event": {
"id": 123,
"name": "<string>"
},
"entered_stage_at": "2026-01-15T09:30:00Z",
"last_activity_at": "2026-01-15T09:30:00Z",
"created_at": "2026-01-15T09:30:00Z",
"contracts_count": 123
},
"contracts": [
{
"id": "<string>",
"title": "<string>",
"status": "created",
"source": "<string>",
"contact": {
"id": "<string>",
"name": "<string>",
"email": "jane@example.com"
},
"template": {
"id": "<string>",
"name": "<string>"
},
"signer_email": "jane@example.com",
"has_pdf": true,
"sent_at": "2026-01-15T09:30:00Z",
"signed_at": "2026-01-15T09:30:00Z",
"voided_at": "2026-01-15T09:30:00Z",
"updated_at": "2026-01-15T09:30:00Z"
}
]
}
}