Server API
Base URL: https://YOUR-SERVER/api. Send your API key in x-api-key where authentication is required. A key also needs the listed permission; your account's access rules still apply.
API guide · All endpoints · OpenAPI JSON
GET /server/apk-links— Get APK linksGET /server/app-releases— Get app releasesGET /server/library-setup— Library preparation for this authenticated devicePOST /server/library-setup/begin— Start the managed library rescanPOST /server/library-setup/finish— Finish after catalog and browsing previews are cachedGET /server/library-setup/manager— Manager machine-authenticated setup statusPOST /server/library-setup/manager— Manager machine-authenticated rescanGET /server/media-types— Get supported media typesGET /server/statistics— Get statisticsGET /server/storage— Get storageGET /server/version— Get server versionGET /server/version-check— Get version check statusPOST /server/version-check— Check for updates nowGET /server/version-history— Get version history
Get APK links
GET /api/server/apk-links
Retrieve links to the signed APKs for the current server version, from the release destination configured for this server.
Authentication: API key. Permission: server.apkLinks.
Responses
Field definitions: ServerApkLinksDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerApkLinksDto"
}
}
},
"description": ""
},
"404": {
"description": "No signed Android release is configured for this server"
}
}Get app releases
GET /api/server/app-releases
Retrieve the signed release destinations of the mobile apps for this server, or that none is configured.
Authentication: API key. Permission: server.about.
Responses
Field definitions: ServerAppReleasesResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerAppReleasesResponseDto"
}
}
},
"description": ""
}
}Library preparation for this authenticated device
GET /api/server/library-setup
Authentication: API key. Permission: sync.stream.
Responses
Field definitions: LibrarySetupStatusDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySetupStatusDto"
}
}
},
"description": ""
}
}Start the managed library rescan
POST /api/server/library-setup/begin
Administrator access required.
Authentication: API key. Permission: all.
Responses
Field definitions: LibrarySetupStatusDto
{
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySetupStatusDto"
}
}
},
"description": ""
}
}Finish after catalog and browsing previews are cached
POST /api/server/library-setup/finish
Authentication: API key. Permission: sync.stream.
Request body
Required.
Field definitions: FinishLibrarySetupDto
{
"application/json": {
"schema": {
"$ref": "#/components/schemas/FinishLibrarySetupDto"
}
}
}Responses
Field definitions: LibrarySetupStatusDto
{
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySetupStatusDto"
}
}
},
"description": ""
}
}Manager machine-authenticated setup status
GET /api/server/library-setup/manager
Authentication: No API key required. Permission: Public.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
x-frameleaf-manager | header | Yes | string |
Parameter types, defaults and constraints
[
{
"name": "x-frameleaf-manager",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
]Responses
Field definitions: LibrarySetupStatusDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySetupStatusDto"
}
}
},
"description": ""
}
}Manager machine-authenticated rescan
POST /api/server/library-setup/manager
Authentication: No API key required. Permission: Public.
Parameters
| Name | Where | Required | Description |
|---|---|---|---|
x-frameleaf-manager | header | Yes | string |
Parameter types, defaults and constraints
[
{
"name": "x-frameleaf-manager",
"required": true,
"in": "header",
"schema": {
"type": "string"
}
}
]Responses
Field definitions: LibrarySetupStatusDto
{
"201": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LibrarySetupStatusDto"
}
}
},
"description": ""
}
}Get supported media types
GET /api/server/media-types
Retrieve all media types supported by the server.
Authentication: No API key required. Permission: Public.
Responses
Field definitions: ServerMediaTypesResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerMediaTypesResponseDto"
}
}
},
"description": ""
}
}Get statistics
GET /api/server/statistics
Retrieve statistics about the entire Frameleaf instance such as asset counts.
Administrator access required.
Authentication: API key. Permission: server.statistics.
Responses
Field definitions: ServerStatsResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerStatsResponseDto"
}
}
},
"description": ""
}
}Get storage
GET /api/server/storage
Retrieve the current storage utilization information of the server.
Authentication: API key. Permission: server.storage.
Responses
Field definitions: ServerStorageResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerStorageResponseDto"
}
}
},
"description": ""
}
}Get server version
GET /api/server/version
Retrieve the current server version in semantic versioning (semver) format.
Authentication: No API key required. Permission: Public.
Responses
Field definitions: ServerVersionResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServerVersionResponseDto"
}
}
},
"description": ""
}
}Get version check status
GET /api/server/version-check
Retrieve information about the last time the version check ran.
Authentication: API key. Permission: server.versionCheck.
Responses
Field definitions: VersionCheckStateResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VersionCheckStateResponseDto"
}
}
},
"description": ""
}
}Check for updates now
POST /api/server/version-check
Ask Frameleaf's release feed for the newest version now, whether or not automatic checks are on (About → Check for updates). No other service is contacted.
Administrator access required.
Authentication: API key. Permission: server.versionCheck.
Responses
Field definitions: ReleaseEventV1
{
"200": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ReleaseEventV1"
}
}
},
"description": ""
}
}Get version history
GET /api/server/version-history
Retrieve a list of past versions the server has been on.
Authentication: No API key required. Permission: Public.
Responses
Field definitions: ServerVersionHistoryResponseDto
{
"200": {
"content": {
"application/json": {
"schema": {
"items": {
"$ref": "#/components/schemas/ServerVersionHistoryResponseDto"
},
"type": "array"
}
}
},
"description": ""
}
}© 2026 Frameleaf Inc. All rights reserved.
Frameleaf and the Frameleaf logo are Trademarks of Frameleaf Inc.