---
title: "Get subscriber by external ID path"
method: GET
path: "/subscribers/external/{externalId}"
tags: ["Subscribers"]
---

# Get subscriber by external ID path

`GET /subscribers/external/{externalId}`

Compatibility route for external IDs that do not contain path separators. Use `/subscribers/external?externalId=...` for IDs containing slashes.

## Path parameters

- `externalId` string, required

## Query parameters

- `includeMachineEngagement` boolean

## Response `200`

Successful response

- object
  - `success` boolean
  - `subscriber` DetailedSubscriber
    - `id` string
    - `email` string, email, nullable — Null for phone-only (SMS) contacts, which are identified by their phone number instead.
    - `externalId` string, nullable — Customer-owned app/customer/user ID for this subscriber
    - `firstName` string, nullable
    - `lastName` string, nullable
    - `phone` string, nullable — Phone number in E.164 format
    - `smsStatus` 'not_subscribed' | 'pending' | 'subscribed' | 'unsubscribed' — SMS marketing consent status, independent of the email status
    - `status` 'active' | 'unsubscribed' | 'bounced'
    - `emailProvider` string, nullable
    - `tags` string[]
    - `customAttributes` object
    - `createdAt` string, date-time
    - `updatedAt` string, date-time
    - `lists` SubscriberListMembership[]
      - `id` string
      - `name` string
      - `description` string, nullable
      - `isPrivate` boolean, nullable — Whether the list is private. Private lists are omitted from the hosted subscriber email preferences/unsubscribe page and cannot be subscribed to or unsubscribed from individually there. List privacy does not override a subscriber's global unsubscribe.
      - `subscribedAt` string, date-time
      - `unsubscribedAt` string, date-time, nullable
    - `sequenceEnrollments` SubscriberSequenceEnrollment[]
      - `tokenId` string
      - `sequenceId` string
      - `sequenceName` string
      - `sequenceStatus` string
      - `enrollmentStatus` string
      - `currentNodeId` string
      - `currentNodeType` string, nullable
      - `currentNodeLabel` string, nullable
      - `scheduledFor` string, date-time, nullable
      - `enteredAt` string, date-time
      - `updatedAt` string, date-time
    - `notes` SubscriberNote[]
      - `id` string
      - `companyId` string
      - `subscriberId` string
      - `authorId` string
      - `body` string
      - `createdAt` string, date-time
      - `updatedAt` string, date-time
      - `author` object, nullable
        - `id` string
        - `name` string, nullable
        - `email` string, nullable
    - `emailStats` SubscriberEmailStats
      - `sent` integer
      - `delivered` integer
      - `opened` integer
      - `clicked` integer
      - `bounced` integer
      - `unsubscribed` integer
      - `complained` integer
    - `activity` SubscriberActivityEvent[]
      - `id` string
      - `eventType` string — Email event type (send, delivery, open, click, bounce, complaint, unsubscribe, delivery_delay), "custom" for subscriber events, or an SMS event type (sms_sent, sms_delivered, sms_failed, sms_clicked, sms_opted_out). New types may be added over time.
      - `eventTime` string, date-time
      - `emailSendId` string, nullable
      - `campaignId` string, nullable
      - `clickedUrl` string, nullable
      - `machine` boolean — Whether this open/click event is classified as bot/scanner activity.
      - `engagementQuality` 'human' | 'machine' | 'asset', nullable — Engagement classification for open/click events.
      - `classificationReasons` string[] — Classification reason codes for open/click events.
      - `bounceType` string, nullable
      - `smsSendId` string, nullable — SMS send this event belongs to. Present only on sms_* events.
      - `smsErrorCode` string, nullable — Carrier or provider error code. Present only on sms_failed events.
      - `smsSegments` integer, nullable — Number of SMS segments the message was split into. Present only on sms_* events.
      - `eventName` string, nullable
      - `properties` object, nullable

## Other responses

- `404` — Subscriber not found

---

[API](https://skmtc.net/sequenzy/apis/sequenzy-api.md) · [All operations](https://skmtc.net/sequenzy/apis/sequenzy-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/sequenzy/sequenzy-api/versions/af1cf9620482/schema)
