Floatplane REST API v3.10.0-c
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
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.
- Login
/api/v3/auth/captcha/info
- Get captcha information/api/v2/auth/login
- Login with username, password, and optional captcha token/api/v2/auth/checkFor2faLogin
- Optionally provide 2FA token to complete login/api/v2/auth/logout
- Logout at a later point in time
- Home page
/api/v3/user/subscriptions
- Get the user’s active subscriptions/api/v3/creator/info
- Get more information on subscribed creators- Shows a list of creators that the user can select
- Note that this can search and return multiple creators. The V3 version only works for a single creator at a time.
/api/v3/content/creator/list
- Using the subscriptions, show a home page with content from all subscriptions/subscribed creators- Supply all creator identifiers from the subscriptions
- This is be paginated
- Creator page
/api/v3/creator/info
- Get more details for the creator to display, including if livestreams are available/api/v3/content/creator
- Show recent content by that creator (as opposed to all subscribed creators, above)/api/v2/plan/info
- Show available plans the user can subscribe to for the creator
- Content page
/api/v3/content/post
- Show more detailed information about a piece of content, including text description, available attachments, metadata, interactions, etc./api/v3/content/related
- List some related content for the user to watch next/api/v3/comment
- Load comments for the content for the user to read- There are several more comment APIs to post, like, dislike, etc.
/api/v2/user/ban/status
- Determine if the user is banned from this creator/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./api/v3/delivery/info
- For video and audio, this is required to get the information to stream or download the content in media players
- Livestream
/api/v3/delivery/info
- Using the type “livestream” to load the livestream media in a media playerwss://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.
- User Profile
/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.
Base URLs:
Web: James Linnell License: MIT
Authentication
- API Key (CookieAuth)
- Parameter Name: sails.sid, in: cookie. Authentication and authorization to Floatplane API calls is governed by the
sails.sid
HTTP Cookie. To obtain this cookie, you must authenticate to/api/v2/auth/login
.
- Parameter Name: sails.sid, in: cookie. Authentication and authorization to Floatplane API calls is governed by the
When dealing with cookies in native applications (not via a website inside of a browser), please keep in mind that some languages/libraries may keep cookies across requests by default, and some may not. For instance, in Swift the URLSession.shared
object with default configuration will automatically track and persist cookies across requests.
ActivationV2
Activate new user accounts and confirming activation via email.
confirmEmail
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/activation/email/confirm \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/activation/email/confirm HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/activation/email/confirm',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/activation/email/confirm',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/activation/email/confirm', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/activation/email/confirm', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/activation/email/confirm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/activation/email/confirm", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/activation/email/confirm
Confirm Email
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
requestActivationEmail
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/activation/email/request \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/activation/email/request HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/activation/email/request',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/activation/email/request',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/activation/email/request', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/activation/email/request', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/activation/email/request");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/activation/email/request", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/activation/email/request
Request Activation Email
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_CreatorAgreementV2
List and edit Creator<->Floatplane agreements.
listCreatorAgreement
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creatoragreement/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creatoragreement/list
List Creator Agreement
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorAgreement
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creatoragreement',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creatoragreement
Get Creator Agreement
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
editCreatorAgreement
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creatoragreement/edit \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creatoragreement/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creatoragreement/edit',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creatoragreement/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creatoragreement/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creatoragreement/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creatoragreement/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creatoragreement/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creatoragreement/edit
Edit Creator Agreement
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_CreatorV2
Creator management for creating and editing creators.
getCreatorList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/list
Get Creator List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorDetails
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/
Get Creator Details
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getSubscriptionPlanList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/subscriptionplans/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/subscriptionplans/list
Get Subscription Plan List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
checkCreatorURLAvailable
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/urlname/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/urlname/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/urlname/availability',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/urlname/availability',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/urlname/availability', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/urlname/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/urlname/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/urlname/availability", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/urlname/availability
Check Creator Url Available
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorCategories
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/category/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/category/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/category/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/category/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/category/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/category/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/category/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/category/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/category/list
Get Creator Categories
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createCreator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/create
Create Creator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadCover
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/cover/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/cover/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/cover/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/cover/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/cover/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/cover/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/cover/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/cover/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/cover/upload
Upload Cover
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorsTitles
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/creator/titles \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/creator/titles HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/titles',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/creator/titles',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/creator/titles', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/creator/titles', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/titles");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/creator/titles", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/creator/titles
Get Creators Titles
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateCreator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/update
Update Creator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateCreatorSubscriptionPlan
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/subscriptionplan/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/subscriptionplan/update
Update Creator Subscription Plan
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadCard
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/card/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/card/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/card/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/card/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/card/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/card/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/card/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/card/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/card/upload
Upload Card
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadIcon
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/creator/icon/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/creator/icon/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/creator/icon/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/creator/icon/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/creator/icon/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/creator/icon/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/creator/icon/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/creator/icon/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/creator/icon/upload
Upload Icon
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_CreatorV3
Creator management for inviting creators.
getCreatorInviteCodeList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v3/creator/invite/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v3/creator/invite/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v3/creator/invite/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v3/creator/invite/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v3/creator/invite/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v3/creator/invite/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/creator/invite/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v3/creator/invite/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v3/creator/invite/list
Get Creator Invite Code List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createCreatorInviteCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/creator/invite/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/creator/invite/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v3/creator/invite/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v3/creator/invite/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v3/creator/invite/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/creator/invite/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/creator/invite/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/creator/invite/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v3/creator/invite/create
Create Creator Invite Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_DashboardV2
Dashboard for viewing, starting, and stopping jobs.
getJobStatus
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/dashboard/job/status/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/dashboard/job/status/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/status/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/dashboard/job/status/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/dashboard/job/status/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/dashboard/job/status/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/status/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/dashboard/job/status/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/dashboard/job/status/
Get Job Status
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
startJob
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/dashboard/job/start/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/dashboard/job/start/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/start/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/dashboard/job/start/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/dashboard/job/start/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/dashboard/job/start/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/start/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/dashboard/job/start/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/dashboard/job/start/
Start Job
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
stopJob
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/dashboard/job/stop/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/dashboard/job/stop/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/dashboard/job/stop/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/dashboard/job/stop/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/dashboard/job/stop/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/dashboard/job/stop/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/dashboard/job/stop/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/dashboard/job/stop/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/dashboard/job/stop/
Stop Job
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_FAQV2
Manage and edit FAQ entries. See https://www.floatplane.com/support
getFaqSectionsACP
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/section/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/section/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/section/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/section/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/section/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/section/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/section/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/section/list
Get Faq Sections
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateFaqSection
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/section/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/section/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/section/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/section/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/section/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/section/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/section/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/section/edit
Update Faq Section
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getFaqSectionDetails
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/section/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/section/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/section/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/section/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/section/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/section/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/section/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/section/
Get Faq Section Details
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getFaqArticleDetails
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/article/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/article/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/article/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/article/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/article/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/article/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/article/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/article/
Get Faq Article Details
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateFaqArticle
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/article/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/article/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/article/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/article/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/article/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/article/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/article/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/article/edit
Update Faq Article
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadFaqImage
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/image/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/image/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/image/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/image/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/image/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/image/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/image/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/image/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/image/upload
Upload Faq Image
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getFaqImages
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/image/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/image/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/image/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/image/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/image/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/image/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/image/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/image/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/image/list
Get Faq Images
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createFaqSection
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/section/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/section/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/section/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/section/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/section/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/section/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/section/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/section/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/section/create
Create Faq Section
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createFaqArticle
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/article/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/article/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/article/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/article/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/article/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/article/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/article/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/article/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/article/create
Create Faq Article
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_FeatureV2
Manage and edit features.
getFeatureConfigs
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/feature/configs \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/feature/configs HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/configs',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/feature/configs',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/feature/configs', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/feature/configs', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/configs");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/feature/configs", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/feature/configs
Get Feature Configs
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveFeature
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/feature/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/feature/save
Save Feature
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveFeatureDependencies
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/dependencies/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/dependencies/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/dependencies/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/dependencies/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/feature/dependencies/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/dependencies/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/dependencies/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/dependencies/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/feature/dependencies/save
Save Feature Dependencies
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveFeatureCategory
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/category/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/category/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/category/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/category/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/feature/category/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/category/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/category/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/category/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/feature/category/save
Save Feature Category
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveFeatureType
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/type/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/type/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/type/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/type/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/feature/type/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/type/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/type/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/type/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/feature/type/save
Save Feature Type
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveFeatureResolution
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/feature/resolution/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/feature/resolution/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/feature/resolution/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/feature/resolution/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/feature/resolution/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/feature/resolution/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/feature/resolution/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/feature/resolution/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/feature/resolution/save
Save Feature Resolution
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
AdministrationV2
Manage and edit moderators and global moderators. This entire section is deprecated.
addGlobalModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/global/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/global/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/administration/moderators/global/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/global/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/global/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/global/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/global/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/global/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/administration/moderators/global/add
Add Global Moderator
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeGlobalModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/global/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/global/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/administration/moderators/global/remove',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/global/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/global/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/global/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/global/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/global/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/administration/moderators/global/remove
Remove Global Moderator
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/administration/moderators/remove',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/administration/moderators/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/administration/moderators/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/administration/moderators/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/administration/moderators/remove
Remove Moderator
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getModerator
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/administration/moderators/get/{user} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/administration/moderators/get/{user} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/administration/moderators/get/{user}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/administration/moderators/get/{user}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/administration/moderators/get/{user}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/administration/moderators/get/{user}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/get/{user}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/administration/moderators/get/{user}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/administration/moderators/get/{user}
Get Moderator
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
user | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listModeratorsAdmin
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/administration/moderators/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/administration/moderators/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/administration/moderators/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/administration/moderators/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/administration/moderators/list
List Moderators
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_ModeratorV2
Manage and edit moderators and global moderators.
getModeratorList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/moderator/list
Get Moderator List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/moderator/create
Create Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateGlobalModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/update/global \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/update/global HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/update/global',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/update/global',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/update/global', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/update/global', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/update/global");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/update/global", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/moderator/update/global
Update Global Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeCreatorModeratorACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/creator/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/creator/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/remove',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/creator/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/creator/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/creator/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/creator/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/moderator/creator/remove
Remove Creator Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
addCreatorModeratorACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/moderator/creator/add/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/moderator/creator/add/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/add/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/moderator/creator/add/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/moderator/creator/add/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/moderator/creator/add/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/add/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/moderator/creator/add/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/moderator/creator/add/
Add Creator Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getModeratorAvailableCreators
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/creator/available \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/creator/available HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/available',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/creator/available',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/creator/available', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/creator/available', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/available");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/creator/available", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/moderator/creator/available
Get Moderator Available Creators
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getModeratorCreators
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/moderator/creator/list/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/moderator/creator/list/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/moderator/creator/list/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/moderator/creator/list/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/moderator/creator/list/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/moderator/creator/list/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/moderator/creator/list/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/moderator/creator/list/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/moderator/creator/list/
Get Moderator Creators
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_UserV2
Manage and edit users globally by administrators.
getUserList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/list
Get User List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserDetails
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/
Get User Details
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
searchUserForModeration
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/list/notmoderator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/list/notmoderator HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/list/notmoderator',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/list/notmoderator',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/list/notmoderator', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/list/notmoderator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/list/notmoderator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/list/notmoderator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/list/notmoderator
Search User For Moderation
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
findUser
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/find \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/find HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/find',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/find',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/find', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/find', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/find");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/find", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/find
Find User
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createAdmin
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/admin/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/admin/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/admin/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/admin/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/admin/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/admin/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/admin/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/admin/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/admin/create
Create Admin
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
addUserSubscriptions
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/subscription/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/subscription/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/subscription/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/subscription/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/subscription/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/subscription/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/subscription/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/subscription/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/subscription/add
Add User Subscriptions
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
checkUsernameAvailable
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/username/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/username/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/username/availability',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/username/availability',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/username/availability', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/username/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/username/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/username/availability", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/username/availability
Check Username Available
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
checkEmailAvailable
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/email/availability \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/email/availability HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/email/availability',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/email/availability',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/email/availability', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/email/availability', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/email/availability");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/email/availability", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/email/availability
Check Email Available
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadAvatarACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/avatar/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/avatar/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/avatar/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/avatar/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/avatar/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/avatar/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/avatar/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/avatar/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/avatar/upload
Upload Avatar
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateUser
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/edit
Update User
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserSubscriptions
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/usersubscription/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/usersubscription/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/usersubscription/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/usersubscription/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/usersubscription/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/usersubscription/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/usersubscription/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/usersubscription/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/usersubscription/list
Get User Subscriptions
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeUserSubscription
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/usersubscription/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/usersubscription/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/usersubscription/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/usersubscription/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/usersubscription/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/usersubscription/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/usersubscription/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/usersubscription/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/usersubscription/delete
Remove User Subscription
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateAdministrator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/administrator/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/administrator/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/administrator/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/administrator/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/administrator/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/administrator/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/administrator/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/administrator/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/administrator/update
Update Administrator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteUser
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/delete
Delete User
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
signupACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v2/user/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v2/user/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v2/user/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v2/user/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v2/user/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v2/user/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v2/user/create
Signup
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listUserInvoices
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/payment/invoice/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/payment/invoice/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/payment/invoice/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/payment/invoice/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/payment/invoice/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/payment/invoice/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/payment/invoice/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/payment/invoice/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/payment/invoice/list
List User Invoices
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getPaymentProcessorData
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v2/user/payment/processor/data \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v2/user/payment/processor/data HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v2/user/payment/processor/data',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v2/user/payment/processor/data',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v2/user/payment/processor/data', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v2/user/payment/processor/data', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v2/user/payment/processor/data");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v2/user/payment/processor/data", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v2/user/payment/processor/data
Get Payment Processor Data
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_UserV3
Manage and edit users globally by administrators.
scheduleDeletionACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v3/user/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v3/user/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v3/user/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/user/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v3/user/delete
Schedule Deletion
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unscheduleDeletionACP
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/acp/v3/user/undelete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/acp/v3/user/undelete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v3/user/undelete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/acp/v3/user/undelete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/acp/v3/user/undelete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/acp/v3/user/undelete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/undelete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/acp/v3/user/undelete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/acp/v3/user/undelete
Unschedule Deletion
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getSubjectAccessData
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/acp/v3/user/sar \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/acp/v3/user/sar HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/acp/v3/user/sar',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/acp/v3/user/sar',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/acp/v3/user/sar', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/acp/v3/user/sar', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/acp/v3/user/sar");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/acp/v3/user/sar", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/acp/v3/user/sar
Get Subject Access Data
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
AuthV2
Sign up, login, 2FA, and logout. Additionally, login spoofing for administrators.
login
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/login HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"username": "string",
"password": "string",
"captchaToken": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/auth/login',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/login',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/login', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/login', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/login");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/login", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/login
Login
Login to Floatplane with the provided username and password, retrieving the authentication/authorization cookie from the response for subsequent requests.
Body parameter
{
"username": "string",
"password": "string",
"captchaToken": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | AuthLoginV2Request | true | none |
Example responses
200 Response
{
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"needs2FA": false
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Returns the header and information about the logged-in user, including the id, username, and profile image. | AuthLoginV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The login attempt failed, either due to a bad username or password. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Set-Cookie | string | Contains the cookie used in subsequent authenticated requests. | |
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
logout
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/logout \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v2/auth/logout HTTP/1.1
Host: www.floatplane.com
Accept: text/plain
const headers = {
'Accept':'text/plain'
};
fetch('https://www.floatplane.com/api/v2/auth/logout',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'text/plain'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/logout',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'text/plain'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/logout', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'text/plain',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/logout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/logout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/logout", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/logout
Logout
Log out of Floatplane, invalidating the authentication/authorization cookie.
Example responses
200 Response
"OK"
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Set-Cookie | string | Obtain a new authentication/authorization cookie after logging out. This new cookie will not be authenticated to perform subsequent requests. | |
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
beginSpoofing
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/spoof/begin \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/spoof/begin HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/auth/spoof/begin',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/spoof/begin',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/spoof/begin', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/spoof/begin', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/spoof/begin");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/spoof/begin", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/spoof/begin
Begin Spoofing
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
endSpoofing
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/spoof/end \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/spoof/end HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/auth/spoof/end',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/spoof/end',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/spoof/end', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/spoof/end', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/spoof/end");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/spoof/end", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/spoof/end
End Spoofing
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
signup
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/signup \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/signup HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/auth/signup',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/signup',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/signup', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/signup', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/signup");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/signup", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/signup
Signup
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
checkFor2faLogin
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/auth/checkFor2faLogin \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/auth/checkFor2faLogin HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"token": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/auth/checkFor2faLogin',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/auth/checkFor2faLogin',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/auth/checkFor2faLogin', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/auth/checkFor2faLogin', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/auth/checkFor2faLogin");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/auth/checkFor2faLogin", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/auth/checkFor2faLogin
Check For 2FA Login
Complete the login process if a two-factor authentication token is required from the beginning of the login process.
Body parameter
{
"token": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | CheckFor2faLoginRequest | true | none |
Example responses
200 Response
{
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"needs2FA": false
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Returns the header and information about the logged-in user, including the id, username, and profile image. | AuthLoginV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The login attempt failed, either due to a bad username or password. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
200 | Set-Cookie | string | Contains the cookie used in subsequent authenticated requests. | |
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
AuthV3
Captchas information.
getCaptchaInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/auth/captcha/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/auth/captcha/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/auth/captcha/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/auth/captcha/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/auth/captcha/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/auth/captcha/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/auth/captcha/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/auth/captcha/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/auth/captcha/info
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.
Example responses
200 Response
{
"v2": {
"variants": {
"android": {
"siteKey": "..."
},
"checkbox": {
"siteKey": "..."
},
"invisible": {
"siteKey": "..."
}
}
},
"v3": {
"variants": {
"invisible": {
"siteKey": "..."
}
}
}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GetCaptchaInfoResponse |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
BrainTreeV2
BrainTree payment integration
generateClientToken
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/braintree/token \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/braintree/token HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/braintree/token',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/braintree/token',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/braintree/token', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/braintree/token', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/braintree/token");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/braintree/token", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/braintree/token
Generate Client Token
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CDNV2
Content Delivery mechanisms for Floatplane media.
getDeliveryInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/cdn/delivery?type=vod \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/cdn/delivery?type=vod HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/cdn/delivery?type=vod',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/cdn/delivery',
params: {
'type' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/cdn/delivery', params={
'type': 'vod'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/cdn/delivery', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/cdn/delivery?type=vod");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/cdn/delivery", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/cdn/delivery
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.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
type | query | string | true | Used to determine which kind of retrieval method is requested for the video. |
guid | query | string | false | 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 | query | string | false | 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. |
Detailed descriptions
type: 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.
Enumerated Values
Parameter | Value |
---|---|
type | vod |
type | aod |
type | live |
type | download |
Example responses
200 Response
{
"cdn": "https://cdn-vod-drm2.floatplane.com",
"strategy": "cdn",
"resource": {
"uri": "/Videos/TViGzkuIic/{qualityLevels}.mp4/chunk.m3u8?token={qualityLevelParams.token}",
"data": {
"qualityLevels": [
{
"name": "360",
"width": 640,
"height": 360,
"label": "360p",
"order": 0
},
{
"name": "480",
"width": 854,
"height": 480,
"label": "480p",
"order": 1
},
{
"name": "720",
"width": 1280,
"height": 720,
"label": "720p",
"order": 2
},
{
"name": "1080",
"width": 2160,
"height": 1080,
"label": "1080p",
"order": 4
}
],
"qualityLevelParams": {
"360": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzM2MC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.uaLzZ4wSc0jrYbjkdhuF4_UY92iWQsq2efrWUutYUvQ"
},
"480": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzQ4MC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.O6PHCJKcLW7ohuKj6UcMa8QGoN-vZr6xTtfXsUMRki0"
},
"720": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzcyMC5tcDQvY2h1bmsubTN1OCIsInVzZXJJZCI6IjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2NyIsImlhdCI6MTYzMzc5NzMxMSwiZXhwIjoxNjMzODE4OTExfQ.lbOTTBXBjA-i9gBzm8ydFQ8fa8q07Z2vaLsYMKUp4Ik"
},
"1080": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZXNzb3VyY2VQYXRoIjoiL1ZpZGVvcy9UVmlHemt1SWljLzEwODAubXA0L2NodW5rLm0zdTgiLCJ1c2VySWQiOiIwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1NjciLCJpYXQiOjE2MzM3OTczMTEsImV4cCI6MTYzMzgxODkxMX0.E-bw_gnUzKUpYeL2l-kTmj5CbwmDb519ohjf5LlLyQg"
}
}
}
}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Information on how to stream or download the requested video from the CDN in various levels of quality. | CdnDeliveryV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
DeliveryV3
Content Delivery mechanisms for Floatplane media.
getDeliveryInfoV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/delivery/info?scenario=onDemand&entityId=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/delivery/info?scenario=onDemand&entityId=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/delivery/info?scenario=onDemand&entityId=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/delivery/info',
params: {
'scenario' => 'string',
'entityId' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/delivery/info', params={
'scenario': 'onDemand', 'entityId': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/delivery/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/delivery/info?scenario=onDemand&entityId=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/delivery/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/delivery/info
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.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
scenario | query | string | true | Used to determine the scenario in which to consume the media. |
entityId | query | string | true | 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 | query | string | false | Use outputKind to ensure the right vehicle is used for your client, e.g. outputKind=hls.fmp4 is optimal for tvOS 10+. |
Detailed descriptions
scenario: Used to determine the scenario in which to consume the media.
onDemand
= stream a Video/Audio On Demanddownload
= Download the content for the user to play later.live
= Livestream the content
Enumerated Values
Parameter | Value |
---|---|
scenario | onDemand |
scenario | download |
scenario | live |
outputKind | hls.mpegts |
outputKind | hls.fmp4 |
outputKind | dash.mpegts |
outputKind | dash.m4s |
outputKind | flat |
Example responses
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": [
{
"origins": [
{
"url": "https://cdn-vod-drm2.floatplane.com"
}
],
"variants": [
{
"name": "360-avc1",
"label": "360p",
"url": "/Videos/Lug14XXgLx/360.mp4/chunk.m3u8?token=<token>",
"mimeType": "application/x-mpegURL",
"order": 11016384,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64001e",
"codecSimple": "avc1",
"bitrate": {
"average": 255886
},
"width": 640,
"height": 320,
"isHdr": false,
"fps": 29.97,
"mimeType": "video/MP2T"
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000,
"mimeType": "video/MP2T"
}
}
},
{
"name": "480-avc1",
"label": "480p",
"url": "/Videos/Lug14XXgLx/480.mp4/chunk.m3u8?token=<token>",
"mimeType": "application/x-mpegURL",
"order": 19339456,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64001f",
"codecSimple": "avc1",
"bitrate": {
"average": 395615
},
"width": 848,
"height": 424,
"isHdr": false,
"fps": 29.97,
"mimeType": "video/MP2T"
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000,
"mimeType": "video/MP2T"
}
}
},
{
"name": "720-avc1",
"label": "720p",
"url": "/Videos/Lug14XXgLx/720.mp4/chunk.m3u8?token=<token>",
"mimeType": "application/x-mpegURL",
"order": 44112064,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.640020",
"codecSimple": "avc1",
"bitrate": {
"average": 736634
},
"width": 1280,
"height": 640,
"isHdr": false,
"fps": 29.97,
"mimeType": "video/MP2T"
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000,
"mimeType": "video/MP2T"
}
}
},
{
"name": "1080-avc1",
"label": "1080p",
"url": "/Videos/Lug14XXgLx/1080.mp4/chunk.m3u8?token=<token>",
"mimeType": "application/x-mpegURL",
"order": 99293376,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64002a",
"codecSimple": "avc1",
"bitrate": {
"average": 1448573
},
"width": 1920,
"height": 960,
"isHdr": false,
"fps": 29.97,
"mimeType": "video/MP2T"
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000,
"mimeType": "video/MP2T"
}
}
},
{
"name": "2160-avc1",
"label": "4K",
"url": "/Videos/Lug14XXgLx/2160.mp4/chunk.m3u8?token=<token>",
"mimeType": "application/x-mpegURL",
"order": 397351104,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.640034",
"codecSimple": "avc1",
"bitrate": {
"average": 5904212
},
"width": 3840,
"height": 1920,
"isHdr": false,
"fps": 29.97,
"mimeType": "video/MP2T"
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000,
"mimeType": "video/MP2T"
}
}
}
]
}
]
}
https://www.floatplane.com/api/v3/delivery/info?entityId=Lug14XXgLx&scenario=download
Note that tokens are JWT tokens, but have been replaced with <token>
in the examples below.
{
"groups": [
{
"origins": [
{
"url": "https://edge01-na.floatplane.com",
"queryUrl": "https://edge01-na-query.floatplane.com",
"datacenter": {
"latitude": 45.3168,
"longitude": -73.8659,
"countryCode": "CA",
"regionCode": "QC"
}
},
{
"url": "https://edge02-na.floatplane.com",
"queryUrl": "https://edge02-na-query.floatplane.com",
"datacenter": {
"latitude": 45.3168,
"longitude": -73.8659,
"countryCode": "CA",
"regionCode": "QC"
}
}
],
"variants": [
{
"name": "360-avc1",
"label": "360p",
"url": "/Videos/Lug14XXgLx/360.mp4?token=<token>",
"mimeType": "video/mp4",
"order": 11016384,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64001e",
"codecSimple": "avc1",
"bitrate": {
"average": 255886
},
"width": 640,
"height": 320,
"isHdr": false,
"fps": 29.97
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000
}
}
},
{
"name": "480-avc1",
"label": "480p",
"url": "/Videos/Lug14XXgLx/480.mp4?token=<token>",
"mimeType": "video/mp4",
"order": 19339456,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64001f",
"codecSimple": "avc1",
"bitrate": {
"average": 395615
},
"width": 848,
"height": 424,
"isHdr": false,
"fps": 29.97
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000
}
}
},
{
"name": "720-avc1",
"label": "720p",
"url": "/Videos/Lug14XXgLx/720.mp4?token=<token>",
"mimeType": "video/mp4",
"order": 44112064,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.640020",
"codecSimple": "avc1",
"bitrate": {
"average": 736634
},
"width": 1280,
"height": 640,
"isHdr": false,
"fps": 29.97
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000
}
}
},
{
"name": "1080-avc1",
"label": "1080p",
"url": "/Videos/Lug14XXgLx/1080.mp4?token=<token>",
"mimeType": "video/mp4",
"order": 99293376,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.64002a",
"codecSimple": "avc1",
"bitrate": {
"average": 1448573
},
"width": 1920,
"height": 960,
"isHdr": false,
"fps": 29.97
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000
}
}
},
{
"name": "2160-avc1",
"label": "4K",
"url": "/Videos/Lug14XXgLx/2160.mp4?token=<token>",
"mimeType": "video/mp4",
"order": 397351104,
"hidden": false,
"enabled": true,
"meta": {
"video": {
"codec": "avc1.640034",
"codecSimple": "avc1",
"bitrate": {
"average": 5904212
},
"width": 3840,
"height": 1920,
"isHdr": false,
"fps": 29.97
},
"audio": {
"codec": "mp4a.40.2",
"bitrate": {
"average": 93340,
"maximum": 93340
},
"channelCount": 2,
"samplerate": 48000
}
}
}
]
}
]
}
https://www.floatplane.com/api/v3/delivery/info?entityId=5c13f3c006f1be15e08e05c0&scenario=live
Note that tokens are JWT tokens, but have been replaced with <token>
in the examples below.
{
"groups": [
{
"origins": [
{
"url": "https://de488bcb61af.us-east-1.playback.live-video.net"
}
],
"variants": [
{
"name": "live-abr",
"label": "Auto",
"url": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8?allow_source=false&token=<token>",
"mimeType": "application/x-mpegURL",
"hidden": false,
"enabled": true,
"meta": {
"live": {
"lowLatencyExtension": "ivshls"
}
}
}
]
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Information on how to stream or download the requested video from the CDN in various levels of quality. | CdnDeliveryV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ConnectedAccountsV2
3rd party account management, such as Discord or LTT Forums.
getAccountConnect
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/{site} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/{site} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/{site}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/connect/{site}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/connect/{site}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/{site}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/{site}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/{site}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/connect/{site}
Connect
TODO
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
site | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
callback
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/{site}/callback \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/{site}/callback HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/{site}/callback',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/connect/{site}/callback',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/connect/{site}/callback', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/{site}/callback', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/{site}/callback");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/{site}/callback", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/connect/{site}/callback
Callback
TODO
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
site | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
complete
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/connect/complete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/connect/complete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/complete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/connect/complete
Complete
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
refresh
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/refresh \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/refresh HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/refresh',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/connect/refresh',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/connect/refresh', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/refresh', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/refresh");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/refresh", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/connect/refresh
Refresh
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
dissociate
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/connect/dissociate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/connect/dissociate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/dissociate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/connect/dissociate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/connect/dissociate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/connect/dissociate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/dissociate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/connect/dissociate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/connect/dissociate
Dissociate
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listConnections
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/connect/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/connect/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/connect/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/connect/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/connect/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/connect/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/connect/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/connect/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/connect/list
List Connections
List the available 3rd party accounts for the user’s profile.
Example responses
200 Response
[
{
"key": "ltt",
"name": "LinusTechTips",
"enabled": true,
"iconWhite": "/images/connections/ltt/white@2x.png",
"connectedAccount": null,
"connected": false,
"isAccountProvider": false
},
{
"key": "discord",
"name": "Discord",
"enabled": true,
"iconWhite": "/images/connections/discord/white@2x.png",
"connectedAccount": {
"id": "9a8a4140fdd2b0c15b54333a",
"remoteUserId": "012345678912345678",
"remoteUserName": "my_username#2673",
"data": {
"canJoinGuilds": true
}
},
"connected": true,
"isAccountProvider": false
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Returns the list of connected and available accounts. | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ConnectedAccountModel] | false | none | none |
» key | string | true | none | Unique identifier for the account type. |
» name | string | true | none | Display-friendly label for the key . |
» enabled | boolean | true | none | Determines if the system allows this account to be connected to. |
» iconWhite | string | true | none | none |
» connectedAccount | object¦null | true | none | none |
»» id | string | true | none | none |
»» remoteUserId | string | true | none | none |
»» remoteUserName | string | true | none | none |
»» data | object¦null | true | none | none |
»»» canJoinGuilds | boolean | true | none | none |
» connected | boolean | true | none | If true, the user is connected and the connectedAccount will have data about the account. |
» isAccountProvider | boolean | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorAdministrationV2
Creator-specific moderator management.
addCreatorModeratorAdmin
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/administration/moderators/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/administration/moderators/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creator/administration/moderators/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creator/administration/moderators/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/administration/moderators/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/administration/moderators/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creator/administration/moderators/add
Add Creator Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorV2
Get and discover creators on the platform. Creator invitation and profile management.
getInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/info?creatorGUID=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/info?creatorGUID=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/info?creatorGUID=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/info',
params: {
'creatorGUID' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/info', params={
'creatorGUID': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info?creatorGUID=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/info
Get Info
Retrieve detailed information on one or more creators on Floatplane.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creatorGUID | query | array[string] | true | The GUID identifer(s) of the creator(s) to be retrieved. |
Example responses
200 Response
[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - The creators are found from their identifiers and returned in an array | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CreatorModelV2] | false | none | none |
» id | string | true | none | none |
» owner | string | true | none | none |
» title | string | true | none | none |
» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
» description | string | true | none | none |
» about | string | true | none | none |
» category | string | true | none | none |
» cover | ImageModel¦null | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
» icon | ImageModel | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» liveStream | LiveStreamModel¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» thumbnail | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» owner | string | true | none | none |
»» channel | string | false | none | The creator channel this livestream belongs to. |
»» streamPath | string | true | none | none |
»» offline | object | true | none | none |
»»» title | string¦null | true | none | none |
»»» description | string¦null | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
» subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» price | string¦null | true | none | none |
»» priceYearly | string¦null | true | none | none |
»» currency | string | true | none | none |
»» logo | string¦null | true | none | none |
»» interval | string | true | none | none |
»» featured | boolean | true | none | none |
»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»» discordServers | [DiscordServerModel] | true | none | none |
»»» id | string | true | none | none |
»»» guildName | string | true | none | none |
»»» guildIcon | string | true | none | none |
»»» inviteLink | string(uri)¦null | true | none | none |
»»» inviteMode | string | true | none | none |
»» discordRoles | [DiscordRoleModel] | true | none | none |
»»» server | string | true | none | none |
»»» roleName | string | true | none | none |
» discoverable | boolean | true | none | none |
» subscriberCountDisplay | string | true | none | none |
» incomeDisplay | boolean | true | none | none |
» defaultChannel | string | false | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorInfoByName
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/named?creatorURL=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/named?creatorURL=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/named?creatorURL=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/named',
params: {
'creatorURL' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/named', params={
'creatorURL': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/named?creatorURL=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/named", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/named
Get Info By Name
Retrieve detailed information on one or more creators on Floatplane.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creatorURL | query | array[string] | true | The string identifer(s) of the creator(s) to be retrieved. |
Example responses
200 Response
[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"twitter": "https://twitter.com/linustech",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips"
},
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
]
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [allOf] | false | none | none |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CreatorModelV2 | false | none | none |
»» id | string | true | none | none |
»» owner | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
»» description | string | true | none | none |
»» about | string | true | none | none |
»» category | string | true | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»» icon | ImageModel | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» liveStream | LiveStreamModel¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» owner | string | true | none | none |
»»» channel | string | false | none | The creator channel this livestream belongs to. |
»»» streamPath | string | true | none | none |
»»» offline | object | true | none | none |
»»»» title | string¦null | true | none | none |
»»»» description | string¦null | true | none | none |
»»»» thumbnail | ImageModel¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»»»» childImages | [ChildImageModel]¦null | true | none | none |
»» subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» price | string¦null | true | none | none |
»»» priceYearly | string¦null | true | none | none |
»»» currency | string | true | none | none |
»»» logo | string¦null | true | none | none |
»»» interval | string | true | none | none |
»»» featured | boolean | true | none | none |
»»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»»» discordServers | [DiscordServerModel] | true | none | none |
»»»» id | string | true | none | none |
»»»» guildName | string | true | none | none |
»»»» guildIcon | string | true | none | none |
»»»» inviteLink | string(uri)¦null | true | none | none |
»»»» inviteMode | string | true | none | none |
»»» discordRoles | [DiscordRoleModel] | true | none | none |
»»»» server | string | true | none | none |
»»»» roleName | string | true | none | none |
»» discoverable | boolean | true | none | none |
»» subscriberCountDisplay | string | true | none | none |
»» incomeDisplay | boolean | true | none | none |
»» defaultChannel | string | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
»» socialLinks | SocialLinksModel | true | none | none |
»»» additionalProperties | string(uri) | false | none | none |
»» discordServers | [DiscordServerModel] | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listVideos
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/videos \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/videos HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/videos',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/videos',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/videos', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/videos', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/videos");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/videos", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/videos
List Videos
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listPlaylists
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/playlists \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/playlists HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/playlists',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/playlists',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/playlists', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/playlists', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/playlists");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/playlists", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/playlists
List Playlists
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listCreators
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/list
List Creators
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
discoverCreatorsV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/discover \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/discover HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/discover',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/discover',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/discover', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/discover', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/discover");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/discover", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/discover
Discover Creators
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listCreatorCategoriesV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorcategory/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorcategory/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creatorcategory/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creatorcategory/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creatorcategory/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorcategory/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorcategory/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorcategory/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creatorcategory/list
List Creator Categories
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateSocialLinks
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/social/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/social/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/social/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creator/social/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creator/social/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/social/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/social/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/social/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creator/social/update
Update Social Links
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getSocialLinks
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/social/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/social/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/social/get',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/social/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/social/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/social/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/social/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/social/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/social/get
Get Social Links
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateChannelImage
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/image/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/image/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/image/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creator/image/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creator/image/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/image/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/image/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/image/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creator/image/update
Update Channel Image
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateChannelInfo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/info/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/info/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/info/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creator/info/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creator/info/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/info/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/info/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creator/info/update
Update Channel Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getChannelInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/info/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/info/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/info/get',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/info/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/info/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/info/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/info/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/info/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/info/get
Get Channel Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorV3
Get and discover creators on the platform. Creator invitation and profile management.
getCreator
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/info?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/info?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/info?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/info',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/info', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/info?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/info
Get Creator
Retrieve detailed information about a specific creator.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The GUID of the creator being searched. |
Example responses
200 Response
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips",
"twitter": "https://twitter.com/linustech"
}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Creator information returned | CreatorModelV3 |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreators
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/list?search=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/list?search=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/list?search=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/list',
params: {
'search' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/list', params={
'search': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/list?search=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/list
Get Creators
Retrieve and search for all creators on Floatplane. Useful for creator discovery and filtering.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
search | query | string | true | Optional search string for finding particular creators on the platform. |
Example responses
200 Response
[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"socialLinks": {
"instagram": "https://www.instagram.com/linustech/",
"twitter": "https://twitter.com/linustech",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips"
}
},
{
"id": "5ae0f8114336369a2c3619b6",
"owner": "5ae0f8114336369a2c3619b4",
"title": "TechDeals",
"urlname": "tech_deals",
"description": "Welcome to Tech Deals on Floatplane! Having nothing to do with actual floatplanes since 2016, we are proud to be part of the launch of Floatplane! We make videos about technology!",
"about": "Welcome to Tech Deals on Floatplane! Having nothing to do with actual floatplanes since 2016, we are proud to be part of the launch of Floatplane! We make videos about technology!",
"category": {
"title": "Technology"
},
"cover": {
"width": 1923,
"height": 502,
"path": "https://pbs.floatplane.com/cover_images/5ae0f8114336369a2c3619b6/264955378957772_1600880420171.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/5ae0f8114336369a2c3619b6/264955378957772_1600880420171_1245x325.jpeg"
}
]
},
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/5ae0f8114336369a2c3619b6/223941270270735_1600882905853_250x250.jpeg"
}
]
},
"liveStream": {
"id": "5c3d7ec606f1be114ca1e59c",
"title": "CES 2020 - Bonus Coverage for Floatplane Subs",
"description": "Welcome to the Tech Deals stream – this should be fun!",
"thumbnail": {
"width": 1199,
"height": 674,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c3d7ec606f1be114ca1e59c/973032281888832_1560301350562.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c3d7ec606f1be114ca1e59c/973032281888832_1560301350562_400x225.jpeg"
}
]
},
"owner": "5ae0f8114336369a2c3619b6",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.kdUMaxvL2eyW.m3u8",
"offline": {
"title": "We're offline at the moment. Please check back later!",
"description": "We're offline at the moment. Please check back later!",
"thumbnail": null
}
},
"subscriptionPlans": [
{
"id": "5d506f2f7c7e6afa2ef1e246",
"title": "1080p Plan - Videos on Demand + Live Streams",
"description": "This plan gives you access to all published videos at up to 1080p detail. You also get access to 1080p live streams exclusive to Floatplane. This also grants you access to the private channels on the Tech Deals Discord, link your Floatplane account to Discord to be automatically upgraded.",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e1710272aae3bc9cabdf505",
"title": "4K - All Access Plan",
"description": "This plan gives you access to all published videos at up to 4K detail. You also get access to 1080p live streams exclusive to Floatplane. This also grants you access to the private channels on the Tech Deals Discord, link your Floatplane account to Discord to be automatically upgraded. BONUS - This plan allows you to download the videos in high quality for off-line viewing! This is a great way to increase your level of support if you really love our content!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "all",
"incomeDisplay": false,
"socialLinks": {
"youtube": "https://www.youtube.com/techdeals",
"twitter": "https://twitter.com/TechDeals_16"
}
},
{
"id": "5d2fd26df33b8d14fc5ff48d",
"owner": "5c4280ff4160af3309527f37",
"title": "EposVox",
"urlname": "eposvox",
"description": "The ORIGINAL content creator and streaming focused tech education channel. EposVox, the Stream Professor, is here to give you how to videos, tutorials, tips and tricks, as well as gear reviews and benchmarks to get the most out of your tech experience. \nWhile content creation and streaming (especially with software like OBS Studio and XSplit) are primary focuses of content, ultimately the goal is to make technology easier and more fun to use. Education is number one, entertainment is sometimes given.\nThe analog tech nostalgia is just inherent to being a 90s kid.\n\n📬 Shipping: \nP.O. Box 459 \nJeffersonville, IN 47131",
"about": "The ORIGINAL content creator and streaming focused tech education channel. EposVox, the Stream Professor, is here to give you how to videos, tutorials, tips and tricks, as well as gear reviews and benchmarks to get the most out of your tech experience. \nWhile content creation and streaming (especially with software like OBS Studio and XSplit) are primary focuses of content, ultimately the goal is to make technology easier and more fun to use. Education is number one, entertainment is sometimes given.\nThe analog tech nostalgia is just inherent to being a 90s kid.\n\n📬 Shipping: \nP.O. Box 459 \nJeffersonville, IN 47131",
"category": {
"title": "Technology"
},
"cover": {
"width": 1992,
"height": 520,
"path": "https://pbs.floatplane.com/cover_images/5d2fd26df33b8d14fc5ff48d/879571788095471_1563437947857.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/5d2fd26df33b8d14fc5ff48d/879571788095471_1563437947857_1245x325.jpeg"
}
]
},
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/5d2fd26df33b8d14fc5ff48d/136876584569877_1596766926335_250x250.jpeg"
}
]
},
"liveStream": {
"id": "5d2fd230f33b8d14fc5ff48c",
"title": "EposVox Live Testing",
"description": "Not much to see here... yet!",
"thumbnail": null,
"owner": "5d2fd26df33b8d14fc5ff48d",
"streamPath": "/live_abr/eposvox",
"offline": {
"title": null,
"description": "Not much to see here... yet!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461.jpeg",
"childImages": [
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461_1200x675.jpeg"
},
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5d2fd230f33b8d14fc5ff48c/859602689851697_1563602860461_400x225.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d32780027050d0c9a0b10aa",
"title": "FLOATPLANE FLOATBOATS (1080p)",
"description": "Primary Floatplane sub. Help me build the best tech education platform on the internet and keep diving into crazy nerdy details no one else covers. This tier gets you all of the currently-available video playback, downloads and live streaming. BTS Vlogs & Early Access, too! All up to 1080p quality.\nVideos will be given as early access as much as a month (though usually just a week) before YouTube, when available.",
"price": "5.00",
"priceYearly": null,
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5d48aaee6825b5780db93c80",
"title": "Super Sub (4k)",
"description": "You get... EVERYTHING! Future features will expand here, but for now, you get everything already available, and this is just here for those who want to support a little more :)",
"price": "10.00",
"priceYearly": null,
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "hide",
"incomeDisplay": false,
"socialLinks": {
"youtube": "https://www.youtube.com/eposvox",
"instagram": "https://www.instagram.com/eposvox/",
"website": "https://eposvox.com",
"facebook": "https://www.facebook.com/eposvoxofficial",
"twitter": "https://twitter.com/eposvox"
}
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Creators returned | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CreatorModelV3] | false | none | none |
» id | string | true | none | none |
» owner | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | string | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | object | false | none | none |
»»» id | string | true | none | none |
»»» username | string | true | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» title | string | true | none | none |
» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
» description | string | true | none | none |
» about | string | true | none | none |
» category | object | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
» cover | ImageModel¦null | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
» icon | ImageModel | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» liveStream | LiveStreamModel¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» thumbnail | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» owner | string | true | none | none |
»» channel | string | false | none | The creator channel this livestream belongs to. |
»» streamPath | string | true | none | none |
»» offline | object | true | none | none |
»»» title | string¦null | true | none | none |
»»» description | string¦null | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
» subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» price | string¦null | true | none | none |
»» priceYearly | string¦null | true | none | none |
»» currency | string | true | none | none |
»» logo | string¦null | true | none | none |
»» interval | string | true | none | none |
»» featured | boolean | true | none | none |
»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»» discordServers | [DiscordServerModel] | true | none | none |
»»» id | string | true | none | none |
»»» guildName | string | true | none | none |
»»» guildIcon | string | true | none | none |
»»» inviteLink | string(uri)¦null | true | none | none |
»»» inviteMode | string | true | none | none |
»» discordRoles | [DiscordRoleModel] | true | none | none |
»»» server | string | true | none | none |
»»» roleName | string | true | none | none |
» discoverable | boolean | true | none | none |
» subscriberCountDisplay | string | true | none | none |
» incomeDisplay | boolean | true | none | none |
» defaultChannel | string | true | none | none |
» socialLinks | SocialLinksModel | true | none | none |
»» additionalProperties | string(uri) | false | none | none |
» channels | [ChannelModel] | true | none | none |
»» id | string | true | none | none |
»» creator | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL. |
»» about | string | true | none | none |
»» order | integer | false | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» card | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» icon | ImageModel | true | none | none |
»» socialLinks | SocialLinksModel | false | none | none |
» discordServers | [DiscordServerModel] | false | none | Present in /creator/named queries |
» card | ImageModel | false | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorByName
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/named?creatorURL=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/named?creatorURL=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/named?creatorURL=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/named',
params: {
'creatorURL' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/named', params={
'creatorURL': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/named?creatorURL=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/named", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/named
Get Creator By Name
Retrieve detailed information on one or more creators on Floatplane.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creatorURL | query | array[string] | true | The urlname (s) of the creator(s) to be retrieved. See CreatorModelV3 . |
Example responses
200 Response
[
{
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"id": "59f94c0bdd241b70349eb727",
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "I Am Hard... [REDACTED] - WAN Show March 17, 2023",
"description": "<p>Get a 15-day free trial for unlimited backup at<a href=\"https://www.backblaze.com/landing/podcast-wan.html\" rel=\"noopener noreferrer\" target=\"_blank\"> https://www.backblaze.com/landing/podcast-wan.html</a></p><p>Try Zoho One free for 30 days with no credit card required here:<a href=\"https://www.zoho.com/one/lp/linus.html\" rel=\"noopener noreferrer\" target=\"_blank\"> https://www.zoho.com/one/lp/linus.html</a></p><p>Save 15% with our offer code WANSHOW at <a href=\"https://vessi.com/WANSHOW\" rel=\"noopener noreferrer\" target=\"_blank\">https://vessi.com/WANSHOW</a></p><p><br></p><p>Podcast Download: TBD</p>",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/754645543818842_1679099143677.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/754645543818842_1679099143677_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/754645543818842_1679099143677_1200x675.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"channel": "63fe42c309e691e4e36de93d",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter",
"description": "- 2 Exclusives Per Week (Meet the Team, Extras, Behind the Scenes) \n- Exclusive livestreams\n- Save $10 by purchasing an annual subscription\n- Our gratitude for your support",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "- 4K Bitrate Streaming\n- 2 Exclusives Per Week (Meet the Team, Extras, Behind the Scenes) \n- Exclusive livestreams\n- Save $20 by purchasing an annual subscription\n- Our gratitude for your support",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"defaultChannel": "63fe42c309e691e4e36de93d",
"socialLinks": {
"instagram": "https://www.instagram.com/linustech",
"website": "https://linustechtips.com",
"facebook": "https://www.facebook.com/LinusTech",
"youtube": "https://www.youtube.com/user/LinusTechTips",
"twitter": "https://twitter.com/linustech"
},
"channels": [
{
"id": "63fe42c309e691e4e36de93d",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Linus Tech Tips",
"urlname": "main",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"order": 0,
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"card": null,
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"socialLinks": {}
},
{
"id": "6413534d88c13c181c3e2809",
"creator": "59f94c0bdd241b70349eb72b",
"title": "TechLinked",
"urlname": "techlinked",
"about": "News about tech + gaming culture, delivered thrice weekly.\n\nWe're also doing long-form video essays now, apparently. \n\nThe TalkLinked talk show/podcast will probably come back at some point, too!\n\nWriters: Riley Murdock, Jon Martin, James Strieb",
"order": 2,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/6413534d88c13c181c3e2809/231100243161134_1678988109632.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413534d88c13c181c3e2809/955526950207988_1678988110287.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135da7ce81077a8480c679",
"creator": "59f94c0bdd241b70349eb72b",
"title": "ShortCircuit",
"urlname": "shortcircuit",
"about": "What's in the box? Let's find out!\n\nOfficial channel under Linus Media Group.",
"order": 3,
"cover": {
"width": 1084,
"height": 283,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135da7ce81077a8480c679/745715133852622_1678990806332.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135da7ce81077a8480c679/470304051261927_1678990806883.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135e27c773b27ff22c97eb",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Techquickie",
"urlname": "techquickie",
"about": "Ever wanted to learn more about your favorite gadgets or a trending topic in tech? \n\nWith a mix of humor, cynicism, and insight, Techquickie brings you the answers to all your tech questions every Tuesday and Friday.",
"order": 5,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135e27c773b27ff22c97eb/721553790654237_1678990887992.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135e27c773b27ff22c97eb/666841640245092_1678990909616.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135e901ebaee42e258eb0b",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Mac Address",
"urlname": "macaddress",
"about": "The exploration of all things Apple, from iPhones underwater to full iClouds in the sky. We want to be the channel that you come to first for an unexpected viewpoint about the devices you love.",
"order": 4,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135e901ebaee42e258eb0b/254417940627493_1678990992632.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135e901ebaee42e258eb0b/979475909700348_1678990993114.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135ed078d6262f717341b7",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Channel Super Fun",
"urlname": "channelsuperfun",
"about": "Channel Super Fun is all about the name. Games, toys, and challenges. Expect to find them all here!",
"order": 6,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135ed078d6262f717341b7/881886551214964_1678991123807.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135ed078d6262f717341b7/317924815973639_1678991124672.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135f82fc76ab7f9fbdc876",
"creator": "59f94c0bdd241b70349eb72b",
"title": "They're Just Movies",
"urlname": "tajm",
"about": "Each week our small group of nerds sits down for a not-so-serious, SPOILER-FILLED, chat about the movies you love.\n\nFormerly known as Carpool Critics, we're part of Linus Media Group!",
"order": 7,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135f82fc76ab7f9fbdc876/190277198232475_1678991235439.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135f82fc76ab7f9fbdc876/570806971094170_1678991236419.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "6413623f5b12cca228a28e78",
"creator": "59f94c0bdd241b70349eb72b",
"title": "FP Exclusive",
"urlname": "fpexclusive",
"about": "wow... so empty",
"order": 1,
"cover": {
"width": 1200,
"height": 313,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/072932633007415_1678991935461.jpeg",
"childImages": []
},
"card": null,
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484_250x250.jpeg"
}
]
},
"socialLinks": {}
}
],
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "Linus Tech Tips",
"guildIcon": "803d5f745b30aba3edba719bac671660",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
]
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CreatorModelV3] | false | none | none |
» id | string | true | none | none |
» owner | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | string | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | object | false | none | none |
»»» id | string | true | none | none |
»»» username | string | true | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» title | string | true | none | none |
» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
» description | string | true | none | none |
» about | string | true | none | none |
» category | object | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
» cover | ImageModel¦null | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
» icon | ImageModel | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» liveStream | LiveStreamModel¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» thumbnail | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» owner | string | true | none | none |
»» channel | string | false | none | The creator channel this livestream belongs to. |
»» streamPath | string | true | none | none |
»» offline | object | true | none | none |
»»» title | string¦null | true | none | none |
»»» description | string¦null | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
» subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» price | string¦null | true | none | none |
»» priceYearly | string¦null | true | none | none |
»» currency | string | true | none | none |
»» logo | string¦null | true | none | none |
»» interval | string | true | none | none |
»» featured | boolean | true | none | none |
»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»» discordServers | [DiscordServerModel] | true | none | none |
»»» id | string | true | none | none |
»»» guildName | string | true | none | none |
»»» guildIcon | string | true | none | none |
»»» inviteLink | string(uri)¦null | true | none | none |
»»» inviteMode | string | true | none | none |
»» discordRoles | [DiscordRoleModel] | true | none | none |
»»» server | string | true | none | none |
»»» roleName | string | true | none | none |
» discoverable | boolean | true | none | none |
» subscriberCountDisplay | string | true | none | none |
» incomeDisplay | boolean | true | none | none |
» defaultChannel | string | true | none | none |
» socialLinks | SocialLinksModel | true | none | none |
»» additionalProperties | string(uri) | false | none | none |
» channels | [ChannelModel] | true | none | none |
»» id | string | true | none | none |
»» creator | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL. |
»» about | string | true | none | none |
»» order | integer | false | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» card | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» icon | ImageModel | true | none | none |
»» socialLinks | SocialLinksModel | false | none | none |
» discordServers | [DiscordServerModel] | false | none | Present in /creator/named queries |
» card | ImageModel | false | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
discoverCreatorsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/discover \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/discover HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/discover',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/discover',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/discover', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/discover', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/discover");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/discover", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/discover
Discover Creators
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listCreatorChannelsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/channels/list?ids=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/channels/list?ids=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/channels/list?ids=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/channels/list',
params: {
'ids' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/channels/list', params={
'ids': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/channels/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/channels/list?ids=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/channels/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/channels/list
List Creator Channels
Retrieves a list of channels within the given creator(s).
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
ids | query | array[string] | true | The ids of the creator(s) from which to search for channels. |
Example responses
200 Response
[
{
"id": "63fe42c309e691e4e36de93d",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Linus Tech Tips",
"urlname": "main",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"order": 0,
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"socialLinks": {}
},
{
"id": "6413534d88c13c181c3e2809",
"creator": "59f94c0bdd241b70349eb72b",
"title": "TechLinked",
"urlname": "techlinked",
"about": "News about tech + gaming culture, delivered thrice weekly.\n\nWe're also doing long-form video essays now, apparently. \n\nThe TalkLinked talk show/podcast will probably come back at some point, too!\n\nWriters: Riley Murdock, Jon Martin, James Strieb",
"order": 2,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/6413534d88c13c181c3e2809/231100243161134_1678988109632.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/6413534d88c13c181c3e2809/953298867250186_1678988110714.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413534d88c13c181c3e2809/955526950207988_1678988110287.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135da7ce81077a8480c679",
"creator": "59f94c0bdd241b70349eb72b",
"title": "ShortCircuit",
"urlname": "shortcircuit",
"about": "What's in the box? Let's find out!\n\nOfficial channel under Linus Media Group.",
"order": 3,
"cover": {
"width": 1084,
"height": 283,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135da7ce81077a8480c679/745715133852622_1678990806332.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/64135da7ce81077a8480c679/939790311068913_1678990807440.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135da7ce81077a8480c679/470304051261927_1678990806883.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135e27c773b27ff22c97eb",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Techquickie",
"urlname": "techquickie",
"about": "Ever wanted to learn more about your favorite gadgets or a trending topic in tech? \n\nWith a mix of humor, cynicism, and insight, Techquickie brings you the answers to all your tech questions every Tuesday and Friday.",
"order": 5,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135e27c773b27ff22c97eb/721553790654237_1678990887992.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/64135e27c773b27ff22c97eb/962826906389296_1678990910103.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135e27c773b27ff22c97eb/666841640245092_1678990909616.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135e901ebaee42e258eb0b",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Mac Address",
"urlname": "macaddress",
"about": "The exploration of all things Apple, from iPhones underwater to full iClouds in the sky. We want to be the channel that you come to first for an unexpected viewpoint about the devices you love.",
"order": 4,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135e901ebaee42e258eb0b/254417940627493_1678990992632.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/64135e901ebaee42e258eb0b/493604923555386_1678990993708.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135e901ebaee42e258eb0b/979475909700348_1678990993114.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135ed078d6262f717341b7",
"creator": "59f94c0bdd241b70349eb72b",
"title": "Channel Super Fun",
"urlname": "channelsuperfun",
"about": "Channel Super Fun is all about the name. Games, toys, and challenges. Expect to find them all here!",
"order": 6,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135ed078d6262f717341b7/881886551214964_1678991123807.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/64135ed078d6262f717341b7/953601834319296_1678991125167.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135ed078d6262f717341b7/317924815973639_1678991124672.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "64135f82fc76ab7f9fbdc876",
"creator": "59f94c0bdd241b70349eb72b",
"title": "They're Just Movies",
"urlname": "tajm",
"about": "Each week our small group of nerds sits down for a not-so-serious, SPOILER-FILLED, chat about the movies you love.\n\nFormerly known as Carpool Critics, we're part of Linus Media Group!",
"order": 7,
"cover": {
"width": 1080,
"height": 282,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/64135f82fc76ab7f9fbdc876/190277198232475_1678991235439.jpeg",
"childImages": []
},
"card": {
"width": 66,
"height": 88,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/64135f82fc76ab7f9fbdc876/863827491957963_1678991237126.jpeg",
"childImages": []
},
"icon": {
"width": 88,
"height": 88,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/64135f82fc76ab7f9fbdc876/570806971094170_1678991236419.jpeg",
"childImages": []
},
"socialLinks": {}
},
{
"id": "6413623f5b12cca228a28e78",
"creator": "59f94c0bdd241b70349eb72b",
"title": "FP Exclusive",
"urlname": "fpexclusive",
"about": "wow... so empty",
"order": 1,
"cover": {
"width": 1200,
"height": 313,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/072932633007415_1678991935461.jpeg",
"childImages": []
},
"card": {
"width": 750,
"height": 1000,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/717727609968419_1678991937240.jpeg",
"childImages": [
{
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/717727609968419_1678991937240_375x500.jpeg"
},
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_cards/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/717727609968419_1678991937240_300x400.jpeg"
}
]
},
"icon": {
"width": 720,
"height": 720,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/6413623f5b12cca228a28e78/069457536750544_1678991936484_250x250.jpeg"
}
]
},
"socialLinks": {}
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [ChannelModel] | false | none | none |
» id | string | true | none | none |
» creator | string | true | none | none |
» title | string | true | none | none |
» urlname | string | true | none | Shown in the browser URL. |
» about | string | true | none | none |
» order | integer | false | none | none |
» cover | ImageModel¦null | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
» card | ImageModel¦null | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» icon | ImageModel | true | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» socialLinks | SocialLinksModel | false | none | none |
»» additionalProperties | string(uri) | false | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listCreatorCategoriesV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/category/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/category/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/category/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/category/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/category/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/category/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/category/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/category/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/category/list
List Creator Categories
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
bindCreatorInviteCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/creator/invite/bind \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/creator/invite/bind HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/invite/bind',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/creator/invite/bind',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/creator/invite/bind', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/creator/invite/bind', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/bind");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/creator/invite/bind", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/creator/invite/bind
Bind Creator Invite Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorInviteCodeInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/creator/invite/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/creator/invite/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/invite/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/creator/invite/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/creator/invite/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/creator/invite/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/creator/invite/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/creator/invite/info
Get Creator Invite Code Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
claimCreatorInviteCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/creator/invite/claim \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/creator/invite/claim HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/creator/invite/claim',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/creator/invite/claim',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/creator/invite/claim', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/creator/invite/claim', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/creator/invite/claim");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/creator/invite/claim", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/creator/invite/claim
Claim Creator Invite Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorAgreementV2
Get and agree to Creator<->Floatplane agreements.
getAgreement
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/api/creator/agreement/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/api/creator/agreement/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/api/creator/agreement/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/api/creator/agreement/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/api/creator/agreement/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/api/creator/agreement/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/api/creator/agreement/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/api/creator/agreement/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/api/creator/agreement/
Get Agreement
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
confirmAgreement
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/api/creator/agreement/confirm \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/api/creator/agreement/confirm HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/api/creator/agreement/confirm',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/api/creator/agreement/confirm',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/api/creator/agreement/confirm', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/api/creator/agreement/confirm', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/api/creator/agreement/confirm");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/api/creator/agreement/confirm", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/api/creator/agreement/confirm
Confirm Agreement
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorPlanFeatureLevelsV2
Manage features for creator subscription plans.
listCreatorPlanFeatureLevels
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorplanfeaturelevel/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creatorplanfeaturelevel/list
List Creator Plan Feature Levels
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
calculateCreatorPlanFeatureCosts
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creatorplanfeaturelevel/cost", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creatorplanfeaturelevel/cost
Calculate Creator Plan Feature Costs
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
planFeatureLevels
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/plan/feature/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/plan/feature/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/plan/feature/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/plan/feature/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/plan/feature/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/plan/feature/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/feature/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/plan/feature/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/plan/feature/list
Plan Feature Levels
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorSubscriptionPlanV2
Manage creator subscription plans.
publishSubscriptionPlan
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/publish \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/publish HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/plan/publish',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/plan/publish',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/plan/publish', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/publish', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/publish");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/publish", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/plan/publish
Publish Subscription Plan
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateSubscriptionPlans
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/plan/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/plan/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/plan/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/plan/update
Update Subscription Plans
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listSubscriptionPlans
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/plan/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/plan/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/plan/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/plan/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/plan/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/plan/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/plan/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/plan/list
List Subscription Plans
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCreatorSubInfoPublic
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/plan/info?creatorId=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/plan/info?creatorId=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/plan/info?creatorId=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/plan/info',
params: {
'creatorId' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/plan/info', params={
'creatorId': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/plan/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/plan/info?creatorId=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/plan/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/plan/info
Get Creator Sub Info Public
Retrieve detailed information about a creator’s subscription plans and their subscriber count.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creatorId | query | string | true | The GUID for the creator being search. |
Example responses
200 Response
{
"totalSubscriberCount": 19256,
"totalIncome": null,
"plans": [
{
"discordRoles": [
{
"server": "5baa8838d9f3aa0a83acd429",
"roleName": "Floatplane.com Pilot"
},
{
"server": "5e34cd9a9dbb744872192895",
"roleName": "Pilot"
}
],
"createdAt": "2019-08-06T00:56:16.180Z",
"updatedAt": "2021-09-09T16:55:02.620Z",
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"enabled": true,
"featured": true,
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"paymentID": 19,
"currency": "usd",
"trialPeriod": 0,
"allowGrandfatheredAccess": false,
"logo": null,
"creator": "59f94c0bdd241b70349eb72b",
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
],
"userIsSubscribed": true,
"userIsGrandfathered": false,
"enabledGlobal": true,
"interval": "month"
},
{
"discordRoles": [
{
"server": "5baa8838d9f3aa0a83acd429",
"roleName": "Floatplane.com Pilot"
},
{
"server": "5e34cd9a9dbb744872192895",
"roleName": "Pilot"
}
],
"createdAt": "2019-12-31T19:51:08.009Z",
"updatedAt": "2020-11-07T01:33:31.617Z",
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"enabled": true,
"featured": false,
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"paymentID": 66,
"currency": "usd",
"trialPeriod": 0,
"allowGrandfatheredAccess": false,
"logo": null,
"creator": "59f94c0bdd241b70349eb72b",
"discordServers": [
{
"id": "5baa8838d9f3aa0a83acd429",
"guildName": "LinusTechTips",
"guildIcon": "a_528743a32b33b5eb227a8405d5593473",
"inviteLink": "https://discord.gg/LTT",
"inviteMode": "link"
},
{
"id": "5e34cd9a9dbb744872192895",
"guildName": "LTT Minecraft Network",
"guildIcon": "4f7f812b49196b1646bdcdb84b948c84",
"inviteLink": "https://discord.gg/VVpwBPXrMc",
"inviteMode": "link"
}
],
"userIsSubscribed": false,
"userIsGrandfathered": false,
"enabledGlobal": true,
"interval": "month"
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Information about the plans for the creator | PlanInfoV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorSubscriptionPlanV3
Manage creator subscription plans.
getPlansForContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/plan/content \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/plan/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/plan/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/plan/content',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/plan/content', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/plan/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/plan/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/plan/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/plan/content
Get Plans For Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
DiscordBotV2
Manage Discord bots.
link
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/link \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/link HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/link',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/link',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/discord/bot/link', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/link', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/link");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/link", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/discord/bot/link
Link
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
linkCallback
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/link/callback \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/link/callback HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/link/callback',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/link/callback',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/discord/bot/link/callback', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/link/callback', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/link/callback");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/link/callback", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/discord/bot/link/callback
Link Callback
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listDiscordBotConnections
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/discord/bot/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/discord/bot/list
List Connections
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unlink
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/bot/unlink \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/bot/unlink HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/unlink',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/discord/bot/unlink',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/discord/bot/unlink', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/bot/unlink', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/unlink");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/bot/unlink", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/discord/bot/unlink
Unlink
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getDiscordBotInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/discord/bot/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/discord/bot/info
Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
generateInviteLink
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/discord/bot/invite/generate \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/discord/bot/invite/generate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/invite/generate',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/discord/bot/invite/generate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/discord/bot/invite/generate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/discord/bot/invite/generate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/invite/generate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/discord/bot/invite/generate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/discord/bot/invite/generate
Generate Invite Link
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateLink
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/bot/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/bot/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/bot/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/discord/bot/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/discord/bot/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/bot/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/bot/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/bot/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/discord/bot/update
Update Link
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
joinDiscordServers
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/discord/server/join \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/discord/server/join HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/discord/server/join',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/discord/server/join',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/discord/server/join', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/discord/server/join', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/discord/server/join");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/discord/server/join", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/discord/server/join
Join Discord Servers
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
EdgesV2
Get edge server information for media playback.
getEdges
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/edges \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/edges HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/edges',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/edges',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/edges', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/edges', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/edges");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/edges", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/edges
Get Edges
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.
Example responses
200 Response
{
"edges": [
{
"hostname": "edge01-na.floatplane.com",
"queryPort": 8090,
"bandwidth": 1000000000,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
},
{
"hostname": "edge02-na.floatplane.com",
"queryPort": 8090,
"bandwidth": 500000000,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
},
{
"hostname": "edge01-eu.floatplane.com",
"queryPort": 8090,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "FR",
"regionCode": "A",
"latitude": 48.5873,
"longitude": 7.79821
}
},
{
"hostname": "edge01-au.floatplane.com",
"queryPort": 8090,
"bandwidth": 250000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "AU",
"regionCode": "NSW",
"latitude": -33.8401,
"longitude": 151.209
}
},
{
"hostname": "edge1-na-south.floatplane.com",
"queryPort": 0,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "US",
"regionCode": "FL",
"latitude": 25.8124,
"longitude": -80.2401
}
},
{
"hostname": "edge1-na-sv.floatplane.com",
"queryPort": 0,
"bandwidth": 1000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "US",
"regionCode": "CA",
"latitude": 37.3387,
"longitude": -121.8914
}
},
{
"hostname": "edge03-na.floatplane.com",
"queryPort": 0,
"bandwidth": 3000000000,
"allowDownload": false,
"allowStreaming": true,
"datacenter": {
"countryCode": "CA",
"regionCode": "QC",
"latitude": 45.3168,
"longitude": -73.8659
}
}
],
"client": {}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | EdgesModel |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getVideoUrl
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/url \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/url HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/url',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/url',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/url', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/url', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/url");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/url", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/url
Get Video Url
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
FAQV2
Get FAQs.
getFaqSections
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/faq/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/faq/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/faq/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/faq/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/faq/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/faq/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/faq/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/faq/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/faq/list
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.
Example responses
200 Response
[
{
"faqs": [
{
"createdAt": "2019-10-03T18:45:49.157Z",
"updatedAt": "2019-12-19T22:06:01.843Z",
"id": "5d9641ddbced315cc7d9135f",
"question": "How do you get the PewPew emote? ",
"answer": "<p><span style=\"background-color: rgb(255, 255, 255); color: rgb(0, 0, 0);\">The PewPew emote was as an account reward for users who had succesfully set up a payment method on Floatplane.com before January 1st 2019.</span></p>",
"status": "public",
"link": "g-pewpew-emote",
"order": 1,
"faqSection": "5d9641d0b3e3285cfffe44a9"
}
],
"createdAt": "2019-10-03T18:45:36.840Z",
"updatedAt": "2019-12-19T22:08:50.481Z",
"id": "5d9641d0b3e3285cfffe44a9",
"name": "General",
"description": "For general questions about Floatplane",
"status": "public",
"order": 1
},
{
"faqs": [
{
"createdAt": "2019-10-03T18:26:28.413Z",
"updatedAt": "2020-01-28T03:23:15.918Z",
"id": "5d963d54221c575ce366b7e7",
"question": "Can you upgrade me to the LTT supporter (1080p) subscription? ",
"answer": "<p>At this time there is no difference between the two channels in regards to features that are unlocked. The only difference between the two is the price.</p>",
"status": "public",
"link": "sub-u-payment",
"order": 1,
"faqSection": "5d8d1be612c2535c9dc067d1"
}
],
"createdAt": "2019-09-26T20:13:26.431Z",
"updatedAt": "2020-01-28T03:24:33.443Z",
"id": "5d8d1be612c2535c9dc067d1",
"name": "Subscription and Payment ",
"description": "Life isn't always about money but this section is. If you have a payment or subscription issue look here. ",
"status": "public",
"order": 2
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [FaqSectionModel] | false | none | none |
» faqs | [object] | true | none | none |
»» createdAt | string(date-time) | true | none | none |
»» updatedAt | string(date-time)¦null | true | none | none |
»» id | string | true | none | none |
»» question | string | true | none | none |
»» answer | string | true | none | This field may contain HTML that should be rendered. |
»» status | string | true | none | none |
»» link | string | true | none | none |
»» order | number | true | none | none |
»» faqSection | string | true | none | none |
» createdAt | string(date-time) | true | none | none |
» updatedAt | string(date-time)¦null | true | none | none |
» id | string | true | none | none |
» name | string | true | none | none |
» description | string | true | none | none |
» status | string | true | none | none |
» order | number | true | none | none |
Enumerated Values
Property | Value |
---|---|
status | public |
status | public |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
IframeV2
Get video iframe data.
getVideoPlayer
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/get/player/{guid} \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/get/player/{guid} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/get/player/{guid}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/get/player/{guid}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/get/player/{guid}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/get/player/{guid}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/get/player/{guid}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/get/player/{guid}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/get/player/{guid}
Get Video Player
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
guid | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ImageOptimizationsV2
Manage image media optimizations.
getOptimizationsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/image/optimizations/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/image/optimizations/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/image/optimizations/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/image/optimizations/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/image/optimizations/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/image/optimizations/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/image/optimizations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/image/optimizations/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/image/optimizations/
Get Optimizations
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ImageOptimizationsV3
Manage image media optimizations.
getOptimizationsV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/image/optimizations/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/image/optimizations/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/image/optimizations/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/image/optimizations/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/image/optimizations/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/image/optimizations/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/image/optimizations/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/image/optimizations/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/image/optimizations/
Get Optimizations
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
LivestreamV2
Livestream chat and management.
renderLivePopout
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/v2/live/popout \
-H 'Accept: application/json'
GET https://www.floatplane.com/v2/live/popout HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/v2/live/popout',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/v2/live/popout',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/v2/live/popout', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/v2/live/popout', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/v2/live/popout");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/v2/live/popout", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /v2/live/popout
Render Live Popout
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateConfig
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/live/config/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/live/config/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/live/config/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/live/config/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/live/config/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/live/config/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/live/config/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/live/config/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/live/config/update
Update Config
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadLiveThumbnail
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/live/thumbnail/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/live/thumbnail/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/live/thumbnail/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/live/thumbnail/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/live/thumbnail/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/live/thumbnail/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/live/thumbnail/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/live/thumbnail/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/live/thumbnail/upload
Upload Thumbnail
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ModerationV2
Moderation actions, for users and comments.
banUserV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/user/ban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/user/ban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/user/ban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/user/ban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/moderation/user/ban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/user/ban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/ban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/user/ban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/moderation/user/ban
Ban User
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unbanUserV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/user/unban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/user/unban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/moderation/user/unban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/user/unban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/moderation/user/unban
Unban User
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listBanV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderation/user/ban/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderation/user/ban/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/user/ban/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/moderation/user/ban/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/moderation/user/ban/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderation/user/ban/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/ban/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderation/user/ban/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/moderation/user/ban/list
List Ban
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
hideCommentV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/comment/hide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/comment/hide HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/comment/hide',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/comment/hide',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/moderation/comment/hide', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/comment/hide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/comment/hide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/comment/hide", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/moderation/comment/hide
Hide Comment
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unhideCommentV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderation/comment/unhide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderation/comment/unhide HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/comment/unhide',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/moderation/comment/unhide',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/moderation/comment/unhide', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderation/comment/unhide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/comment/unhide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderation/comment/unhide", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/moderation/comment/unhide
Unhide Comment
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
moderateVideoComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/comment/moderate/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/comment/moderate/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/comment/moderate/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/comment/moderate/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/comment/moderate/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/comment/moderate/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/comment/moderate/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/comment/moderate/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/comment/moderate/
Moderate Video Comment
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userBanStatusV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderator/userBanStatus \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderator/userBanStatus HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderator/userBanStatus',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/moderator/userBanStatus',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/moderator/userBanStatus', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderator/userBanStatus', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderator/userBanStatus");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderator/userBanStatus", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/moderator/userBanStatus
User Ban Status
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userUnbanV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/moderator/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/moderator/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderator/user/unban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/moderator/user/unban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/moderator/user/unban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/moderator/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderator/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/moderator/user/unban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/moderator/user/unban
User Unban
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userInfoV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/moderation/user/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/moderation/user/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/moderation/user/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/moderation/user/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/moderation/user/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/moderation/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/moderation/user/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/moderation/user/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/moderation/user/info
User Info
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ModerationV3
Moderation actions, for users and comments.
banUserV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/user/ban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/user/ban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/user/ban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/user/ban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/moderation/user/ban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/user/ban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/ban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/user/ban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/moderation/user/ban
Ban User
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unbanUserV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/user/unban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/user/unban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/moderation/user/unban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/user/unban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/moderation/user/unban
Unban User
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listBanV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderation/user/ban/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderation/user/ban/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/user/ban/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/moderation/user/ban/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/moderation/user/ban/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderation/user/ban/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/ban/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderation/user/ban/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/moderation/user/ban/list
List Ban
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
hideCommentV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/comment/hide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/comment/hide HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/comment/hide',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/comment/hide',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/moderation/comment/hide', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/comment/hide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/comment/hide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/comment/hide", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/moderation/comment/hide
Hide Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unhideCommentV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderation/comment/unhide \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderation/comment/unhide HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/comment/unhide',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/moderation/comment/unhide',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/moderation/comment/unhide', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderation/comment/unhide', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/comment/unhide");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderation/comment/unhide", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/moderation/comment/unhide
Unhide Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
moderateComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/moderate/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/moderate/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/moderate/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/moderate/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/moderate/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/moderate/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/moderate/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/moderate/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/moderate/
Moderate Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userBanStatusV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderator/userBanStatus \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderator/userBanStatus HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderator/userBanStatus',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/moderator/userBanStatus',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/moderator/userBanStatus', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderator/userBanStatus', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderator/userBanStatus");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderator/userBanStatus", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/moderator/userBanStatus
User Ban Status
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userUnbanV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/moderator/user/unban \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/moderator/user/unban HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderator/user/unban',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/moderator/user/unban',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/moderator/user/unban', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/moderator/user/unban', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderator/user/unban");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/moderator/user/unban", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/moderator/user/unban
User Unban
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userInfoV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/moderation/user/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/moderation/user/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/moderation/user/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/moderation/user/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/moderation/user/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/moderation/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/moderation/user/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/moderation/user/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/moderation/user/info
User Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
PasswordResetV2
Password management.
sendPasswordReset
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset/request \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset/request HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/password/reset/request',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset/request',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/password/reset/request', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset/request', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset/request");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset/request", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/password/reset/request
Send Password Reset
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
resetPassword
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/password/reset',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/password/reset', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/password/reset
Reset Password
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
validateKey
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/reset/validate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/reset/validate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/password/reset/validate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/reset/validate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/password/reset/validate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/reset/validate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/reset/validate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/reset/validate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/password/reset/validate
Validate Key
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
PaymentsV2
User payment method/address/invoice management.
listPaymentMethods
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/method/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/method/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/method/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/method/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/method/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/method/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/method/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/method/list
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.
Example responses
200 Response
[
{
"id": 54715,
"payment_processor": 1,
"default": true,
"card": {
"brand": "Visa",
"last4": "1234",
"exp_month": 11,
"exp_year": 2028,
"name": "Firstname Lastname"
}
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PaymentMethodModel] | false | none | none |
» id | integer | true | none | none |
» payment_processor | integer | true | none | none |
» default | boolean | true | none | none |
» card | object | true | none | none |
»» brand | string | true | none | none |
»» last4 | string | true | none | none |
»» exp_month | integer | true | none | none |
»» exp_year | integer | true | none | none |
»» name | string | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
addPaymentMethod
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/method/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/method/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/method/add
Add Payment Method
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deletePaymentMethod
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/method/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/method/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/method/delete
Delete Payment Method
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
setPrimaryPaymentMethod
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/method/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/method/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/method/set',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/method/set',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/method/set', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/method/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/method/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/method/set", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/method/set
Set Primary Payment Method
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
estimateTaxes
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/tax/estimate \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/tax/estimate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/tax/estimate',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/tax/estimate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/tax/estimate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/tax/estimate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/tax/estimate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/tax/estimate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/tax/estimate
Estimate Taxes
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
purchaseSubscription
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/subscription/purchase \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/subscription/purchase HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/subscription/purchase',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/subscription/purchase',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/subscription/purchase', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/subscription/purchase', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/subscription/purchase");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/subscription/purchase", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/subscription/purchase
Purchase Subscription
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
cancelSubscription
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/subscription/cancel \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/subscription/cancel HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/subscription/cancel',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/subscription/cancel',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/subscription/cancel', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/subscription/cancel', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/subscription/cancel");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/subscription/cancel", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/subscription/cancel
Cancel Subscription
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listAddresses
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/address/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/address/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/address/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/address/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/address/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/address/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/address/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/address/list
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.
Example responses
200 Response
[
{
"id": 44739,
"customerName": "Firstname Lastname",
"postalCode": "12345",
"line1": "123 Main St",
"city": "Metropolis",
"region": "NY",
"country": "US",
"default": true
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [PaymentAddressModel] | false | none | none |
» id | integer | true | none | none |
» customerName | string | true | none | none |
» postalCode | string | true | none | none |
» line1 | string | true | none | none |
» city | string | true | none | none |
» region | string | true | none | none |
» country | string | true | none | none |
» default | boolean | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
addAddress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/address/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/address/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/address/add
Add Address
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateAddress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/address/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/address/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/address/update
Update Address
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteAddress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/address/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/address/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/address/delete
Delete Address
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
setPrimaryAddress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/address/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/address/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/address/set',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/address/set',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/address/set', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/address/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/address/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/address/set", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/address/set
Set Primary Address
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
webhook
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/webhook/{paymentProcessor}
Webhook
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
paymentProcessor | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
webhookWithSubprocessor
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/payment/webhook/{paymentProcessor}/{subPaymentProcessor}
Webhook With Subprocessor
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
paymentProcessor | path | string | true | none |
subPaymentProcessor | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listInvoices
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/invoice/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/invoice/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/invoice/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/invoice/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/invoice/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/invoice/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/invoice/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/invoice/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/invoice/list
List Invoices
Retrieve a list of paid or unpaid subscription invoices for the user.
Example responses
200 Response
{
"invoices": [
{
"id": 1234567,
"amountDue": 50,
"amountTax": 0,
"attemptCount": 0,
"currency": "usd",
"date": "2020-11-19T16:23:33.000Z",
"dateDue": null,
"periodStart": "2020-09-25T07:35:04.273Z",
"periodEnd": "2021-09-25T07:35:04.273Z",
"nextPaymentAttempt": "2020-09-25T07:35:04.273Z",
"paid": true,
"forgiven": false,
"refunded": false,
"subscriptions": [
{
"id": 1234567,
"subscription": 12345,
"periodStart": "2020-09-25T07:35:04.273Z",
"periodEnd": "2021-09-25T07:35:04.273Z",
"value": 50,
"amountSubtotal": 50,
"amountTotal": 50,
"amountTax": 0,
"plan": {
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"title": "LinusTechTips",
"urlname": "linustechtips",
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
}
}
}
}
]
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | PaymentInvoiceListV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SocketV2
Socket subscriptions and connections.
subscribeUser
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/socket/subscribe/user \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/socket/subscribe/user HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/socket/subscribe/user',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/socket/subscribe/user',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/socket/subscribe/user', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/socket/subscribe/user', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/socket/subscribe/user");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/socket/subscribe/user", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/socket/subscribe/user
Subscribe User
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
subscribeUserById
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/socket/subscribe/user/{id} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/socket/subscribe/user/{id} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/socket/subscribe/user/{id}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/socket/subscribe/user/{id}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/socket/subscribe/user/{id}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/socket/subscribe/user/{id}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/socket/subscribe/user/{id}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/socket/subscribe/user/{id}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/socket/subscribe/user/{id}
Subscribe User By Id
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SocketV3
Socket subscriptions and connections.
socketConnect
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/socket/connect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/socket/connect HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/socket/connect',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/socket/connect',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/socket/connect', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/socket/connect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/socket/connect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/socket/connect", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/socket/connect
Connect
Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
disconnectSocket
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/socket/disconnect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/socket/disconnect HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/socket/disconnect',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/socket/disconnect',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/socket/disconnect', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/socket/disconnect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/socket/disconnect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/socket/disconnect", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/socket/disconnect
Disconnect
Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
StripeV2
Stripe metadata.
retrievePublicKey
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/payment/stripe/pk \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/payment/stripe/pk HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/payment/stripe/pk',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/payment/stripe/pk',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/payment/stripe/pk', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/payment/stripe/pk', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/payment/stripe/pk");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/payment/stripe/pk", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/payment/stripe/pk
Retrieve Public Key
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SubscriptionsV2
Get user subscriptions.
listUserSubscriptionsV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/subscriptions \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/subscriptions HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/subscriptions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/subscriptions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/subscriptions', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/subscriptions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/subscriptions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/subscriptions
List User Subscriptions
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
doesUserHaveSubV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/subscribed \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/subscribed HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/subscribed',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/subscribed',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/subscribed', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/subscribed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/subscribed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/subscribed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/subscribed
Does User Have Sub
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SubscriptionsV3
Get user subscriptions.
listUserSubscriptionsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/subscriptions \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/subscriptions HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/subscriptions',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/subscriptions',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/subscriptions', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/subscriptions', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/subscriptions");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/subscriptions", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/subscriptions
List User Subscriptions
Retrieve a list of all active subscriptions for the user.
Example responses
200 Response
[
{
"startDate": "2020-09-25T07:35:04.273Z",
"endDate": "2021-09-25T07:35:04.273Z",
"paymentID": 12345,
"interval": "year",
"paymentCancelled": false,
"plan": {
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
"creator": "59f94c0bdd241b70349eb72b"
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Subscriptions returned | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UserSubscriptionModel] | false | none | none |
» startDate | string(date-time)¦null | true | none | none |
» endDate | string(date-time)¦null | true | none | none |
» paymentID | integer¦null | true | none | none |
» interval | string | true | none | none |
» paymentCancelled | boolean | false | none | none |
» plan | SubscriptionPlanModel | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
»» description | string | true | none | none |
»» price | string¦null | true | none | none |
»» priceYearly | string¦null | true | none | none |
»» currency | string | true | none | none |
»» logo | string¦null | true | none | none |
»» interval | string | true | none | none |
»» featured | boolean | true | none | none |
»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»» discordServers | [DiscordServerModel] | true | none | none |
»»» id | string | true | none | none |
»»» guildName | string | true | none | none |
»»» guildIcon | string | true | none | none |
»»» inviteLink | string(uri)¦null | true | none | none |
»»» inviteMode | string | true | none | none |
»» discordRoles | [DiscordRoleModel] | true | none | none |
»»» server | string | true | none | none |
»»» roleName | string | true | none | none |
» creator | string | true | none | none |
Links
getContent => getMultiCreatorBlogPosts
Parameter | Expression |
---|---|
ids | $response.body#/0/creator |
getCreators => getInfo
Parameter | Expression |
---|---|
creatorGUID | $response.body#/0/creator |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
doesUserHaveSubV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/subscribed \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/subscribed HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/subscribed',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/subscribed',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/subscribed', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/subscribed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/subscribed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/subscribed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/subscribed
Does User Have Sub
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SupportV2
User support ticket management
submitSupport
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/support/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/support/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/support/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/support/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/support/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/support/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/support/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/support/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/support/
Submit Support
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getTicketTypes
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/support/ticket/types \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/support/ticket/types HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/support/ticket/types',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/support/ticket/types',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/support/ticket/types', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/support/ticket/types', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/support/ticket/types");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/support/ticket/types", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/support/ticket/types
Get Ticket Types
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
SyncV2
Sync connections.
syncConnect
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/sync/connect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/sync/connect HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/sync/connect',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/sync/connect',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/sync/connect', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/sync/connect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/sync/connect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/sync/connect", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/sync/connect
Connect
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
disconnectSync
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/sync/disconnect \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/sync/disconnect HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/sync/disconnect',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/sync/disconnect',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/sync/disconnect', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/sync/disconnect', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/sync/disconnect");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/sync/disconnect", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/sync/disconnect
Disconnect
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
TranscodingV2
Creator transcoding progress, notifications, and subscriptions.
getTranscodeProgress
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/transcode/progress \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/transcode/progress HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/transcode/progress',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/transcode/progress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/transcode/progress', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/transcode/progress', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/transcode/progress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/transcode/progress
Get Transcode Progress
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
progressSubscribe
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/transcode/progress/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/transcode/progress/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/transcode/progress/subscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/transcode/progress/subscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/transcode/progress/subscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/transcode/progress/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/transcode/progress/subscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/transcode/progress/subscribe
Progress Subscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
progressUnsubscribe
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/transcode/progress/unsubscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/transcode/progress/unsubscribe
Progress Unsubscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
TranscodingV3
Creator transcoding progress, notifications, and subscriptions.
getActiveProcesses
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/processing/active \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/processing/active HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/processing/active',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/processing/active',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/processing/active', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/processing/active', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/processing/active");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/processing/active", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/processing/active
Get Active Processes
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
progressSubscribeCMS
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/transcode/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/transcode/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/transcode/subscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/transcode/subscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/transcode/subscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/transcode/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/transcode/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/transcode/subscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/transcode/subscribe
Progress Subscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
progressUnsubscribeCMS
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/transcode/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/transcode/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/transcode/unsubscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/transcode/unsubscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/transcode/unsubscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/transcode/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/transcode/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/transcode/unsubscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/transcode/unsubscribe
Progress Unsubscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
UserV2
User discovery and profile management.
getUserInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/info?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/info?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/info?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/info',
params: {
'id' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/info', params={
'id': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/info?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/info
Info
Retrieve more detailed information about one or more users from their identifiers.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | array[string] | true | The GUID identifer(s) of the user(s) to be retrieved. |
Example responses
200 Response
{
"users": [
{
"id": "59f94c0bdd241b70349eb723",
"user": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus",
"profileImage": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346.jpeg",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346_100x100.jpeg"
},
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/59f94c0bdd241b70349eb723/013264939123424_1535577174346_250x250.jpeg"
}
]
}
}
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Results of the user search | UserInfoV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
self
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/self \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/self HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/self',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/self',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/self', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/self', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/self");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/self", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/self
Self
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserInfoByName
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/named?username=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/named?username=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/named?username=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/named',
params: {
'username' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/named', params={
'username': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/named', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/named?username=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/named", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/named
Get Info By Name
Retrieve more detailed information about one or more users from their usernames.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
username | query | array[string] | true | The username(s) of the user(s) to be retrieved. |
Example responses
200 Response
{
"users": [
{
"id": "0123456789abcdef01234567",
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
},
"email": "testemail@example.com",
"displayName": "Firstname Lastname"
}
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Results of the user search | UserNamedV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateInfo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/update
Update Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateEmail
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/email/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/email/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/email/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/email/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/email/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/email/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/email/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/email/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/email/update
Update Email
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
completeEmailChange
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/email/update/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/email/update/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/email/update/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/email/update/complete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/email/update/complete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/email/update/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/email/update/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/email/update/complete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/email/update/complete
Complete Email Change
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadAvatar
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/avatar \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/avatar HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/avatar',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/avatar',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/avatar', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/avatar', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/avatar");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/avatar", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/avatar
Upload Avatar
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
changePassword
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/password/change \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/password/change HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/password/change',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/password/change',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/password/change', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/password/change', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/password/change");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/password/change", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/password/change
Change Password
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserCreator
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/creator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/creator HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/creator',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/creator',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/creator', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/creator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/creator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/creator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/creator
Get Creator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getActivityFeedV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/activity \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/activity HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/activity',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/activity',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/activity', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/activity', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/activity");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/activity", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/activity
Get Activity Feed
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getExternalLinksV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/links \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/links',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/links',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/links', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/links
Get External Links
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateExternalLinksV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/links \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/links',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/links',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/links', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/links
Update External Links
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getAdministrator
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/administrator \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/administrator HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/administrator',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/administrator',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/administrator', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/administrator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/administrator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/administrator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/administrator
Get Administrator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getSecurity
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/security \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/security HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/security',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/security', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/security', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/security", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/security
Get Security
Retrieve information about the current security configuration for the user.
Example responses
200 Response
{
"twofactorEnabled": true,
"twofactorBackupCodeEnabled": true
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Current security settings | UserSecurityV2Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
generateTwoFactorSecret
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/2fa',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/2fa
Generate Two Factor Secret
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
activateTwoFactorAuthentication
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa/activate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa/activate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/2fa/activate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa/activate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa/activate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa/activate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa/activate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa/activate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/2fa/activate
Activate Two Factor Authentication
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deactivateTwoFactorAuthentication
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/2fa/deactivate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/2fa/deactivate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/2fa/deactivate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/2fa/deactivate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/2fa/deactivate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/2fa/deactivate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/2fa/deactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/2fa/deactivate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/2fa/deactivate
Deactivate Two Factor Authentication
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
activateBackupCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode/activate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode/activate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/backupcode/activate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode/activate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode/activate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode/activate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode/activate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode/activate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/backupcode/activate
Activate Backup Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deactivateBackupCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode/deactivate \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode/deactivate HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/backupcode/deactivate',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode/deactivate',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode/deactivate', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode/deactivate', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode/deactivate");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode/deactivate", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/backupcode/deactivate
Deactivate Backup Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
generateBackupCode
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/security/backupcode \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/security/backupcode HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/security/backupcode',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/security/backupcode',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/security/backupcode', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/security/backupcode', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/security/backupcode");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/security/backupcode", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/security/backupcode
Generate Backup Code
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserNotificationSettingsV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/notificationsetting \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/notificationsetting HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/notificationsetting',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/notificationsetting',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/notificationsetting', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/notificationsetting', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/notificationsetting");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/notificationsetting", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/notificationsetting
Get User Notification Settings
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateUserNotificationSettingsV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/user/notificationsetting \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/user/notificationsetting HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/notificationsetting',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/user/notificationsetting',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/user/notificationsetting', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/user/notificationsetting', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/notificationsetting");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/user/notificationsetting", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/user/notificationsetting
Update User Notification Settings
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
userCreatorBanStatus
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/user/ban/status?creator=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/user/ban/status?creator=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/user/ban/status?creator=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/user/ban/status',
params: {
'creator' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/user/ban/status', params={
'creator': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/user/ban/status', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/user/ban/status?creator=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/user/ban/status", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/user/ban/status
User Creator Ban Status
Determine whether or not the user is banned for a given creator.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creator | query | string | true | The GUID of the creator being queried. |
Example responses
200 Response
true
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Whether the user is banned or not | boolean |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
UserV3
User discovery and profile management.
getActivityFeedV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/activity?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/activity?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/activity?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/activity',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/activity', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/activity', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/activity?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/activity", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/activity
Get Activity Feed
Retrieve recent activity for a user, such as comments and other interactions they have made on posts for creators.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The GUID of the user being queried. |
Example responses
200 Response
{
"activity": [
{
"time": "2021-10-09T08:12:51.290Z",
"comment": "This is the text of the comment being posted",
"postTitle": "TL: Facebook Does Not Care.",
"postId": "j7KjCaKrtV",
"creatorTitle": "LinusTechTips",
"creatorUrl": "linustechtips"
}
],
"visibility": "public"
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Activity returned | UserActivityV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getExternalLinksV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/links?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/links?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/links?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/links',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/links', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/links?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/links
Get External Links
Retrieve configured social media links from a user’s profile.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The GUID of the user being searched. |
Example responses
200 Response
{
"twitch": {
"url": "https://twitch.tv/myusername",
"type": {
"name": "twitch",
"displayName": "Twitch",
"hostName": "twitch.tv"
}
}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - User links returned | UserLinksV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateExternalLinksV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/links \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/links HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/links',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/links',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/links', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/links', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/links");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/links", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/links
Update External Links
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getSelf
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/self \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/self HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/self',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/self',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/self', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/self', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/self");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/self", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/self
Get Self
Retrieve more detailed information about the user, including their name and email.
Example responses
200 Response
{
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
},
"email": "testemail@example.com",
"displayName": "Firstname Lastname",
"creators": [],
"scheduledDeletionDate": null
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Information returned | UserSelfV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
scheduleDeletion
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/delete
Schedule Deletion
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unscheduleDeletion
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/undelete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/undelete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/undelete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/undelete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/undelete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/undelete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/undelete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/undelete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/undelete
Unschedule Deletion
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getAchievementPerks
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/achievement/perks \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/achievement/perks HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/achievement/perks',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/achievement/perks',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/achievement/perks', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/achievement/perks', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/achievement/perks");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/achievement/perks", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/achievement/perks
Get Achievement Perks
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserNotificationSettingsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/user/notification/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/user/notification/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/notification/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/user/notification/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/user/notification/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/user/notification/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/notification/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/user/notification/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/user/notification/list
Get User Notification Settings
Retrieve notification details for a user. The details are split into seperate settings for each subscribed creator.
Example responses
200 Response
[
{
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": null,
"icon": {
"width": 16,
"height": 16,
"path": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA1BMVEUfLTy/Rf//AAAAC0lEQVQI12MgEQAAADAAAWV61nwAAAAASUVORK5CYII="
},
"liveStream": null,
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
},
"userNotificationSetting": {
"createdAt": "2020-09-25T07:35:04.273Z",
"updatedAt": "2021-10-07T14:16:56.561Z",
"id": "abcdef0123456789abcdef01",
"contentEmail": false,
"contentFirebase": true,
"creatorMessageEmail": false,
"user": "0123456789abcdef01234567",
"creator": "59f94c0bdd241b70349eb72b"
}
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Notifications returned | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [UserNotificationModel] | false | none | none |
» creator | CreatorModelV2 | true | none | none |
»» id | string | true | none | none |
»» owner | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
»» description | string | true | none | none |
»» about | string | true | none | none |
»» category | string | true | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»» icon | ImageModel | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» liveStream | LiveStreamModel¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» owner | string | true | none | none |
»»» channel | string | false | none | The creator channel this livestream belongs to. |
»»» streamPath | string | true | none | none |
»»» offline | object | true | none | none |
»»»» title | string¦null | true | none | none |
»»»» description | string¦null | true | none | none |
»»»» thumbnail | ImageModel¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»»»» childImages | [ChildImageModel]¦null | true | none | none |
»» subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» price | string¦null | true | none | none |
»»» priceYearly | string¦null | true | none | none |
»»» currency | string | true | none | none |
»»» logo | string¦null | true | none | none |
»»» interval | string | true | none | none |
»»» featured | boolean | true | none | none |
»»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»»» discordServers | [DiscordServerModel] | true | none | none |
»»»» id | string | true | none | none |
»»»» guildName | string | true | none | none |
»»»» guildIcon | string | true | none | none |
»»»» inviteLink | string(uri)¦null | true | none | none |
»»»» inviteMode | string | true | none | none |
»»» discordRoles | [DiscordRoleModel] | true | none | none |
»»»» server | string | true | none | none |
»»»» roleName | string | true | none | none |
»» discoverable | boolean | true | none | none |
»» subscriberCountDisplay | string | true | none | none |
»» incomeDisplay | boolean | true | none | none |
»» defaultChannel | string | false | none | none |
» userNotificationSetting | object | true | none | none |
»» createdAt | string(date-time) | false | none | none |
»» updatedAt | string(date-time)¦null | false | none | none |
»» id | string | false | none | none |
»» contentEmail | boolean | true | none | none |
»» contentFirebase | boolean | true | none | none |
»» creatorMessageEmail | boolean | true | none | none |
»» user | string | true | none | none |
»» creator | string | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateUserNotificationSettingsV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/notification/update \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/notification/update HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creator": "string",
"property": "contentEmail",
"newValue": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/notification/update',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/notification/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/notification/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/notification/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/notification/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/notification/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/notification/update
Update User Notification Settings
Enable or disable email or push notifications for a specific creator.
Body parameter
{
"creator": "string",
"property": "contentEmail",
"newValue": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | UserNotificationUpdateV3PostRequest | true | none |
Example responses
200 Response
true
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Whether or not the update was successful | boolean |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
VideoCommentsV2
Video comment viewing and posting.
getVideoComments
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/comments \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/comments HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/comments',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/comments',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/comments', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/comments', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comments");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/comments", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/comments
Get Video Comments
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
addVideoComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/comment',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/comment', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/comment
Add Video Comment
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getVideoCommentReplies
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/comment/replies \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/comment/replies HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/comment/replies',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/comment/replies',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/comment/replies', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/comment/replies', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/replies");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/comment/replies", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/comment/replies
Get Video Comment Replies
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
VideoCommentInteractionsV2
Video comment interaction management.
clearInteraction
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment/interaction/clear \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment/interaction/clear HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/comment/interaction/clear',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment/interaction/clear',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/comment/interaction/clear', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment/interaction/clear', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/interaction/clear");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment/interaction/clear", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/comment/interaction/clear
Clear Interaction
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
setInteraction
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/comment/interaction/set \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/comment/interaction/set HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/comment/interaction/set',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/comment/interaction/set',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/comment/interaction/set', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/comment/interaction/set', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/comment/interaction/set");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/comment/interaction/set", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/comment/interaction/set
Set Interaction
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
MediaV2
Video media management.
watchKey
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/watchkey \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/watchkey',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/watchkey',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/watchkey', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/watchkey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/watchkey
Watch Key
TODO. This seems to originate from the .m3u8
file captured from the CDN endpoint, and is not usually called directly from code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getVideo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/info
Get Video
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getRelatedVideos
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/related \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/related HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/related',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/related',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/related', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/related', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/related");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/related", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/related
Get Related Videos
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateVideo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/update
Update Video
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteVideo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/delete
Delete Video
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/list
Get List
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
VideoV2
Video Dash key management.
getDashClearKeys
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/dash/watchkey \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/dash/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/dash/watchkey',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/dash/watchkey',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/dash/watchkey', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/dash/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/dash/watchkey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/dash/watchkey
Get Dash Clear Keys
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getDashClearKeysOverPost
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/dash/watchkey \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/dash/watchkey HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/dash/watchkey',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/dash/watchkey',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/dash/watchkey', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/dash/watchkey', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/watchkey");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/dash/watchkey", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/dash/watchkey
Get Dash Clear Keys Over Post
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getDashSignedChunkUrl
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/dash/chunk/signed \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/dash/chunk/signed HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/dash/chunk/signed',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/dash/chunk/signed',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/dash/chunk/signed', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/dash/chunk/signed', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/dash/chunk/signed");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/dash/chunk/signed", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/dash/chunk/signed
Get Dash Signed Chunk Url
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
PlaylistV2
Get playlists.
listPlaylistVideos
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/playlist/videos \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/playlist/videos HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/playlist/videos',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/playlist/videos',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/playlist/videos', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/playlist/videos', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/playlist/videos");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/playlist/videos", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/playlist/videos
List Videos
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
VideoUploadV2
Video uploading and management.
createMultipartUploadV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/upload/s3/multipart
Create Multipart Upload
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUploadedPartsV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/upload/s3/multipart \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/upload/s3/multipart',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/upload/s3/multipart', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/upload/s3/multipart", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/upload/s3/multipart
Get Uploaded Parts
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
signPartUploadVideo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/sign", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/video/upload/s3/multipart/sign
Sign Part Upload
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
abortMultipartUploadV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/abort", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/upload/s3/multipart/abort
Abort Multipart Upload
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
completeMultipartUploadVideo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/s3/multipart/complete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/upload/s3/multipart/complete
Complete Multipart Upload
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadThumbnailV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/video/upload/thumbnail \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/video/upload/thumbnail HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/video/upload/thumbnail',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/video/upload/thumbnail',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/video/upload/thumbnail', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/video/upload/thumbnail', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/video/upload/thumbnail");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/video/upload/thumbnail", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/video/upload/thumbnail
Upload Thumbnail
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
WebhookV2
Webhook management.
connectedAccount
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/webhooks/connectedAccount/{site}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/webhooks/connectedAccount/{site}
Connected Account
TODO - Not used in Floatplane code.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
site | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
WebhookV3
Webhook management.
IVSlivestreamPublish
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/webhooks/ivs/livestream \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/webhooks/ivs/livestream HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/webhooks/ivs/livestream',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/webhooks/ivs/livestream',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/webhooks/ivs/livestream', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/webhooks/ivs/livestream', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/webhooks/ivs/livestream");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/webhooks/ivs/livestream", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/webhooks/ivs/livestream
IVS Livestream Publish
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
livestreamPublish
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/webhooks/livestream \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/webhooks/livestream HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/webhooks/livestream',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/webhooks/livestream',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/webhooks/livestream', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/webhooks/livestream', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/webhooks/livestream");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/webhooks/livestream", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/webhooks/livestream
Livestream Publish
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
WebNotificationV2
Web push notification information and subscriptions.
getAppInfoV2
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/push/web/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/push/web/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/push/web/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/push/web/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/push/web/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/push/web/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/push/web/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/push/web/info
Get App Info
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
registerV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/push/web/register \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/push/web/register HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/push/web/register',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/push/web/register',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/push/web/register', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/push/web/register', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/register");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/push/web/register", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/push/web/register
Register
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unregisterV2
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/push/web/revoke \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/push/web/revoke HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/push/web/revoke',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/push/web/revoke',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/push/web/revoke', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/push/web/revoke', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/push/web/revoke", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/push/web/revoke
Unregister
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getTokenInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/push/web/tokenInfo \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/push/web/tokenInfo HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/push/web/tokenInfo',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/push/web/tokenInfo',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/push/web/tokenInfo', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/push/web/tokenInfo', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/push/web/tokenInfo");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/push/web/tokenInfo", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/push/web/tokenInfo
Get Token Info
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
WebNotificationV3
Web push notification information and subscriptions.
getAppInfoV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/push/web/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/push/web/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/push/web/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/push/web/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/push/web/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/push/web/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/push/web/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/push/web/info
Get App Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
registerV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/push/web/register \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/push/web/register HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/push/web/register',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/push/web/register',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/push/web/register', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/push/web/register', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/register");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/push/web/register", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/push/web/register
Register
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
unregisterV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/push/web/revoke \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/push/web/revoke HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/push/web/revoke',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/push/web/revoke',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/push/web/revoke', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/push/web/revoke', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/push/web/revoke");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/push/web/revoke", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/push/web/revoke
Unregister
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ACP_TranscodingV3
Creator content uploading, status, and management.
getContentList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/content/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/content/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/content/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/content/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/content/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/content/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/content/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/content/list
Get Content List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getContentACP
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/content \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/content',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/content',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/content', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/content
Get Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/content \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/content HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/content',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/content',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/content', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/content', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/content");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/content", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/content
Post Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getOrderList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/order/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/order/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/order/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/order/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/order/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/order/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/order/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/order/list
Get Order List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getOrder
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/order \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/order HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/order',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/order',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/order', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/order', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/order", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/order
Get Order
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postOrder
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/order',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/order',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/order', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/order
Post Order
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postManager
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/manager \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/manager HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/manager',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/manager',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/manager', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/manager', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/manager");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/manager", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/manager
Post Manager
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createOrder
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/order/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/order/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/order/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/order/create
Create Order
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
augmentOrder
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/order/augment \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/order/augment HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/order/augment',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/order/augment',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/order/augment', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/order/augment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/order/augment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/order/augment", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/order/augment
Augment Order
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUploadList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/upload/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/upload/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/upload/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/upload/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/upload/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/upload/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/upload/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/upload/list
Get Upload List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUpload
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/upload \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/upload',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/upload
Get Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postUpload
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/upload \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/upload HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/upload',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/upload',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/upload', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/upload', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/upload");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/upload", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/upload
Post Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getJob
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/job \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/job HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/job',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/job',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/job', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/job', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/job");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/job", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/job
Get Job
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postJob
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/job \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/job HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/job',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/job',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/job', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/job', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/job");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/job", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/job
Post Job
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getTask
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/acp/v3/task \
-H 'Accept: application/json'
GET https://www.floatplane.com/acp/v3/task HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/task',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/acp/v3/task',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/acp/v3/task', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/acp/v3/task', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/task");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/acp/v3/task", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /acp/v3/task
Get Task
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
postTask
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/acp/v3/task \
-H 'Accept: application/json'
POST https://www.floatplane.com/acp/v3/task HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/acp/v3/task',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/acp/v3/task',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/acp/v3/task', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/acp/v3/task', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/acp/v3/task");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/acp/v3/task", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /acp/v3/task
Post Task
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CMS_BlogPostV3
CMS blog post editing and posting.
getBlogPostCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/blogPost/get \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/blogPost/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/get',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/blogPost/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/blogPost/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/blogPost/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/blogPost/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/blogPost/get
Get Blog Post
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listBlogPost
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/blogPost/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/blogPost/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/blogPost/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/blogPost/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/blogPost/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/blogPost/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/blogPost/list
List Blog Post
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createBlogPost
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/blogPost/create
Create Blog Post
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
editBlogPost
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/blogPost/edit
Edit Blog Post
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteBlogPost
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/blogPost/delete
Delete Blog Post
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateNewAttachments
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/blogPost/attachments/update \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/blogPost/attachments/update HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/blogPost/attachments/update',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/blogPost/attachments/update',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/blogPost/attachments/update', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/blogPost/attachments/update', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/blogPost/attachments/update");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/blogPost/attachments/update", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/blogPost/attachments/update
Update New Attachments
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CMS_ContentV3
CMS content editing and posting.
editContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/content/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/content/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/content/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/content/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/content/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/content/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/content/edit
Edit Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listVideoContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/video/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/video/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/video/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/video/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/video/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/video/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/video/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/video/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/video/list
List Video Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listAudioContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/audio/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/audio/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/audio/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/audio/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/audio/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/audio/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/audio/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/audio/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/audio/list
List Audio Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listPictureContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/picture/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/picture/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/picture/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/picture/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/picture/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/picture/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/picture/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/picture/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/picture/list
List Picture Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listGalleryContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/gallery/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/gallery/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/gallery/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/gallery/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/gallery/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/gallery/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/gallery/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/gallery/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/gallery/list
List Gallery Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getVideoContentCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/video/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/video/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/video/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/video/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/video/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/video/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/video/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/video/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/video/
Get Video Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getAudioContentCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/audio/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/audio/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/audio/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/audio/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/audio/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/audio/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/audio/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/audio/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/audio/
Get Audio Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getPictureContentCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/picture/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/picture/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/picture/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/picture/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/picture/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/picture/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/picture/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/picture/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/picture/
Get Picture Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getGalleryContentCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/gallery/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/gallery/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/gallery/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/gallery/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/gallery/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/gallery/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/gallery/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/gallery/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/gallery/
Get Gallery Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getContentCMS
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/content/ \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/content/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/content/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/content/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/content/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/content/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/content/
Get Content
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/content/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/content/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/content/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/content/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/content/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/content/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/content/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/content/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/content/delete
Delete Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CMS_CreatorWarehouseV3
CMS Creator Warehouse management.
getCreatorWarehouse
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/creatorwarehouse \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/creatorwarehouse HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/creatorwarehouse',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/creatorwarehouse', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/creatorwarehouse', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/creatorwarehouse", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/creatorwarehouse
Get Creator Warehouse
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
saveCreatorWarehouse
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/save \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/save HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/save',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/save',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/save', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/save', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/save");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/save", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/save
Save Creator Warehouse
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listPriceRules
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/pricerule/list
List Price Rules
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getPriceRule
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/ \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/ HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/pricerule/
Get Price Rule
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createPriceRule
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/pricerule/create
Create Price Rule
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
editPriceRule
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/pricerule/edit
Edit Price Rule
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deletePriceRule
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/pricerule/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/pricerule/delete
Delete Price Rule
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listProducts
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/products/list
List Products
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listCollections
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/collections/list
List Collections
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getShopInfo
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/shop/get
Get Shop Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listShopShippingCountries
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/shop/shippingcountries/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/shop/shippingcountries/list
List Shop Shipping Countries
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getProducts
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/products/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/products/get
Get Products
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCollections
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/collections/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/collections/get
Get Collections
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCountries
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/creatorwarehouse/countries/get", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/creatorwarehouse/countries/get
Get Countries
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CMS_LivestreamV3
CMS Livestream information.
getLivestreamInfo
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/live/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/live/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/live/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/live/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/live/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/live/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/live/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/live/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/live/info
Get Livestream Info
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CMS_CreatorSubscriptionPlanV3
CMS creator subscription plan and subscriber information.
listSubscriptionPlansCMS
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/cms/v3/plan/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/cms/v3/plan/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/plan/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/cms/v3/plan/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/cms/v3/plan/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/cms/v3/plan/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/plan/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/cms/v3/plan/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/cms/v3/plan/list
List Subscription Plans
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listSubscribers
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/subscribers/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/subscribers/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/subscribers/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/subscribers/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/subscribers/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/subscribers/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/subscribers/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/subscribers/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/subscribers/list
List Subscribers
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
downloadSubscribers
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/cms/v3/subscribers/download \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/cms/v3/subscribers/download HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/cms/v3/subscribers/download',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/cms/v3/subscribers/download',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/cms/v3/subscribers/download', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/cms/v3/subscribers/download', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/cms/v3/subscribers/download");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/cms/v3/subscribers/download", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/cms/v3/subscribers/download
Download Subscribers
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CommentV3
Comment retrieval, posting, and interacting.
postComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"blogPost": "string",
"text": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment
Post Comment
Post a new comment to a blog post object.
Body parameter
{
"blogPost": "string",
"text": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | CommentV3PostRequest | true | none |
Example responses
200 Response
{
"id": "8d575af6834343b166d0562a",
"blogPost": "j7KjCaKrtV",
"user": {
"id": "0123456789abcdef01234567",
"username": "my_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user12_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12_100x100.png"
}
]
}
},
"text": "This is the text of the comment being posted",
"replying": null,
"postDate": "2021-10-09T08:12:51.290Z",
"editDate": "2021-10-09T08:12:51.290Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
}
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Commented posted successfully, returning comment details | CommentV3PostResponse |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getComments
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0 \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0 HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/comment',
params: {
'blogPost' => 'string',
'limit' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/comment', params={
'blogPost': 'string', 'limit': '0'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/comment', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment?blogPost=string&limit=0");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/comment", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/comment
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.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
blogPost | query | string | true | Which blog post to retrieve comments for. |
limit | query | integer | true | The maximum number of comments to return. This should be set to 20 by default. |
fetchAfter | query | string | false | 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 . |
Example responses
200 Response
[
{
"id": "00c5ab7379e746b24a76634b",
"blogPost": "Dw2ms0AgL8",
"user": {
"id": "ff0a479639c60f3a8cd18d8b",
"username": "some_username",
"profileImage": {
"width": 512,
"height": 512,
"path": "https://pbs.floatplane.com/profile_images/default/user10.png",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/profile_images/default/user10_250x250.png"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user10_100x100.png"
}
]
}
},
"text": "This is my comment text, I really like this video.",
"replying": null,
"postDate": "2021-10-09T14:58:34.829Z",
"editDate": "2021-10-09T14:58:34.829Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"totalReplies": 0,
"replies": [],
"userInteraction": null
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - All comments returned for the query parameters | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CommentModel] | false | none | none |
» id | string | true | none | none |
» blogPost | string | true | none | none |
» user | UserModel | true | none | Represents some basic information of a user (id, username, and profile image). |
»» id | string | true | none | none |
»» username | string | true | none | none |
»» profileImage | ImageModel | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
» text | string | true | none | none |
» replying | string¦null | true | none | none |
» postDate | string(date-time) | true | none | none |
» editDate | string(date-time)¦null | true | none | none |
» pinDate | string(date-time)¦null | false | none | none |
» editCount | integer | true | none | none |
» isEdited | boolean | true | none | none |
» likes | integer | true | none | none |
» dislikes | integer | true | none | none |
» score | integer | true | none | none |
» interactionCounts | object | true | none | none |
»» like | integer | true | none | none |
»» dislike | integer | true | none | none |
» totalReplies | integer | false | none | none |
» replies | [CommentModel] | false | none | This is present (but possibly empty) for top-level comments. This is never present for reply comments. |
» userInteraction | [string]¦null | true | none | none |
Links
getMoreComments => getcomments
Parameter | Expression |
---|---|
fetchAfter | $response.body#/19/id |
getMoreReplies => getCommentReplies
Parameter | Expression |
---|
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCommentReplies
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/comment/replies',
params: {
'comment' => 'string',
'blogPost' => 'string',
'limit' => 'integer',
'rid' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/comment/replies', params={
'comment': 'string', 'blogPost': 'string', 'limit': '0', 'rid': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/comment/replies', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/replies?comment=string&blogPost=string&limit=0&rid=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/comment/replies", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/comment/replies
Get Comment Replies
Retrieve more replies from a comment.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
comment | query | string | true | The identifer of the comment from which to retrieve replies. |
blogPost | query | string | true | The identifer of the blog post the comment belongs to. |
limit | query | integer | true | How many replies to retrieve. |
rid | query | string | true | The identifer of the last reply in the reply chain. |
Example responses
200 Response
[
{
"id": "1234567890abcdef",
"blogPost": "p3OSnFmsR3",
"user": {
"id": "abcdef1234567890",
"username": "the_username",
"profileImage": {
"width": 225,
"height": 225,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png",
"childImages": [
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/profile_images/default/user12.png"
}
]
}
},
"text": "This is my reply text",
"replying": "1234567890abcdef0",
"postDate": "2021-12-17T06:57:33.152Z",
"editDate": "2021-12-17T06:57:33.152Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"userInteraction": null
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [CommentModel] | false | none | none |
» id | string | true | none | none |
» blogPost | string | true | none | none |
» user | UserModel | true | none | Represents some basic information of a user (id, username, and profile image). |
»» id | string | true | none | none |
»» username | string | true | none | none |
»» profileImage | ImageModel | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
» text | string | true | none | none |
» replying | string¦null | true | none | none |
» postDate | string(date-time) | true | none | none |
» editDate | string(date-time)¦null | true | none | none |
» pinDate | string(date-time)¦null | false | none | none |
» editCount | integer | true | none | none |
» isEdited | boolean | true | none | none |
» likes | integer | true | none | none |
» dislikes | integer | true | none | none |
» score | integer | true | none | none |
» interactionCounts | object | true | none | none |
»» like | integer | true | none | none |
»» dislike | integer | true | none | none |
» totalReplies | integer | false | none | none |
» replies | [CommentModel] | false | none | This is present (but possibly empty) for top-level comments. This is never present for reply comments. |
» userInteraction | [string]¦null | true | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
likeComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/like \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v3/comment/like HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: text/plain
const inputBody = '{
"comment": "string",
"blogPost": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};
fetch('https://www.floatplane.com/api/v3/comment/like',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/plain'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/like',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/like', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/plain',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/like', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/like");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/like", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/like
Like Comment
Like a comment on a blog post.
Body parameter
{
"comment": "string",
"blogPost": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | CommentLikeV3PostRequest | true | none |
Example responses
200 Response
"like"
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Comment successfully liked | string |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
dislikeComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/dislike \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v3/comment/dislike HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: text/plain
const inputBody = '{
"comment": "string",
"blogPost": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};
fetch('https://www.floatplane.com/api/v3/comment/dislike',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/plain'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/dislike',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/dislike', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/plain',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/dislike', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/dislike");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/dislike", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/dislike
Dislike Comment
Dislike a comment on a blog post.
Body parameter
{
"comment": "string",
"blogPost": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | CommentLikeV3PostRequest | true | none |
Example responses
200 Response
"dislike"
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Comment successfully disliked | string |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
editComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/edit \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/edit HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/edit',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/edit',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/edit', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/edit', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/edit");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/edit", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/edit
Edit Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
deleteComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/delete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/delete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/delete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/delete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/delete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/delete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/delete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/delete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/delete
Delete Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
pinComment
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/pin \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/pin HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/pin',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/pin',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/pin', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/pin', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/pin");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/pin", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/pin
Pin Comment
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getCommentHistory
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/comment/history \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/comment/history HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/comment/history',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/comment/history',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/comment/history', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/comment/history', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/comment/history");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/comment/history", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/comment/history
Get Comment History
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ContentV3
Content retrieval and interacting.
getCreatorBlogPosts
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/creator?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/creator?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/creator?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/creator',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/creator', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/creator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/creator?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/creator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/creator
Get Creator Blog Posts
Retrieve a paginated list of blog posts from a creator. Or search for blog posts from a creator.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The GUID of the creator to retrieve posts from. |
channel | query | string | false | The id of a creator’s specific channel from which to retrieve posts. |
limit | query | integer | false | The maximum number of posts to return. |
fetchAfter | query | integer | false | The number of posts to skip. Usually a multiple of limit , to get the next “page” of results. |
search | query | string | false | Search filter to look for specific posts. |
tags | query | array[string] | false | An array of tags to search against, possibly in addition to search . |
hasVideo | query | boolean | false | If true, include blog posts with video attachments. |
hasAudio | query | boolean | false | If true, include blog posts with audio attachments. |
hasPicture | query | boolean | false | If true, include blog posts with picture attachments. |
hasText | query | boolean | false | 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. |
sort | query | string | false | DESC = Newest First. ASC = Oldest First. |
fromDuration | query | integer | false | 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 | query | integer | false | 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 | query | string(date-time) | false | Include posts where the publication date is on or after this filter date. |
toDate | query | string(date-time) | false | Include posts where the publication date is on or before this filter date. |
Detailed descriptions
hasText: 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.
Enumerated Values
Parameter | Value |
---|---|
sort | ASC |
sort | DESC |
Example responses
200 Response
[
{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 41,
"dislikes": 0,
"score": 41,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"TViGzkuIic"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
},
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"KijsTQP8Rr",
"psqoN3CgMH"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Creator posted returned | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [BlogPostModelV3] | false | none | none |
» id | string | true | none | none |
» guid | string | true | none | none |
» title | string | true | none | none |
» text | string | true | none | Text description of the post. May have HTML paragraph (<p> ) tags surrounding it, along with other HTML… |
» type | string | true | none | none |
» channel | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | ChannelModel | false | none | none |
»»» id | string | true | none | none |
»»» creator | string | true | none | none |
»»» title | string | true | none | none |
»»» urlname | string | true | none | Shown in the browser URL. |
»»» about | string | true | none | none |
»»» order | integer | false | none | none |
»»» cover | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»» card | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» icon | ImageModel | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» socialLinks | SocialLinksModel | false | none | none |
»»»» additionalProperties | string(uri) | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | string | false | none | Channel identifier |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» tags | [string] | true | none | none |
» attachmentOrder | [string] | true | none | none |
» metadata | PostMetadataModel | true | none | none |
»» hasVideo | boolean | true | none | none |
»» videoCount | integer | false | none | none |
»» videoDuration | number | true | none | none |
»» hasAudio | boolean | true | none | none |
»» audioCount | integer | false | none | none |
»» audioDuration | number | true | none | none |
»» hasPicture | boolean | true | none | none |
»» pictureCount | integer | false | none | none |
»» hasGallery | boolean | false | none | none |
»» galleryCount | integer | false | none | none |
»» isFeatured | boolean | true | none | none |
» releaseDate | string(date-time) | true | none | none |
» likes | integer | true | none | none |
» dislikes | integer | true | none | none |
» score | integer | true | none | none |
» comments | integer | true | none | none |
» creator | object | true | none | none |
»» id | string | true | none | none |
»» owner | object | true | none | none |
»»» id | string | true | none | none |
»»» username | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
»» description | string | true | none | none |
»» about | string | true | none | none |
»» category | object | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» icon | ImageModel | true | none | none |
»» liveStream | LiveStreamModel¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» owner | string | true | none | none |
»»» channel | string | false | none | The creator channel this livestream belongs to. |
»»» streamPath | string | true | none | none |
»»» offline | object | true | none | none |
»»»» title | string¦null | true | none | none |
»»»» description | string¦null | true | none | none |
»»»» thumbnail | ImageModel¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»»»» childImages | [ChildImageModel]¦null | true | none | none |
»» subscriptionPlans | [SubscriptionPlanModel] | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» price | string¦null | true | none | none |
»»» priceYearly | string¦null | true | none | none |
»»» currency | string | true | none | none |
»»» logo | string¦null | true | none | none |
»»» interval | string | true | none | none |
»»» featured | boolean | true | none | none |
»»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»»» discordServers | [DiscordServerModel] | true | none | none |
»»»» id | string | true | none | none |
»»»» guildName | string | true | none | none |
»»»» guildIcon | string | true | none | none |
»»»» inviteLink | string(uri)¦null | true | none | none |
»»»» inviteMode | string | true | none | none |
»»» discordRoles | [DiscordRoleModel] | true | none | none |
»»»» server | string | true | none | none |
»»»» roleName | string | true | none | none |
»» discoverable | boolean | true | none | none |
»» subscriberCountDisplay | string | true | none | none |
»» incomeDisplay | boolean | true | none | none |
»» defaultChannel | string | false | none | none |
»» channels | [string] | false | none | none |
»» card | ImageModel¦null | false | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
» wasReleasedSilently | boolean | true | none | none |
» thumbnail | ImageModel¦null | false | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
» videoAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» audioAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» pictureAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» galleryAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
Enumerated Values
Property | Value |
---|---|
type | blogPost |
Links
getBlogPost => getBlogPost
Parameter | Expression |
---|---|
id | $response.body#/0/id |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getMultiCreatorBlogPosts
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1 \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1 HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/creator/list',
params: {
'ids' => 'array[string]',
'limit' => 'integer'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/creator/list', params={
'ids': [
"string"
], 'limit': '1'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/creator/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/creator/list?ids=string&limit=1");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/creator/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/creator/list
Get Multi Creator Blog Posts
Retrieve paginated blog posts from multiple creators for the home page.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
ids | query | array[string] | true | The GUID(s) of the creator(s) to retrieve posts from. |
limit | query | integer | true | The maximum number of posts to retrieve. |
fetchAfter | query | array[object] | false | 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 . |
Example responses
200 Response
{
"blogPosts": [
{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 40,
"dislikes": 0,
"score": 40,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"TViGzkuIic"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
},
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true,
"videoAttachments": [
"KijsTQP8Rr",
"psqoN3CgMH"
],
"audioAttachments": [],
"pictureAttachments": [],
"galleryAttachments": []
}
],
"lastElements": [
{
"creatorId": "59f94c0bdd241b70349eb72b",
"blogPostId": "l2wH2gXLiW",
"moreFetchable": true
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Posts returned | ContentCreatorListV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getContentTags
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/tags?creatorIds=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/tags?creatorIds=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/tags?creatorIds=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/tags',
params: {
'creatorIds' => 'array[string]'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/tags', params={
'creatorIds': [
"string"
]
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/tags', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/tags?creatorIds=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/tags", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/tags
Get Content Tags
Retrieve all tags and the number of times the tags have been used for the specified creator(s).
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creatorIds | query | array[string] | true | The creator(s) to search by. |
Example responses
200 Response
{
"battery": 1,
"server": 1,
"Airpods": 1,
"storage": 1,
"tjm": 1,
"Apple": 1,
"swap": 1,
"memory": 1,
"ltt": 1
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Creator tag information | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» additionalProperties | integer | false | none | none |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getBlogPost
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/post?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/post?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/post?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/post',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/post', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/post', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/post?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/post", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/post
Get Blog Post
Retrieve more details on a specific blog post object for viewing.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The ID of the post to be retrieved. |
Example responses
200 Response
{
"id": "Dw2ms0AgL8",
"guid": "Dw2ms0AgL8",
"title": "Livestream VOD – October 9, 2021 @ 07:18 – First Linux Stream",
"text": "<p>chat on Twitch</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"TViGzkuIic"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 5689,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:29:00.039Z",
"likes": 41,
"dislikes": 0,
"score": 41,
"comments": 28,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": "59f94c0bdd241b70349eb723",
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": "59f94c0bdd241b70349eb727",
"cover": null,
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": null,
"subscriptionPlans": null,
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"isAccessible": true,
"userInteraction": [],
"videoAttachments": [
{
"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": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/content_thumbnails/TViGzkuIic/324783659287024_1633769709593.jpeg",
"childImages": []
},
"isAccessible": true
}
],
"audioAttachments": [
{
"id": "iGssjNGPSD",
"guid": "iGssjNGPSD",
"title": "Robocop FP.mp3",
"type": "audio",
"description": "",
"duration": 4165,
"waveform": {
"dataSetLength": 3,
"highestValue": 71,
"lowestValue": 50,
"data": [
71,
50,
69
]
},
"creator": "59f94c0bdd241b70349eb72b",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": false,
"primaryBlogPost": "jVU2y9PlnG",
"isAccessible": true
}
],
"pictureAttachments": [],
"galleryAttachments": []
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Detailed post information | ContentPostV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getRelatedBlogPosts
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/related?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/related?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/related?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/related',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/related', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/related', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/related?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/related", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/related
Get Related Blog Posts
Retrieve a list of blog posts that are related to the post being viewed.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The ID of the originating post. |
Example responses
200 Response
[
{
"id": "ge4gLGfXnz",
"guid": "ge4gLGfXnz",
"title": "Livestream VOD – October 8, 2021 @ 20:26 – I Have MORE to Say About Steam Deck - WAN Show October 8, 2021",
"text": "<p>Honey automatically applies the best coupon codes to save you money at </p><p>different online checkouts, try it now at <a href=\"https://www.joinhoney.com/linus\">https://www.joinhoney.com/linus</a></p><p><br /></p><p>Buy a Seasonic Ultra Titanium PSU</p><p>On Amazon: <a href=\"https://geni.us/q4lnefC\">https://geni.us/q4lnefC</a></p><p>On NewEgg: <a href=\"https://lmg.gg/8KV3S\">https://lmg.gg/8KV3S</a></p><p><br /></p><p>Visit <a href=\"https://www.squarespace.com/WAN\">https://www.squarespace.com/WAN</a> and use offer code WAN for 10% off</p><p><br /></p><p>Podcast Download: TBD</p><p><br /></p><p>Check out our other Podcasts:</p><p>Carpool Critics Movie Podcast: <a href=\"https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA\">https://www.youtube.com/channel/UCt-oJR5teQIjOAxCmIQvcgA</a></p><p><br /></p><p>Timestamps TBD</p>",
"type": "blogPost",
"tags": [
"test"
],
"attachmentOrder": [
"psqoN3CgMH",
"KijsTQP8Rr"
],
"metadata": {
"hasVideo": true,
"videoCount": 2,
"videoDuration": 9506,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T09:28:00.015Z",
"likes": 43,
"dislikes": 3,
"score": 40,
"comments": 24,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 640,
"height": 360,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/ge4gLGfXnz/564833356017787_1633771544979_400x225.jpeg"
}
]
},
"isAccessible": true
},
{
"id": "j7KjCaKrtV",
"guid": "j7KjCaKrtV",
"title": "TL: Facebook Does Not Care.",
"text": "<p><strong>NEWS SOURCES:</strong></p><p><strong> </strong></p><p>MICRO-BOSS, WORD</p><p>Microsoft to make its devices more repairable following pressure</p><p><a href=\"https://linustechtips.com/topic/1379452-microsoft-agrees-to-independent-third-party-study-to-look-into-right-to-repair/\">https://linustechtips.com/topic/1379452-microsoft-agrees-to-independent-third-party-study-to-look-into-right-to-repair/</a></p><p><a href=\"https://grist.org/accountability/bowing-to-investors-microsoft-will-make-its-devices-easier-to-fix/\">https://grist.org/accountability/bowing-to-investors-microsoft-will-make-its-devices-easier-to-fix/</a></p><p><a href=\"https://www.asyousow.org/about-us#:~:text=As%20You%20Sow%20is%20the%20nation%E2%80%99s%20non-profit%20leader%20in%20shareholder%20advocacy\">https://www.asyousow.org/about-us#:~:text=As%20You%20Sow%20is%20the%20nation%E2%80%99s%20non-profit%20leader%20in%20shareholder%20advocacy</a>.</p><p>Louis is happy <a href=\"https://www.youtube.com/watch?v=TiMdvR99fBQ\">https://www.youtube.com/watch?v=TiMdvR99fBQ</a></p><p> </p><p>WHAT, THIS OLE’D THING?</p><p>Switch OLED launches <a href=\"https://arstechnica.com/gaming/2021/10/switch-oled-review-nintendos-nicest-most-nonessential-upgrade-yet/\">https://arstechnica.com/gaming/2021/10/switch-oled-review-nintendos-nicest-most-nonessential-upgrade-yet/</a></p><p><a href=\"https://www.youtube.com/watch?v=4mHq6Y7JSmg\">https://www.youtube.com/watch?v=4mHq6Y7JSmg</a></p><p>New Joy-Cons, but drift isn’t going away</p><p><a href=\"https://www.polygon.com/22688586/nintendo-switch-oled-joy-con-drift-controllers\">https://www.polygon.com/22688586/nintendo-switch-oled-joy-con-drift-controllers</a></p><p>screen protector <a href=\"https://www.nintendolife.com/news/2021/10/switch-oled-comes-with-a-screen-protector-installed-but-please-dont-remove-it-says-nintendo\">https://www.nintendolife.com/news/2021/10/switch-oled-comes-with-a-screen-protector-installed-but-please-dont-remove-it-says-nintendo</a></p><p> </p><p>SHAMEBOOK</p><p>Facebook has more outages</p><p><a href=\"https://www.engadget.com/facebook-and-instagram-are-down-for-the-second-time-this-week-193257623.html\">https://www.engadget.com/facebook-and-instagram-are-down-for-the-second-time-this-week-193257623.html</a></p><p><a href=\"https://twitter.com/Facebook/status/1446556732977778695\">https://twitter.com/Facebook/status/1446556732977778695</a></p><p>IG fixed <a href=\"https://twitter.com/InstagramComms/status/1446582114468597761\">https://twitter.com/InstagramComms/status/1446582114468597761</a></p><p>Unfollow everything developer banned <a href=\"https://www.theverge.com/2021/10/8/22716044/facebook-unfollow-everything-tool-louis-barclay-banned-for-life\">https://www.theverge.com/2021/10/8/22716044/facebook-unfollow-everything-tool-louis-barclay-banned-for-life</a></p><p><a href=\"https://slate.com/technology/2021/10/facebook-unfollow-everything-cease-desist.html\">https://slate.com/technology/2021/10/facebook-unfollow-everything-cease-desist.html</a></p><p><a href=\"https://louisbarclay.notion.site/Unfollow-Everything-cease-and-desist-letter-from-Facebook-ea219169421b457bb7ce010b7bf9ce1f\">https://louisbarclay.notion.site/Unfollow-Everything-cease-and-desist-letter-from-Facebook-ea219169421b457bb7ce010b7bf9ce1f</a></p><p> </p><p>QUICK BITS</p><p> </p><p>GET JEFF’D</p><p>Game backgrounds on Twitch replaced with Jeff Bezos</p><p><a href=\"https://twitter.com/AnEternalEnigma/status/1446421951883489281\">https://twitter.com/AnEternalEnigma/status/1446421951883489281</a></p><p>defaced <a href=\"https://www.cnet.com/tech/gaming/twitch-reportedly-defaced-with-pictures-of-jeff-bezos/\">https://www.cnet.com/tech/gaming/twitch-reportedly-defaced-with-pictures-of-jeff-bezos/</a></p><p> </p><p>ABOUT TO GET PADDLED</p><p>First In-App Purchasing alternative for iOS: Paddle</p><p><a href=\"https://twitter.com/PaddleHQ/status/1446050078301605890\">https://twitter.com/PaddleHQ/status/1446050078301605890</a></p><p><a href=\"https://paddle.com/platform/in-app-purchase/\">https://paddle.com/platform/in-app-purchase/</a></p><p>Sweeney</p><p><a href=\"https://twitter.com/TimSweeneyEpic/status/1446117510919585796\">https://twitter.com/TimSweeneyEpic/status/1446117510919585796</a></p><p> </p><p>STAY KINECTED</p><p>Sky Glass TV looks like a big iMac</p><p><a href=\"https://www.youtube.com/watch?v=GpGskL5PCKU\">https://www.youtube.com/watch?v=GpGskL5PCKU</a></p><p>Kinect motion controls <a href=\"https://www.theverge.com/2021/10/7/22714117/microsoft-kinect-is-back-sky-glass-tv-smart-camera-features\">https://www.theverge.com/2021/10/7/22714117/microsoft-kinect-is-back-sky-glass-tv-smart-camera-features</a> - full screen embedded video on this page and record</p><p><br /></p><p>UPGRADED TO CUMULONIMBUS</p><p>XCloud is now running Xbox Series X hardware</p><p><a href=\"https://www.kitguru.net/gaming/matthew-wilson/microsoft-has-upgraded-xcloud-to-xbox-series-x-hardware/\">https://www.kitguru.net/gaming/matthew-wilson/microsoft-has-upgraded-xcloud-to-xbox-series-x-hardware/</a></p><p><a href=\"https://www.eurogamer.net/articles/2021-10-07-xbox-cloud-gaming-now-runs-on-series-x-hardware\">https://www.eurogamer.net/articles/2021-10-07-xbox-cloud-gaming-now-runs-on-series-x-hardware</a></p><p> </p><p>NO PIXEL LEFT UN-LEAKED</p><p>Pixel 6 and 6 Pro teardowns leaked</p><p><a href=\"https://9to5google.com/2021/10/08/pixel-6-pro-teardown-leak/\">https://9to5google.com/2021/10/08/pixel-6-pro-teardown-leak/</a></p>",
"type": "blogPost",
"attachmentOrder": [
"R3mVASdVGt"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 377,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-09T02:55:00.045Z",
"likes": 101,
"dislikes": 0,
"score": 101,
"comments": 19,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596.jpeg",
"childImages": [
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596_1200x675.jpeg"
},
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/j7KjCaKrtV/726584368653303_1633741254596_400x225.jpeg"
}
]
},
"isAccessible": true
},
{
"id": "VkxlNv3k8j",
"guid": "VkxlNv3k8j",
"title": "TQ: Has USB-C WON Against Apple?",
"text": "<p>Learn about the proposed USB-C mandate in the EU.</p>",
"type": "blogPost",
"attachmentOrder": [
"7OWQQsxYYN"
],
"metadata": {
"hasVideo": true,
"videoCount": 1,
"videoDuration": 293,
"hasAudio": false,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": false,
"pictureCount": 0,
"hasGallery": false,
"galleryCount": 0,
"isFeatured": false
},
"releaseDate": "2021-10-08T23:31:00.037Z",
"likes": 106,
"dislikes": 0,
"score": 106,
"comments": 15,
"creator": {
"id": "59f94c0bdd241b70349eb72b",
"owner": {
"id": "59f94c0bdd241b70349eb723",
"username": "Linus"
},
"title": "LinusTechTips",
"urlname": "linustechtips",
"description": "We make entertaining videos about technology, including tech reviews, showcases and other content.",
"about": "# We're LinusTechTips\nWe make videos and stuff, cool eh?",
"category": {
"title": "Technology"
},
"cover": {
"width": 1990,
"height": 519,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867.jpeg",
"childImages": [
{
"width": 1245,
"height": 325,
"path": "https://pbs.floatplane.com/cover_images/59f94c0bdd241b70349eb72b/696951209272749_1521668313867_1245x325.jpeg"
}
]
},
"icon": {
"width": 600,
"height": 600,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205.jpeg",
"childImages": [
{
"width": 250,
"height": 250,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_250x250.jpeg"
},
{
"width": 100,
"height": 100,
"path": "https://pbs.floatplane.com/creator_icons/59f94c0bdd241b70349eb72b/770551996990709_1551249357205_100x100.jpeg"
}
]
},
"liveStream": {
"id": "5c13f3c006f1be15e08e05c0",
"title": "First Linux Stream",
"description": "<p>chat on Twitch</p>",
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/084281881402899_1633761128412_400x225.jpeg"
}
]
},
"owner": "59f94c0bdd241b70349eb72b",
"streamPath": "/api/video/v1/us-east-1.758417551536.channel.yKkxur4ukc0B.m3u8",
"offline": {
"title": "Offline",
"description": "We're offline for now – please check back later!",
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/stream_thumbnails/5c13f3c006f1be15e08e05c0/894654974252956_1549059179026_1200x675.jpeg"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "5d48d0306825b5780db93d07",
"title": "LTT Supporter (1080p)",
"description": "Includes:\n- Early access (when possible)\n- Live Streaming\n- Behind-the-scenes, cutting room floor & exclusives\n\nNOTE: Tech Quickie and TechLinked are included for now, but will move to their own Floatplane pages in the future",
"price": "5.00",
"priceYearly": "50.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": true,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
},
{
"id": "5e0ba6ac14e2590f760a0f0f",
"title": "LTT Supporter Plus",
"description": "You are the real MVP. \n\nYour support helps us continue to build out our team, drive up production values, run experiments that might lose money for a long time (*cough* LTX *cough*) and otherwise be the best content creators we can be.\n\nThis tier includes all the perks of the previous ones, but at floatplane's glorious high bitrate 4K!",
"price": "10.00",
"priceYearly": "100.00",
"currency": "usd",
"logo": null,
"interval": "month",
"featured": false,
"allowGrandfatheredAccess": false,
"discordServers": [],
"discordRoles": []
}
],
"discoverable": true,
"subscriberCountDisplay": "total",
"incomeDisplay": false,
"card": {
"width": 375,
"height": 500,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871.jpeg",
"childImages": [
{
"width": 300,
"height": 400,
"path": "https://pbs.floatplane.com/creator_card/59f94c0bdd241b70349eb72b/281467946609369_1551250329871_300x400.jpeg"
}
]
}
},
"wasReleasedSilently": false,
"thumbnail": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237.jpeg",
"childImages": [
{
"width": 400,
"height": 225,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237_400x225.jpeg"
},
{
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/blogPost_thumbnails/VkxlNv3k8j/438666910492097_1633734872237_1200x675.jpeg"
}
]
},
"isAccessible": true
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Related post details | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | [BlogPostModelV3] | false | none | none |
» id | string | true | none | none |
» guid | string | true | none | none |
» title | string | true | none | none |
» text | string | true | none | Text description of the post. May have HTML paragraph (<p> ) tags surrounding it, along with other HTML… |
» type | string | true | none | none |
» channel | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | ChannelModel | false | none | none |
»»» id | string | true | none | none |
»»» creator | string | true | none | none |
»»» title | string | true | none | none |
»»» urlname | string | true | none | Shown in the browser URL. |
»»» about | string | true | none | none |
»»» order | integer | false | none | none |
»»» cover | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»» card | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» icon | ImageModel | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» socialLinks | SocialLinksModel | false | none | none |
»»»» additionalProperties | string(uri) | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | string | false | none | Channel identifier |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» tags | [string] | true | none | none |
» attachmentOrder | [string] | true | none | none |
» metadata | PostMetadataModel | true | none | none |
»» hasVideo | boolean | true | none | none |
»» videoCount | integer | false | none | none |
»» videoDuration | number | true | none | none |
»» hasAudio | boolean | true | none | none |
»» audioCount | integer | false | none | none |
»» audioDuration | number | true | none | none |
»» hasPicture | boolean | true | none | none |
»» pictureCount | integer | false | none | none |
»» hasGallery | boolean | false | none | none |
»» galleryCount | integer | false | none | none |
»» isFeatured | boolean | true | none | none |
» releaseDate | string(date-time) | true | none | none |
» likes | integer | true | none | none |
» dislikes | integer | true | none | none |
» score | integer | true | none | none |
» comments | integer | true | none | none |
» creator | object | true | none | none |
»» id | string | true | none | none |
»» owner | object | true | none | none |
»»» id | string | true | none | none |
»»» username | string | true | none | none |
»» title | string | true | none | none |
»» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
»» description | string | true | none | none |
»» about | string | true | none | none |
»» category | object | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»» cover | ImageModel¦null | true | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
»» icon | ImageModel | true | none | none |
»» liveStream | LiveStreamModel¦null | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» thumbnail | ImageModel¦null | true | none | none |
»»»» width | integer | true | none | none |
»»»» height | integer | true | none | none |
»»»» path | string(uri) | true | none | none |
»»»» childImages | [ChildImageModel]¦null | true | none | none |
»»» owner | string | true | none | none |
»»» channel | string | false | none | The creator channel this livestream belongs to. |
»»» streamPath | string | true | none | none |
»»» offline | object | true | none | none |
»»»» title | string¦null | true | none | none |
»»»» description | string¦null | true | none | none |
»»»» thumbnail | ImageModel¦null | true | none | none |
»»»»» width | integer | true | none | none |
»»»»» height | integer | true | none | none |
»»»»» path | string(uri) | true | none | none |
»»»»» childImages | [ChildImageModel]¦null | true | none | none |
»» subscriptionPlans | [SubscriptionPlanModel] | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» description | string | true | none | none |
»»» price | string¦null | true | none | none |
»»» priceYearly | string¦null | true | none | none |
»»» currency | string | true | none | none |
»»» logo | string¦null | true | none | none |
»»» interval | string | true | none | none |
»»» featured | boolean | true | none | none |
»»» allowGrandfatheredAccess | boolean¦null | false | none | none |
»»» discordServers | [DiscordServerModel] | true | none | none |
»»»» id | string | true | none | none |
»»»» guildName | string | true | none | none |
»»»» guildIcon | string | true | none | none |
»»»» inviteLink | string(uri)¦null | true | none | none |
»»»» inviteMode | string | true | none | none |
»»» discordRoles | [DiscordRoleModel] | true | none | none |
»»»» server | string | true | none | none |
»»»» roleName | string | true | none | none |
»» discoverable | boolean | true | none | none |
»» subscriberCountDisplay | string | true | none | none |
»» incomeDisplay | boolean | true | none | none |
»» defaultChannel | string | false | none | none |
»» channels | [string] | false | none | none |
»» card | ImageModel¦null | false | none | none |
»»» width | integer | true | none | none |
»»» height | integer | true | none | none |
»»» path | string(uri) | true | none | none |
»»» childImages | [ChildImageModel]¦null | true | none | none |
» wasReleasedSilently | boolean | true | none | none |
» thumbnail | ImageModel¦null | false | none | none |
»» width | integer | true | none | none |
»» height | integer | true | none | none |
»» path | string(uri) | true | none | none |
»» childImages | [ChildImageModel]¦null | true | none | none |
» isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
» videoAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» audioAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» pictureAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
» galleryAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
Enumerated Values
Property | Value |
---|---|
type | blogPost |
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getVideoContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/video?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/video?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/video?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/video',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/video', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/video', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/video?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/video", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/video
Get Video Content
Retrieve more information on a video attachment from a blog post in order to consume the video content.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The ID of the video attachment object, from the BlogPostModelV3 . |
Example responses
200 Response
{
"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": {
"width": 1920,
"height": 1080,
"path": "https://pbs.floatplane.com/content_thumbnails/TViGzkuIic/324783659287024_1633769709593.jpeg",
"childImages": []
},
"isAccessible": true,
"blogPosts": [
"Dw2ms0AgL8"
],
"timelineSprite": {
"width": 4960,
"height": 2610,
"path": "https://pbs.floatplane.com/timeline_sprite/TViGzkuIic/142493855372807_1633769996492.jpeg",
"childImages": []
},
"userInteraction": [],
"levels": [
{
"name": "360",
"width": 640,
"height": 360,
"label": "360p",
"order": 0
},
{
"name": "480",
"width": 854,
"height": 480,
"label": "480p",
"order": 1
},
{
"name": "720",
"width": 1280,
"height": 720,
"label": "720p",
"order": 2
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK - Video details returned | ContentVideoV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getAudioContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/audio \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/audio HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/audio',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/audio',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/audio', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/audio', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/audio");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/audio", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/audio
Get Audio Content
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getPictureContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/picture?id=string \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/picture?id=string HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/picture?id=string',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/picture',
params: {
'id' => 'string'
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/picture', params={
'id': 'string'
}, headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/picture', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/picture?id=string");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/picture", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/picture
Get Picture Content
Retrieve more information on a picture attachment from a blog post in order to consume the picture content.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
id | query | string | true | The ID of the picture attachment object, from the BlogPostModelV3 . |
Example responses
200 Response
{
"id": "ZWKdCy8TMN",
"guid": "ZWKdCy8TMN",
"title": "\"I hate costumes\" Jonathan",
"type": "picture",
"description": "",
"likes": 1,
"dislikes": 0,
"score": 1,
"isProcessing": false,
"creator": "59f94c0bdd241b70349eb72b",
"primaryBlogPost": "PGZBzzRWpD",
"userInteraction": [],
"thumbnail": {
"width": 1200,
"height": 675,
"path": "https://pbs.floatplane.com/picture_thumbnails/ZWKdCy8TMN/239212458322156_1634845035660.jpeg",
"childImages": []
},
"isAccessible": true,
"imageFiles": [
{
"path": "https://pbs.floatplane.com/content_images/59f94c0bdd241b70349eb72b/465975275316873_1634845031494_1164x675.jpeg?AWSAccessKeyId=...&Expires=...&Signature=...",
"width": 1164,
"height": 675,
"size": 165390
}
]
}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | ContentPictureV3Response |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/info \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/info HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/info',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/info',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/info', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/info', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/info");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/info", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/info
Get Content
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
likeContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/like \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/like HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"contentType": "blogPost",
"id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/like',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/like',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/like', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/like', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/like");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/like", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/like
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.
Body parameter
{
"contentType": "blogPost",
"id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ContentLikeV3Request | true | none |
Example responses
200 Response
[
"like"
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UserInteractionModel |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
dislikeContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/dislike \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/dislike HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"contentType": "blogPost",
"id": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/dislike',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/dislike',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/dislike', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/dislike', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/dislike");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/dislike", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/dislike
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.
Body parameter
{
"contentType": "blogPost",
"id": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | ContentLikeV3Request | true | none |
Example responses
200 Response
[
"dislike"
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | UserInteractionModel |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getPictureUrl
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/picture/url \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/picture/url HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/picture/url',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/picture/url',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/picture/url', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/picture/url', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/picture/url");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/picture/url", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/picture/url
Get Picture Url
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateProgress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/progress \
-H 'Content-Type: application/json' \
-H 'Accept: text/plain'
POST https://www.floatplane.com/api/v3/content/progress HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: text/plain
const inputBody = '{
"id": "string",
"contentType": "video",
"progress": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'text/plain'
};
fetch('https://www.floatplane.com/api/v3/content/progress',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'text/plain'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/progress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'text/plain'
}
r = requests.post('https://www.floatplane.com/api/v3/content/progress', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'text/plain',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/progress', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/progress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"text/plain"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/progress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/progress
Update Progress
Update the watch progress on a piece of media (usually video or audio), stored as the number of seconds in the media.
Body parameter
{
"id": "string",
"contentType": "video",
"progress": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | UpdateProgressRequest | true | none |
Example responses
200 Response
"OK"
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | string |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getProgress
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/get/progress \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/get/progress HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"ids": [
"string"
],
"contentType": "blogPost"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/get/progress',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/get/progress',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/get/progress', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/get/progress', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/get/progress");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/get/progress", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/get/progress
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.
Body parameter
{
"ids": [
"string"
],
"contentType": "blogPost"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | GetProgressRequest | true | none |
Example responses
200 Response
[
{
"id": "3qZrz5ugsa",
"progress": 0
},
{
"id": "mhhrOfndeF",
"progress": 100
}
]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | GetProgressResponse |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
ContentUploadV3
Content uploading.
createMultipartUploadV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/upload/s3/multipart
Create Multipart Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUploadedPartsV3
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/upload/s3/multipart \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/upload/s3/multipart HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/upload/s3/multipart',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/upload/s3/multipart', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/upload/s3/multipart', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/upload/s3/multipart", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/upload/s3/multipart
Get Uploaded Parts
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
signPartUploadContent
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/sign", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/content/upload/s3/multipart/sign
Sign Part Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
abortMultipartUploadV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/abort", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/upload/s3/multipart/abort
Abort Multipart Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
completeMultipartUploadContent
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/s3/multipart/complete", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/upload/s3/multipart/complete
Complete Multipart Upload
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
uploadThumbnailV3
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/upload/thumbnail \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/upload/thumbnail HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/upload/thumbnail',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/upload/thumbnail',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/upload/thumbnail', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/upload/thumbnail', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/upload/thumbnail");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/upload/thumbnail", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/upload/thumbnail
Upload Thumbnail
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
thumbnailUpdateSubscribe
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/thumbnail/subscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/thumbnail/subscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/thumbnail/subscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/thumbnail/subscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/thumbnail/subscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/thumbnail/subscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/thumbnail/subscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/thumbnail/subscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/thumbnail/subscribe
Thumbnail Update Subscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
thumbnailUpdateUnsubscribeV3
Thumnail management.
thumbnailUpdateUnsubscribe
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/content/thumbnail/unsubscribe", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/content/thumbnail/unsubscribe
Thumbnail Update Unsubscribe
TODO - Not used in Floatplane code.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
PollV3
Poll voting and management.
joinLiveRoom
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/joinroom \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/joinroom HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/live/joinroom',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/joinroom',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/live/joinroom', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/joinroom', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/joinroom");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/joinroom", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/live/joinroom
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.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
joinLiveRoomModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/joinLiveRoomModerator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/live/joinLiveRoomModerator
Poll Join Live Room Moderator
TODO - Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
leaveLiveRoom
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/leaveLiveRoom", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/live/leaveLiveRoom
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.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
leaveLiveRoomModerator
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/leaveLiveRoomModerator", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/live/leaveLiveRoomModerator
Poll Leave Live Room Moderator
TODO - Used in Socket.IO/WebSocket connections. See the AsyncAPI documentation for more information. This should not be used on a raw HTTP connection.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
votePoll
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/votePoll \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/votePoll HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"pollId": "string",
"optionIndex": 0
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/votePoll',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/votePoll',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/votePoll', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/votePoll', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/votePoll");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/votePoll", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/votePoll
Vote Poll
Vote on an option of a poll. Voting a second time or attempting to change a choice may result in an error.
Body parameter
{
"pollId": "string",
"optionIndex": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» pollId | body | string | true | The id of the poll to vote on. |
» optionIndex | body | integer | true | The index of the options of the poll for which to vote. This should not be outside the bounds of the poll options. |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
cmsListPolls
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/poll/cms/list \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/poll/cms/list HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creatorId": "string",
"skip": 0,
"limit": 0,
"activeOnly": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/cms/list',
{
method: 'GET',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/poll/cms/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/poll/cms/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/poll/cms/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/cms/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/poll/cms/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/poll/cms/list
CMS List Polls
TODO
Body parameter
{
"creatorId": "string",
"skip": 0,
"limit": 0,
"activeOnly": true
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» creatorId | body | string | true | none |
» skip | body | integer | true | none |
» limit | body | integer | true | none |
» activeOnly | body | boolean | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
createLivePoll
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/live/create \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/live/create HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"creatorId": "string",
"type": "string",
"title": "string",
"options": [
"string",
"string"
],
"duration": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/live/create',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/live/create',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/live/create', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/live/create', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/live/create");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/live/create", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/live/create
Create Live Poll
TODO
Body parameter
{
"creatorId": "string",
"type": "string",
"title": "string",
"options": [
"string",
"string"
],
"duration": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» creatorId | body | string | true | none |
» type | body | string | true | none |
» title | body | string | true | none |
» options | body | [string] | true | none |
» duration | body | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
closePoll
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/poll/close \
-H 'Content-Type: application/json' \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/poll/close HTTP/1.1
Host: www.floatplane.com
Content-Type: application/json
Accept: application/json
const inputBody = '{
"pollId": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/poll/close',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/poll/close',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/poll/close', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Content-Type' => 'application/json',
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/poll/close', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/poll/close");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/poll/close", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/poll/close
Close Poll
TODO
Body parameter
{
"pollId": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
body | body | object | true | none |
» pollId | body | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
RedirectV3
Channel-level redirection to Youtube or other sites for latest videos outside of Floatplane.
redirectYTLatest
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey} \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey} HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/redirect-yt-latest/{channelKey}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/redirect-yt-latest/{channelKey}
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.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
channelKey | path | string | true | none |
Example responses
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
302 | Found | Found | None |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
302 | Location | string | A YouTube URL for a video. | |
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
LoyaltyRewardsV3
Loyalty rewards information and claiming.
listCreatorLoyaltyReward
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/loyaltyreward/list \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/loyaltyreward/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/loyaltyreward/list',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/loyaltyreward/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/loyaltyreward/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/loyaltyreward/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/loyaltyreward/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/loyaltyreward/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/loyaltyreward/list
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.
Example responses
200 Response
[]
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
claimLoyaltyReward
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/user/loyaltyreward/claim \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/user/loyaltyreward/claim HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/user/loyaltyreward/claim',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/user/loyaltyreward/claim',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/user/loyaltyreward/claim', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/user/loyaltyreward/claim', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/user/loyaltyreward/claim");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/user/loyaltyreward/claim", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/user/loyaltyreward/claim
Claim Loyalty Reward
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
VpnV3
Experimental VPN configuration.
getEnabledState
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/enabled \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/enabled HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/experiments/vpn/enabled',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/enabled',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/enabled', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/enabled', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/enabled");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/enabled", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/experiments/vpn/enabled
Get Enabled State
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
updateEnabledState
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v3/experiments/vpn/enabled \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v3/experiments/vpn/enabled HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/experiments/vpn/enabled',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v3/experiments/vpn/enabled',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v3/experiments/vpn/enabled', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v3/experiments/vpn/enabled', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/enabled");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v3/experiments/vpn/enabled", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v3/experiments/vpn/enabled
Update Enabled State
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
downloadUserProfile
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/profile/download \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/profile/download HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/experiments/vpn/profile/download',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/profile/download',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/profile/download', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/profile/download', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/profile/download");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/profile/download", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/experiments/vpn/profile/download
Download User Profile
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getUserProfileLinksEphemeral
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/profile/ephemeral", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/experiments/vpn/profile/ephemeral
Get User Profile Links Ephemeral
TODO - Not used in Floatplane code yet.
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
getServerList
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v3/experiments/vpn/server/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v3/experiments/vpn/server/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v3/experiments/vpn/server/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v3/experiments/vpn/server/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v3/experiments/vpn/server/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v3/experiments/vpn/server/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v3/experiments/vpn/server/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v3/experiments/vpn/server/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v3/experiments/vpn/server/list
Get Server List
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
CreatorAdministration
addCreatorModeratorByPath
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/add", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creators/{creator}/administration/moderators/add
Add Creator Moderator By Path
TODO
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creator | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeCreatorModeratorAdmin
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creator/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creator/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/remove',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creator/administration/moderators/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creator/administration/moderators/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creator/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creator/administration/moderators/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creator/administration/moderators/remove
Remove Creator Moderator
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
removeCreatorModeratorByPath
Code samples
# You can also use wget
curl -X POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove \
-H 'Accept: application/json'
POST https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.post 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.post('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('POST','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/remove", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /api/v2/creators/{creator}/administration/moderators/remove
Remove Creator Moderator By Path
TODO
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creator | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listModerators
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creator/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creator/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creator/administration/moderators/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creator/administration/moderators/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creator/administration/moderators/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creator/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creator/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creator/administration/moderators/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creator/administration/moderators/list
List Moderators
TODO
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
listModeratorsByPath
Code samples
# You can also use wget
curl -X GET https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list \
-H 'Accept: application/json'
GET https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list HTTP/1.1
Host: www.floatplane.com
Accept: application/json
const headers = {
'Accept':'application/json'
};
fetch('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json'
}
result = RestClient.get 'https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json'
}
r = requests.get('https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list', headers = headers)
print(r.json())
<?php
require 'vendor/autoload.php';
$headers = array(
'Accept' => 'application/json',
);
$client = new \GuzzleHttp\Client();
// Define array of request body.
$request_body = array();
try {
$response = $client->request('GET','https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list', array(
'headers' => $headers,
'json' => $request_body,
)
);
print_r($response->getBody()->getContents());
}
catch (\GuzzleHttp\Exception\BadResponseException $e) {
// handle exception or api errors.
print_r($e->getMessage());
}
// ...
URL obj = new URL("https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://www.floatplane.com/api/v2/creators/{creator}/administration/moderators/list", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /api/v2/creators/{creator}/administration/moderators/list
List Moderators By Path
TODO
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
creator | path | string | true | none |
Example responses
200 Response
{}
400 Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
401 Response
{
"id": "erng-ah8e-n0d3",
"errors": [
{
"id": "erng-ah8e-n0d3",
"name": "notLoggedInError",
"message": "You must be logged-in to access this resource."
}
],
"message": "You must be logged-in to access this resource."
}
403 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "missingAchievementError",
"message": "You lack one or more of the required achievements needed to access the requested resource.",
"data": {
"requiresAllOfAchievement": [
{
"id": "6157853e479315db795f7296",
"title": "FloatVPN Alpha",
"startDate": null,
"endDate": null,
"icon": null
}
]
}
}
],
"message": "You lack one or more of the required achievements needed to access the requested resource."
}
"string"
404 Response
{
"id": "f4ec-orux-hds2",
"errors": [
{
"id": "f4ec-orux-hds2",
"name": "notFoundError"
}
]
}
default Response
{
"id": "awoz-3s5g-6amf",
"errors": [
{
"id": "9edc-zejt-n3hb",
"name": "paramValidationError",
"message": "\"captchaToken\" must be an object",
"data": {
"rule": "object.base"
}
}
],
"message": "\"captchaToken\" must be an object"
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | OK | Inline |
400 | Bad Request | Bad Request - The request has errors and the server did not process it. | ErrorModel |
401 | Unauthorized | Unauthenticated - The request was not authenticated to make the request. | ErrorModel |
403 | Forbidden | Forbidden - The request was not authenticated to make the request. | string |
404 | Not Found | Not Found - The resource was not found. | ErrorModel |
429 | Too Many Requests | Too Many Requests - The resource was requested too many times | None |
default | Default | Unexpected response code | ErrorModel |
Response Schema
Response Headers
Status | Header | Type | Format | Description |
---|---|---|---|---|
429 | Retry-After | integer | The number of seconds the client must wait until future requests will respond normally. |
Schemas
AuthLoginV2Request
{
"username": "string",
"password": "string",
"captchaToken": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
username | string | true | none | none |
password | string | true | none | none |
captchaToken | string | false | none | 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. |
AuthLoginV2Response
{
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"needs2FA": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
user | UserModel | false | none | Identifying information about the new-logged-in user upon success. May be undefined when needs2FA is true . |
needs2FA | boolean | true | none | If true, the user has not yet been authenticated, and will need to submit the 2FA token to complete authentication. |
CheckFor2faLoginRequest
{
"token": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
token | string | true | none | The two-factor authentication token that the user inputs to complete the login process. |
CdnDeliveryV2QualityLevelModel
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0,
"mimeType": "string",
"codecs": "string"
}
Represents a quality of video to download/stream.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | Used to identify this level of quality, and to refer to the qualityLevelParams object below by the property key. |
width | integer¦null | false | none | The video quality’s resolution’s width in pixels. |
height | integer¦null | false | none | The video quality resolution’s height in pixels. |
label | string | true | none | The display-friendly version of name . |
order | integer | true | none | The display order to be shown to the user. |
mimeType | string¦null | false | none | none |
codecs | string¦null | false | none | none |
CdnDeliveryV2ResourceModel
{
"uri": "string",
"data": {
"qualityLevels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0,
"mimeType": "string",
"codecs": "string"
}
],
"qualityLevelParams": {}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
uri | string | true | none | The path to attach to the cdn property above. Replace the items surrounded by curly braces ({ , } ) with the appropriate values from the data property, depending on chosen resolution. First, choose the qualityLevel , then use the given token from the qualityLevelParam for that qualityLevel ’s name . |
data | object | true | none | none |
» qualityLevels | [CdnDeliveryV2QualityLevelModel] | false | none | [Represents a quality of video to download/stream.] |
» qualityLevelParams | object¦null | false | none | For each qualityLevel above, there will be an entry in this map where the property name matches the qulityLevel[].name containing a token to apply to the URL. |
CdnDeliveryV2VodLivestreamResponse
{
"cdn": "http://example.com",
"strategy": "cdn",
"resource": {
"uri": "string",
"data": {
"qualityLevels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0,
"mimeType": "string",
"codecs": "string"
}
],
"qualityLevelParams": {}
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
cdn | string(uri) | true | none | The domain of the CDN server to use. Combine with data from the resource object to create a full URL. |
strategy | string | true | none | Which download/streaming strategy to use. If cdn , then a cdn property will be included with the response. Otherwise, if set to client , then a client property will be included with the response. The cdn or client property should be combined with the resource property to perform the download/stream. |
resource | CdnDeliveryV2ResourceModel | true | none | none |
Enumerated Values
Property | Value |
---|---|
strategy | cdn |
strategy | client |
CdnDeliveryV2DownloadResponse
{
"edges": [
{
"hostname": "string",
"queryPort": 0,
"bandwidth": 0,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"client": {},
"strategy": "cdn",
"resource": {
"uri": "string",
"data": {
"qualityLevels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0,
"mimeType": "string",
"codecs": "string"
}
],
"qualityLevelParams": {}
}
}
}
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | EdgesModel | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» strategy | string | true | none | Which download/streaming strategy to use. If cdn , then a cdn property will be included with the response. Otherwise, if set to client , then a client property will be included with the response. The cdn or client property should be combined with the resource property to perform the download/stream. |
» resource | CdnDeliveryV2ResourceModel | true | none | none |
Enumerated Values
Property | Value |
---|---|
strategy | cdn |
strategy | client |
CdnDeliveryV2Response
{
"cdn": "http://example.com",
"strategy": "cdn",
"resource": {
"uri": "string",
"data": {
"qualityLevels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0,
"mimeType": "string",
"codecs": "string"
}
],
"qualityLevelParams": {}
}
}
}
Properties
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | CdnDeliveryV2VodLivestreamResponse | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | CdnDeliveryV2DownloadResponse | false | none | none |
CdnDeliveryV3Response
{
"groups": [
{
"origins": [
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"variants": [
{
"name": "string",
"label": "string",
"url": "string",
"origins": [
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"order": 0,
"enabled": true,
"hidden": true,
"meta": {
"common": {
"size": 0,
"access": {
"deniedReason": "isMissingPermission",
"deniedMessage": "string"
}
},
"video": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true,
"fps": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"audio": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"channelCount": 0,
"samplerate": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"image": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true
},
"live": {
"lowLatencyExtension": "llhls"
}
},
"mimeType": "string"
}
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
groups | [CdnDeliveryV3Group] | true | none | groups may consist of zero or more elements. |
CdnDeliveryV3Group
{
"origins": [
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"variants": [
{
"name": "string",
"label": "string",
"url": "string",
"origins": [
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"order": 0,
"enabled": true,
"hidden": true,
"meta": {
"common": {
"size": 0,
"access": {
"deniedReason": "isMissingPermission",
"deniedMessage": "string"
}
},
"video": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true,
"fps": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"audio": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"channelCount": 0,
"samplerate": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"image": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true
},
"live": {
"lowLatencyExtension": "llhls"
}
},
"mimeType": "string"
}
]
}
A group is a logical grouping/separation of variants. At this time, there are no examples of more than one group in a response.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
origins | [CdnDeliveryV3Origin] | false | none | If origins is present, it will consist of one or more elements. |
variants | [CdnDeliveryV3Variant] | true | none | variants may consist of zero or more elements. |
CdnDeliveryV3Origin
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
An origin
, if present, is a choice of base URL or server from which to load a variant
’s content. If origin(s) exists in a group or variant, then one must be chosen in combination with the variant’s url
.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
url | string(uri) | true | none | An absolute URL (possibly with trailing slash) which acts as the base of a delivery resource URI. This is always present. |
queryUrl | string(uri) | false | none | An absolute URL (possibly with trailing slash) which the client can use to query if the origin is active/working. This field may not be present. Perform an HTTP GET on this URL and expect an HTTP 200 in order to trust this origin. |
datacenter | EdgeDataCenter | false | none | Location information for a datacenter. Not required. |
CdnDeliveryV3Variant
{
"name": "string",
"label": "string",
"url": "string",
"origins": [
{
"url": "http://example.com",
"queryUrl": "http://example.com",
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"order": 0,
"enabled": true,
"hidden": true,
"meta": {
"common": {
"size": 0,
"access": {
"deniedReason": "isMissingPermission",
"deniedMessage": "string"
}
},
"video": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true,
"fps": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"audio": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"channelCount": 0,
"samplerate": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"image": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true
},
"live": {
"lowLatencyExtension": "llhls"
}
},
"mimeType": "string"
}
A variant
represents one variant of a source of media. The most common differenitating factor between variants is video resolution, but there may be more variations based on isHdr
, codecs, FPS, etc. It’s possible that groups of variants may be divided into separate groups
elements.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | A programmatic name for this variant, for use with uniquely identifying this variant. |
label | string | true | none | A display-friendly label for this variant, for use in the UI. |
url | string | true | none | A relative or absolute URL containing resource information for this variant. Compared to the V2 API, this URL does not contain template information and will not need to be modified before use, other than optionally combining with an origin. This value may contain a trailing slash. If this URL is absolute, it may be used as-is in order to load the media content. If this URL is relative, then it should be combined with an origin base URL. In order of preference: 1) use an origin from this variant object, 2) use an origin from this variant’s group object, 3) use https://floatplane.com .Do not use an origin from a different group, or from a different variant, as this may result in errors. |
origins | [CdnDeliveryV3Origin] | false | none | If origins is present, it will consist of one or more elements. |
order | integer(int64) | false | none | An optional field prescribing this variant’s order in relation to other variants. No guarantees other than being greater than or less than the order of other variants within this group (e.g., order may not be consecutive). |
enabled | boolean | false | none | An optional field indicating if this variant is enabled. If this is not enabled, it may be visible to the user, but not selectable. If this field is not present, assume a default value of false , for safety. |
hidden | boolean | false | none | An optional field indicating if this variant should be hidden. If hidden, it should not be shown to the user nor considered in any code logic. If this field is not present, assume a default value of false . Only truthy values should hide a variant. |
meta | CdnDeliveryV3Meta | false | none | Metadata information for this variant. Note that most/all child and grandchild properties are not required on purpose. |
mimeType | string | false | none | An optional string describing the MIME Type of this media source. |
CdnDeliveryV3Meta
{
"common": {
"size": 0,
"access": {
"deniedReason": "isMissingPermission",
"deniedMessage": "string"
}
},
"video": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true,
"fps": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"audio": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"channelCount": 0,
"samplerate": 0,
"bitrate": {
"maximum": 0,
"average": 0
}
},
"image": {
"codec": "string",
"codecSimple": "string",
"mimeType": "string",
"width": 0,
"height": 0,
"isHdr": true
},
"live": {
"lowLatencyExtension": "llhls"
}
}
Metadata information for this variant. Note that most/all child and grandchild properties are not required on purpose.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
common | object | false | none | none |
» size | number | false | none | Size of the corresponding media file, measured in bytes. |
» access | object | false | none | none |
»» deniedReason | string | false | none | - isMissingPermission : Indicates that the requester is lacking a required plan or other form of permission entitling on to access the corresponding resource.- isProcessing : Indicates that the corresponding resource is processing. Clients may choose to periodically refetch an asset’s info when it has reported this state.- isBroken : Indicates that the corresponding resource is defective in some manner which has rendered it currently inaccessible. It is possible that the asset will be repaired at some later point in time. Clients may choose to periodically refetch an asset’s info when it has reported this state. |
»» deniedMessage | string | false | none | Message describing in human-readable terms why access has been witheld for a resource. |
video | any | false | none | none |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3MediaIdentityCharacteristics | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3ImagePresentationCharacteristics | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
»» fps | number | false | none | Maximum count of frames presented per second for the video. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3MediaBitrateInfo | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
audio | any | false | none | none |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3MediaIdentityCharacteristics | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
»» channelCount | integer | false | none | Count of channels carried by the audio stream. |
»» samplerate | integer | false | none | Count of samples recorded per second. |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3MediaBitrateInfo | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
image | any | false | none | none |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3MediaIdentityCharacteristics | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | CdnDeliveryV3ImagePresentationCharacteristics | false | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
live | object | false | none | none |
» lowLatencyExtension | string | false | none | - llhls : 🍎-backed low-latency HLS extension.- clhls : Community-backed low-latency HLS extension.- ivshls : IVS custom low-latency HLS extension.- lldash : DASH-IF-backed low-Latency DASH extension. |
Enumerated Values
Property | Value |
---|---|
deniedReason | isMissingPermission |
deniedReason | isProcessing |
deniedReason | isBroken |
lowLatencyExtension | llhls |
lowLatencyExtension | clhls |
lowLatencyExtension | ivshls |
lowLatencyExtension | lldash |
CdnDeliveryV3MediaIdentityCharacteristics
{
"codec": "string",
"codecSimple": "string",
"mimeType": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
codec | string | false | none | RFC 6381 codec string indicating stream data chunk format. |
codecSimple | string | false | none | RFC 6381 codec string indicating stream format on the most basic level, without the addition of profile/level/etc. information. |
mimeType | string | false | none | MIME-type for individual stream data chunks (as opposed to a containing playlist). |
CdnDeliveryV3ImagePresentationCharacteristics
{
"width": 0,
"height": 0,
"isHdr": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
width | integer | false | none | Count of horizontal pixels presented. |
height | integer | false | none | Count of vertical pixels presented. |
isHdr | boolean | false | none | Whether or not this data stream carries HDR content. |
CdnDeliveryV3MediaBitrateInfo
{
"bitrate": {
"maximum": 0,
"average": 0
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
bitrate | object | false | none | none |
» maximum | number | false | none | Maximum bitrate observed for the data stream. |
» average | number | false | none | Average bitrate observed for the data stream. |
PaymentInvoiceListV2Response
{
"invoices": [
{
"id": 0,
"amountDue": 0,
"amountTax": 0,
"attemptCount": 0,
"currency": "string",
"date": "2019-08-24T14:15:22Z",
"dateDue": "2019-08-24T14:15:22Z",
"periodStart": "2019-08-24T14:15:22Z",
"periodEnd": "2019-08-24T14:15:22Z",
"nextPaymentAttempt": "2019-08-24T14:15:22Z",
"paid": true,
"forgiven": true,
"refunded": true,
"subscriptions": [
{
"id": 0,
"subscription": 0,
"periodStart": "2019-08-24T14:15:22Z",
"periodEnd": "2019-08-24T14:15:22Z",
"value": 0,
"amountSubtotal": 0,
"amountTotal": 0,
"amountTax": 0,
"plan": {
"id": "string",
"title": "string",
"creator": {
"id": "string",
"title": "string",
"urlname": "string",
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
}
]
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
invoices | [object] | true | none | none |
» id | integer | true | none | none |
» amountDue | number | true | none | none |
» amountTax | number | true | none | none |
» attemptCount | integer | true | none | none |
» currency | string | true | none | none |
» date | string(date-time) | true | none | none |
» dateDue | string(date-time)¦null | true | none | none |
» periodStart | string(date-time) | true | none | none |
» periodEnd | string(date-time) | true | none | none |
» nextPaymentAttempt | string(date-time)¦null | true | none | none |
» paid | boolean | true | none | none |
» forgiven | boolean | true | none | none |
» refunded | boolean | true | none | none |
» subscriptions | [object]¦null | true | none | The subscriptions this invoice is in reference to. |
»» id | integer | true | none | none |
»» subscription | number | true | none | none |
»» periodStart | string(date-time)¦null | true | none | none |
»» periodEnd | string(date-time)¦null | true | none | none |
»» value | number | true | none | none |
»» amountSubtotal | number | true | none | none |
»» amountTotal | number | true | none | none |
»» amountTax | number | true | none | none |
»» plan | object | true | none | none |
»»» id | string | true | none | none |
»»» title | string | true | none | none |
»»» creator | object | true | none | none |
»»»» id | string | true | none | none |
»»»» title | string | true | none | none |
»»»» urlname | string | true | none | none |
»»»» icon | ImageModel | true | none | none |
PlanInfoV2Response
{
"totalSubscriberCount": 0,
"totalIncome": 0,
"plans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"enabled": true,
"paymentID": 0,
"trialPeriod": 0,
"creator": "string",
"userIsSubscribed": true,
"userIsGrandfathered": true,
"enabledGlobal": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
totalSubscriberCount | integer¦null | true | none | The total number of subscribers for this creator. |
totalIncome | integer¦null | true | none | The total amount of monthly income for this creator. This field tends to always be $0 for regular users. |
plans | [allOf] | true | none | none |
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | SubscriptionPlanModel | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
»» createdAt | string(date-time) | true | none | none |
»» updatedAt | string(date-time)¦null | true | none | none |
»» enabled | boolean | true | none | none |
»» paymentID | integer¦null | true | none | none |
»» trialPeriod | number | true | none | none |
»» creator | string | true | none | none |
»» userIsSubscribed | boolean | true | none | none |
»» userIsGrandfathered | boolean | false | none | none |
»» enabledGlobal | boolean | true | none | none |
UserInfoV2Response
{
"users": [
{
"id": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
users | [object] | true | none | none |
» id | string | true | none | none |
» user | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | UserModel | false | none | Represents some basic information of a user (id, username, and profile image). |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | UserSelfModel | false | none | none |
UserNamedV2Response
{
"users": [
{
"id": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
users | [object] | true | none | none |
» id | string | true | none | none |
» user | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | UserModel | false | none | Represents some basic information of a user (id, username, and profile image). |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
»» anonymous | UserSelfModel | false | none | none |
UserSecurityV2Response
{
"twofactorEnabled": true,
"twofactorBackupCodeEnabled": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
twofactorEnabled | boolean | true | none | none |
twofactorBackupCodeEnabled | boolean | true | none | none |
CommentV3PostRequest
{
"blogPost": "string",
"text": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
blogPost | string | true | none | The GUID of the blogPost the comment should be posted to. |
text | string | true | none | The text of the comment being posted. |
CommentV3PostResponse
{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"text": "string",
"replying": "string",
"postDate": "string",
"editDate": "string",
"editCount": 0,
"isEdited": true,
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
blogPost | string | true | none | none |
user | UserModel | true | none | Represents some basic information of a user (id, username, and profile image). |
text | string | true | none | none |
replying | string | true | none | none |
postDate | string | true | none | none |
editDate | string | true | none | none |
editCount | integer | true | none | none |
isEdited | boolean | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
interactionCounts | object | true | none | none |
» like | integer | true | none | none |
» dislike | integer | true | none | none |
CommentLikeV3PostRequest
{
"comment": "string",
"blogPost": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
comment | string | true | none | The GUID of the comment being liked. |
blogPost | string | true | none | The GUID of the post the comment is on. |
ContentCreatorListV3Response
{
"blogPosts": [
{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"channel": {
"id": "string",
"creator": "string",
"title": "string",
"urlname": "string",
"about": "string",
"order": 0,
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
},
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": {
"id": "string",
"username": "string"
},
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"id": "string",
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string",
"channels": [
"string"
],
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"videoAttachments": [
"string"
],
"audioAttachments": [
"string"
],
"pictureAttachments": [
"string"
],
"galleryAttachments": [
"string"
]
}
],
"lastElements": [
{
"creatorId": "string",
"blogPostId": "string",
"moreFetchable": true
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
blogPosts | [BlogPostModelV3] | true | none | none |
lastElements | [ContentCreatorListLastItems] | true | none | Information about paging: what the last ID retrieve is and if more posts can be retrieved afterward for subsequent requests. |
ContentCreatorListLastItems
{
"creatorId": "string",
"blogPostId": "string",
"moreFetchable": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
creatorId | string | true | none | none |
blogPostId | string¦null | true | none | This may be returned as null if no blog posts for this creator appeared yet on this page of blog posts. However, Floatplane will complain if this is sent with a null value. |
moreFetchable | boolean | true | none | none |
ContentPostV3Response
{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"channel": {
"id": "string",
"creator": "string",
"title": "string",
"urlname": "string",
"about": "string",
"order": 0,
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
},
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string"
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"userInteraction": [
"like"
],
"videoAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
],
"audioAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"duration": 0,
"waveform": {
"dataSetLength": 0,
"highestValue": 0,
"lowestValue": 0,
"data": [
0
]
},
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"isAccessible": true
}
],
"pictureAttachments": [
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
],
"galleryAttachments": [
null
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
text | string | true | none | Text description of the post. May have HTML paragraph (<p> ) tags surrounding it, along with other HTML. |
type | string | true | none | none |
channel | ChannelModel | true | none | none |
tags | [string] | true | none | none |
attachmentOrder | [string] | true | none | none |
metadata | PostMetadataModel | true | none | none |
releaseDate | string(date-time) | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
comments | integer | true | none | none |
creator | CreatorModelV2 | true | none | none |
wasReleasedSilently | boolean | true | none | none |
thumbnail | ImageModel¦null | false | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
userInteraction | UserInteractionModel | true | none | none |
videoAttachments | [VideoAttachmentModel] | false | none | May be undefined when the post is locked. |
audioAttachments | [AudioAttachmentModel] | false | none | May be undefined when the post is locked. |
pictureAttachments | [PictureAttachmentModel] | false | none | May be undefined when the post is locked. |
galleryAttachments | [any] | false | none | May be undefined when the post is locked. |
Enumerated Values
Property | Value |
---|---|
type | blogPost |
ContentVideoV3Response
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"blogPosts": [
"string"
],
"timelineSprite": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"progress": 0,
"userInteraction": [
"like"
],
"levels": [
{
"name": "string",
"width": 0,
"height": 0,
"label": "string",
"order": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
type | string | true | none | none |
description | string | true | none | none |
releaseDate | string(date-time)¦null | true | none | none |
duration | number | true | none | Unit: seconds. |
creator | string | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
isProcessing | boolean | true | none | none |
primaryBlogPost | string | true | none | none |
thumbnail | ImageModel | true | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
blogPosts | [string] | true | none | none |
timelineSprite | ImageModel | true | none | none |
progress | integer | false | none | The watch progress of the video, in seconds. If no progress has yet been posted to the video, then this field may not appear. |
userInteraction | UserInteractionModel | true | none | none |
levels | [object] | true | none | none |
» name | string | true | none | none |
» width | integer | true | none | none |
» height | integer | true | none | none |
» label | string | true | none | none |
» order | integer | true | none | none |
ContentPictureV3Response
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"userInteraction": [
"like"
],
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"imageFiles": [
{
"path": "http://example.com",
"width": 0,
"height": 0,
"size": 0
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
type | string | true | none | none |
description | string | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
isProcessing | boolean | true | none | none |
creator | string | true | none | none |
primaryBlogPost | string | true | none | none |
userInteraction | UserInteractionModel | true | none | none |
thumbnail | ImageModel | true | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
imageFiles | [ImageFileModel] | true | none | none |
UserActivityV3Response
{
"activity": [
{
"time": "2019-08-24T14:15:22Z",
"comment": "string",
"postTitle": "string",
"postId": "string",
"creatorTitle": "string",
"creatorUrl": "string"
}
],
"visibility": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
activity | [object] | true | none | none |
» time | string(date-time) | true | none | none |
» comment | string | true | none | none |
» postTitle | string | true | none | none |
» postId | string | true | none | none |
» creatorTitle | string | true | none | none |
» creatorUrl | string | true | none | none |
visibility | string | true | none | none |
UserLinksV3Response
{
"property1": {
"url": "http://example.com",
"type": {
"name": "string",
"displayName": "string",
"hostName": "string"
}
},
"property2": {
"url": "http://example.com",
"type": {
"name": "string",
"displayName": "string",
"hostName": "string"
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
additionalProperties | object | false | none | none |
» url | string(uri) | true | none | The URL the user has configured for this link. |
» type | object | true | none | none |
»» name | string | true | none | The code name of this link type. |
»» displayName | string | true | none | The display-friendly name of this link type. |
»» hostName | string | true | none | The hostname that should be a part of the URL. |
UserNotificationUpdateV3PostRequest
{
"creator": "string",
"property": "contentEmail",
"newValue": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
creator | string | true | none | none |
property | string | true | none | Use contentEmail for email notifications, and contentFirebase for push notifications. |
newValue | boolean | true | none | none |
Enumerated Values
Property | Value |
---|---|
property | contentEmail |
property | contentFirebase |
UserSelfV3Response
{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"email": "string",
"displayName": "string",
"creators": [
null
],
"scheduledDeletionDate": "2019-08-24T14:15:22Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
username | string | true | none | none |
profileImage | ImageModel | true | none | none |
string | true | none | none | |
displayName | string | true | none | none |
creators | [any] | true | none | none |
scheduledDeletionDate | string(date-time)¦null | true | none | none |
ContentLikeV3Request
{
"contentType": "blogPost",
"id": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
contentType | string | true | none | none |
id | string | true | none | none |
Enumerated Values
Property | Value |
---|---|
contentType | blogPost |
GetCaptchaInfoResponse
{
"v2": {
"variants": {
"android": {
"siteKey": "string"
},
"checkbox": {
"siteKey": "string"
},
"invisible": {
"siteKey": "string"
}
}
},
"v3": {
"variants": {
"invisible": {
"siteKey": "string"
}
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
v2 | object | true | none | none |
» variants | object | true | none | none |
»» android | object | true | none | none |
»»» siteKey | string | true | none | none |
»» checkbox | object | true | none | none |
»»» siteKey | string | true | none | none |
»» invisible | object | true | none | none |
»»» siteKey | string | true | none | none |
v3 | object | true | none | none |
» variants | object | true | none | none |
»» invisible | object | true | none | none |
»»» siteKey | string | true | none | none |
ErrorModel
{
"id": "string",
"errors": [
{
"id": "string",
"name": "string",
"message": "string",
"data": {}
}
],
"message": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
errors | [object] | true | none | none |
» id | string | true | none | none |
» name | string | true | none | none |
» message | string¦null | false | none | May be undefined. |
» data | object¦null | false | none | May be undefined. |
message | string | false | none | May be undefined. |
PaymentAddressModel
{
"id": 0,
"customerName": "string",
"postalCode": "string",
"line1": "string",
"city": "string",
"region": "string",
"country": "string",
"default": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
customerName | string | true | none | none |
postalCode | string | true | none | none |
line1 | string | true | none | none |
city | string | true | none | none |
region | string | true | none | none |
country | string | true | none | none |
default | boolean | true | none | none |
PaymentMethodModel
{
"id": 0,
"payment_processor": 0,
"default": true,
"card": {
"brand": "string",
"last4": "string",
"exp_month": 0,
"exp_year": 0,
"name": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | integer | true | none | none |
payment_processor | integer | true | none | none |
default | boolean | true | none | none |
card | object | true | none | none |
» brand | string | true | none | none |
» last4 | string | true | none | none |
» exp_month | integer | true | none | none |
» exp_year | integer | true | none | none |
» name | string | true | none | none |
CreatorModelV2
{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
owner | string | true | none | none |
title | string | true | none | none |
urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
description | string | true | none | none |
about | string | true | none | none |
category | string | true | none | none |
cover | ImageModel¦null | true | none | none |
icon | ImageModel | true | none | none |
liveStream | LiveStreamModel¦null | true | none | none |
subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
discoverable | boolean | true | none | none |
subscriberCountDisplay | string | true | none | none |
incomeDisplay | boolean | true | none | none |
defaultChannel | string | false | none | none |
CreatorModelV2Extended
{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string",
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
},
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
]
}
Properties
allOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | CreatorModelV2 | false | none | none |
and
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
anonymous | object | false | none | none |
» socialLinks | SocialLinksModel | true | none | none |
» discordServers | [DiscordServerModel] | true | none | none |
CreatorModelV3
{
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"id": "string",
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string",
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
},
"channels": [
{
"id": "string",
"creator": "string",
"title": "string",
"urlname": "string",
"about": "string",
"order": 0,
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
}
],
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
owner | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | object | false | none | none |
»» id | string | true | none | none |
»» username | string | true | none | none |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
title | string | true | none | none |
urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
description | string | true | none | none |
about | string | true | none | none |
category | object | true | none | none |
» id | string | true | none | none |
» title | string | true | none | none |
cover | ImageModel¦null | true | none | none |
icon | ImageModel | true | none | none |
liveStream | LiveStreamModel¦null | true | none | none |
subscriptionPlans | [SubscriptionPlanModel]¦null | true | none | none |
discoverable | boolean | true | none | none |
subscriberCountDisplay | string | true | none | none |
incomeDisplay | boolean | true | none | none |
defaultChannel | string | true | none | none |
socialLinks | SocialLinksModel | true | none | none |
channels | [ChannelModel] | true | none | none |
discordServers | [DiscordServerModel] | false | none | Present in /creator/named queries |
card | ImageModel | false | none | none |
ChannelModel
{
"id": "string",
"creator": "string",
"title": "string",
"urlname": "string",
"about": "string",
"order": 0,
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
creator | string | true | none | none |
title | string | true | none | none |
urlname | string | true | none | Shown in the browser URL. |
about | string | true | none | none |
order | integer | false | none | none |
cover | ImageModel¦null | true | none | none |
card | ImageModel¦null | true | none | none |
icon | ImageModel | true | none | none |
socialLinks | SocialLinksModel | false | none | none |
BlogPostModelV3
{
"id": "string",
"guid": "string",
"title": "string",
"text": "string",
"type": "blogPost",
"channel": {
"id": "string",
"creator": "string",
"title": "string",
"urlname": "string",
"about": "string",
"order": 0,
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"socialLinks": {
"property1": "http://example.com",
"property2": "http://example.com"
}
},
"tags": [
"string"
],
"attachmentOrder": [
"string"
],
"metadata": {
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
},
"releaseDate": "2019-08-24T14:15:22Z",
"likes": 0,
"dislikes": 0,
"score": 0,
"comments": 0,
"creator": {
"id": "string",
"owner": {
"id": "string",
"username": "string"
},
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": {
"id": "string",
"title": "string"
},
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string",
"channels": [
"string"
],
"card": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"wasReleasedSilently": true,
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true,
"videoAttachments": [
"string"
],
"audioAttachments": [
"string"
],
"pictureAttachments": [
"string"
],
"galleryAttachments": [
"string"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
text | string | true | none | Text description of the post. May have HTML paragraph (<p> ) tags surrounding it, along with other HTML… |
type | string | true | none | none |
channel | any | true | none | none |
oneOf
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | ChannelModel | false | none | none |
xor
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» anonymous | string | false | none | Channel identifier |
continued
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
tags | [string] | true | none | none |
attachmentOrder | [string] | true | none | none |
metadata | PostMetadataModel | true | none | none |
releaseDate | string(date-time) | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
comments | integer | true | none | none |
creator | object | true | none | none |
» id | string | true | none | none |
» owner | object | true | none | none |
»» id | string | true | none | none |
»» username | string | true | none | none |
» title | string | true | none | none |
» urlname | string | true | none | Shown in the browser URL, and used in /creator/named queries. |
» description | string | true | none | none |
» about | string | true | none | none |
» category | object | true | none | none |
»» id | string | true | none | none |
»» title | string | true | none | none |
» cover | ImageModel¦null | true | none | none |
» icon | ImageModel | true | none | none |
» liveStream | LiveStreamModel¦null | true | none | none |
» subscriptionPlans | [SubscriptionPlanModel] | true | none | none |
» discoverable | boolean | true | none | none |
» subscriberCountDisplay | string | true | none | none |
» incomeDisplay | boolean | true | none | none |
» defaultChannel | string | false | none | none |
» channels | [string] | false | none | none |
» card | ImageModel¦null | false | none | none |
wasReleasedSilently | boolean | true | none | none |
thumbnail | ImageModel¦null | false | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
videoAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
audioAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
pictureAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
galleryAttachments | [string] | false | none | May be undefined, usually when isAccessible is false . |
Enumerated Values
Property | Value |
---|---|
type | blogPost |
SubscriptionPlanModel
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
title | string | true | none | none |
description | string | true | none | none |
price | string¦null | true | none | none |
priceYearly | string¦null | true | none | none |
currency | string | true | none | none |
logo | string¦null | true | none | none |
interval | string | true | none | none |
featured | boolean | true | none | none |
allowGrandfatheredAccess | boolean¦null | false | none | none |
discordServers | [DiscordServerModel] | true | none | none |
discordRoles | [DiscordRoleModel] | true | none | none |
PostMetadataModel
{
"hasVideo": true,
"videoCount": 0,
"videoDuration": 0,
"hasAudio": true,
"audioCount": 0,
"audioDuration": 0,
"hasPicture": true,
"pictureCount": 0,
"hasGallery": true,
"galleryCount": 0,
"isFeatured": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hasVideo | boolean | true | none | none |
videoCount | integer | false | none | none |
videoDuration | number | true | none | none |
hasAudio | boolean | true | none | none |
audioCount | integer | false | none | none |
audioDuration | number | true | none | none |
hasPicture | boolean | true | none | none |
pictureCount | integer | false | none | none |
hasGallery | boolean | false | none | none |
galleryCount | integer | false | none | none |
isFeatured | boolean | true | none | none |
VideoAttachmentModel
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"releaseDate": "2019-08-24T14:15:22Z",
"duration": 0,
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
type | string | true | none | none |
description | string | true | none | none |
releaseDate | string(date-time)¦null | true | none | none |
duration | number | true | none | none |
creator | string | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
isProcessing | boolean | true | none | none |
primaryBlogPost | string | true | none | none |
thumbnail | ImageModel | true | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
PictureAttachmentModel
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"creator": "string",
"primaryBlogPost": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"isAccessible": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
type | string | true | none | none |
description | string | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
isProcessing | boolean | true | none | none |
creator | string | true | none | none |
primaryBlogPost | string | true | none | none |
thumbnail | ImageModel | true | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
AudioAttachmentModel
{
"id": "string",
"guid": "string",
"title": "string",
"type": "string",
"description": "string",
"duration": 0,
"waveform": {
"dataSetLength": 0,
"highestValue": 0,
"lowestValue": 0,
"data": [
0
]
},
"creator": "string",
"likes": 0,
"dislikes": 0,
"score": 0,
"isProcessing": true,
"primaryBlogPost": "string",
"isAccessible": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guid | string | true | none | none |
title | string | true | none | none |
type | string | true | none | none |
description | string | true | none | none |
duration | integer | true | none | none |
waveform | object | true | none | none |
» dataSetLength | integer | true | none | none |
» highestValue | integer | true | none | none |
» lowestValue | integer | true | none | none |
» data | [integer] | true | none | none |
creator | string | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
isProcessing | boolean | true | none | none |
primaryBlogPost | string | true | none | none |
isAccessible | boolean | true | none | If false, the post should be marked as locked and not viewable by the user. |
ImageModel
{
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
width | integer | true | none | none |
height | integer | true | none | none |
path | string(uri) | true | none | none |
childImages | [ChildImageModel]¦null | true | none | none |
ChildImageModel
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
width | integer | true | none | none |
height | integer | true | none | none |
path | string(uri) | true | none | none |
ImageFileModel
{
"path": "http://example.com",
"width": 0,
"height": 0,
"size": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
path | string(uri) | true | none | none |
width | integer | true | none | none |
height | integer | true | none | none |
size | integer | true | none | none |
LiveStreamModel
{
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
title | string | true | none | none |
description | string | true | none | none |
thumbnail | ImageModel¦null | true | none | none |
owner | string | true | none | none |
channel | string | false | none | The creator channel this livestream belongs to. |
streamPath | string | true | none | none |
offline | object | true | none | none |
» title | string¦null | true | none | none |
» description | string¦null | true | none | none |
» thumbnail | ImageModel¦null | true | none | none |
SocialLinksModel
{
"property1": "http://example.com",
"property2": "http://example.com"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
additionalProperties | string(uri) | false | none | none |
DiscordServerModel
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
guildName | string | true | none | none |
guildIcon | string | true | none | none |
inviteLink | string(uri)¦null | true | none | none |
inviteMode | string | true | none | none |
DiscordRoleModel
{
"server": "string",
"roleName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
server | string | true | none | none |
roleName | string | true | none | none |
UserModel
{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
Represents some basic information of a user (id, username, and profile image).
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
username | string | true | none | none |
profileImage | ImageModel | true | none | none |
UserSelfModel
{
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"email": "string",
"displayName": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
username | string | true | none | none |
profileImage | ImageModel | true | none | none |
string | true | none | none | |
displayName | string | true | none | none |
ConnectedAccountModel
{
"key": "string",
"name": "string",
"enabled": true,
"iconWhite": "string",
"connectedAccount": {
"id": "string",
"remoteUserId": "string",
"remoteUserName": "string",
"data": {
"canJoinGuilds": true
}
},
"connected": true,
"isAccountProvider": true
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
key | string | true | none | Unique identifier for the account type. |
name | string | true | none | Display-friendly label for the key . |
enabled | boolean | true | none | Determines if the system allows this account to be connected to. |
iconWhite | string | true | none | none |
connectedAccount | object¦null | true | none | none |
» id | string | true | none | none |
» remoteUserId | string | true | none | none |
» remoteUserName | string | true | none | none |
» data | object¦null | true | none | none |
»» canJoinGuilds | boolean | true | none | none |
connected | boolean | true | none | If true, the user is connected and the connectedAccount will have data about the account. |
isAccountProvider | boolean | true | none | none |
CommentModel
{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"text": "string",
"replying": "string",
"postDate": "2019-08-24T14:15:22Z",
"editDate": "2019-08-24T14:15:22Z",
"pinDate": "2019-08-24T14:15:22Z",
"editCount": 0,
"isEdited": true,
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"totalReplies": 0,
"replies": [
{
"id": "string",
"blogPost": "string",
"user": {
"id": "string",
"username": "string",
"profileImage": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
},
"text": "string",
"replying": "string",
"postDate": "2019-08-24T14:15:22Z",
"editDate": "2019-08-24T14:15:22Z",
"pinDate": "2019-08-24T14:15:22Z",
"editCount": 0,
"isEdited": true,
"likes": 0,
"dislikes": 0,
"score": 0,
"interactionCounts": {
"like": 0,
"dislike": 0
},
"totalReplies": 0,
"replies": [],
"userInteraction": [
"like"
]
}
],
"userInteraction": [
"like"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
blogPost | string | true | none | none |
user | UserModel | true | none | Represents some basic information of a user (id, username, and profile image). |
text | string | true | none | none |
replying | string¦null | true | none | none |
postDate | string(date-time) | true | none | none |
editDate | string(date-time)¦null | true | none | none |
pinDate | string(date-time)¦null | false | none | none |
editCount | integer | true | none | none |
isEdited | boolean | true | none | none |
likes | integer | true | none | none |
dislikes | integer | true | none | none |
score | integer | true | none | none |
interactionCounts | object | true | none | none |
» like | integer | true | none | none |
» dislike | integer | true | none | none |
totalReplies | integer | false | none | none |
replies | [CommentModel] | false | none | This is present (but possibly empty) for top-level comments. This is never present for reply comments. |
userInteraction | UserInteractionModel | true | none | none |
UserNotificationModel
{
"creator": {
"id": "string",
"owner": "string",
"title": "string",
"urlname": "string",
"description": "string",
"about": "string",
"category": "string",
"cover": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"icon": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"liveStream": {
"id": "string",
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
},
"owner": "string",
"channel": "string",
"streamPath": "string",
"offline": {
"title": "string",
"description": "string",
"thumbnail": {
"width": 0,
"height": 0,
"path": "http://example.com",
"childImages": [
{
"width": 0,
"height": 0,
"path": "http://example.com"
}
]
}
}
},
"subscriptionPlans": [
{
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
}
],
"discoverable": true,
"subscriberCountDisplay": "string",
"incomeDisplay": true,
"defaultChannel": "string"
},
"userNotificationSetting": {
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"contentEmail": true,
"contentFirebase": true,
"creatorMessageEmail": true,
"user": "string",
"creator": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
creator | CreatorModelV2 | true | none | none |
userNotificationSetting | object | true | none | none |
» createdAt | string(date-time) | false | none | none |
» updatedAt | string(date-time)¦null | false | none | none |
» id | string | false | none | none |
» contentEmail | boolean | true | none | none |
» contentFirebase | boolean | true | none | none |
» creatorMessageEmail | boolean | true | none | none |
» user | string | true | none | none |
» creator | string | true | none | none |
UserSubscriptionModel
{
"startDate": "2019-08-24T14:15:22Z",
"endDate": "2019-08-24T14:15:22Z",
"paymentID": 0,
"interval": "string",
"paymentCancelled": true,
"plan": {
"id": "string",
"title": "string",
"description": "string",
"price": "string",
"priceYearly": "string",
"currency": "string",
"logo": "string",
"interval": "string",
"featured": true,
"allowGrandfatheredAccess": true,
"discordServers": [
{
"id": "string",
"guildName": "string",
"guildIcon": "string",
"inviteLink": "http://example.com",
"inviteMode": "string"
}
],
"discordRoles": [
{
"server": "string",
"roleName": "string"
}
]
},
"creator": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
startDate | string(date-time)¦null | true | none | none |
endDate | string(date-time)¦null | true | none | none |
paymentID | integer¦null | true | none | none |
interval | string | true | none | none |
paymentCancelled | boolean | false | none | none |
plan | SubscriptionPlanModel | true | none | none |
creator | string | true | none | none |
FaqSectionModel
{
"faqs": [
{
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"question": "string",
"answer": "string",
"status": "public",
"link": "string",
"order": 0,
"faqSection": "string"
}
],
"createdAt": "2019-08-24T14:15:22Z",
"updatedAt": "2019-08-24T14:15:22Z",
"id": "string",
"name": "string",
"description": "string",
"status": "public",
"order": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
faqs | [object] | true | none | none |
» createdAt | string(date-time) | true | none | none |
» updatedAt | string(date-time)¦null | true | none | none |
» id | string | true | none | none |
» question | string | true | none | none |
» answer | string | true | none | This field may contain HTML that should be rendered. |
» status | string | true | none | none |
» link | string | true | none | none |
» order | number | true | none | none |
» faqSection | string | true | none | none |
createdAt | string(date-time) | true | none | none |
updatedAt | string(date-time)¦null | true | none | none |
id | string | true | none | none |
name | string | true | none | none |
description | string | true | none | none |
status | string | true | none | none |
order | number | true | none | none |
Enumerated Values
Property | Value |
---|---|
status | public |
status | public |
UserInteractionModel
[
"like"
]
Properties
None
EdgesModel
{
"edges": [
{
"hostname": "string",
"queryPort": 0,
"bandwidth": 0,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
],
"client": {}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
edges | [EdgeModel] | true | none | none |
client | object | true | none | none |
EdgeModel
{
"hostname": "string",
"queryPort": 0,
"bandwidth": 0,
"allowDownload": true,
"allowStreaming": true,
"datacenter": {
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
hostname | string | true | none | none |
queryPort | integer | true | none | none |
bandwidth | integer(int64) | true | none | none |
allowDownload | boolean | true | none | none |
allowStreaming | boolean | true | none | none |
datacenter | EdgeDataCenter | true | none | Location information for a datacenter. Not required. |
EdgeDataCenter
{
"countryCode": "string",
"regionCode": "string",
"latitude": 0,
"longitude": 0
}
Location information for a datacenter. Not required.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
countryCode | string | true | none | none |
regionCode | string | true | none | none |
latitude | number | true | none | none |
longitude | number | true | none | none |
UpdateProgressRequest
{
"id": "string",
"contentType": "video",
"progress": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | The video or audio attachment identifier for the piece of media that is being updated. Note: this is not the blogPost identifier. |
contentType | string | true | none | Which type of media the corresponding identifier is. |
progress | integer | true | none | The progress through the media that has been consumed by the user, in seconds. |
Enumerated Values
Property | Value |
---|---|
contentType | video |
contentType | audio |
GetProgressRequest
{
"ids": [
"string"
],
"contentType": "blogPost"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
ids | [string] | true | none | The identifiers of the blog posts from which progress should be retrieved. |
contentType | string | true | none | The type of the corresponding identifiers. The only value currently is blogPost . |
Enumerated Values
Property | Value |
---|---|
contentType | blogPost |
GetProgressResponse
[
{
"id": "string",
"progress": 100
}
]
A list of objects containing progress values for the requested identifiers. If no progress has been posted to an identifier, it may either not appear in the resulting list, or appear with a progress of 0
.
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
id | string | true | none | none |
progress | integer | true | none | Percentage of the blog post’s media that has been consumed so far. Ranges from 0 to 100. |