Hunter API contract
Summary
Callbacks
Retrieve account
Block a user
Block a domain
Fetch user's blocked domains
Retrieve user's blocks
Dismiss a single notification
Deletes all notifications from the Mastodon server for the authenticated user
Register a new OAuth client app on the target instance
Create new status
Destroy status
Favorite a status
Fetch the list of users who favourited the status.
Fetch a user's favourites
Follow a user
Accepts or Rejects a follow request
Retrieve a list of follow requests
Get a list of followers
Get a list of followed accounts
Retrieve statuses from a hashtag
Retrieve statuses from the home timeline
Retrieve instance information
Retrieve access token
Retrieve access token using OAuth access code
Mute a user
Retrieve user's mutes
Retrieve single notification
Retrieve user's notifications
Retrieve statuses from the public timeline
Reblog a status
Fetch the list of users who reblogged the status.
Get the relationships of authenticated user towards given other users
Report a user
Search for content
Search for accounts
Retrieve status
Retrieve status context
Get a list of statuses by a user
Unblock a user
Unblock a domain
Undo a favorite of a status
Unfollow a user
Unmute a user
Undo a reblog of a status
Make changes to the authenticated user
Upload a media file
Retrieve account of authenticated user
Callbacks
@callback account(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Account.t()
Retrieve account
Parameters
conn- connection credentialsid- account identifier
@callback block(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Block a user
Parameters
conn- connection credentialsid- user identifier
@callback block_domain(conn :: Hunter.Client.t(), domain :: String.t()) :: boolean()
Block a domain
Parameters
conn- connection credentialsdomain- domain to block
@callback blocked_domains(conn :: Hunter.Client.t(), options :: Keyword.t()) :: list()
Fetch user's blocked domains
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of blocks with id less than or equal this valuesince_id- get a list of blocks with id greater than this valuelimit- maximum number of blocks to get, default: 40, max: 80
@callback blocks(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [ Hunter.Account.t() ]
Retrieve user's blocks
Parameters
conn- connection credentials
Options
max_id- get a list of blocks with id less than or equal this valuesince_id- get a list of blocks with id greater than this valuelimit- maximum number of blocks to get, default: 40, max: 80
@callback clear_notification(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: boolean()
Dismiss a single notification
Parameters
conn- connection credentialsid- notification id
@callback clear_notifications(conn :: Hunter.Client.t()) :: boolean()
Deletes all notifications from the Mastodon server for the authenticated user
Parameters
conn- connection credentials
@callback create_app( name :: String.t(), redirect_uri :: String.t(), scopes :: [String.t()], website :: nil | String.t(), base_url :: String.t() ) :: Hunter.Application.t()
Register a new OAuth client app on the target instance
Parameters
name- name of your applicationredirect_uri- where the user should be redirected after authorization, for no redirect, useurn:ietf:wg:oauth:2.0:oobscopes- scope list, see the scope section for more detailswebsite- URL to the homepage of your appbase_url- base url
Scopes
read- read datawrite- post statuses and upload media for statusesfollow- follow, unfollow, block, unblock
Multiple scopes can be requested during the authorization phase with the scope query param
@callback create_status( conn :: Hunter.Client.t(), status :: String.t(), options :: Keyword.t() ) :: Hunter.Status.t() | no_return()
Create new status
Parameters
conn- connection credentialsstatus- text of the statusoptions- option list
Options
in_reply_to_id- local ID of the status you want to reply tomedia_ids- list of media IDs to attach to the status (maximum: 4)sensitive- whether the media of the status is NSFWspoiler_text- text to be shown as a warning before the actual contentvisibility- eitherdirect,private,unlistedorpublic
@callback destroy_status(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: boolean()
Destroy status
Parameters
conn- connection credentialsid- status identifier
@callback favourite(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Status.t()
Favorite a status
Parameters
conn- connection credentialsid- status identifier
@callback favourited_by( conn :: Hunter.Client.t(), id :: non_neg_integer(), options :: Keyword.t() ) :: [Hunter.Account.t()]
Fetch the list of users who favourited the status.
Parameters
conn- connection credentialsid- status identifieroptions- option list
Options
max_id- get a list of favourited by ids less than or equal this valuesince_id- get a list of favourited by ids greater than this valuelimit- maximum number of favourited by to get, default: 40, max: 80
@callback favourites(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [ Hunter.Status.t() ]
Fetch a user's favourites
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of favourites with id less than or equal this valuesince_id- get a list of favourites with id greater than this valuelimit- maximum of favourites to get, default: 20, max: 40
@callback follow(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Follow a user
Parameters
conn- connection credentialsid- user id
@callback follow_request_action( conn :: Hunter.Client.t(), id :: non_neg_integer(), action :: atom() ) :: Hunter.Relationship.t()
Accepts or Rejects a follow request
Parameters
conn- connection credentialsid- follow request idaction- action to take
Actions
:authorize- authorize a follow request:reject- reject a follow request
@callback follow_requests(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [ Hunter.Account.t() ]
Retrieve a list of follow requests
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of follow requests with id less than or equal this valuesince_id- get a list of follow requests with id greater than this valuelimit- maximum number of requests to get, default: 40, max: 80
@callback followers( conn :: Hunter.Client.t(), id :: non_neg_integer(), options :: Keyword.t() ) :: Hunter.Account.t()
Get a list of followers
Parameters
conn- connection credentialsid- account identifieroptions- options list
Options
max_id- get a list of followings with id less than or equal this valuesince_id- get a list of followings with id greater than this valuelimit- maximum number of followings to get, default: 40, maximum: 80
@callback following( conn :: Hunter.Client.t(), id :: non_neg_integer(), options :: Keyword.t() ) :: Hunter.Account.t()
Get a list of followed accounts
Parameters
conn- connection credentialsid- account identifieroptions- options list
Options
max_id- get a list of followings with id less than or equal this valuesince_id- get a list of followings with id greater than this valuelimit- maximum number of followings to get, default: 40, maximum: 80
@callback hashtag_timeline( conn :: Hunter.Client.t(), hashtag :: [String.t()], options :: map() ) :: [ Hunter.Status ]
Retrieve statuses from a hashtag
Parameters
conn- connection credentialshashtag- list of stringsoptions- option list
Options
local- only return statuses originating from this instancemax_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@callback home_timeline(conn :: Hunter.Client.t(), options :: map()) :: [ Hunter.Status.t() ]
Retrieve statuses from the home timeline
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@callback instance_info(conn :: Hunter.Client.t()) :: Hunter.Instance.t()
Retrieve instance information
Parameters
conn- connection credentials
@callback log_in( app :: Hunter.Application.t(), username :: String.t(), password :: String.t(), base_url :: String.t() ) :: Hunter.Client.t()
Retrieve access token
Parameters
app- application details, see:Hunter.Application.create_app/5for more details.username- your account's emailpassword- your passwordbase_url- API base url, default:https://mastodon.social
@callback log_in_oauth( app :: Hunter.Application.t(), oauth_code :: String.t(), base_url :: String.t() ) :: Hunter.Client.t()
Retrieve access token using OAuth access code
Parameters
app- application details, see:Hunter.Application.create_app/5for more details.oauth_code- oauth authentication codebase_url- API base url, default:https://mastodon.social
@callback mute(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Mute a user
Parameters
conn- connection credentialsid- user identifier
@callback mutes(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [Hunter.Account.t()]
Retrieve user's mutes
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of mutes with id less than or equal this valuesince_id- get a list of mutes with id greater than this valuelimit- maximum number of mutes to get, default: 40, max: 80
@callback notification(conn :: Hunter.Client.t(), non_neg_integer()) :: Hunter.Notification.t()
Retrieve single notification
Parameters
conn- connection credentialsid- notification identifier
@callback notifications(conn :: Hunter.Client.t(), options :: Keyword.t()) :: [ Hunter.Notification.t() ]
Retrieve user's notifications
Parameters
conn- connection credentialsoptions- option list
Options
max_id- get a list of notifications with id less than or equal this valuesince_id- get a list of notifications with id greater than this valuelimit- maximum number of notifications to get, default: 15, max: 30
@callback public_timeline(conn :: Hunter.Client.t(), options :: map()) :: [ Hunter.Status.t() ]
Retrieve statuses from the public timeline
Parameters
conn- connection credentialsoptions- option list
Options
local- only return statuses originating from this instancemax_id- get a list of timelines with id less than or equal this valuesince_id- get a list of timelines with id greater than this valuelimit- maximum number of statuses on the requested timeline to get, default: 20, max: 40
@callback reblog(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Status.t()
Reblog a status
Parameters
conn- connection credentialsid- status identifier
@callback reblogged_by( conn :: Hunter.Client.t(), id :: non_neg_integer(), options :: Keyword.t() ) :: [ Hunter.Account.t() ]
Fetch the list of users who reblogged the status.
Parameters
conn- connection credentialsid- status identifieroptions- option list
Options
max_id- get a list of reblogged by ids less than or equal this valuesince_id- get a list of reblogged by ids greater than this valuelimit- maximum number of reblogged by to get, default: 40, max: 80
@callback relationships(conn :: Hunter.Client.t(), ids :: [non_neg_integer()]) :: [ Hunter.Relationship.t() ]
Get the relationships of authenticated user towards given other users
Parameters
conn- connection credentialsid- list of relationship IDs
@callback report( conn :: Hunter.Client.t(), account_id :: non_neg_integer(), status_ids :: [non_neg_integer()], comment :: String.t() ) :: Hunter.Report.t()
Report a user
Parameters
conn- connection credentialsaccount_id- the ID of the account to reportstatus_ids- the IDs of statuses to reportcomment- a comment to associate with the report
@callback search(conn :: Hunter.Client.t(), query :: String.t(), options :: Keyword.t()) :: Hunter.Result.t()
Search for content
Parameters
conn- connection credentialsq- the search queryoptions- option list
Options
resolve- whether to resolve non-local accounts
@callback search_account(conn :: Hunter.Client.t(), options :: map()) :: [ Hunter.Account.t() ]
Search for accounts
Parameters
conn- connection credentialsoptions- option list
Options
q: what to search forlimit: maximum number of matching accounts to return, default: 40
@callback status(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Status.t()
Retrieve status
Parameters
conn- connection credentialsid- status identifier
@callback status_context(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Context.t()
Retrieve status context
Parameters
conn- connection credentialsid- status identifier
@callback statuses( conn :: Hunter.Client.t(), account_id :: non_neg_integer(), options :: map() ) :: [ Hunter.Status.t() ]
Get a list of statuses by a user
Parameters
conn- connection credentialsaccount_id- account identifieroptions- option list
Options
only_media- only returnHunter.Status.tthat have media attachmentsexclude_replies- skip statuses that reply to other statusesmax_id- get a list of statuses with id less than or equal this valuesince_id- get a list of statuses with id greater than this valuelimit- maximum number of statuses to get, default: 20, max: 40
@callback unblock(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Unblock a user
conn- connection credentialsid- user identifier
@callback unblock_domain(conn :: Hunter.Client.t(), domain :: String.t()) :: boolean()
Unblock a domain
Parameters
conn- connection credentialsdomain- domain to unblock
@callback unfavourite(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Status.t()
Undo a favorite of a status
Parameters
conn- connection credentialsid- status identifier
@callback unfollow(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Unfollow a user
Parameters
conn- connection credentialsid- user identifier
@callback unmute(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Relationship.t()
Unmute a user
Parameters
conn- connection credentialsid- user identifier
@callback unreblog(conn :: Hunter.Client.t(), id :: non_neg_integer()) :: Hunter.Status.t()
Undo a reblog of a status
Parameters
conn- connection credentialsid- status identifier
@callback update_credentials(Hunter.Client.t(), map()) :: Hunter.Account.t()
Make changes to the authenticated user
Parameters
conn- connection credentialsdata- data payload
Possible keys for payload
display_name- name to display in the user's profilenote- new biography for the useravatar- base64 encoded image to display as the user's avatar (e.g.data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAADrCAYAAAA...)header- base64 encoded image to display as the user's header image (e.g.data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAUoAAADrCAYAAAA...)
@callback upload_media( conn :: Hunter.Client.t(), file :: Path.t(), options :: Keyword.t() ) :: Hunter.Attachment.t()
Upload a media file
Parameters
conn- connection credentialsfile- media to be uploadedoptions- option list
Options
description- plain-text description of the media for accessibility (max 420 chars)focus- two floating points, comma-delimited.
@callback verify_credentials(conn :: Hunter.Client.t()) :: Hunter.Account.t()
Retrieve account of authenticated user
Parameters
conn- connection credentials