Floatplane REST API (3.10.0-c)

Download OpenAPI specification:Download

Homepage: https://jman012.github.io/FloatplaneAPIDocs

This document describes the REST API layer of https://www.floatplane.com, a content creation and video streaming website created by Floatplane Media Inc. and Linus Media Group, where users can support their favorite creators via paid subscriptions in order to watch their video and livestream content in higher quality, in addition to other perks.

While this document contains stubs for all of the Floatplane APIs for this version, many are not filled out because they are related only to content creation, moderation, or administration and are not needed for regular use. These have "TODO" as the description, and are automatically removed before document generation. If you are viewing the "Trimmed" version of this document, they have been removed for brevity.

API Object Organization

  • Users and Creators exist on Floatplane at the highest level
    • The highest-level object in Floatplane is the Creator. This is an entity, such as Linus Tech Tips, that produces media for Users.
  • A Creator owns one or more Subscription Plans
  • A User can view a Creator's Content if they are subscribed to them
  • A Creator publishes Content, in the form of Blog Posts
    • Content is produced by Creators, and show up for subscribed Users to view when it is released. A piece of Content is meant to be generic, and may contain different types of sub-Content. Currently, the only type is a Blog Post.
    • A Blog Post is the main type of Content that a Creator produces. Blog Posts are how a Creator can share text and/or media attachments with their subscribers.
  • A Blog Post is comprised of one or more of: video, audio, or picture Attachments
    • A media Attachment may be: video, audio, picture. Attachments are a part of Blog Posts, and are in a particular order.
  • A Creator may also have a single Livestream
  • Creators also may have one or more Channels

API Flow

As of Floatplane version 4.0.13, these are the recommended endpoints to use for normal operations.

  1. Login
    1. /api/v3/auth/captcha/info - Get captcha information
    2. /api/v2/auth/login - Login with username, password, and optional captcha token
    3. /api/v2/auth/checkFor2faLogin - Optionally provide 2FA token to complete login
    4. /api/v2/auth/logout - Logout at a later point in time
  2. Home page
    1. /api/v3/user/subscriptions - Get the user's active subscriptions
    2. /api/v3/creator/info - Get more information on subscribed creators
      1. Shows a list of creators that the user can select
      2. Note that this can search and return multiple creators. The V3 version only works for a single creator at a time.
    3. /api/v3/content/creator/list - Using the subscriptions, show a home page with content from all subscriptions/subscribed creators
      1. Supply all creator identifiers from the subscriptions
      2. This is be paginated
  3. Creator page
    1. /api/v3/creator/info - Get more details for the creator to display, including if livestreams are available
    2. /api/v3/content/creator - Show recent content by that creator (as opposed to all subscribed creators, above)
    3. /api/v2/plan/info - Show available plans the user can subscribe to for the creator
  4. Content page
    1. /api/v3/content/post - Show more detailed information about a piece of content, including text description, available attachments, metadata, interactions, etc.
    2. /api/v3/content/related - List some related content for the user to watch next
    3. /api/v3/comment - Load comments for the content for the user to read
      1. There are several more comment APIs to post, like, dislike, etc.
    4. /api/v2/user/ban/status - Determine if the user is banned from this creator
    5. /api/v3/content/{video|audio|picture|gallery} - Load the attached media for the post. This is usually video, but audio, pictures, and galleries are also available.
    6. /api/v3/delivery/info - For video and audio, this is required to get the information to stream or download the content in media players
  5. Livestream
    1. /api/v3/delivery/info - Using the type "livestream" to load the livestream media in a media player
    2. wss://chat.floatplane.com/sails.io/?... - To connect to the livestream chat over websocket. See https://jman012.github.io/FloatplaneAPIDocs/ for more information on the FP Async API with Websockets.
  6. User Profile
    1. /api/v3/user/self - Display username, name, email, and profile pictures

API Organization

The organization of APIs into categories in this document are reflected from the internal organization of the Floatplane website bundled code, from frontend.floatplane.com/{version}/main.js. This is in order to use the best organization from the original developers' point of view.

For instance, Floatplane's authentication endpoints are organized into Auth.v2.login(...), Auth.v2.logout(), and Auth.v3.getCaptchaInfo(). A limitation in OpenAPI is the lack of nested tagging/structure, so this document splits Auth into AuthV2 and AuthV3 to emulate the nested structure.

Rate Limiting

The Floatplane API may employ rate limiting on certain or all endpoints. If too many requests are sent by a client to the API, it will be rejected and rate-limited. This may be by IP address per endpoint in a certain unit of time, but is subject to change.

Rate-limited requests will respond with an HTTP 429 response. The content of the response may be HTML or JSON and is subject to change. The response will also have a Retry-After header, which contains the number of seconds remaining until the rate limiting will cease for the client on that endpoint.

Clients are expected to both 1) prevent too many requests from executing at a time, usually for specific endpoints, and particulay for the /api/v2/cdn/delivery and /api/v3/delivery/info endpoints, and 2) properly handle rate-limited responses by ceasing requests until the Retry-After expiration.

Notes

Note that the Floatplane API does support the use of ETags for retrieving some information, such as retrieving information about creators, users, etc. Expect an HTTP 304 if the content has not changed, and to re-use cached responses. This is useful to ease the strain on Floatplane's API server.

The date-time format used by Floatplane API is not standard ISO 8601 format. The dates/times given by Floatplane include milliseconds. Depending on your code generator, you may need to override the date-time format to something similar to yyyy-MM-dd'T'HH:mm:ss.SSSZ, for both encoding and decoding.

AuthV2

Sign up, login, 2FA, and logout. Additionally, login spoofing for administrators.

Login

Login to Floatplane with the provided username and password, retrieving the authentication/authorization cookie from the response for subsequent requests.

Request Body schema: application/json
username
required
string
password
required
string
captchaToken
string

The Google Recaptcha v2/v3 token to verify the request. On web browsers, this is required. For mobile or TV applications, this is not required only if the User-Agent indicates so (e.g., if the User-Agent contains "CFNetwork" in its value). Otherwise, the application would have to supply a valid captcha token, which can be difficult to obtain dynamically in some scenarios. In this case, this should be undefined (no key), not null.

Responses

Request samples

Content type
application/json
{
  • "username": "my_username",
  • "password": "my_password",
  • "captchaToken": "..."
}

Response samples

Content type
application/json
{}

Logout

Log out of Floatplane, invalidating the authentication/authorization cookie.

Authorizations:
CookieAuth

Responses

Response samples

Content type
text/plain
OK

Check For 2FA Login

Complete the login process if a two-factor authentication token is required from the beginning of the login process.

Authorizations:
CookieAuth
Request Body schema: application/json
token
required
string

The two-factor authentication token that the user inputs to complete the login process.

Responses

Request samples

Content type
application/json
{
  • "token": "123456"
}

Response samples

Content type
application/json
{}

AuthV3

Captchas information.

Get Captcha Info

Gets the site keys used for Google Recaptcha V2 and V3. These are useful when providing a captcha token when logging in or signing up.

Responses

Response samples

Content type
application/json
{
  • "v2": {
    },
  • "v3": {
    }
}

CDNV2

Content Delivery mechanisms for Floatplane media.

Get Delivery Info

Given an video/audio attachment identifier, retrieves the information necessary to play, download, or livestream the video/audio at various quality levels.

Authorizations:
CookieAuth
query Parameters
type
required
string
Enum: "vod" "aod" "live" "download"

Used to determine which kind of retrieval method is requested for the video.

  • VOD = stream a Video On Demand
  • AOD = stream Audio On Demand
  • Live = Livestream the content
  • Download = Download the content for the user to play later.
guid
string

The GUID of the attachment for a post, retrievable from the videoAttachments or audioAttachments object. Required when type is vod, aod, or download. Note: either this or creator must be supplied.

creator
string

The GUID of the creator for a livestream, retrievable from CreatorModelV2.id. Required when type is live. Note: either this or guid must be supplied. Note: for vod and download, including this creator parameter will cause an error to be returned.

Responses

Response samples

Content type
application/json
{
  • "strategy": "cdn",
  • "resource": {
    }
}

DeliveryV3

Content Delivery mechanisms for Floatplane media.

Get Delivery Info

Given an video/audio attachment or livestream identifier, retrieves the information necessary to play, download, or livestream the media at various quality levels.

Authorizations:
CookieAuth
query Parameters
scenario
required
string
Enum: "onDemand" "download" "live"

Used to determine the scenario in which to consume the media.

  • onDemand = stream a Video/Audio On Demand
  • download = Download the content for the user to play later.
  • live = Livestream the content
entityId
required
string

The attachment or livestream identifier for the requested media. For video and audio, this would be from the videoAttachments or audioAttachments objects. For livestreams, this is the liveStream.id from the creator object.

outputKind
string
Enum: "hls.mpegts" "hls.fmp4" "dash.mpegts" "dash.m4s" "flat"

Use outputKind to ensure the right vehicle is used for your client, e.g. outputKind=hls.fmp4 is optimal for tvOS 10+.

Responses

Response samples

Content type
application/json
Example

https://www.floatplane.com/api/v3/delivery/info?entityId=Lug14XXgLx&scenario=onDemand

Note that tokens are JWT tokens, but have been replaced with <token> in the examples below.

{
  • "groups": [
    ]
}

ConnectedAccountsV2

3rd party account management, such as Discord or LTT Forums.

List Connections

List the available 3rd party accounts for the user's profile.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

CreatorV2

Get and discover creators on the platform. Creator invitation and profile management.

Get Info

Retrieve detailed information on one or more creators on Floatplane.

Authorizations:
CookieAuth
query Parameters
creatorGUID
required
Array of strings[ items non-empty ]

The GUID identifer(s) of the creator(s) to be retrieved.

Responses

Response samples

Content type
application/json
[]

Get Info By Name

Retrieve detailed information on one or more creators on Floatplane.

Authorizations:
CookieAuth
query Parameters
creatorURL
required
Array of strings[ items non-empty ]

The string identifer(s) of the creator(s) to be retrieved.

Responses

Response samples

Content type
application/json
[]

CreatorV3

Get and discover creators on the platform. Creator invitation and profile management.

Get Creator

Retrieve detailed information about a specific creator.

Authorizations:
CookieAuth
query Parameters
id
required
string

The GUID of the creator being searched.

Responses

Response samples

Content type
application/json
{}

Get Creators

Retrieve and search for all creators on Floatplane. Useful for creator discovery and filtering.

Authorizations:
CookieAuth
query Parameters
search
required
string

Optional search string for finding particular creators on the platform.

Responses

Response samples

Content type
application/json
[]

Get Creator By Name

Retrieve detailed information on one or more creators on Floatplane.

Authorizations:
CookieAuth
query Parameters
creatorURL
required
Array of strings[ items non-empty ]

The urlname(s) of the creator(s) to be retrieved. See CreatorModelV3.

Responses

Response samples

Content type
application/json
[]

List Creator Channels

Retrieves a list of channels within the given creator(s).

Authorizations:
CookieAuth
query Parameters
ids
required
Array of strings[ items non-empty ]

The ids of the creator(s) from which to search for channels.

Responses

Response samples

Content type
application/json
[]

CreatorSubscriptionPlanV2

Manage creator subscription plans.

Get Creator Sub Info Public

Retrieve detailed information about a creator's subscription plans and their subscriber count.

Authorizations:
CookieAuth
query Parameters
creatorId
required
string

The GUID for the creator being search.

Responses

Response samples

Content type
application/json
{
  • "totalSubscriberCount": 19256,
  • "totalIncome": null,
  • "plans": [
    ]
}

EdgesV2

Get edge server information for media playback.

Get Edges Deprecated

Retrieve a list of edge servers from which to stream or download videos. This is deprecated, and using the CDN endpoint is recommended as a replacement.

Responses

Response samples

Content type
application/json
{
  • "edges": [
    ],
  • "client": { }
}

FAQV2

Get FAQs.

Get Faq Sections

Retrieve a list of FAQ sections to display to the user. Each section contains one or more FAQ items. This is normally accessible from https://www.floatplane.com/support. Note that the answers to the FAQs will contain HTML.

Responses

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

PaymentsV2

User payment method/address/invoice management.

List Payment Methods

Retrieve a list of saved payment methods for the user's account. Payment methods are how the user can pay for their subscription to creators on the platform.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Addresses

Retrieve a list of billing addresses saved to the user's account, to be used in conjunction with a payment method when purchasing subscriptions to creators.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

List Invoices

Retrieve a list of paid or unpaid subscription invoices for the user.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{}

SocketV3

Socket subscriptions and connections.

Connect

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{ }

Disconnect

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{ }

SubscriptionsV3

Get user subscriptions.

List User Subscriptions

Retrieve a list of all active subscriptions for the user.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

UserV2

User discovery and profile management.

Info

Retrieve more detailed information about one or more users from their identifiers.

Authorizations:
CookieAuth
query Parameters
id
required
Array of strings[ items non-empty ]

The GUID identifer(s) of the user(s) to be retrieved.

Responses

Response samples

Content type
application/json
{}

Get Info By Name

Retrieve more detailed information about one or more users from their usernames.

Authorizations:
CookieAuth
query Parameters
username
required
Array of strings[ items non-empty ]

The username(s) of the user(s) to be retrieved.

Responses

Response samples

Content type
application/json
{}

Get Security

Retrieve information about the current security configuration for the user.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{
  • "twofactorEnabled": true,
  • "twofactorBackupCodeEnabled": true
}

User Creator Ban Status

Determine whether or not the user is banned for a given creator.

Authorizations:
CookieAuth
query Parameters
creator
required
string

The GUID of the creator being queried.

Responses

Response samples

Content type
application/json
false

UserV3

User discovery and profile management.

Get Activity Feed

Retrieve recent activity for a user, such as comments and other interactions they have made on posts for creators.

Authorizations:
CookieAuth
query Parameters
id
required
string

The GUID of the user being queried.

Responses

Response samples

Content type
application/json
{
  • "activity": [
    ],
  • "visibility": "public"
}

Get External Links

Retrieve configured social media links from a user's profile.

Authorizations:
CookieAuth
query Parameters
id
required
string

The GUID of the user being searched.

Responses

Response samples

Content type
application/json
{}

Get Self

Retrieve more detailed information about the user, including their name and email.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{}

Get User Notification Settings

Retrieve notification details for a user. The details are split into seperate settings for each subscribed creator.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update User Notification Settings

Enable or disable email or push notifications for a specific creator.

Authorizations:
CookieAuth
Request Body schema: application/json
creator
required
string
property
required
string
Enum: "contentEmail" "contentFirebase"

Use contentEmail for email notifications, and contentFirebase for push notifications.

newValue
required
boolean

Responses

Request samples

Content type
application/json
{
  • "creator": "59f94c0bdd241b70349eb72b",
  • "property": "contentFirebase",
  • "newValue": false
}

Response samples

Content type
application/json
true

CommentV3

Comment retrieval, posting, and interacting.

Post Comment

Post a new comment to a blog post object.

Authorizations:
CookieAuth
Request Body schema: application/json
blogPost
required
string

The GUID of the blogPost the comment should be posted to.

text
required
string

The text of the comment being posted.

Responses

Request samples

Content type
application/json
{
  • "blogPost": "j7KjCaKrtV",
  • "text": "This is the text of the comment being posted"
}

Response samples

Content type
application/json
{}

Get Comments

Get comments for a blog post object. Note that replies to each comment tend to be limited to 3. The extra replies can be retrieved via getCommentReplies. The difference in $response.body#/0/totalReplies and $response.body#/0/replies's length can determine if more comments need to be loaded.

Authorizations:
CookieAuth
query Parameters
blogPost
required
string

Which blog post to retrieve comments for.

limit
required
integer

The maximum number of comments to return. This should be set to 20 by default.

fetchAfter
string

When loading more comments on a blog post, this is used to determine which which comments to skip. This is a GUID of the last comment from the previous call to getComments.

Responses

Response samples

Content type
application/json
[]

Get Comment Replies

Retrieve more replies from a comment.

Authorizations:
CookieAuth
query Parameters
comment
required
string

The identifer of the comment from which to retrieve replies.

blogPost
required
string

The identifer of the blog post the comment belongs to.

limit
required
integer

How many replies to retrieve.

rid
required
string

The identifer of the last reply in the reply chain.

Responses

Response samples

Content type
application/json
[]

Like Comment

Like a comment on a blog post.

Authorizations:
CookieAuth
Request Body schema: application/json
comment
required
string

The GUID of the comment being liked.

blogPost
required
string

The GUID of the post the comment is on.

Responses

Request samples

Content type
application/json
{
  • "comment": "6161935e24f43441325bb255",
  • "blogPost": "j7KjCaKrtV"
}

Response samples

Content type
text/plain
like

Dislike Comment

Dislike a comment on a blog post.

Authorizations:
CookieAuth
Request Body schema: application/json
comment
required
string

The GUID of the comment being liked.

blogPost
required
string

The GUID of the post the comment is on.

Responses

Request samples

Content type
application/json
{
  • "comment": "6161935e24f43441325bb255",
  • "blogPost": "j7KjCaKrtV"
}

Response samples

Content type
text/plain
dislike

ContentV3

Content retrieval and interacting.

Get Creator Blog Posts

Authorizations:
CookieAuth
query Parameters
id
required
string

The GUID of the creator to retrieve posts from.

channel
string

The id of a creator's specific channel from which to retrieve posts.

limit
integer [ 1 .. 20 ]

The maximum number of posts to return.

fetchAfter
integer

The number of posts to skip. Usually a multiple of limit, to get the next "page" of results.

search
string

Search filter to look for specific posts.

tags
Array of strings[ items >= 0 items ]

An array of tags to search against, possibly in addition to search.

hasVideo
boolean

If true, include blog posts with video attachments.

hasAudio
boolean

If true, include blog posts with audio attachments.

hasPicture
boolean

If true, include blog posts with picture attachments.

hasText
boolean

If true, only include blog posts that are text-only. Text-only posts are ones without any attachments, such as video, audio, picture, and gallery.

This filter and hasVideo, hasAudio, and hasPicture should be mutually exclusive. That is, if hasText is true then the other three should all be false. Conversely, if any of the other three are true, then hasText should be false. Otherwise, the filter would produce no results.

sort
string
Enum: "ASC" "DESC"

DESC = Newest First. ASC = Oldest First.

fromDuration
integer

Include video posts where the duration of the video is at minimum fromDuration seconds long. Usually in multiples of 60 seconds. Implies hasVideo=true.

toDuration
integer

Include video posts where the duration of the video is at maximum toDuration seconds long. Usually in multiples of 60 seconds. Implies hasVideo=true.

fromDate
string <date-time>
Example: fromDate=2022-07-24T07:00:00.001Z

Include posts where the publication date is on or after this filter date.

toDate
string <date-time>
Example: toDate=2022-07-24T07:00:00.001Z

Include posts where the publication date is on or before this filter date.

Responses

Response samples

Content type
application/json
[]

Get Multi Creator Blog Posts

Authorizations:
CookieAuth
query Parameters
ids
required
Array of strings[ items non-empty ]

The GUID(s) of the creator(s) to retrieve posts from.

limit
required
integer >= 1

The maximum number of posts to retrieve.

Array of objects (ContentCreatorListLastItems)

For pagination, this is used to determine which posts to skip. There should be one fetchAfter object for each creator in ids. The moreFetchable in the request, and all of the data, comes from the ContentCreatorListV3Response.

Responses

Response samples

Content type
application/json
{}

Get Content Tags

Retrieve all tags and the number of times the tags have been used for the specified creator(s).

Authorizations:
CookieAuth
query Parameters
creatorIds
required
Array of strings[ items non-empty ]

The creator(s) to search by.

Responses

Response samples

Content type
application/json
{
  • "battery": 1,
  • "server": 1,
  • "Airpods": 1,
  • "storage": 1,
  • "tjm": 1,
  • "Apple": 1,
  • "swap": 1,
  • "memory": 1,
  • "ltt": 1
}

Get Blog Post

Retrieve more details on a specific blog post object for viewing.

Authorizations:
CookieAuth
query Parameters
id
required
string

The ID of the post to be retrieved.

Responses

Response samples

Content type
application/json
{}

Get Related Blog Posts

Retrieve a list of blog posts that are related to the post being viewed.

Authorizations:
CookieAuth
query Parameters
id
required
string

The ID of the originating post.

Responses

Response samples

Content type
application/json
[]

Get Video Content

Retrieve more information on a video attachment from a blog post in order to consume the video content.

Authorizations:
CookieAuth
query Parameters
id
required
string

The ID of the video attachment object, from the BlogPostModelV3.

Responses

Response samples

Content type
application/json
{
  • "id": "TViGzkuIic",
  • "guid": "TViGzkuIic",
  • "title": "October 9, 2021 @ 07:18 – First Linux Stream",
  • "type": "video",
  • "description": "",
  • "releaseDate": null,
  • "duration": 5689,
  • "creator": "59f94c0bdd241b70349eb72b",
  • "likes": 0,
  • "dislikes": 0,
  • "score": 0,
  • "isProcessing": false,
  • "primaryBlogPost": "Dw2ms0AgL8",
  • "thumbnail": {},
  • "isAccessible": true,
  • "blogPosts": [
    ],
  • "timelineSprite": {},
  • "userInteraction": [ ],
  • "levels": [
    ]
}

Get Picture Content

Retrieve more information on a picture attachment from a blog post in order to consume the picture content.

Authorizations:
CookieAuth
query Parameters
id
required
string

The ID of the picture attachment object, from the BlogPostModelV3.

Responses

Response samples

Content type
application/json
{}

Like Content

Toggles the like status on a piece of content. If disliked before, it will turn into a like. If liked before, the like will be removed.

Authorizations:
CookieAuth
Request Body schema: application/json
contentType
required
string
Value: "blogPost"
id
required
string

Responses

Request samples

Content type
application/json
{
  • "contentType": "blogPost",
  • "id": "T2gWkpaerq"
}

Response samples

Content type
application/json
[
  • "like"
]

Dislike Content

Toggles the dislike status on a piece of content. If liked before, it will turn into a dislike. If disliked before, the dislike will be removed.

Authorizations:
CookieAuth
Request Body schema: application/json
contentType
required
string
Value: "blogPost"
id
required
string

Responses

Request samples

Content type
application/json
{
  • "contentType": "blogPost",
  • "id": "T2gWkpaerq"
}

Response samples

Content type
application/json
[
  • "dislike"
]

Update Progress

Update the watch progress on a piece of media (usually video or audio), stored as the number of seconds in the media.

Authorizations:
CookieAuth
Request Body schema: application/json
id
required
string

The video or audio attachment identifier for the piece of media that is being updated. Note: this is not the blogPost identifier.

contentType
required
string
Enum: "video" "audio"

Which type of media the corresponding identifier is.

progress
required
integer >= 0

The progress through the media that has been consumed by the user, in seconds.

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "contentType": "blogPost"
}

Response samples

Content type
text/plain
OK

Get Progress

Batch retrieval of watch progress values for blog posts. This API is useful for showing progress of a list of blog posts shown on the screen to the user. When retrieving a list of blog posts, the media attachments only include the identifier; when retrieving full details of a blog post, the attachments include more information, but still fail to return the progress of the media. Only when pulling the full video/audio content does the progress get included in the response. Thus, the recommended approach is to pull paginated results of blog posts first, as usual, and then to call this endpoint to retrieve progress values for each blog post to show in some capacity, usually on the thumbnail as a progress bar on the bottom.

Note that the progress values returned in this endpoint are different from the update progress endpoint and the values returned in video/audio attachments. While the latter are measured in seconds, this endpoint returns progress as a percentage of the media's total duration. It is presumed that the progress returned is from the first attachment in the blog post's attachmentOrder that is either a video or audio attachment. Because this returns progress as an integer percentage (0 to 100), it is not recommended to use this particular value for jumping to a timestamp in the media when resuming playback, as the rounded number may be off by plus/minus several seconds in actual playback. Use the actual attachment progress, measured in seconds, instead.

Authorizations:
CookieAuth
Request Body schema: application/json
ids
required
Array of strings

The identifiers of the blog posts from which progress should be retrieved.

contentType
required
string
Value: "blogPost"

The type of the corresponding identifiers. The only value currently is blogPost.

Responses

Request samples

Content type
application/json
{
  • "ids": [
    ],
  • "contentType": "blogPost"
}

Response samples

Content type
application/json
[
  • {
    },
  • {
    }
]

PollV3

Poll voting and management.

Poll Join Live Room

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{ }

Poll Leave Live Room

Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
{ }

Vote Poll

Vote on an option of a poll. Voting a second time or attempting to change a choice may result in an error.

Authorizations:
CookieAuth
Request Body schema: application/json
pollId
required
string

The id of the poll to vote on.

optionIndex
required
integer

The index of the options of the poll for which to vote. This should not be outside the bounds of the poll options.

Responses

Request samples

Content type
application/json
{
  • "pollId": "62c8c1dd968bc0899bbb4b92",
  • "optionIndex": 1
}

Response samples

Content type
application/json
{ }

RedirectV3

Channel-level redirection to Youtube or other sites for latest videos outside of Floatplane.

Redirect to YouTube Latest Video

Redirects (HTTP 302) the user to the latest LMG video for a given LMG channel key. For example, visiting this URL with a channelKey of sc, it will take you directly to the latest Short Circuit video on YouTube. Unknown if this works for non-LMG creators for their channels. Not used in Floatplane code.

Authorizations:
CookieAuth
path Parameters
channelKey
required
string

Known possible values: ltt, tq, sc, tl, csf, tjm, lmgc, ma

Responses

Response samples

Content type
application/json
{
  • "id": "awoz-3s5g-6amf",
  • "errors": [
    ],
  • "message": "\"captchaToken\" must be an object"
}

LoyaltyRewardsV3

Loyalty rewards information and claiming.

List Creator Loyalty Reward

Retrieve a list of loyalty rewards for the user. The reason for why this is a POST and not a GET is unknown.

Authorizations:
CookieAuth

Responses

Response samples

Content type
application/json
[ ]