summaryrefslogtreecommitdiff
path: root/docs/api/swagger.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'docs/api/swagger.yaml')
-rw-r--r--docs/api/swagger.yaml1476
1 files changed, 1476 insertions, 0 deletions
diff --git a/docs/api/swagger.yaml b/docs/api/swagger.yaml
new file mode 100644
index 000000000..dc359389f
--- /dev/null
+++ b/docs/api/swagger.yaml
@@ -0,0 +1,1476 @@
+basePath: /
+definitions:
+ FileHeader:
+ properties:
+ Filename:
+ type: string
+ Header:
+ $ref: '#/definitions/MIMEHeader'
+ Size:
+ format: int64
+ type: integer
+ title: A FileHeader describes a file part of a multipart request.
+ type: object
+ x-go-package: mime/multipart
+ MIMEHeader:
+ additionalProperties:
+ items:
+ type: string
+ type: array
+ description: |-
+ A MIMEHeader represents a MIME-style header mapping
+ keys to sets of values.
+ type: object
+ x-go-package: net/textproto
+ Mention:
+ properties:
+ acct:
+ description: |-
+ The account URI as discovered via webfinger.
+ Equal to username for local users, or username@domain for remote users.
+ example: some_user@example.org
+ type: string
+ x-go-name: Acct
+ id:
+ description: The ID of the mentioned account.
+ example: 01FBYJHQWQZAVWFRK9PDYTKGMB
+ type: string
+ x-go-name: ID
+ url:
+ description: The web URL of the mentioned account's profile.
+ example: https://example.org/@some_user
+ type: string
+ x-go-name: URL
+ username:
+ description: The username of the mentioned account.
+ example: some_user
+ type: string
+ x-go-name: Username
+ title: Mention represents a mention of another account.
+ type: object
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ Source:
+ description: |-
+ Returned as an additional entity when verifying and updated credentials, as an attribute of Account.
+ See https://docs.joinmastodon.org/entities/source/
+ properties:
+ fields:
+ description: Metadata about the account.
+ items:
+ $ref: '#/definitions/field'
+ type: array
+ x-go-name: Fields
+ follow_requests_count:
+ description: The number of pending follow requests.
+ format: int64
+ type: integer
+ x-go-name: FollowRequestsCount
+ language:
+ description: The default posting language for new statuses.
+ type: string
+ x-go-name: Language
+ note:
+ description: Profile bio.
+ type: string
+ x-go-name: Note
+ privacy:
+ $ref: '#/definitions/statusVisibility'
+ sensitive:
+ description: Whether new statuses should be marked sensitive by default.
+ type: boolean
+ x-go-name: Sensitive
+ title: Source represents display or publishing preferences of user's own account.
+ type: object
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ account:
+ properties:
+ acct:
+ description: |-
+ The account URI as discovered via webfinger.
+ Equal to username for local users, or username@domain for remote users.
+ example: some_user@example.org
+ type: string
+ x-go-name: Acct
+ avatar:
+ description: Web location of the account's avatar.
+ example: https://example.org/media/some_user/avatar/original/avatar.jpeg
+ type: string
+ x-go-name: Avatar
+ avatar_static:
+ description: |-
+ Web location of a static version of the account's avatar.
+ Only relevant when the account's main avatar is a video or a gif.
+ example: https://example.org/media/some_user/avatar/static/avatar.png
+ type: string
+ x-go-name: AvatarStatic
+ bot:
+ description: Account identifies as a bot.
+ type: boolean
+ x-go-name: Bot
+ created_at:
+ description: When the account was created (ISO 8601 Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: CreatedAt
+ discoverable:
+ description: Account has opted into discovery features such as the profile
+ directory.
+ type: boolean
+ x-go-name: Discoverable
+ display_name:
+ description: The account's display name.
+ example: big jeff (he/him)
+ type: string
+ x-go-name: DisplayName
+ emojis:
+ description: Array of custom emojis used in this account's note or display
+ name.
+ items:
+ $ref: '#/definitions/emoji'
+ type: array
+ x-go-name: Emojis
+ fields:
+ description: Additional metadata attached to this account's profile.
+ items:
+ $ref: '#/definitions/field'
+ type: array
+ x-go-name: Fields
+ followers_count:
+ description: Number of accounts following this account, according to our instance.
+ format: int64
+ type: integer
+ x-go-name: FollowersCount
+ following_count:
+ description: Number of account's followed by this account, according to our
+ instance.
+ format: int64
+ type: integer
+ x-go-name: FollowingCount
+ header:
+ description: Web location of the account's header image.
+ example: https://example.org/media/some_user/header/original/header.jpeg
+ type: string
+ x-go-name: Header
+ header_static:
+ description: |-
+ Web location of a static version of the account's header.
+ Only relevant when the account's main header is a video or a gif.
+ example: https://example.org/media/some_user/header/static/header.png
+ type: string
+ x-go-name: HeaderStatic
+ id:
+ description: The account id.
+ example: 01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: ID
+ last_status_at:
+ description: When the account's most recent status was posted (ISO 8601 Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: LastStatusAt
+ locked:
+ description: Account manually approves follow requests.
+ type: boolean
+ x-go-name: Locked
+ mute_expires_at:
+ description: If this account has been muted, when will the mute expire (ISO
+ 8601 Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: MuteExpiresAt
+ note:
+ description: Bio/description of this account.
+ type: string
+ x-go-name: Note
+ source:
+ $ref: '#/definitions/Source'
+ statuses_count:
+ description: Number of statuses posted by this account, according to our instance.
+ format: int64
+ type: integer
+ x-go-name: StatusesCount
+ suspended:
+ description: Account has been suspended by our instance.
+ type: boolean
+ x-go-name: Suspended
+ url:
+ description: Web location of the account's profile page.
+ example: https://example.org/@some_user
+ type: string
+ x-go-name: URL
+ username:
+ description: The username of the account, not including domain.
+ example: some_user
+ type: string
+ x-go-name: Username
+ title: Account represents a fediverse account of some kind, either a remote one
+ or one on this instance.
+ type: object
+ x-go-name: Account
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ accountCreateRequest:
+ properties:
+ agreement:
+ description: The user agrees to the terms, conditions, and policies of the
+ instance.
+ type: boolean
+ x-go-name: Agreement
+ email:
+ description: The email address to be used for login.
+ type: string
+ x-go-name: Email
+ locale:
+ description: The language of the confirmation email that will be sent.
+ type: string
+ x-go-name: Locale
+ password:
+ description: The password to be used for login. This will be hashed before
+ storage.
+ type: string
+ x-go-name: Password
+ reason:
+ description: Text that will be reviewed by moderators if registrations require
+ manual approval.
+ type: string
+ x-go-name: Reason
+ username:
+ description: The desired username for the account.
+ type: string
+ x-go-name: Username
+ title: AccountCreateRequest represents the form submitted during a POST request
+ to /api/v1/accounts.
+ type: object
+ x-go-name: AccountCreateRequest
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ accountFollowRequest:
+ description: AccountFollowRequest is for parsing requests at /api/v1/accounts/:id/follow
+ properties:
+ TargetAccountID:
+ description: |-
+ ID of the account to follow request
+ This should be a URL parameter not a form field
+ type: string
+ notify:
+ description: Notify when this account posts?
+ type: boolean
+ x-go-name: Notify
+ reblogs:
+ description: Show reblogs for this account?
+ type: boolean
+ x-go-name: Reblogs
+ type: object
+ x-go-name: AccountFollowRequest
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ accountRelationship:
+ properties:
+ blocked_by:
+ description: This account is blocking you.
+ type: boolean
+ x-go-name: BlockedBy
+ blocking:
+ description: You are blocking this account.
+ type: boolean
+ x-go-name: Blocking
+ domain_blocking:
+ description: You are blocking this account's domain.
+ type: boolean
+ x-go-name: DomainBlocking
+ endorsed:
+ description: You are featuring this account on your profile.
+ type: boolean
+ x-go-name: Endorsed
+ followed_by:
+ description: This account follows you.
+ type: boolean
+ x-go-name: FollowedBy
+ following:
+ description: You are following this account.
+ type: boolean
+ x-go-name: Following
+ id:
+ description: The account id.
+ example: 01FBW9XGEP7G6K88VY4S9MPE1R
+ type: string
+ x-go-name: ID
+ muting:
+ description: You are muting this account.
+ type: boolean
+ x-go-name: Muting
+ muting_notifications:
+ description: You are muting notifications from this account.
+ type: boolean
+ x-go-name: MutingNotifications
+ note:
+ description: Your note on this account.
+ type: string
+ x-go-name: Note
+ notifying:
+ description: You are seeing notifications when this account posts.
+ type: boolean
+ x-go-name: Notifying
+ requested:
+ description: You have requested to follow this account, and the request is
+ pending.
+ type: boolean
+ x-go-name: Requested
+ showing_reblogs:
+ description: You are seeing reblogs/boosts from this account in your home
+ timeline.
+ type: boolean
+ x-go-name: ShowingReblogs
+ title: Relationship represents a relationship between accounts.
+ type: object
+ x-go-name: Relationship
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ application:
+ description: Primarily, application is used for allowing apps like Tusky etc to
+ connect to Mastodon on behalf of a user.
+ properties:
+ client_id:
+ description: Client ID associated with this application.
+ type: string
+ x-go-name: ClientID
+ client_secret:
+ description: Client secret associated with this application.
+ type: string
+ x-go-name: ClientSecret
+ id:
+ description: The ID of the application.
+ example: 01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: ID
+ name:
+ description: The name of the application.
+ example: Tusky
+ type: string
+ x-go-name: Name
+ redirect_uri:
+ description: Post-authorization redirect URI for the application (OAuth2).
+ example: https://example.org/callback?some=query
+ type: string
+ x-go-name: RedirectURI
+ vapid_key:
+ description: Push API key for this application.
+ type: string
+ x-go-name: VapidKey
+ website:
+ description: The website associated with the application (url)
+ example: https://tusky.app
+ type: string
+ x-go-name: Website
+ title: Application represents an api Application, as defined here.
+ type: object
+ x-go-name: Application
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ attachment:
+ properties:
+ blurhash:
+ description: |-
+ A hash computed by the BlurHash algorithm, for generating colorful preview thumbnails when media has not been downloaded yet.
+ See https://github.com/woltapp/blurhash
+ type: string
+ x-go-name: Blurhash
+ description:
+ description: Alt text that describes what is in the media attachment.
+ example: This is a picture of a kitten.
+ type: string
+ x-go-name: Description
+ id:
+ description: The ID of the attachment.
+ type: string
+ x-go-name: ID
+ meta:
+ $ref: '#/definitions/mediaMeta'
+ preview_remote_url:
+ description: |-
+ The location of a scaled-down preview of the attachment on the remote server.
+ Only defined for instances other than our own.
+ example: https://some-other-server.org/attachments/small/ahhhhh.jpeg
+ type: string
+ x-go-name: PreviewRemoteURL
+ preview_url:
+ description: The location of a scaled-down preview of the attachment.
+ example: https://example.org/fileserver/some_id/attachments/some_id/small/attachment.jpeg
+ type: string
+ x-go-name: PreviewURL
+ remote_url:
+ description: |-
+ The location of the full-size original attachment on the remote server.
+ Only defined for instances other than our own.
+ example: https://some-other-server.org/attachments/original/ahhhhh.jpeg
+ type: string
+ x-go-name: RemoteURL
+ text_url:
+ description: A shorter URL for the attachment.
+ type: string
+ x-go-name: TextURL
+ type:
+ description: |-
+ The type of the attachment.
+ unknown = unsupported or unrecognized file type.
+ image = Static image.
+ gifv = Looping, soundless animation.
+ video = Video clip.
+ audio = Audio track.
+ example: image
+ type: string
+ x-go-name: Type
+ url:
+ description: The location of the original full-size attachment.
+ example: https://example.org/fileserver/some_id/attachments/some_id/original/attachment.jpeg
+ type: string
+ x-go-name: URL
+ title: Attachment represents the object returned to a client after a successful
+ media upload request.
+ type: object
+ x-go-name: Attachment
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ card:
+ properties:
+ author_name:
+ description: The author of the original resource.
+ example: weewee@buzzfeed.com
+ type: string
+ x-go-name: AuthorName
+ author_url:
+ description: A link to the author of the original resource.
+ example: https://buzzfeed.com/authors/weewee
+ type: string
+ x-go-name: AuthorURL
+ blurhash:
+ description: A hash computed by the BlurHash algorithm, for generating colorful
+ preview thumbnails when media has not been downloaded yet.
+ type: string
+ x-go-name: Blurhash
+ description:
+ description: Description of preview.
+ example: Is water wet? We're not sure. In this article, we ask an expert...
+ type: string
+ x-go-name: Description
+ embed_url:
+ description: Used for photo embeds, instead of custom html.
+ type: string
+ x-go-name: EmbedURL
+ height:
+ description: Height of preview, in pixels.
+ format: int64
+ type: integer
+ x-go-name: Height
+ html:
+ description: HTML to be used for generating the preview card.
+ type: string
+ x-go-name: HTML
+ image:
+ description: Preview thumbnail.
+ example: https://example.org/fileserver/preview/thumb.jpg
+ type: string
+ x-go-name: Image
+ provider_name:
+ description: The provider of the original resource.
+ example: Buzzfeed
+ type: string
+ x-go-name: ProviderName
+ provider_url:
+ description: A link to the provider of the original resource.
+ example: https://buzzfeed.com
+ type: string
+ x-go-name: ProviderURL
+ title:
+ description: Title of linked resource.
+ example: Buzzfeed - Is Water Wet?
+ type: string
+ x-go-name: Title
+ type:
+ description: |-
+ The type of the preview card.
+ String (Enumerable, oneOf)
+ link = Link OEmbed
+ photo = Photo OEmbed
+ video = Video OEmbed
+ rich = iframe OEmbed. Not currently accepted, so won't show up in practice.
+ example: link
+ type: string
+ x-go-name: Type
+ url:
+ description: Location of linked resource.
+ example: https://buzzfeed.com/some/fuckin/buzzfeed/article
+ type: string
+ x-go-name: URL
+ width:
+ description: Width of preview, in pixels.
+ format: int64
+ type: integer
+ x-go-name: Width
+ title: Card represents a rich preview card that is generated using OpenGraph tags
+ from a URL.
+ type: object
+ x-go-name: Card
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ domainBlock:
+ description: DomainBlock represents a block on one domain
+ properties:
+ created_at:
+ description: Time at which this block was created (ISO 8601 Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: CreatedAt
+ created_by:
+ description: ID of the account that created this domain block.
+ example: 01FBW2758ZB6PBR200YPDDJK4C
+ type: string
+ x-go-name: CreatedBy
+ domain:
+ description: The hostname of the blocked domain.
+ example: example.org
+ type: string
+ x-go-name: Domain
+ id:
+ description: The ID of the domain block.
+ example: 01FBW21XJA09XYX51KV5JVBW0F
+ readOnly: true
+ type: string
+ x-go-name: ID
+ obfuscate:
+ description: |-
+ Obfuscate the domain name when serving this domain block publicly.
+ A useful anti-harassment tool.
+ example: false
+ type: boolean
+ x-go-name: Obfuscate
+ private_comment:
+ description: Private comment for this block, visible to our instance admins
+ only.
+ example: they are poopoo
+ type: string
+ x-go-name: PrivateComment
+ public_comment:
+ description: Public comment for this block, visible if domain blocks are served
+ publicly.
+ example: they smell
+ type: string
+ x-go-name: PublicComment
+ subscription_id:
+ description: The ID of the subscription that created/caused this domain block.
+ example: 01FBW25TF5J67JW3HFHZCSD23K
+ type: string
+ x-go-name: SubscriptionID
+ type: object
+ x-go-name: DomainBlock
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ domainBlockCreateRequest:
+ properties:
+ domain:
+ description: hostname/domain to block
+ type: string
+ x-go-name: Domain
+ domains:
+ $ref: '#/definitions/FileHeader'
+ obfuscate:
+ description: whether the domain should be obfuscated when being displayed
+ publicly
+ type: boolean
+ x-go-name: Obfuscate
+ private_comment:
+ description: private comment for other admins on why the domain was blocked
+ type: string
+ x-go-name: PrivateComment
+ public_comment:
+ description: public comment on the reason for the domain block
+ type: string
+ x-go-name: PublicComment
+ title: DomainBlockCreateRequest is the form submitted as a POST to /api/v1/admin/domain_blocks
+ to create a new block.
+ type: object
+ x-go-name: DomainBlockCreateRequest
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ emoji:
+ properties:
+ category:
+ description: Used for sorting custom emoji in the picker.
+ example: blobcats
+ type: string
+ x-go-name: Category
+ shortcode:
+ description: The name of the custom emoji.
+ example: blobcat_uwu
+ type: string
+ x-go-name: Shortcode
+ static_url:
+ description: A link to a static copy of the custom emoji.
+ example: https://example.org/fileserver/emojis/blogcat_uwu.png
+ type: string
+ x-go-name: StaticURL
+ url:
+ description: Web URL of the custom emoji.
+ example: https://example.org/fileserver/emojis/blogcat_uwu.gif
+ type: string
+ x-go-name: URL
+ visible_in_picker:
+ description: Emoji is visible in the emoji picker of the instance.
+ example: true
+ type: boolean
+ x-go-name: VisibleInPicker
+ title: Emoji represents a custom emoji.
+ type: object
+ x-go-name: Emoji
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ emojiCreateRequest:
+ properties:
+ Image:
+ $ref: '#/definitions/FileHeader'
+ Shortcode:
+ description: Desired shortcode for the emoji, without surrounding colons.
+ This must be unique for the domain.
+ example: blobcat_uwu
+ type: string
+ title: EmojiCreateRequest represents a request to create a custom emoji made through
+ the admin API.
+ type: object
+ x-go-name: EmojiCreateRequest
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ field:
+ properties:
+ name:
+ description: The key/name of this field.
+ example: pronouns
+ type: string
+ x-go-name: Name
+ value:
+ description: The value of this field.
+ example: they/them
+ type: string
+ x-go-name: Value
+ verified_at:
+ description: If this field has been verified, when did this occur? (ISO 8601
+ Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: VerifiedAt
+ title: Field represents a name/value pair to display on an account's profile.
+ type: object
+ x-go-name: Field
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ mediaDimensions:
+ properties:
+ aspect:
+ format: float
+ type: number
+ x-go-name: Aspect
+ bitrate:
+ format: int64
+ type: integer
+ x-go-name: Bitrate
+ duration:
+ format: float
+ type: number
+ x-go-name: Duration
+ frame_rate:
+ type: string
+ x-go-name: FrameRate
+ height:
+ format: int64
+ type: integer
+ x-go-name: Height
+ size:
+ type: string
+ x-go-name: Size
+ width:
+ format: int64
+ type: integer
+ x-go-name: Width
+ title: MediaDimensions describes the physical properties of a piece of media.
+ It should be returned to the caller as part of MediaMeta.
+ type: object
+ x-go-name: MediaDimensions
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ mediaFocus:
+ properties:
+ x:
+ format: float
+ type: number
+ x-go-name: X
+ "y":
+ format: float
+ type: number
+ x-go-name: "Y"
+ title: MediaFocus describes the focal point of a piece of media. It should be
+ returned to the caller as part of MediaMeta.
+ type: object
+ x-go-name: MediaFocus
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ mediaMeta:
+ description: MediaMeta describes the returned media
+ properties:
+ aspect:
+ format: float
+ type: number
+ x-go-name: Aspect
+ audio_bitrate:
+ type: string
+ x-go-name: AudioBitrate
+ audio_channels:
+ type: string
+ x-go-name: AudioChannels
+ audio_encode:
+ type: string
+ x-go-name: AudioEncode
+ duration:
+ format: float
+ type: number
+ x-go-name: Duration
+ focus:
+ $ref: '#/definitions/mediaFocus'
+ fps:
+ format: uint16
+ type: integer
+ x-go-name: FPS
+ height:
+ format: int64
+ type: integer
+ x-go-name: Height
+ length:
+ type: string
+ x-go-name: Length
+ original:
+ $ref: '#/definitions/mediaDimensions'
+ size:
+ type: string
+ x-go-name: Size
+ small:
+ $ref: '#/definitions/mediaDimensions'
+ width:
+ format: int64
+ type: integer
+ x-go-name: Width
+ type: object
+ x-go-name: MediaMeta
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ oauthToken:
+ properties:
+ access_token:
+ description: Access token used for authorization.
+ type: string
+ x-go-name: AccessToken
+ created_at:
+ description: When the OAuth token was generated (UNIX timestamp seconds).
+ example: 1627644520
+ format: int64
+ type: integer
+ x-go-name: CreatedAt
+ scope:
+ description: OAuth scopes granted by this token, space-separated.
+ example: read write admin
+ type: string
+ x-go-name: Scope
+ token_type:
+ description: OAuth token type. Will always be 'Bearer'.
+ example: bearer
+ type: string
+ x-go-name: TokenType
+ title: Token represents an OAuth token used for authenticating with the GoToSocial
+ API and performing actions.
+ type: object
+ x-go-name: Token
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ poll:
+ properties:
+ emojis:
+ description: Custom emoji to be used for rendering poll options.
+ items:
+ $ref: '#/definitions/emoji'
+ type: array
+ x-go-name: Emojis
+ expired:
+ description: Is the poll currently expired?
+ type: boolean
+ x-go-name: Expired
+ expires_at:
+ description: When the poll ends. (ISO 8601 Datetime), or null if the poll
+ does not end
+ type: string
+ x-go-name: ExpiresAt
+ id:
+ description: The ID of the poll in the database.
+ example: 01FBYKMD1KBMJ0W6JF1YZ3VY5D
+ type: string
+ x-go-name: ID
+ multiple:
+ description: Does the poll allow multiple-choice answers?
+ type: boolean
+ x-go-name: Multiple
+ options:
+ description: Possible answers for the poll.
+ items:
+ $ref: '#/definitions/pollOptions'
+ type: array
+ x-go-name: Options
+ own_votes:
+ description: When called with a user token, which options has the authorized
+ user chosen? Contains an array of index values for options.
+ items:
+ format: int64
+ type: integer
+ type: array
+ x-go-name: OwnVotes
+ voted:
+ description: When called with a user token, has the authorized user voted?
+ type: boolean
+ x-go-name: Voted
+ voters_count:
+ description: How many unique accounts have voted on a multiple-choice poll.
+ Null if multiple is false.
+ format: int64
+ type: integer
+ x-go-name: VotersCount
+ votes_count:
+ description: How many votes have been received.
+ format: int64
+ type: integer
+ x-go-name: VotesCount
+ title: Poll represents a poll attached to a status.
+ type: object
+ x-go-name: Poll
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ pollOptions:
+ properties:
+ title:
+ description: The text value of the poll option. String.
+ type: string
+ x-go-name: Title
+ votes_count:
+ description: The number of received votes for this option. Number, or null
+ if results are not published yet.
+ format: int64
+ type: integer
+ x-go-name: VotesCount
+ title: PollOptions represents the current vote counts for different poll options.
+ type: object
+ x-go-name: PollOptions
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ status:
+ properties:
+ account:
+ $ref: '#/definitions/account'
+ application:
+ $ref: '#/definitions/application'
+ bookmarked:
+ description: This status has been bookmarked by the account viewing it.
+ type: boolean
+ x-go-name: Bookmarked
+ card:
+ $ref: '#/definitions/card'
+ content:
+ description: The content of this status. Should be HTML, but might also be
+ plaintext in some cases.
+ example: <p>Hey this is a status!</p>
+ type: string
+ x-go-name: Content
+ created_at:
+ description: The date when this status was created (ISO 8601 Datetime).
+ example: "2021-07-30T09:20:25+00:00"
+ type: string
+ x-go-name: CreatedAt
+ emojis:
+ description: Custom emoji to be used when rendering status content.
+ items:
+ $ref: '#/definitions/emoji'
+ type: array
+ x-go-name: Emojis
+ favourited:
+ description: This status has been favourited by the account viewing it.
+ type: boolean
+ x-go-name: Favourited
+ favourites_count:
+ description: Number of favourites/likes this status has received, according
+ to our instance.
+ format: int64
+ type: integer
+ x-go-name: FavouritesCount
+ id:
+ description: ID of the status.
+ example: 01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: ID
+ in_reply_to_account_id:
+ description: ID of the account being replied to.
+ example: 01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: InReplyToAccountID
+ in_reply_to_id:
+ description: ID of the status being replied to.
+ example: 01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: InReplyToID
+ language:
+ description: Primary language of this status (ISO 639 Part 1 two-letter language
+ code).
+ example: en
+ type: string
+ x-go-name: Language
+ media_attachments:
+ description: Media that is attached to this status.
+ items:
+ $ref: '#/definitions/attachment'
+ type: array
+ x-go-name: MediaAttachments
+ mentions:
+ description: Mentions of users within the status content.
+ items:
+ $ref: '#/definitions/Mention'
+ type: array
+ x-go-name: Mentions
+ muted:
+ description: Replies to this status have been muted by the account viewing
+ it.
+ type: boolean
+ x-go-name: Muted
+ pinned:
+ description: This status has been pinned by the account viewing it (only relevant
+ for your own statuses).
+ type: boolean
+ x-go-name: Pinned
+ poll:
+ $ref: '#/definitions/poll'
+ reblog:
+ $ref: '#/definitions/status'
+ reblogged:
+ description: This status has been boosted/reblogged by the account viewing
+ it.
+ type: boolean
+ x-go-name: Reblogged
+ reblogs_count:
+ description: Number of times this status has been boosted/reblogged, according
+ to our instance.
+ format: int64
+ type: integer
+ x-go-name: ReblogsCount
+ replies_count:
+ description: Number of replies to this status, according to our instance.
+ format: int64
+ type: integer
+ x-go-name: RepliesCount
+ sensitive:
+ description: Status contains sensitive content.
+ example: false
+ type: boolean
+ x-go-name: Sensitive
+ spoiler_text:
+ description: Subject, summary, or content warning for the status.
+ example: warning nsfw
+ type: string
+ x-go-name: SpoilerText
+ tags:
+ description: Hashtags used within the status content.
+ items:
+ $ref: '#/definitions/tag'
+ type: array
+ x-go-name: Tags
+ text:
+ description: |-
+ Plain-text source of a status. Returned instead of content when status is deleted,
+ so the user may redraft from the source text without the client having to reverse-engineer
+ the original text from the HTML content.
+ type: string
+ x-go-name: Text
+ uri:
+ description: ActivityPub URI of the status. Equivalent to the status's activitypub
+ ID.
+ example: https://example.org/users/some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: URI
+ url:
+ description: The status's publicly available web URL. This link will only
+ work if the visibility of the status is 'public'.
+ example: https://example.org/@some_user/statuses/01FBVD42CQ3ZEEVMW180SBX03B
+ type: string
+ x-go-name: URL
+ visibility:
+ $ref: '#/definitions/statusVisibility'
+ title: Status represents a status or post.
+ type: object
+ x-go-name: Status
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ statusVisibility:
+ title: Visibility denotes the visibility of a status to other users.
+ type: string
+ x-go-name: Visibility
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ tag:
+ properties:
+ name:
+ description: 'The value of the hashtag after the # sign.'
+ example: helloworld
+ type: string
+ x-go-name: Name
+ url:
+ description: Web link to the hashtag.
+ example: https://example.org/tags/helloworld
+ type: string
+ x-go-name: URL
+ title: Tag represents a hashtag used within the content of a status.
+ type: object
+ x-go-name: Tag
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+ updateField:
+ description: By default, max 4 fields and 255 characters per property/value.
+ properties:
+ name:
+ description: Name of the field
+ type: string
+ x-go-name: Name
+ value:
+ description: Value of the field
+ type: string
+ x-go-name: Value
+ title: UpdateField is to be used specifically in an UpdateCredentialsRequest.
+ type: object
+ x-go-name: UpdateField
+ x-go-package: github.com/superseriousbusiness/gotosocial/internal/api/model
+host: example.org
+info:
+ contact:
+ email: admin@gotosocial.org
+ name: GoToSocial Authors
+ description: GoToSocial Swagger documentation.
+ license:
+ name: AGPL3
+ url: https://www.gnu.org/licenses/agpl-3.0.en.html
+ title: GoToSocial
+ version: 0.1.0-SNAPSHOT
+paths:
+ /api/v1/accounts:
+ post:
+ consumes:
+ - application/json
+ - application/xml
+ - application/x-www-form-urlencoded
+ - multipart/form-data
+ operationId: accountCreate
+ parameters:
+ - in: body
+ name: Account Create Request
+ schema:
+ $ref: '#/definitions/accountCreateRequest'
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: An OAuth2 access token for the newly-created account.
+ schema:
+ $ref: '#/definitions/oauthToken'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ "500":
+ description: internal error
+ security:
+ - OAuth2 Application:
+ - write:accounts
+ summary: Create a new account using an application token.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}:
+ get:
+ operationId: accountGet
+ parameters:
+ - description: The id of the requested account.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: ""
+ schema:
+ $ref: '#/definitions/account'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: Get information about an account with the given ID.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/block:
+ post:
+ operationId: accountBlock
+ parameters:
+ - description: The id of the account to block.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Your relationship to this account.
+ schema:
+ $ref: '#/definitions/accountRelationship'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - write:blocks
+ summary: Block account with id.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/follow:
+ post:
+ operationId: accountFollow
+ parameters:
+ - description: The id of the account to follow.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Your relationship to this account.
+ schema:
+ $ref: '#/definitions/accountRelationship'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - write:follows
+ summary: Follow account with id.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/followers:
+ get:
+ operationId: accountFollowers
+ parameters:
+ - description: Account ID.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Array of accounts that follow this account.
+ schema:
+ items:
+ $ref: '#/definitions/account'
+ type: array
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: See followers of account with given id.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/following:
+ get:
+ operationId: accountFollowing
+ parameters:
+ - description: Account ID.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Array of accounts that are followed by this account.
+ schema:
+ items:
+ $ref: '#/definitions/account'
+ type: array
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: See accounts followed by given account id.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/statuses:
+ get:
+ description: The statuses will be returned in descending chronological order
+ (newest first), with sequential IDs (bigger = newer).
+ operationId: accountStatuses
+ parameters:
+ - description: Account ID.
+ in: path
+ name: id
+ required: true
+ type: string
+ - default: 30
+ description: Number of statuses to return.
+ in: query
+ name: limit
+ type: integer
+ - default: false
+ description: Exclude statuses that are a reply to another status.
+ in: query
+ name: exclude_replies
+ type: boolean
+ - description: |-
+ Return only statuses *OLDER* than the given max status ID.
+ The status with the specified ID will not be included in the response.
+ in: query
+ name: max_id
+ type: string
+ - default: false
+ description: Show only pinned statuses. In other words,e xclude statuses that
+ are not pinned to the given account ID.
+ in: query
+ name: pinned_only
+ type: boolean
+ - default: false
+ description: Show only statuses with media attachments.
+ in: query
+ name: media_only
+ type: boolean
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Array of statuses..
+ schema:
+ items:
+ $ref: '#/definitions/status'
+ type: array
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: See statuses posted by the requested account.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/unblock:
+ post:
+ operationId: accountUnblock
+ parameters:
+ - description: The id of the account to unblock.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Your relationship to this account.
+ schema:
+ $ref: '#/definitions/accountRelationship'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - write:blocks
+ summary: Unblock account with ID.
+ tags:
+ - accounts
+ /api/v1/accounts/{id}/unfollow:
+ post:
+ operationId: accountUnfollow
+ parameters:
+ - description: The id of the account to unfollow.
+ in: path
+ name: id
+ required: true
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Your relationship to this account.
+ schema:
+ $ref: '#/definitions/accountRelationship'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - write:follows
+ summary: Unfollow account with id.
+ tags:
+ - accounts
+ /api/v1/accounts/relationships:
+ get:
+ operationId: accountRelationships
+ parameters:
+ - description: Account IDs.
+ in: query
+ items:
+ type: string
+ name: id
+ required: true
+ type: array
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: Array of account relationships.
+ schema:
+ items:
+ $ref: '#/definitions/accountRelationship'
+ type: array
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: See your account's relationships with the given account IDs.
+ tags:
+ - accounts
+ /api/v1/accounts/update_credentials:
+ patch:
+ consumes:
+ - multipart/form-data
+ operationId: accountUpdate
+ parameters:
+ - description: Account should be made discoverable and shown in the profile
+ directory (if enabled).
+ in: formData
+ name: discoverable
+ type: boolean
+ - description: Account is flagged as a bot.
+ in: formData
+ name: bot
+ type: boolean
+ - description: The display name to use for the account.
+ in: formData
+ name: display_name
+ type: string
+ - description: Bio/description of this account.
+ in: formData
+ name: note
+ type: string
+ - description: Avatar of the user.
+ in: formData
+ name: avatar
+ type: file
+ - description: Header of the user.
+ in: formData
+ name: header
+ type: file
+ - description: Require manual approval of follow requests.
+ in: formData
+ name: locked
+ type: boolean
+ - description: Default post privacy for authored statuses.
+ in: formData
+ name: source.privacy
+ type: string
+ - description: Mark authored statuses as sensitive by default.
+ in: formData
+ name: source.sensitive
+ type: boolean
+ - description: Default language to use for authored statuses (ISO 6391).
+ in: formData
+ name: source.language
+ type: string
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: The newly updated account.
+ schema:
+ $ref: '#/definitions/account'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ security:
+ - OAuth2 Bearer:
+ - write:accounts
+ summary: Update your account.
+ tags:
+ - accounts
+ /api/v1/accounts/verify_credentials:
+ get:
+ operationId: accountVerify
+ produces:
+ - application/json
+ responses:
+ "200":
+ description: ""
+ schema:
+ $ref: '#/definitions/account'
+ "400":
+ description: bad request
+ "401":
+ description: unauthorized
+ "404":
+ description: not found
+ security:
+ - OAuth2 Bearer:
+ - read:accounts
+ summary: Verify a token by returning account details pertaining to it.
+ tags:
+ - accounts
+schemes:
+- https
+- http
+securityDefinitions:
+ OAuth2 Application:
+ flow: application
+ scopes:
+ write:accounts: grants write access to accounts
+ tokenUrl: https://example.org/oauth/token
+ type: oauth2
+ OAuth2 Bearer:
+ authorizationUrl: https://example.org/oauth/authorize
+ flow: accessCode
+ scopes:
+ admin: grants admin access to everything
+ admin:accounts: grants admin access to accounts
+ read: grants read access to everything
+ read:accounts: grants read access to accounts
+ write: grants write access to everything
+ write:accounts: grants write access to accounts
+ write:blocks: grants write access to blocks
+ write:follows: grants write access to follows
+ tokenUrl: https://example.org/oauth/token
+ type: oauth2
+swagger: "2.0"