---
title: "Lookup a customer's attributes"
method: GET
path: "/v1/customers/{customer_id}/attributes"
tags: ["Customers"]
---

# Lookup a customer's attributes

`GET /v1/customers/{customer_id}/attributes`

Return a list of attributes for a customer profile. You can use attributes to fashion segments or as liquid merge fields in your messages.

## Response `200`

Returns the `customer` and associated attributes.

- CustomerAttributesObject
  - `customer` object — The profile you referenced by ID in the request.
    - `id` string — The customer ID referenced in the request.
    - `identifiers` CustomerIdentifiers — Identifiers for the person in a response—`id`, `cio_id`, and `email`. Unset `id` or `email` values are `null`. We recommend this object over the less descriptive `customer_id`. This object doesn't include `phone`, even if your workspace uses phone numbers as an identifier; look for the person's `phone` attribute instead.
      - `email` string, email, nullable, required — A person's email address, if set.
      - `id` string, nullable, required — A person's unique ID, if set. This is the same as the `customer_id` if present.
      - `cio_id` string, required — A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.
    - `attributes` object — Contains attributes assigned to this profile, including your workspace's people-identifiers (by default, these are `id`, `email`, and `cio_id`). Attributes are all stored as strings.
      - `id` string, nullable — The ID of a customer profile, analogous to a "person" in the UI. If your workspace supports multiple identifiers (email and ID), this value can be null.
      - `email` string, nullable — The email address of the customer.
      - `cio_id` string — A unique identifier set by Customer.io, used to reference a person if you want to update their identifiers.
      - `cio_subscription_preferences` string — A person's subscription preferences as stringified JSON. If unset, preferences are computed from topic defaults; see `_cio_subscription_preferences_computed`.
      - `_cio_subscription_preferences_computed` string — A person's computed subscription preferences as stringified JSON, combining set preferences with defaults for unset topics. [Learn more about backfilled preferences](/messaging/channels/subscriptions/center/#backfill-preferences).
    - `timestamps` object — The epoch timestamps when corresponding attributes were set on the customer profile.
      - `cio_id` integer — The date-time when `cio_id` was assigned.
      - `_last_emailed` integer — The date-time when you last emailed a person.
      - `email` integer — The date-time when the person's email address was added.
      - `id` integer — The date-time when the person's ID was generated.
      - `unsubscribed` integer — The date-time when the person unsubscribed.
      - `_cio_subscription_preferences_computed` integer — Because this value is computed and not actually set on a person, this value is always 0
      - `cio_subscription_preferences` integer — The datetime when a person's subscription preferences were last updated.
      - `additionalProperties` unknown
    - `unsubscribed` boolean — If `true`, a person is globally unsubscribed from email, SMS, WhatsApp, and push. Values like `true`, `TRUE`, `1`, and `"1"` count as true; other values are treated as subscribed or topic-based.
    - `devices` DeviceObject[] — Lists the devices associated with the customer profile.
      - `id` string, required — The device token.
      - `last_used` integer — The `timestamp` when you last identified this device. If you don't pass a timestamp when you add or update a device, we use the time of the request itself. Our SDKs identify a device when a person launches their app.
      - `platform` 'ios' | 'android', required — The device/messaging platform.
      - `attributes` object — Attributes that you can reference to segment your audience—like a person's attributes, but specific to a device. These can be either the attributes defined below or custom key-value attributes.
        - `device_os` string — The operating system, including the version, on the device.
        - `device_model` string — The model of the device a person uses.
        - `app_version` string — The version of your app that a customer uses. You might target app versions to let people know when they need to update, or expose them to new features when they do.
        - `app_identifier` string — The app that the device belongs to—the **Bundle ID / App identifier** you entered with that app's push credentials. If you have more than one app, we use this attribute to send push notifications to the right app. A device without an app identifier receives push notifications you send to your [default app](/messaging/channels/push/getting-started/#the-default-app).
        - `cio_sdk_version` string — The version of the Customer.io SDK in the app.
        - `_last_status` '' | 'bounced' | 'sent' | 'suppressed' — The delivery status of the last message sent to the device—sent, bounced, or suppressed. An empty string indicates that that the device hasn't received a push yet.
        - `device_locale` string — The device's [IETF language code](/journeys/channels/localization/getting-started/#supported-languages), such as `en-MX` or `es-ES`.
        - `push_enabled` 'true' | 'false' — If `"true"`, the device is opted-in and can receive push notifications.

## Other responses

- `404` — The `customer_id` does not exist.
- `429` — Your request is over the 10-per-second limit. `Retry-After` tells you how many seconds you must wait before you send the next request.

## Changes

- **2026-09-03** `00b93971a49f` — 1 info
  - added the optional property `customer/devices/items/allOf[#/components/schemas/device_object_common]/attributes/app_identifier` to the response with the `200` status
- **2026-09-02** `5da2740beeb5` — 1 info
  - added the media type `application/json` for the response with the status `429`

[Change history](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/changes/v1/customers/:customer_id/attributes/get.md)

---

[API](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference.md) · [All operations](https://skmtc.dev/customer/apis/customer-io-journeys-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/customer/customer-io-journeys-api-reference/revisions/00b93971a49f/schema)
