# Services ## Input Input services ingest data from other websites. ### Bluesky Jetstream This service uses a [Jetstream](https://github.com/bluesky-social/jetstream) to listen for posts. ``` { "services": [ { "input": { "type": "bluesky-jetstream", "handle": "bsky.app" }, "outputs": [] } ] } ``` | Key | Description | |----------|-----------------------------------------------------------------------| | `handle` | Account handle. Used to resolve `did` and `pds`. | | `did` | Account identifier. Can be specified instead of a `handle`. | | `pds` | Account host. Optional, will be resolved from `did` if not specified. | ### Mastodon WebSocket Uses a WebSocket to listen to the home timeline. ``` { "services": [ { "input": { "type": "mastodon-wss", "instance": "https://mastodon.social", "token": "***" }, "outputs": [] } ] } ``` | Key | Description | |----------------------|--------------------------------------------------------| | `instance` | Account host. | | `token` | Account access token. | | `allowed_visibility` | Post visibilities that ware allowed to be crossposted. | #### Getting a token **Mastodon:** - Go to Settings -> Development - Click "New Application" - Set a name (e.g. xpost), allow "read", "write", "profile" perms. - Click on the new application and copy "Your access token" **Non-Mastodon** Software like iceshrimp/akkoma can either use https://getauth.thms.uk/?client_name=xpost&scopes=read%20write%20profile or get the token using dev tools on any web client. (any `/api/v*` request, the `authorization` header, copy the value besides `Bearer `) ### Misskey WebSocket Uses a WebSocket to listen to the home timeline channel. > [!NOTE] > Misskey WSS doesn't support deletes, crossposted posts have to be manually deleted (or look into [bi-directional](./README.md#bi-directional-crossposting) crossposting) ``` { "services": [ { "input": { "type": "misskey-wss", "instance": "https://misskey.io", "token": "***" }, "outputs": [] } ] } ``` | Key | Description | |----------------------|--------------------------------------------------------| | `instance` | Account host. | | `token` | Account access token. | | `allowed_visibility` | Post visibilities that ware allowed to be crossposted. | #### Getting a token Use Dev Tools 💔 ## Output ### Bluesky ``` { "services": [ { "input": {}, "outputs": [ { "type": "bluesky", "handle": "bsky.app", "password": "***" } ] } ] } ``` | Key | Description | |---------------|---------------------------------------------------------------------------------------------------------| | `handle` | Account handle. Used to resolve `did` and `pds`. | | `did` | Account identifier. Can be specified instead of a `handle`. | | `pds` | Account host. Optional, will be resolved from `did` if not specified. | | `password` | Account App Password. | | `quote_gate` | Disable ability for others to quote. | | `thread_gate` | Limit replies to the post. null - everybody, [] - nobody. accepts "mentioned", "following", "followers" | #### App Password Please do not use the main password. - Go to Settings -> Privacy and Security -> App Passwords - Click "Add App Password" - Copy the new password (it will not be shown again!) ### Mastodon ``` { "services": [ { "input": {}, "outputs": [ { "type": "mastodon", "instance": "https://mastodon.social", "token": "***" } ] } ] } ``` | Key | Description | |--------------|--------------------------------------------------------| | `instance` | Account host. | | `token` | Account access token. | | `visibility` | What visibility to set for crossposted posts |