Class Mastodon

Hierarchy

  • Mastodon

Implements

Constructors

Properties

Methods

acceptFollowRequest addAccountsToList blockAccount blockDomain bookmarkStatus cancel cancelScheduledStatus createApp createEmojiReaction createFeaturedTag createFilter createList deleteAccountsFromList deleteConversation deleteEmojiReaction deleteFeaturedTag deleteFilter deleteList deletePushSubscription deleteStatus directSocket dismissNotification dismissNotifications favouriteStatus fetchAccessToken followAccount generateAuthUrl getAccount getAccountFavourites getAccountFollowers getAccountFollowing getAccountLists getAccountStatuses getAccountsInList getBlocks getBookmarks getConversationTimeline getDomainBlocks getEmojiReaction getEmojiReactions getEndorsements getFavourites getFeaturedTags getFilter getFilters getFollowRequests getHomeTimeline getIdentityProof getInstance getInstanceActivity getInstanceCustomEmojis getInstanceDirectory getInstancePeers getInstanceTrends getList getListTimeline getLists getLocalTimeline getMarkers getMedia getMutes getNotification getNotifications getPoll getPreferences getPublicTimeline getPushSubscription getRelationship getRelationships getScheduledStatus getScheduledStatuses getStatus getStatusContext getStatusFavouritedBy getStatusRebloggedBy getSuggestedTags getSuggestions getTagTimeline listSocket localSocket muteAccount muteStatus pinAccount pinStatus postStatus publicSocket readConversation readNotifications reblogStatus refreshToken registerAccount registerApp rejectFollowRequest report revokeToken saveMarkers scheduleStatus search searchAccount subscribeAccount subscribePushNotification tagSocket unblockAccount unblockDomain unbookmarkStatus unfavouriteStatus unfollowAccount unmuteAccount unmuteStatus unpinAccount unpinStatus unreblogStatus unsubscribeAccount updateCredentials updateFilter updateList updateMedia updatePushSubscription uploadMedia urlToAccounts userSocket verifyAccountCredentials verifyAppCredentials votePoll

Constructors

  • Parameters

    • baseUrl: string

      hostname or base URL

    • accessToken: null | string = null

      access token from OAuth2 authorization

    • userAgent: null | string = DEFAULT_UA

      UserAgent is specified in header on request.

    • proxyConfig: false | ProxyConfig = false

      Proxy setting, or set false if don't use proxy.

    Returns Mastodon

Properties

baseUrl: string
client: Interface

Methods

  • Call /api/v1/apps

    Create an application.

    Parameters

    • client_name: string

      your application's name

    • options: Partial<{
          redirect_uris: string;
          scopes: string[];
          website: string;
      }>

      Form Data

    Returns Promise<AppData>

  • POST /api/v1/filters

    Returns

    Filter

    Parameters

    • phrase: string

      Text to be filtered.

    • context: string[]

      Array of enumerable strings home, notifications, public, thread, account. At least one context must be specified.

    • Optional options: {
          expires_in?: string;
          irreversible?: boolean;
          whole_word?: boolean;
      }
      • Optional expires_in?: string
      • Optional irreversible?: boolean
      • Optional whole_word?: boolean

    Returns Promise<Response<Filter>>

  • POST /oauth/token

    Fetch OAuth access token. Get an access token based client_id and client_secret and authorization code.

    Parameters

    • client_id: null | string

      will be generated by #createApp or #registerApp

    • client_secret: string

      will be generated by #createApp or #registerApp

    • code: string

      will be generated by the link of #generateAuthUrl or #registerApp

    • redirect_uri: string = NO_REDIRECT

      must be the same uri as the time when you register your OAuth application

    Returns Promise<TokenData>

  • Generate authorization url using OAuth2.

    Parameters

    • clientId: string

      your OAuth app's client ID

    • clientSecret: string

      your OAuth app's client Secret

    • options: Partial<{
          redirect_uri: string;
          scope: string[];
      }>

      as property, redirect_uri and scope are available, and must be the same as when you register your app

    Returns Promise<string>

  • GET /api/v1/pleroma/accounts/:id/favourites

    Returns

    Array of statuses.

    Parameters

    • _id: string

      Target account ID.

    • Optional _options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/accounts/:id/followers

    Returns

    The array of accounts.

    Parameters

    • id: string

      The account ID.

    • Optional options: {
          get_all?: boolean;
          limit?: number;
          max_id?: string;
          since_id?: string;
          sleep_ms?: number;
      }
      • Optional get_all?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string
      • Optional sleep_ms?: number

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/accounts/:id/following

    Returns

    The array of accounts.

    Parameters

    • id: string

      The account ID.

    • Optional options: {
          get_all?: boolean;
          limit?: number;
          max_id?: string;
          since_id?: string;
          sleep_ms?: number;
      }
      • Optional get_all?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string
      • Optional sleep_ms?: number

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/accounts/:id/statuses

    Returns

    Account's statuses.

    Parameters

    • id: string

      The account ID.

    • Optional options: {
          exclude_reblogs?: boolean;
          exclude_replies?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          only_media: boolean;
          pinned?: boolean;
          since_id?: string;
      }
      • Optional exclude_reblogs?: boolean
      • Optional exclude_replies?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • only_media: boolean
      • Optional pinned?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/lists/:id/accounts

    Returns

    Array of accounts.

    Parameters

    • id: string

      Target list ID.

    • Optional options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/blocks

    Returns

    Array of accounts.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/bookmarks

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/conversations

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Conversation[]>>

  • GET /api/v1/domain_blocks

    Returns

    Array of domain name.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<string[]>>

  • GET /api/v1/favourites

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/timelines/home

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          local?: boolean;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/directory

    Returns

    Array of accounts.

    Parameters

    • Optional options: {
          limit?: number;
          local?: boolean;
          offset?: number;
          order?: "active" | "new";
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional offset?: number
      • Optional order?: "active" | "new"

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/timelines/list/:list_id

    Returns

    Array of statuses.

    Parameters

    • list_id: string

      Local ID of the list in the database.

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/timelines/public

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/mutes

    Returns

    Array of accounts.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string

    Returns Promise<Response<Entity.Account[]>>

  • GET /api/v1/notifications

    Returns

    Array of notifications.

    Parameters

    • Optional options: {
          account_id?: string;
          exclude_types?: string[];
          limit?: number;
          max_id?: string;
          min_id?: string;
          since_id?: string;
      }
      • Optional account_id?: string
      • Optional exclude_types?: string[]
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Notification[]>>

  • GET /api/v1/timelines/public

    Returns

    Array of statuses.

    Parameters

    • Optional options: {
          limit?: number;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • GET /api/v1/scheduled_statuses

    Returns

    Array of scheduled statuses.

    Parameters

    • Optional options: {
          limit?: null | number;
          max_id?: null | string;
          min_id?: null | string;
          since_id?: null | string;
      }
      • Optional limit?: null | number
      • Optional max_id?: null | string
      • Optional min_id?: null | string
      • Optional since_id?: null | string

    Returns Promise<Response<ScheduledStatus[]>>

  • GET /api/v1/statuses/:id/context

    Get parent and child statuses.

    Returns

    Context

    Parameters

    • id: string

      The target status id.

    • Optional options: {
          limit?: number;
          max_id?: string;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional max_id?: string
      • Optional since_id?: string

    Returns Promise<Response<Context>>

  • GET /api/v1/timelines/tag/:hashtag

    Returns

    Array of statuses.

    Parameters

    • hashtag: string

      Content of a #hashtag, not including # symbol.

    • Optional options: {
          limit?: number;
          local?: boolean;
          max_id?: string;
          min_id?: string;
          only_media?: boolean;
          since_id?: string;
      }
      • Optional limit?: number
      • Optional local?: boolean
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional only_media?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Entity.Status[]>>

  • POST /api/v1/statuses

    Returns

    Status

    Parameters

    • status: string

      Text content of status.

    • options: {
          in_reply_to_id?: string;
          language?: string;
          media_ids?: string[];
          poll?: {
              expires_in: number;
              hide_totals?: boolean;
              multiple?: boolean;
              options: string[];
          };
          quote_id?: string;
          scheduled_at?: string;
          sensitive?: boolean;
          spoiler_text?: string;
          visibility?: "direct" | "private" | "public" | "unlisted";
      }
      • Optional in_reply_to_id?: string
      • Optional language?: string
      • Optional media_ids?: string[]
      • Optional poll?: {
            expires_in: number;
            hide_totals?: boolean;
            multiple?: boolean;
            options: string[];
        }
        • expires_in: number
        • Optional hide_totals?: boolean
        • Optional multiple?: boolean
        • options: string[]
      • Optional quote_id?: string
      • Optional scheduled_at?: string
      • Optional sensitive?: boolean
      • Optional spoiler_text?: string
      • Optional visibility?: "direct" | "private" | "public" | "unlisted"

    Returns Promise<Response<Entity.Status>>

  • POST /oauth/token

    Refresh OAuth access token. Send refresh token and get new access token.

    Parameters

    • client_id: string

      will be generated by #createApp or #registerApp

    • client_secret: string

      will be generated by #createApp or #registerApp

    • refresh_token: string

      will be get #fetchAccessToken

    Returns Promise<TokenData>

  • POST /api/v1/accounts

    Returns

    An account token.

    Parameters

    • username: string

      Username for the account.

    • email: string

      Email for the account.

    • password: string

      Password for the account.

    • agreement: boolean

      Whether the user agrees to the local rules, terms, and policies.

    • locale: string

      The language of the confirmation email that will be sent

    • Optional reason: null | string

      Text that will be reviewed by moderators if registrations require manual approval.

    Returns Promise<Response<Token>>

  • First, call createApp to get client_id and client_secret. Next, call generateAuthUrl to get authorization url.

    Parameters

    • client_name: string

      Form Data, which is sent to /api/v1/apps

    • options: Partial<{
          redirect_uris: string;
          scopes: string[];
          website: string;
      }>

      Form Data, which is sent to /api/v1/apps. and properties should be snake_case

    Returns Promise<AppData>

  • POST /api/v1/reports

    Returns

    Report

    Parameters

    • account_id: string

      Target account ID.

    • comment: string

      Reason of the report.

    • Optional options: {
          forward?: boolean;
          status_ids?: string[];
      }
      • Optional forward?: boolean
      • Optional status_ids?: string[]

    Returns Promise<Response<Report>>

  • POST /oauth/revoke

    Revoke an OAuth token.

    Parameters

    • client_id: string

      will be generated by #createApp or #registerApp

    • client_secret: string

      will be generated by #createApp or #registerApp

    • token: string

      will be get #fetchAccessToken

    Returns Promise<Response<{}>>

  • POST /api/v1/markers

    Returns

    Marker.

    Parameters

    • Optional options: {
          home?: {
              last_read_id: string;
          };
          notifications?: {
              last_read_id: string;
          };
      }
      • Optional home?: {
            last_read_id: string;
        }
        • last_read_id: string
      • Optional notifications?: {
            last_read_id: string;
        }
        • last_read_id: string

    Returns Promise<Response<Marker>>

  • GET /api/v2/search

    Returns

    Results.

    Parameters

    • q: string

      The search query.

    • type: "accounts" | "hashtags" | "statuses"

      Enum of search target.

    • Optional options: {
          account_id?: string;
          exclude_unreviewed?: boolean;
          following?: boolean;
          limit?: number;
          max_id?: string;
          min_id?: string;
          offset?: number;
          resolve?: boolean;
      }
      • Optional account_id?: string
      • Optional exclude_unreviewed?: boolean
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional min_id?: string
      • Optional offset?: number
      • Optional resolve?: boolean

    Returns Promise<Response<Results>>

  • GET /api/v1/accounts/search

    Returns

    The array of accounts.

    Parameters

    • q: string

      Search query.

    • Optional options: {
          following?: boolean;
          limit?: number;
          max_id?: string;
          resolve?: boolean;
          since_id?: string;
      }
      • Optional following?: boolean
      • Optional limit?: number
      • Optional max_id?: string
      • Optional resolve?: boolean
      • Optional since_id?: string

    Returns Promise<Response<Entity.Account[]>>

  • POST /api/v1/push/subscription

    Returns

    PushSubscription.

    Parameters

    • subscription: {
          endpoint: string;
          keys: {
              auth: string;
              p256dh: string;
          };
      }
      • endpoint: string
      • keys: {
            auth: string;
            p256dh: string;
        }
        • auth: string
        • p256dh: string
    • Optional data: null | {
          alerts: {
              favourite?: boolean;
              follow?: boolean;
              mention?: boolean;
              poll?: boolean;
              reblog?: boolean;
          };
      }

    Returns Promise<Response<PushSubscription>>

  • PATCH /api/v1/accounts/update_credentials

    Returns

    An account.

    Parameters

    • Optional options: {
          avatar?: string;
          bot?: boolean;
          discoverable?: boolean;
          display_name?: string;
          fields_attributes?: {
              name: string;
              value: string;
          }[];
          header?: string;
          locked?: boolean;
          note?: string;
          source?: {
              language?: string;
              privacy?: string;
              sensitive?: boolean;
          };
      }
      • Optional avatar?: string
      • Optional bot?: boolean
      • Optional discoverable?: boolean
      • Optional display_name?: string
      • Optional fields_attributes?: {
            name: string;
            value: string;
        }[]
      • Optional header?: string
      • Optional locked?: boolean
      • Optional note?: string
      • Optional source?: {
            language?: string;
            privacy?: string;
            sensitive?: boolean;
        }
        • Optional language?: string
        • Optional privacy?: string
        • Optional sensitive?: boolean

    Returns Promise<Response<Entity.Account>>

  • PUT /api/v1/filters/:id

    Returns

    Filter

    Parameters

    • id: string

      The filter ID.

    • phrase: string

      Text to be filtered.

    • context: string[]

      Array of enumerable strings home, notifications, public, thread, account. At least one context must be specified.

    • Optional options: {
          expires_in?: string;
          irreversible?: boolean;
          whole_word?: boolean;
      }
      • Optional expires_in?: string
      • Optional irreversible?: boolean
      • Optional whole_word?: boolean

    Returns Promise<Response<Filter>>

  • PUT /api/v1/media/:id

    Returns

    Attachment

    Parameters

    • id: string

      Target media ID.

    • Optional options: {
          description?: string;
          file?: any;
          focus?: string;
      }
      • Optional description?: string
      • Optional file?: any
      • Optional focus?: string

    Returns Promise<Response<Attachment>>

  • PUT /api/v1/push/subscription

    Returns

    PushSubscription.

    Parameters

    • Optional data: null | {
          alerts: {
              favourite?: boolean;
              follow?: boolean;
              mention?: boolean;
              poll?: boolean;
              reblog?: boolean;
          };
      }

    Returns Promise<Response<PushSubscription>>

  • Helper function to optionally follow Link headers as pagination

    Parameters

    • url: string
    • params: Record<string, string>
    • get_all: boolean
    • sleep_ms: number

    Returns Promise<Response<Account[]>>

Generated using TypeDoc