---
title: "Get the user's current state."
method: GET
path: "/_matrix/client/v3/initialSync"
tags: ["Room participation"]
deprecated: true
---

# Get the user's current state.

`GET /_matrix/client/v3/initialSync`

## Request

- Base URL: `https://matrix.org`
- URL: `https://matrix.org/_matrix/client/v3/initialSync`
- Auth: one of:
  - API key in query parameter `access_token`
  - HTTP bearer
- TypeScript: <https://skmtc.dev/matrix/apis/matrix-client-server-api/docs/_matrix/client/v3/initialSync/get.ts> (a function with typed inputs; its response is checked against the schema)

> **Deprecated.**

This returns the full state for this user, with an optional limit on the
number of messages per room to return.

This endpoint was deprecated in r0 of this specification. Clients
should instead call the [`/sync`](https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv3sync)
endpoint with no `since` parameter. See
the [migration guide](https://matrix.org/docs/guides/migrating-from-client-server-api-v-1#deprecated-endpoints).

## Query parameters

- `limit` integer
- `archived` boolean

## Response `200`

The user's current state.

- object
  - `account_data` object[]: The global private data created by this user.
    - `content` object, required: The fields in this object will vary depending on the type of event. When interacting with the REST API, this is the HTTP body.
    - `type` string, required: The type of event, as defined by [the event type specification](https://spec.matrix.org/v1.19/client-server-api/#types-of-room-events).
  - `end` string, required: A token which correlates to the end of the timelines returned. This token should be used with the `/events` endpoint to listen for new events.
  - `presence` object[], required: A list of presence events.
    - `content` object, required: The fields in this object will vary depending on the type of event. When interacting with the REST API, this is the HTTP body.
    - `type` string, required: The type of event, as defined by [the event type specification](https://spec.matrix.org/v1.19/client-server-api/#types-of-room-events).
  - `rooms` object[], required
    - `account_data` object[]: The private data that this user has attached to this room.
      - `content` object, required: The fields in this object will vary depending on the type of event. When interacting with the REST API, this is the HTTP body.
      - `type` string, required: The type of event, as defined by [the event type specification](https://spec.matrix.org/v1.19/client-server-api/#types-of-room-events).
    - `invite` object: The format used for events when they are returned from API endpoints such as `/sync`, where the `room_id` is implied elsewhere in the response.
      - `content` object, required: The body of this event, as created by the client which sent it.
      - `event_id` string, mx-event-id, required: The globally unique identifier for this event.
      - `origin_server_ts` integer, required: Timestamp (in milliseconds since the unix epoch) on originating homeserver when this event was sent.
      - `sender` string, mx-user-id, required: Contains the fully-qualified ID of the user who sent this event.
      - `state_key` string: Present if, and only if, this event is a *state* event. The key making this piece of state unique in the room. Note that it is often an empty string. State keys starting with an `@` are reserved for referencing user IDs, such as room members. With the exception of a few events, state events set with a given user's ID as the state key MUST only be set by that user.
      - `type` string, required: The type of the event.
      - `unsigned` object: Contains optional extra information about the event.
        - `age` integer: The time in milliseconds that has elapsed since the event was sent. This field is generated by the local homeserver, and may be incorrect if the local time on at least one of the two servers is out of sync, which can cause the age to either be negative or greater than it actually is.
        - `membership` string: The room membership of the user making the request, at the time of the event. This property is the value of the `membership` property of the requesting user's [`m.room.member`](https://spec.matrix.org/v1.19/client-server-api#mroommember) state at the point of the event, including any changes caused by the event. If the user had yet to join the room at the time of the event (i.e, they have no `m.room.member` state), this property is set to `leave`. Homeservers SHOULD populate this property wherever practical, but they MAY omit it if necessary (for example, if calculating the value is expensive, servers might choose to only implement it in encrypted rooms). The property is *not* normally populated in events pushed to application services via the application service transaction API (where there is no clear definition of "requesting user").
        - `prev_content` object: The `content` of the previous state event that was replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event, and the client has permission to see the previous event.
        - `redacted_because` object: The event that redacted this event, if any.
        - `replaces_state` string, mx-event-id: The event ID of the state event replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event. Unlike `prev_content`, this field is included regardless of history visibility.
        - `transaction_id` string: The client-supplied [transaction ID](https://spec.matrix.org/v1.19/client-server-api/#transaction-identifiers), for example, provided via `PUT /_matrix/client/v3/rooms/{roomId}/send/{eventType}/{txnId}`, if the client being given the event is the same one which sent it.
      - `room_id` string, mx-room-id, required: The ID of the room associated with this event.
    - `membership` 'invite' | 'join' | 'leave' | 'ban', required: The user's membership state in this room.
    - `messages` object: The pagination chunk for this room.
      - `chunk` object[], required: If the user is a member of the room this will be a list of the most recent messages for this room. If the user has left the room this will be the messages that preceded them leaving. This array will consist of at most `limit` elements.
        - `content` object, required: The body of this event, as created by the client which sent it.
        - `event_id` string, mx-event-id, required: The globally unique identifier for this event.
        - `origin_server_ts` integer, required: Timestamp (in milliseconds since the unix epoch) on originating homeserver when this event was sent.
        - `sender` string, mx-user-id, required: Contains the fully-qualified ID of the user who sent this event.
        - `state_key` string: Present if, and only if, this event is a *state* event. The key making this piece of state unique in the room. Note that it is often an empty string. State keys starting with an `@` are reserved for referencing user IDs, such as room members. With the exception of a few events, state events set with a given user's ID as the state key MUST only be set by that user.
        - `type` string, required: The type of the event.
        - `unsigned` object: Contains optional extra information about the event.
          - `age` integer: The time in milliseconds that has elapsed since the event was sent. This field is generated by the local homeserver, and may be incorrect if the local time on at least one of the two servers is out of sync, which can cause the age to either be negative or greater than it actually is.
          - `membership` string: The room membership of the user making the request, at the time of the event. This property is the value of the `membership` property of the requesting user's [`m.room.member`](https://spec.matrix.org/v1.19/client-server-api#mroommember) state at the point of the event, including any changes caused by the event. If the user had yet to join the room at the time of the event (i.e, they have no `m.room.member` state), this property is set to `leave`. Homeservers SHOULD populate this property wherever practical, but they MAY omit it if necessary (for example, if calculating the value is expensive, servers might choose to only implement it in encrypted rooms). The property is *not* normally populated in events pushed to application services via the application service transaction API (where there is no clear definition of "requesting user").
          - `prev_content` object: The `content` of the previous state event that was replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event, and the client has permission to see the previous event.
          - `redacted_because` object: The event that redacted this event, if any.
          - `replaces_state` string, mx-event-id: The event ID of the state event replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event. Unlike `prev_content`, this field is included regardless of history visibility.
          - `transaction_id` string: The client-supplied [transaction ID](https://spec.matrix.org/v1.19/client-server-api/#transaction-identifiers), for example, provided via `PUT /_matrix/client/v3/rooms/{roomId}/send/{eventType}/{txnId}`, if the client being given the event is the same one which sent it.
        - `room_id` string, mx-room-id, required: The ID of the room associated with this event.
      - `end` string, required: A token which correlates to the end of `chunk`. Can be passed to [`/rooms/<room_id>/messages`](https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv3roomsroomidmessages) to retrieve later events.
      - `start` string: A token which correlates to the start of `chunk`. Can be passed to [`/rooms/<room_id>/messages`](https://spec.matrix.org/v1.19/client-server-api/#get_matrixclientv3roomsroomidmessages) to retrieve earlier events. If no earlier events are available, this property may be omitted from the response.
    - `room_id` string, mx-room-id, required: The ID of this room.
    - `state` object[]: If the user is a member of the room this will be the current state of the room as a list of events. If the user has left the room this will be the state of the room when they left it.
      - `content` object, required: The body of this event, as created by the client which sent it.
      - `event_id` string, mx-event-id, required: The globally unique identifier for this event.
      - `origin_server_ts` integer, required: Timestamp (in milliseconds since the unix epoch) on originating homeserver when this event was sent.
      - `sender` string, mx-user-id, required: Contains the fully-qualified ID of the user who sent this event.
      - `state_key` string: Present if, and only if, this event is a *state* event. The key making this piece of state unique in the room. Note that it is often an empty string. State keys starting with an `@` are reserved for referencing user IDs, such as room members. With the exception of a few events, state events set with a given user's ID as the state key MUST only be set by that user.
      - `type` string, required: The type of the event.
      - `unsigned` object: Contains optional extra information about the event.
        - `age` integer: The time in milliseconds that has elapsed since the event was sent. This field is generated by the local homeserver, and may be incorrect if the local time on at least one of the two servers is out of sync, which can cause the age to either be negative or greater than it actually is.
        - `membership` string: The room membership of the user making the request, at the time of the event. This property is the value of the `membership` property of the requesting user's [`m.room.member`](https://spec.matrix.org/v1.19/client-server-api#mroommember) state at the point of the event, including any changes caused by the event. If the user had yet to join the room at the time of the event (i.e, they have no `m.room.member` state), this property is set to `leave`. Homeservers SHOULD populate this property wherever practical, but they MAY omit it if necessary (for example, if calculating the value is expensive, servers might choose to only implement it in encrypted rooms). The property is *not* normally populated in events pushed to application services via the application service transaction API (where there is no clear definition of "requesting user").
        - `prev_content` object: The `content` of the previous state event that was replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event, and the client has permission to see the previous event.
        - `redacted_because` object: The event that redacted this event, if any.
        - `replaces_state` string, mx-event-id: The event ID of the state event replaced by this event. This field is generated by the local homeserver, and is only returned if the event is a state event. Unlike `prev_content`, this field is included regardless of history visibility.
        - `transaction_id` string: The client-supplied [transaction ID](https://spec.matrix.org/v1.19/client-server-api/#transaction-identifiers), for example, provided via `PUT /_matrix/client/v3/rooms/{roomId}/send/{eventType}/{txnId}`, if the client being given the event is the same one which sent it.
      - `room_id` string, mx-room-id, required: The ID of the room associated with this event.
    - `visibility` 'private' | 'public': Whether this room is visible to the `/publicRooms` API or not.

## Other responses

- `404`: There is no avatar URL for this user or this user does not exist.

---

[API](https://skmtc.dev/matrix/apis/matrix-client-server-api.md) - [All operations](https://skmtc.dev/matrix/apis/matrix-client-server-api/llms.txt) - [OpenAPI document](https://skmtc.dev/matrix/apis/matrix-client-server-api/revisions/c7fe4072c681?raw)
