chore(docs): sync API spec

This commit is contained in:
jake committed 2026-03-24 16:07:34 -04:00
1 parent 02f2c51f72
commit c940e4cdc9
4 files changed
+242 -11

No files matched your search

@@ -0,0 +1,17 @@
---
title: Get user's streaming platforms
full: true
_openapi:
method: GET
toc: []
structuredData:
headings: []
contents:
- content: Fetch the current user's subscribed streaming platform IDs.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Fetch the current user's subscribed streaming platform IDs.
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/platforms","method":"get"}]} />
@@ -0,0 +1,17 @@
---
title: Update streaming platforms
full: true
_openapi:
method: PUT
toc: []
structuredData:
headings: []
contents:
- content: Set the current user's subscribed streaming platforms.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Set the current user's subscribed streaming platforms.
<APIPage document={"./public/openapi.json"} operations={[{"path":"/account/platforms","method":"put"}]} />
@@ -0,0 +1,17 @@
---
title: List all platforms
full: true
_openapi:
method: GET
toc: []
structuredData:
headings: []
contents:
- content: Fetch all available streaming platforms, ordered by popularity.
---
{/* This file was generated by Fumadocs. Do not edit this file directly. Any changes should be made by running the generation command again. */}
Fetch all available streaming platforms, ordered by popularity.
<APIPage document={"./public/openapi.json"} operations={[{"path":"/platforms","method":"get"}]} />
+191 -11
View File
@@ -1695,11 +1695,11 @@
"allowReserved": true "allowReserved": true
}, },
{ {
"name": "availableToStream", "name": "onMyServices",
"in": "query", "in": "query",
"schema": { "schema": {
"type": "boolean", "type": "boolean",
"description": "Only show titles with streaming availability" "description": "Only show titles available on the user's streaming services"
}, },
"allowEmptyValue": true, "allowEmptyValue": true,
"allowReserved": true "allowReserved": true
@@ -2025,9 +2025,9 @@
"items": { "items": {
"type": "object", "type": "object",
"properties": { "properties": {
"providerId": { "platformId": {
"type": "number", "type": "string",
"description": "JustWatch provider ID" "description": "Platform ID"
}, },
"providerName": { "providerName": {
"type": "string", "type": "string",
@@ -2058,14 +2058,19 @@
} }
], ],
"description": "Direct link to watch on this provider" "description": "Direct link to watch on this provider"
},
"isUserSubscribed": {
"type": "boolean",
"description": "Whether the user subscribes to this platform"
} }
}, },
"required": [ "required": [
"providerId", "platformId",
"providerName", "providerName",
"logoPath", "logoPath",
"offerType", "offerType",
"watchUrl" "watchUrl",
"isUserSubscribed"
], ],
"description": "A streaming availability offer from a provider" "description": "A streaming availability offer from a provider"
}, },
@@ -3486,8 +3491,8 @@
{ {
"type": "object", "type": "object",
"properties": { "properties": {
"providerId": { "platformId": {
"type": "number" "type": "string"
}, },
"providerName": { "providerName": {
"type": "string" "type": "string"
@@ -3504,7 +3509,7 @@
} }
}, },
"required": [ "required": [
"providerId", "platformId",
"providerName", "providerName",
"logoPath" "logoPath"
] ]
@@ -4335,7 +4340,18 @@
"type": "object", "type": "object",
"properties": { "properties": {
"id": { "id": {
"type": "number", "type": "string",
"description": "Platform ID"
},
"tmdbProviderId": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "TMDB provider ID" "description": "TMDB provider ID"
}, },
"name": { "name": {
@@ -4356,6 +4372,7 @@
}, },
"required": [ "required": [
"id", "id",
"tmdbProviderId",
"name", "name",
"logoPath" "logoPath"
] ]
@@ -4835,6 +4852,9 @@
"required": false, "required": false,
"schema": { "schema": {
"type": "string", "type": "string",
"minLength": 2,
"maxLength": 2,
"pattern": "^[a-z]{2}$",
"description": "ISO 639-1 original language code" "description": "ISO 639-1 original language code"
}, },
"allowEmptyValue": true, "allowEmptyValue": true,
@@ -6646,6 +6666,166 @@
] ]
} }
}, },
"/account/platforms": {
"get": {
"operationId": "account.platforms",
"summary": "Get user's streaming platforms",
"description": "Fetch the current user's subscribed streaming platform IDs.",
"tags": [
"Account"
],
"responses": {
"200": {
"description": "List of platform IDs",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"platformIds": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"platformIds"
]
}
}
}
}
},
"security": [
{
"session": []
}
]
},
"put": {
"operationId": "account.updatePlatforms",
"summary": "Update streaming platforms",
"description": "Set the current user's subscribed streaming platforms.",
"tags": [
"Account"
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"platformIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "List of platform IDs the user subscribes to"
}
},
"required": [
"platformIds"
]
}
}
}
},
"responses": {
"200": {
"description": "OK"
}
},
"security": [
{
"session": []
}
]
}
},
"/platforms": {
"get": {
"operationId": "platforms.list",
"summary": "List all platforms",
"description": "Fetch all available streaming platforms, ordered by popularity.",
"tags": [
"Platforms"
],
"responses": {
"200": {
"description": "All platforms with metadata",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"platforms": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Platform ID"
},
"name": {
"type": "string",
"description": "Display name"
},
"tmdbProviderId": {
"anyOf": [
{
"type": "number"
},
{
"type": "null"
}
],
"description": "TMDB provider ID (null for custom platforms)"
},
"logoPath": {
"anyOf": [
{
"type": "string"
},
{
"type": "null"
}
],
"description": "Logo image path"
},
"displayOrder": {
"type": "number",
"description": "Sort order"
}
},
"required": [
"id",
"name",
"tmdbProviderId",
"logoPath",
"displayOrder"
],
"description": "A streaming platform"
}
}
},
"required": [
"platforms"
]
}
}
}
}
},
"security": [
{
"session": []
}
]
}
},
"/imports/parse-file": { "/imports/parse-file": {
"post": { "post": {
"operationId": "imports.parseFile", "operationId": "imports.parseFile",