Skip to content

List messages

message.list(MessageListParams**kwargs) -> MessageListResponse
GET/v1/messages

Returns a paginated list of messages. Results are sorted by when the record was created in Lightfield (createdAt), newest first. This is not the time the message was sent. Use offset and limit to paginate through results. Each message is filtered per caller to those whose channel they may see, and includes a read-only accessLevel. See List endpoints for more information about pagination.

Required scope: messages:read

Rate limit category: Search

ParametersExpand Collapse
limit: Optional[int]

Maximum number of records to return. Defaults to 25, maximum 25.

minimum1
maximum9007199254740991
offset: Optional[int]

Number of records to skip for pagination. Defaults to 0.

minimum0
maximum9007199254740991
ReturnsExpand Collapse
class MessageListResponse: …
data: List[Data]

Array of message objects for the current page.

id: str

Unique identifier for the entity.

access_level: Literal["FULL", "METADATA"]

The caller’s resolved access level for this message.

One of the following:
"FULL"
"METADATA"
created_at: str

ISO 8601 timestamp of when the entity was created.

fields: Dict[str, DataFields]

Map of field names to their typed values. System fields are prefixed with $ (e.g. $name, $email); custom attributes use their bare slug.

value: Optional[DataFieldsValue]

The field value, or null if unset.

One of the following:
str
float
bool
List[str]
class DataFieldsValueAddress: …
city: Optional[str]

City name.

country: Optional[str]

2-letter ISO 3166-1 alpha-2 country code.

latitude: Optional[float]

Latitude coordinate.

longitude: Optional[float]

Longitude coordinate.

postal_code: Optional[str]

Postal or ZIP code.

state: Optional[str]

State or province.

street: Optional[str]

Street address line 1.

street2: Optional[str]

Street address line 2.

class DataFieldsValueFullName: …
first_name: Optional[str]

The contact’s first name.

last_name: Optional[str]

The contact’s last name.

value_type: Literal["ADDRESS", "CHECKBOX", "CURRENCY", 13 more]

The data type of the field.

One of the following:
"ADDRESS"
"CHECKBOX"
"CURRENCY"
"DATE"
"DATETIME"
"EMAIL"
"FULL_NAME"
"MARKDOWN"
"MULTI_SELECT"
"NUMBER"
"SINGLE_SELECT"
"SOCIAL_HANDLE"
"TELEPHONE"
"TEXT"
"URL"
"HTML"
object_type: Literal["message"]

Always message.

relationships: Dict[str, DataRelationships]

Map of relationship names to their associated entities. System relationships are prefixed with $ (e.g. $owner, $contact). A self-referential relationship keeps its merged values and includes optional directional values. List filters select the current record’s role with :asSource or :asDestination, for example ?parent:asSource[contains]=account_id.

cardinality: str

Whether the relationship is has_one or has_many.

object_type: str

The type of the related object (e.g. account, contact).

values: List[str]

IDs of the related entities.

directions: Optional[DataRelationshipsDirections]

Directional values for a self-referential relationship. List filters use the relationship key with :asSource or :asDestination; writes continue to use the bare key.

as_destination: DataRelationshipsDirectionsAsDestination

The current record is the destination (incoming) endpoint.

cardinality: Literal["HAS_ONE", "HAS_MANY"]

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: List[str]

IDs of the related entities in this direction.

as_source: DataRelationshipsDirectionsAsSource

The current record is the source (outgoing) endpoint.

cardinality: Literal["HAS_ONE", "HAS_MANY"]

Whether this endpoint direction is HAS_ONE or HAS_MANY.

One of the following:
"HAS_ONE"
"HAS_MANY"
values: List[str]

IDs of the related entities in this direction.

updated_at: Optional[str]

ISO 8601 timestamp of when the entity was last updated, or null.

external_id: Optional[str]

External identifier for the entity, or null if unset.

object: str

The object type, always "list".

total_count: int

Total number of entities matching the query.

minimum0
maximum9007199254740991

List messages

from lightfield import Lightfield

client = Lightfield(
    api_key="My API Key",
)
message_list_response = client.message.list()
print(message_list_response.data)
{
  "data": [
    {
      "id": "msg_cm0abc456def789",
      "accessLevel": "FULL",
      "createdAt": "2026-05-01T09:00:00.000Z",
      "fields": {
        "$text": {
          "value": "Thanks — pushed the fix, should be live shortly.",
          "valueType": "TEXT"
        },
        "$sentAt": {
          "value": "2026-05-01T08:59:30.000Z",
          "valueType": "DATETIME"
        },
        "$provider": {
          "value": "SLACK",
          "valueType": "TEXT"
        },
        "$providerThreadId": {
          "value": "1714553970.123456",
          "valueType": "TEXT"
        },
        "$editedAt": {
          "value": "string",
          "valueType": "DATETIME"
        }
      },
      "httpLink": null,
      "objectType": "message",
      "relationships": {
        "$channel": {
          "cardinality": "has_one",
          "objectType": "channel",
          "values": [
            "chn_cm2def456ghi789"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        },
        "$attachment": {
          "cardinality": "has_many",
          "objectType": "file",
          "values": [
            "fil_cm3attach789xyz012"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        }
      },
      "updatedAt": "2026-05-01T09:00:00.000Z",
      "externalId": "externalId"
    },
    {
      "id": "msg_cm1xyz123uvw456",
      "accessLevel": "FULL",
      "createdAt": "2026-04-29T15:12:00.000Z",
      "fields": {
        "$text": {
          "value": "Can we sync on pricing tomorrow?",
          "valueType": "TEXT"
        },
        "$sentAt": {
          "value": "2026-04-29T15:11:30.000Z",
          "valueType": "DATETIME"
        },
        "$provider": {
          "value": "SLACK",
          "valueType": "TEXT"
        },
        "$providerThreadId": {
          "value": "string",
          "valueType": "TEXT"
        },
        "$editedAt": {
          "value": "string",
          "valueType": "DATETIME"
        }
      },
      "httpLink": null,
      "objectType": "message",
      "relationships": {
        "$channel": {
          "cardinality": "has_one",
          "objectType": "channel",
          "values": [
            "chn_cm2def456ghi789"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        },
        "$attachment": {
          "cardinality": "has_many",
          "objectType": "file",
          "values": [
            "fil_cm3attach789xyz012"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        }
      },
      "updatedAt": "2026-04-29T15:12:00.000Z",
      "externalId": "externalId"
    }
  ],
  "object": "list",
  "totalCount": 2
}
Returns Examples
{
  "data": [
    {
      "id": "msg_cm0abc456def789",
      "accessLevel": "FULL",
      "createdAt": "2026-05-01T09:00:00.000Z",
      "fields": {
        "$text": {
          "value": "Thanks — pushed the fix, should be live shortly.",
          "valueType": "TEXT"
        },
        "$sentAt": {
          "value": "2026-05-01T08:59:30.000Z",
          "valueType": "DATETIME"
        },
        "$provider": {
          "value": "SLACK",
          "valueType": "TEXT"
        },
        "$providerThreadId": {
          "value": "1714553970.123456",
          "valueType": "TEXT"
        },
        "$editedAt": {
          "value": "string",
          "valueType": "DATETIME"
        }
      },
      "httpLink": null,
      "objectType": "message",
      "relationships": {
        "$channel": {
          "cardinality": "has_one",
          "objectType": "channel",
          "values": [
            "chn_cm2def456ghi789"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        },
        "$attachment": {
          "cardinality": "has_many",
          "objectType": "file",
          "values": [
            "fil_cm3attach789xyz012"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        }
      },
      "updatedAt": "2026-05-01T09:00:00.000Z",
      "externalId": "externalId"
    },
    {
      "id": "msg_cm1xyz123uvw456",
      "accessLevel": "FULL",
      "createdAt": "2026-04-29T15:12:00.000Z",
      "fields": {
        "$text": {
          "value": "Can we sync on pricing tomorrow?",
          "valueType": "TEXT"
        },
        "$sentAt": {
          "value": "2026-04-29T15:11:30.000Z",
          "valueType": "DATETIME"
        },
        "$provider": {
          "value": "SLACK",
          "valueType": "TEXT"
        },
        "$providerThreadId": {
          "value": "string",
          "valueType": "TEXT"
        },
        "$editedAt": {
          "value": "string",
          "valueType": "DATETIME"
        }
      },
      "httpLink": null,
      "objectType": "message",
      "relationships": {
        "$channel": {
          "cardinality": "has_one",
          "objectType": "channel",
          "values": [
            "chn_cm2def456ghi789"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        },
        "$attachment": {
          "cardinality": "has_many",
          "objectType": "file",
          "values": [
            "fil_cm3attach789xyz012"
          ],
          "directions": {
            "asDestination": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            },
            "asSource": {
              "cardinality": "HAS_ONE",
              "values": [
                "string"
              ]
            }
          }
        }
      },
      "updatedAt": "2026-04-29T15:12:00.000Z",
      "externalId": "externalId"
    }
  ],
  "object": "list",
  "totalCount": 2
}