Supported APIs

June 16, 2026 ยท View on GitHub

Ketesa uses various APIs to manage Matrix homeservers and related services. This document lists all supported APIs and their implementation status.

Note: compiled against Synapse v1.151.0 and MAS v1.15.0. It isn't updated every release, so file a PR if an endpoint here is wrong or has moved.

Legend: โœ… fully implemented ยท ๐ŸŸก in progress ยท โŒ not implemented ยท โญ๏ธ superseded (newer version available)


Synapse Admin API

Synapse Admin API documentation โ†’

Server Version

EndpointMethodDescriptionStatus
/_synapse/admin/v1/server_versionGETGet running Synapse versionโœ…

Users

EndpointMethodDescriptionStatus
/_synapse/admin/v2/usersGETList all local user accountsโญ๏ธ
/_synapse/admin/v3/usersGETList all local user accounts (v3)โœ…
/_synapse/admin/v2/users/<user_id>GETQuery user account detailsโœ…
/_synapse/admin/v2/users/<user_id>PUTCreate or modify user accountโœ…
/_synapse/admin/v1/whois/<user_id>GETQuery user sessions/connectionsโœ…
/_synapse/admin/v1/deactivate/<user_id>POSTDeactivate/erase user accountโœ…
/_synapse/admin/v1/suspend/<user_id>PUTSuspend or unsuspend userโœ…
/_synapse/admin/v1/reset_password/<user_id>POSTReset user passwordโœ…
/_synapse/admin/v1/users/<user_id>/adminGETCheck if user is adminโญ๏ธ
/_synapse/admin/v1/users/<user_id>/adminPUTChange user admin statusโญ๏ธ
/_synapse/admin/v1/users/<user_id>/joined_roomsGETList user's joined roomsโœ…
/_synapse/admin/v1/users/<user_id>/membershipsGETList user's room membershipsโœ…
/_synapse/admin/v1/users/<user_id>/mediaGETList media uploaded by userโœ…
/_synapse/admin/v1/users/<user_id>/mediaDELETEDelete all media uploaded by userโœ…
/_synapse/admin/v1/users/<user_id>/accountdataGETGet user account dataโœ…
/_synapse/admin/v1/users/<user_id>/pushersGETList user pushersโœ…
/_synapse/admin/v1/users/<user_id>/override_ratelimitGETGet user ratelimit overridesโœ…
/_synapse/admin/v1/users/<user_id>/override_ratelimitPOSTSet user ratelimit overridesโœ…
/_synapse/admin/v1/users/<user_id>/override_ratelimitDELETEDelete user ratelimit overridesโœ…
/_synapse/admin/v1/users/<user_id>/loginPOSTLogin as user (get access token)โœ…
/_synapse/admin/v1/users/<user_id>/shadow_banPOSTShadow-ban a userโœ…
/_synapse/admin/v1/users/<user_id>/shadow_banDELETERemove shadow-ban from userโœ…
/_synapse/admin/v1/users/<user_id>/_allow_cross_signing_replacement_without_uiaPOSTAllow cross-signing replacement without UIAโœ…
/_synapse/admin/v1/users/<user_id>/sent_invite_countGETCount invites sent by userโœ…
/_synapse/admin/v1/users/<user_id>/cumulative_joined_room_countGETCumulative joined room countโœ…
/_synapse/admin/v1/username_availableGETCheck username availabilityโœ…
/_synapse/admin/v1/auth_providers/<provider>/users/<external_id>GETFind user by auth provider IDโœ…
/_synapse/admin/v1/threepid/<medium>/users/<address>GETFind user by third-party IDโœ…
/_synapse/admin/v1/user/<user_id>/redactPOSTRedact all events from a userโœ…
/_synapse/admin/v1/user/redact_status/<redact_id>GETCheck user redaction statusโœ…

User Devices

EndpointMethodDescriptionStatus
/_synapse/admin/v2/users/<user_id>/devicesGETList all devices for userโœ…
/_synapse/admin/v2/users/<user_id>/devicesPOSTCreate a device for userโœ…
/_synapse/admin/v2/users/<user_id>/devices/<device_id>GETGet single device infoโญ๏ธ
/_synapse/admin/v2/users/<user_id>/devices/<device_id>PUTUpdate device metadataโœ…
/_synapse/admin/v2/users/<user_id>/devices/<device_id>DELETEDelete a deviceโœ…
/_synapse/admin/v2/users/<user_id>/delete_devicesPOSTDelete multiple devicesโœ…

Rooms

EndpointMethodDescriptionStatus
/_synapse/admin/v1/roomsGETList rooms on serverโœ…
/_synapse/admin/v1/rooms/<room_id>GETGet room detailsโœ…
/_synapse/admin/v1/rooms/<room_id>/membersGETGet room membersโœ…
/_synapse/admin/v1/rooms/<room_id>/stateGETGet room state eventsโœ…
/_synapse/admin/v1/rooms/<room_id>/messagesGETGet messages from a roomโœ…
/_synapse/admin/v1/rooms/<room_id>/timestamp_to_eventGETFind event by timestampโœ…
/_synapse/admin/v1/rooms/<room_id>/context/<event_id>GETGet event contextโœ…
/_synapse/admin/v1/rooms/<room_id>/hierarchyGETGet space/room hierarchyโœ…
/_synapse/admin/v1/rooms/<room_id>/blockPUTBlock or unblock a roomโœ…
/_synapse/admin/v1/rooms/<room_id>/blockGETGet room block statusโœ…
/_synapse/admin/v1/rooms/<room_id>DELETEDelete a room (v1, synchronous)โญ๏ธ
/_synapse/admin/v2/rooms/<room_id>DELETEDelete a room (v2, asynchronous)โœ…
/_synapse/admin/v2/rooms/<room_id>/delete_statusGETQuery room delete statusโญ๏ธ
/_synapse/admin/v2/rooms/delete_status/<delete_id>GETQuery delete status by IDโœ…
/_synapse/admin/v1/rooms/<room_id_or_alias>/make_room_adminPOSTGrant user highest power levelโœ…
/_synapse/admin/v1/rooms/<room_id_or_alias>/forward_extremitiesGETCheck forward extremitiesโœ…
/_synapse/admin/v1/rooms/<room_id_or_alias>/forward_extremitiesDELETEDelete forward extremitiesโœ…

Registration Tokens

EndpointMethodDescriptionStatus
/_synapse/admin/v1/registration_tokensGETList all registration tokensโœ…
/_synapse/admin/v1/registration_tokens/<token>GETGet specific registration tokenโœ…
/_synapse/admin/v1/registration_tokens/newPOSTCreate a registration tokenโœ…
/_synapse/admin/v1/registration_tokens/<token>PUTUpdate a registration tokenโœ…
/_synapse/admin/v1/registration_tokens/<token>DELETEDelete a registration tokenโœ…

Media

EndpointMethodDescriptionStatus
/_synapse/admin/v1/room/<room_id>/mediaGETList all media in a roomโœ…
/_synapse/admin/v1/media/<origin>/<media_id>GETQuery media by IDโญ๏ธ
/_synapse/admin/v1/media/<server_name>/<media_id>DELETEDelete specific local mediaโœ…
/_synapse/admin/v1/media/deletePOSTDelete local media by date or sizeโœ…
/_synapse/admin/v1/media/<server_name>/deletePOSTDelete local media by date or size (deprecated)โญ๏ธ
/_synapse/admin/v1/purge_media_cachePOSTPurge old cached remote mediaโœ…
/_synapse/admin/v1/media/quarantine/<server_name>/<media_id>POSTQuarantine media by IDโœ…
/_synapse/admin/v1/media/unquarantine/<server_name>/<media_id>POSTRemove media from quarantineโœ…
/_synapse/admin/v1/room/<room_id>/media/quarantinePOSTQuarantine all media in a roomโœ…
/_synapse/admin/v1/quarantine_media/<room_id>POSTQuarantine room media (deprecated)โญ๏ธ
/_synapse/admin/v1/user/<user_id>/media/quarantinePOSTQuarantine all media of a userโœ…
/_synapse/admin/v1/media/protect/<media_id>POSTProtect media from quarantineโœ…
/_synapse/admin/v1/media/unprotect/<media_id>POSTUnprotect media from quarantineโœ…

Event Reports

EndpointMethodDescriptionStatus
/_synapse/admin/v1/event_reportsGETList reported eventsโœ…
/_synapse/admin/v1/event_reports/<report_id>GETGet specific event report detailsโœ…
/_synapse/admin/v1/event_reports/<report_id>DELETEDelete a specific event reportโœ…

User Reports

EndpointMethodDescriptionStatus
/_synapse/admin/v1/user_reportsGETList reported usersโœ…
/_synapse/admin/v1/user_reports/<report_id>GETGet specific user report detailsโœ…
/_synapse/admin/v1/user_reports/<report_id>DELETEDelete a specific user reportโœ…

Server Notices

EndpointMethodDescriptionStatus
/_synapse/admin/v1/send_server_noticePOSTSend a server notice to a userโœ…
/_synapse/admin/v1/send_server_notice/{txnId}PUTSend server notice with transaction IDโญ๏ธ

Federation

EndpointMethodDescriptionStatus
/_synapse/admin/v1/federation/destinationsGETList federation destinationsโœ…
/_synapse/admin/v1/federation/destinations/<destination>GETGet destination detailsโœ…
/_synapse/admin/v1/federation/destinations/<destination>/roomsGETList rooms for destinationโœ…
/_synapse/admin/v1/federation/destinations/<destination>/reset_connectionPOSTReset federation connectionโœ…

Experimental Features

EndpointMethodDescriptionStatus
/_synapse/admin/v1/experimental_features/<user_id>GETList experimental features for userโœ…
/_synapse/admin/v1/experimental_features/<user_id>PUTEnable/disable experimental featuresโœ…

Statistics

EndpointMethodDescriptionStatus
/_synapse/admin/v1/statistics/users/mediaGETGet users' media usage statisticsโœ…
/_synapse/admin/v1/statistics/database/roomsGETGet largest rooms by database sizeโœ…

Account Validity

EndpointMethodDescriptionStatus
/_synapse/admin/v1/account_validity/validityPOSTRenew account validityโœ…

Purge History

EndpointMethodDescriptionStatus
/_synapse/admin/v1/purge_history/<room_id>[/<event_id>]POSTPurge room historyโœ…
/_synapse/admin/v1/purge_history_status/<purge_id>GETQuery purge statusโœ…

Fetch Event

EndpointMethodDescriptionStatus
/_synapse/admin/v1/fetch_event/<event_id>GETFetch event by IDโœ…

Register (Shared-Secret Registration): superseded

Superseded: redundant with existing user creation via the User Admin API (already implemented). Shared-secret registration is built for CLI bootstrapping without an admin token, which is pointless once you're already authenticated in Ketesa.

EndpointMethodDescriptionStatus
/_synapse/admin/v1/registerGETGet registration nonceโญ๏ธ
/_synapse/admin/v1/registerPOSTCreate user via shared-secretโญ๏ธ

Room Membership

EndpointMethodDescriptionStatus
/_synapse/admin/v1/join/<room_id_or_alias>POSTJoin a user to a roomโœ…

Scheduled Tasks

EndpointMethodDescriptionStatus
/_synapse/admin/v1/scheduled_tasksGETShow scheduled tasksโœ…

Client-Server API Extensions

EndpointMethodDescriptionStatus
/_matrix/client/v3/user/<user_id>/account_data/io.element.synapse.admin_client_configGETGet admin client configurationโœ…
/_matrix/client/v3/user/<user_id>/account_data/io.element.synapse.admin_client_configPUTSet admin client configurationโœ…

Matrix Authentication Service (MAS) Admin API

MAS Admin API specification โ†’

OAuth 2.0

EndpointMethodDescriptionStatus
/oauth2/tokenPOSTRefresh access tokenโœ…

Server

EndpointMethodDescriptionStatus
/api/admin/v1/site-configGETRetrieve instance configurationโœ…
/api/admin/v1/versionGETRetrieve the currently running versionโœ…

Registration Tokens

EndpointMethodDescriptionStatus
/api/admin/v1/user-registration-tokensGETList registration tokensโœ…
/api/admin/v1/user-registration-tokens/{id}GETGet a registration tokenโœ…
/api/admin/v1/user-registration-tokensPOSTCreate a registration tokenโœ…
/api/admin/v1/user-registration-tokens/{id}PUTUpdate a registration tokenโœ…
/api/admin/v1/user-registration-tokens/{id}/revokePOSTRevoke a registration tokenโœ…
/api/admin/v1/user-registration-tokens/{id}/unrevokePOSTUnrevoke a registration tokenโœ…

Users

EndpointMethodDescriptionStatus
/api/admin/v1/usersGETList usersโœ…
/api/admin/v1/usersPOSTCreate a new userโœ…
/api/admin/v1/users/{id}GETGet user by IDโœ…
/api/admin/v1/users/by-username/{username}GETGet user by usernameโญ๏ธ
/api/admin/v1/users/{id}/set-passwordPOSTSet user passwordโœ…
/api/admin/v1/users/{id}/set-adminPOSTToggle admin flagโœ…
/api/admin/v1/users/{id}/deactivatePOSTDeactivate userโœ…
/api/admin/v1/users/{id}/reactivatePOSTReactivate userโœ…
/api/admin/v1/users/{id}/lockPOSTLock userโœ…
/api/admin/v1/users/{id}/unlockPOSTUnlock userโœ…

User Emails

EndpointMethodDescriptionStatus
/api/admin/v1/user-emailsGETList user emailsโœ…
/api/admin/v1/user-emailsPOSTAdd email to userโœ…
/api/admin/v1/user-emails/{id}GETGet email detailsโœ…
/api/admin/v1/user-emails/{id}DELETERemove email from userโœ…

Compat Sessions

EndpointMethodDescriptionStatus
/api/admin/v1/compat-sessionsGETList compatibility sessionsโœ…
/api/admin/v1/compat-sessions/{id}GETGet a compatibility sessionโœ…
/api/admin/v1/compat-sessions/{id}/finishPOSTTerminate a compatibility sessionโœ…

OAuth 2.0 Sessions

EndpointMethodDescriptionStatus
/api/admin/v1/oauth2-sessionsGETList OAuth 2.0 sessionsโœ…
/api/admin/v1/oauth2-sessions/{id}GETGet an OAuth 2.0 sessionโœ…
/api/admin/v1/oauth2-sessions/{id}/finishPOSTTerminate an OAuth 2.0 sessionโœ…

Personal Sessions

EndpointMethodDescriptionStatus
/api/admin/v1/personal-sessionsGETList personal sessionsโœ…
/api/admin/v1/personal-sessionsPOSTCreate a personal sessionโœ…
/api/admin/v1/personal-sessions/{id}GETGet personal session detailsโœ…
/api/admin/v1/personal-sessions/{id}/revokePOSTRevoke a personal sessionโœ…
/api/admin/v1/personal-sessions/{id}/regeneratePOSTRegenerate personal session tokenโœ…

Browser Sessions

EndpointMethodDescriptionStatus
/api/admin/v1/user-sessionsGETList browser sessionsโœ…
/api/admin/v1/user-sessions/{id}GETGet a browser sessionโœ…
/api/admin/v1/user-sessions/{id}/finishPOSTTerminate a browser sessionโœ…
EndpointMethodDescriptionStatus
/api/admin/v1/upstream-oauth-linksGETList upstream OAuth linksโœ…
/api/admin/v1/upstream-oauth-linksPOSTCreate an upstream OAuth linkโœ…
/api/admin/v1/upstream-oauth-links/{id}GETGet an upstream OAuth linkโœ…
/api/admin/v1/upstream-oauth-links/{id}DELETERemove an upstream OAuth linkโœ…

Upstream OAuth Providers

EndpointMethodDescriptionStatus
/api/admin/v1/upstream-oauth-providersGETList upstream OAuth providersโœ…
/api/admin/v1/upstream-oauth-providers/{id}GETGet an upstream OAuth providerโœ…

Policy Data

EndpointMethodDescriptionStatus
/api/admin/v1/policy-dataPOSTSet policy dataโœ…
/api/admin/v1/policy-data/latestGETGet latest policy dataโœ…
/api/admin/v1/policy-data/{id}GETGet policy data by IDโญ๏ธ