Federation API

Federation endpoints are under /_matrix/federation/v1/ and use signature-based authentication via the Authorization: X-Matrix header (not bearer tokens).

Transaction Endpoint

Send Transaction

PUT /_matrix/federation/v1/send/{txnId}

Sends a batch of PDUs (Persistent Data Units) and EDUs (Ephemeral Data Units) to a remote server.

Join/Leave/Invite Endpoints

Make Join

GET /_matrix/federation/v1/make_join/{roomId}/{userId}

Prepare a join event for a remote user to sign.

Send Join

PUT /_matrix/federation/v1/send_join/{roomId}/{eventId}

Submit a signed join event to the room.

Make Leave

GET /_matrix/federation/v1/make_leave/{roomId}/{userId}

Prepare a leave event for a remote user.

Send Leave

PUT /_matrix/federation/v1/send_leave/{roomId}/{eventId}

Submit a signed leave event.

Invite (v2)

PUT /_matrix/federation/v2/invite/{roomId}/{eventId}

Invite a remote user to a room. Uses v2 prefix.

State Endpoints

Get Room State

GET /_matrix/federation/v1/state/{roomId}

Get State IDs

GET /_matrix/federation/v1/state_ids/{roomId}

Get Event Auth

GET /_matrix/federation/v1/event_auth/{roomId}/{eventId}

Backfill

GET /_matrix/federation/v1/backfill/{roomId}

Returns events before the specified prev_batch token with pagination.

Get Missing Events

POST /_matrix/federation/v1/get_missing_events/{roomId}
{
  "limit": 20,
  "min_depth": 0,
  "last_known_events": ["$event1", "$event2"]
}

Get Event

GET /_matrix/federation/v1/event/{eventId}

Timestamp to Event

GET /_matrix/federation/v1/timestamp_to_event/{roomId}

Find the closest event to a given timestamp.

Query Endpoints

Query Profile

GET /_matrix/federation/v1/query/profile?user_id=@alice:localhost&fields=displayname,avatar_url

Query Directory

GET /_matrix/federation/v1/query/directory?room_alias=#room:localhost

Query Public Rooms

GET /_matrix/federation/v1/query/publicRooms

Query User Devices

GET /_matrix/federation/v1/query/user_devices?user_id=@alice:localhost

Query Keys

GET /_matrix/federation/v1/query/keys?server_name=localhost

Space & Relations

Hierarchy

GET /_matrix/federation/v1/hierarchy/{roomId}

Returns the space hierarchy tree (stub implementation).

Relations

GET /_matrix/federation/v1/relations/{roomId}/{eventId}

Returns related events (stub implementation).

Key Server

Get Server Key

GET /_matrix/key/v2/server

Returns the server's signing keys and valid_until timestamp.

Query Remote Key

GET /_matrix/key/v2/query/{server}

Query another server's signing key (notary).