Latest 1.0.1
License MIT
Platforms ios 9.0
Dependencies Moya/RxSwift, Moya-Gloss/RxSwift

CI Status


This client is designed to connect to any Mastodon instance and interact with it. As of the time of writing this (08th April 2017) the Moya Providers are feature complete with tootsuite/mastodon.

MastodonClient contains a few convenience methods to create Apps (OAuth Clients) and interact with the API but you should use the Moya Targets directly for the time being (as those are feature complete).

Do not forget to setup you Mastodon base url by setting it in the Settings singleton before trying to use any of the APIs:

Settings.shared.baseURL = NSURL(string: "")!

Given you’ve got an OAuth Client

let app = App(clientId: "…", clientSecret: "…")

Logging in is as easy as this then:

.request(.authenticate(app, username, password))
.mapObject(type: AccessToken.self)
.subscribe { even in … }

Provided login was successful and you’ve retrieved an AccessToken you’re free to use all the other APIs, e.g. to retrieve your home timeline:

RxMoyaProvider<Mastodon.Timelines>(plugins: [AccessTokenPlugin(token: accessToken.token)])
.mapArray(type: Status.self)
.subscribe { even in … }


  • Xcode 8.3 / Swift 3.1
  • Moya/RxSwift
  • Moya-Gloss/RxSwift


MastodonClient is available through CocoaPods. To install
it, simply add the following line to your Podfile:

pod "MastodonClient"


Marcus Kida [email protected]


MastodonClient is available under the MIT license. See the LICENSE file for more info.

Latest podspec

    "name": "MastodonClient",
    "version": "1.0.1",
    "summary": "A Swift / RxSwift / Moya / Gloss based API client for Mastodon instances.",
    "description": "This client can be used to interact with Mastodon instances. It`s recommended to be used with RxSwift.",
    "homepage": "",
    "license": {
        "type": "MIT",
        "file": "LICENSE"
    "authors": {
        "git": "[email protected]"
    "source": {
        "git": "",
        "tag": "1.0.1"
    "platforms": {
        "ios": "9.0"
    "source_files": "MastodonClient/Classes/**/*",
    "dependencies": {
        "Moya/RxSwift": [
            "~> 8.0.3"
        "Moya-Gloss/RxSwift": [
            "~> 2.0.0"
    "pushed_with_swift_version": "3.0"

Pin It on Pinterest

Share This