Developers · Beta
Remoting SDK
Remoting.org speaks the open Matrix client-server protocol, so you can build your own clients, bots and integrations with any Matrix SDK, or plain HTTP.
Homeserver
https://matrix.remoting.org
Server name
remoting.org
IDs look like
@alice:remoting.org
STEP 1
Register an account
Registration is a short handshake. Start it to get a session, solve the Remoting captcha (a small proof-of-work: find a nonce so sha256(salt + nonce) begins with the required number of zero bits), then finish with the dummy stage. Prefer the website? Create an account at chat.remoting.org.
# 1. start: 401 + session id + required stages
curl -s -X POST https://matrix.remoting.org/_matrix/client/v3/register \
-d '{"username":"alice","password":"a-long-password"}'
# 2. get a captcha challenge, solve it (see the Python tab), then send it
curl -s https://chat.remoting.org/signup/challenge
# -> {"salt":"…","exp":…,"difficulty":17,"sig":"…"}
# response = base64url(JSON {salt, exp, sig, nonce})
curl -s -X POST https://matrix.remoting.org/_matrix/client/v3/register \
-d '{"username":"alice","password":"a-long-password",
"auth":{"type":"m.login.recaptcha","session":"SESSION","response":"TOKEN"}}'
# 3. finish
curl -s -X POST https://matrix.remoting.org/_matrix/client/v3/register \
-d '{"username":"alice","password":"a-long-password",
"auth":{"type":"m.login.dummy","session":"SESSION"}}'
# -> {"user_id":"@alice:remoting.org","access_token":"…"} STEP 2
Log in
Exchange a username and password for an access token. Send it as a Bearer token on every other request.
curl -s -X POST https://matrix.remoting.org/_matrix/client/v3/login -d '{
"type": "m.login.password",
"identifier": {"type": "m.id.user", "user": "alice"},
"password": "a-long-password"
}'
# -> {"access_token":"syt_…","user_id":"@alice:remoting.org", …}
export TOKEN=syt_… STEP 3
Create a room
Make a private room and invite people by their Remoting ID. Use preset public_chat and a room_alias_name for a public one.
curl -s -X POST https://matrix.remoting.org/_matrix/client/v3/createRoom \
-H "Authorization: Bearer $TOKEN" -d '{
"name": "Project chat",
"preset": "private_chat",
"invite": ["@bob:remoting.org"]
}'
# -> {"room_id":"!abc123:remoting.org"} STEP 4
Join a room
Join a public room by alias, or any room you were invited to by its ID. The community room is #remoting.org:remoting.org.
# '#' and ':' must be URL-encoded
curl -s -X POST "https://matrix.remoting.org/_matrix/client/v3/join/%23remoting.org%3Aremoting.org" \
-H "Authorization: Bearer $TOKEN" -d '{}' STEP 5
Send a message
Messages are events. The transaction ID at the end makes retries safe: re-sending the same ID never double-posts.
curl -s -X PUT "https://matrix.remoting.org/_matrix/client/v3/rooms/!abc123:remoting.org/send/m.room.message/txn-$(date +%s%N)" \
-H "Authorization: Bearer $TOKEN" -d '{"msgtype":"m.text","body":"Hello, Remoting!"}' STEP 6
Send a file
Upload the bytes first to get a content URI (mxc://…), then send a message that points at it. Use msgtype m.image for pictures.
curl -s -X POST "https://matrix.remoting.org/_matrix/media/v3/upload?filename=report.pdf" \
-H "Authorization: Bearer $TOKEN" -H "Content-Type: application/pdf" \
--data-binary @report.pdf
# -> {"content_uri":"mxc://remoting.org/AbCdEf"}
curl -s -X PUT "https://matrix.remoting.org/_matrix/client/v3/rooms/!abc123:remoting.org/send/m.room.message/txn-$(date +%s%N)" \
-H "Authorization: Bearer $TOKEN" -d '{
"msgtype": "m.file", "body": "report.pdf",
"url": "mxc://remoting.org/AbCdEf",
"info": {"mimetype": "application/pdf"}
}' STEP 7
Read messages (sync)
Sync returns your rooms and new events. Pass the next_batch value back as since= and use timeout= to long-poll for new messages.
curl -s "https://matrix.remoting.org/_matrix/client/v3/sync?timeout=30000" -H "Authorization: Bearer $TOKEN"
# then: …/sync?since=NEXT_BATCH&timeout=30000 Libraries & end-to-end encryption
Any Matrix client SDK works with Remoting. Point it at https://matrix.remoting.org. Direct messages and private rooms made in the Remoting apps are end-to-end encrypted, and plain HTTP can't read or write those. For encrypted rooms, use an SDK with encryption support:
- • JavaScript/TypeScript: matrix-js-sdk
- • Python: matrix-nio (with the e2e extra)
- • Rust: matrix-rust-sdk
- • Bots: any of the above
The registration captcha is Remoting-specific (step 1). Everything else is standard Matrix client-server API.