Matrix Public Rooms Extractor avatar

Matrix Public Rooms Extractor

Pricing

from $0.35 / 1,000 room records

Go to Apify Store
Matrix Public Rooms Extractor

Matrix Public Rooms Extractor

Point at ANY Matrix homeserver and extract its public room directory over the Client-Server API. One row per room: room ID, name, topic, member count, canonical alias, avatar, join rule, room type. Opaque next_batch pagination; optional token unlocks search/space filters.

Pricing

from $0.35 / 1,000 room records

Rating

0.0

(0)

Developer

Datamule

Datamule

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Point at any Matrix homeserver and extract its public room directory — the list of rooms that homeserver publishes to the federation — over the Matrix Client-Server API (GET /_matrix/client/v3/publicRooms). One structured row per public room, paginated through the server's own opaque next_batch cursor.

Works against any Matrix homeserver (Synapse, Dendrite, Conduit, …) — they all speak the same Client-Server directory contract, so one actor reads them all: matrix.org, matrix.tchncs.de, gnome.modular.im, mozilla.modular.im, fedora.ems.host, and thousands more.

What you get

One row per public room, keyed on the always-present room_id:

FieldDescription
room_idCanonical room ID (e.g. !abc:matrix.org) — always present
nameRoom display name (nullable — many rooms are unnamed)
topicRoom topic / description (nullable)
canonical_aliasHuman alias, e.g. #community:matrix.org (nullable)
num_joined_membersJoined member count (may be 0)
avatar_urlRoom avatar mxc:// URI (nullable)
world_readableWhether history is world-readable
guest_can_joinWhether guests may join
join_rulee.g. public, knock, invite (nullable)
room_typee.g. m.space for spaces; null for regular rooms
_homeserverUrl / _server / _page / _rowIndex / _totalRoomCountEstimateProvenance

Input

FieldRequiredDescription
homeserverUrlHomeserver base URL, e.g. https://matrix.org
serverQuery a different server's directory through this homeserver (?server=) — usually needs a token
searchFull-text filter over name/alias/topic — uses POST, usually needs a token
roomTypeall (default) · spaces (m.space only) · rooms (exclude spaces)
accessTokenMatrix access token — unlocks search / room-type filters / federated queries
maxRecordsStop after N rooms (default 2000)
pageSizeRooms per page (default 100; server may cap lower)

Anonymous vs authenticated

The anonymous GET listing works on any homeserver that publishes its directory publicly — no token needed. The Matrix spec routes full-text search, room-type filters, and federated ?server= queries through the POST endpoint, which most homeservers gate behind an access token (they return M_MISSING_TOKEN). Supply accessToken to use those; leave it empty for a plain public-directory listing.

Example

{
"homeserverUrl": "https://matrix.org",
"maxRecords": 100
}

Use cases

  • Federation monitoring — track which rooms a homeserver publishes over time.
  • Community discovery — enumerate spaces and rooms across the Matrix network.
  • Moderation intelligence — surface newly-published rooms, aliases, topics.
  • Directory research — member-count and room-type distributions per server.

How it works

  • Anonymous GET /_matrix/client/v3/publicRooms by default; POST with a filter only when search / roomType is set.
  • Opaque-cursor pagination: the response next_batch is echoed as the next request's since; the walk stops when the server omits it. The total_room_count_estimate is treated as a hint, never a page terminator.
  • Rate limits (M_LIMIT_EXCEEDED) are honored via retry_after_ms backoff.
  • Fails fast (never a fabricated empty success) if the homeserver is unreachable, rejects the query (auth/forbidden), or the directory matched zero rooms.

Pricing

Pay-per-event: $0.0005 per room record (tiered volume discount by subscription tier). You pay only for rooms actually emitted.