2026-04-29 13:33:03 -04:00
{
"openapi" : "3.0.3" ,
"info" : {
2025-12-27 07:50:13 -05:00
"title" : "appstore" ,
2026-04-29 13:33:03 -04:00
"version" : "0.0.1" ,
2025-12-27 07:50:13 -05:00
"description" : "Nextcloud Appstore" ,
2026-04-29 13:33:03 -04:00
"license" : {
"name" : "agpl"
}
} ,
"components" : {
"securitySchemes" : {
"basic_auth" : {
"type" : "http" ,
"scheme" : "basic"
} ,
"bearer_auth" : {
"type" : "http" ,
"scheme" : "bearer"
}
} ,
"schemas" : {
2025-12-27 07:50:13 -05:00
"OCSMeta" : {
2026-04-29 13:33:03 -04:00
"type" : "object" ,
"required" : [
2025-12-27 07:50:13 -05:00
"status" ,
"statuscode"
2026-04-29 13:33:03 -04:00
] ,
"properties" : {
2025-12-27 07:50:13 -05:00
"status" : {
2026-04-29 13:33:03 -04:00
"type" : "string"
} ,
2025-12-27 07:50:13 -05:00
"statuscode" : {
"type" : "integer"
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"message" : {
2026-04-29 13:33:03 -04:00
"type" : "string"
} ,
2025-12-27 07:50:13 -05:00
"totalitems" : {
2026-04-29 13:33:03 -04:00
"type" : "string"
} ,
2025-12-27 07:50:13 -05:00
"itemsperpage" : {
2026-04-29 13:33:03 -04:00
"type" : "string"
2025-12-27 07:50:13 -05:00
}
}
}
}
} ,
"paths" : {
"/ocs/v2.php/apps/appstore/api/v1/apps/categories" : {
"get" : {
"operationId" : "api-list-categories" ,
"summary" : "Get all available categories" ,
"description" : "This endpoint requires admin access" ,
"tags" : [
"api"
] ,
"security" : [
{
"bearer_auth" : [ ]
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
{
"basic_auth" : [ ]
}
] ,
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "The categories were found successfully" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
"required" : [
"id" ,
"displayName"
] ,
"properties" : {
"id" : {
"type" : "string"
} ,
"displayName" : {
"type" : "string"
}
}
}
}
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
2026-04-29 13:33:03 -04:00
}
}
}
2025-12-27 07:50:13 -05:00
}
} ,
"/ocs/v2.php/apps/appstore/api/v1/apps" : {
"get" : {
"operationId" : "api-list-apps" ,
"summary" : "Get all available apps" ,
"description" : "This endpoint requires admin access" ,
"tags" : [
"api"
2026-04-29 13:33:03 -04:00
] ,
2025-12-27 07:50:13 -05:00
"security" : [
{
"bearer_auth" : [ ]
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
{
"basic_auth" : [ ]
}
] ,
"parameters" : [
2026-04-23 07:57:51 -04:00
{
"name" : "details" ,
"in" : "query" ,
"description" : "- Whether to include detailed appstore information about the app" ,
"schema" : {
"type" : "boolean" ,
"default" : false
}
} ,
2025-12-27 07:50:13 -05:00
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "The apps were found successfully" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
"type" : "array" ,
"items" : {
"type" : "object" ,
"required" : [
"id" ,
"name" ,
2026-04-28 10:32:45 -04:00
"groups" ,
"internal" ,
2026-05-05 19:16:47 -04:00
"isCompatible"
2025-12-27 07:50:13 -05:00
] ,
"properties" : {
"id" : {
"type" : "string"
} ,
"name" : {
"type" : "string"
} ,
2026-04-28 10:32:45 -04:00
"groups" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
} ,
"internal" : {
"type" : "boolean"
} ,
"isCompatible" : {
"type" : "boolean"
} ,
"missingDependencies" : {
"type" : "array" ,
"items" : {
"type" : "string"
}
2025-12-27 07:50:13 -05:00
}
}
}
}
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
}
}
}
} ,
"/ocs/v2.php/apps/appstore/api/v1/apps/enable" : {
"post" : {
"operationId" : "api-enable-app" ,
"summary" : "Enable one apps" ,
"description" : "App will be enabled for specific groups only if $groups is defined\nThis endpoint requires admin access\nThis endpoint requires password confirmation" ,
"tags" : [
"api"
] ,
"security" : [
{
"bearer_auth" : [ ]
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
{
"basic_auth" : [ ]
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"appId"
] ,
"properties" : {
"appId" : {
"type" : "string" ,
"description" : "- The app to enable"
} ,
"groups" : {
"type" : "array" ,
"default" : [ ] ,
"description" : "- The groups to enable the app for" ,
"items" : {
"type" : "string"
}
} ,
"force" : {
"type" : "boolean" ,
"default" : false ,
"description" : "- Whether to force enable the app even if Nextcloud version requirements are not met"
}
}
}
}
}
} ,
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "App successfully enabled" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
"type" : "object" ,
"required" : [
"update_required"
] ,
"properties" : {
"update_required" : {
"type" : "boolean"
}
}
}
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
"content" : {
"application/json" : {
"schema" : {
2026-04-29 13:33:03 -04:00
"type" : "object" ,
"required" : [
2025-12-27 07:50:13 -05:00
"ocs"
2026-04-29 13:33:03 -04:00
] ,
"properties" : {
2025-12-27 07:50:13 -05:00
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
2026-04-29 13:33:03 -04:00
}
}
}
2025-12-27 07:50:13 -05:00
}
2026-04-29 13:33:03 -04:00
}
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
2026-04-29 13:33:03 -04:00
}
}
2025-12-27 07:50:13 -05:00
}
2026-04-29 13:33:03 -04:00
}
}
}
2025-12-27 07:50:13 -05:00
} ,
"/ocs/v2.php/apps/appstore/api/v1/apps/disable" : {
2026-04-29 13:33:03 -04:00
"post" : {
2025-12-27 07:50:13 -05:00
"operationId" : "api-disable-app" ,
"summary" : "Disable an app" ,
"description" : "This endpoint requires admin access\nThis endpoint requires password confirmation" ,
2026-04-29 13:33:03 -04:00
"tags" : [
2025-12-27 07:50:13 -05:00
"api"
2026-04-29 13:33:03 -04:00
] ,
"security" : [
{
"bearer_auth" : [ ]
} ,
{
"basic_auth" : [ ]
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
2025-12-27 07:50:13 -05:00
"appId"
2026-04-29 13:33:03 -04:00
] ,
"properties" : {
2025-12-27 07:50:13 -05:00
"appId" : {
2026-04-29 13:33:03 -04:00
"type" : "string" ,
2025-12-27 07:50:13 -05:00
"description" : "- The app to disable"
2026-04-29 13:33:03 -04:00
}
}
}
}
}
} ,
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
2025-12-27 07:50:13 -05:00
"description" : "App successfully disabled" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
2025-12-27 07:50:13 -05:00
"type" : "object"
2026-04-29 13:33:03 -04:00
}
}
}
}
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"/ocs/v2.php/apps/appstore/api/v1/apps/uninstall" : {
2026-04-29 13:33:03 -04:00
"post" : {
2025-12-27 07:50:13 -05:00
"operationId" : "api-uninstall-app" ,
2026-05-05 10:56:42 -04:00
"summary" : "Uninstall an app." ,
2025-12-27 07:50:13 -05:00
"description" : "This endpoint requires admin access\nThis endpoint requires password confirmation" ,
2026-04-29 13:33:03 -04:00
"tags" : [
2025-12-27 07:50:13 -05:00
"api"
2026-04-29 13:33:03 -04:00
] ,
"security" : [
{
"bearer_auth" : [ ]
} ,
{
"basic_auth" : [ ]
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
2025-12-27 07:50:13 -05:00
"appId"
2026-04-29 13:33:03 -04:00
] ,
"properties" : {
2025-12-27 07:50:13 -05:00
"appId" : {
2026-04-29 13:33:03 -04:00
"type" : "string" ,
2025-12-27 07:50:13 -05:00
"description" : "- The app to uninstall"
2026-04-29 13:33:03 -04:00
}
}
}
}
}
} ,
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
2025-12-27 07:50:13 -05:00
"description" : "App successfully uninstalled" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
2025-12-27 07:50:13 -05:00
"type" : "object"
2026-04-29 13:33:03 -04:00
}
}
}
}
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
2026-04-29 13:33:03 -04:00
"content" : {
2025-12-27 07:50:13 -05:00
"application/json" : {
2026-04-29 13:33:03 -04:00
"schema" : {
2025-12-27 07:50:13 -05:00
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
2026-04-29 13:33:03 -04:00
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
2025-12-27 07:50:13 -05:00
}
}
}
} ,
"/ocs/v2.php/apps/appstore/api/v1/apps/update" : {
"post" : {
"operationId" : "api-update-app" ,
"summary" : "Update an app" ,
"description" : "This endpoint requires admin access\nThis endpoint requires password confirmation" ,
"tags" : [
"api"
] ,
"security" : [
{
"bearer_auth" : [ ]
} ,
{
"basic_auth" : [ ]
}
] ,
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"appId"
] ,
"properties" : {
"appId" : {
"type" : "string" ,
"description" : "- The app to update"
}
}
}
}
}
} ,
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
"description" : "App successfully updated" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
"type" : "object"
}
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
} ,
"401" : {
"description" : "Current user is not logged in" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
2025-12-27 07:50:13 -05:00
} ,
"403" : {
"description" : "Logged in account must be an admin" ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
2026-04-29 13:33:03 -04:00
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"/ocs/v2.php/apps/appstore/api/v1/bundles/enable" : {
"post" : {
"operationId" : "api-enable-bundle" ,
"summary" : "Enable all apps of a bundle" ,
"description" : "This endpoint requires admin access\nThis endpoint requires password confirmation" ,
2026-04-29 13:33:03 -04:00
"tags" : [
2025-12-27 07:50:13 -05:00
"api"
2026-04-29 13:33:03 -04:00
] ,
"security" : [
{
"bearer_auth" : [ ]
} ,
{
"basic_auth" : [ ]
}
] ,
2025-12-27 07:50:13 -05:00
"requestBody" : {
"required" : true ,
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"bundleId"
] ,
"properties" : {
"bundleId" : {
"type" : "string" ,
"description" : "- The bundle to enable"
}
}
}
}
}
} ,
2026-04-29 13:33:03 -04:00
"parameters" : [
{
"name" : "OCS-APIRequest" ,
"in" : "header" ,
"description" : "Required to be true for the API request to pass" ,
"required" : true ,
"schema" : {
"type" : "boolean" ,
"default" : true
}
}
] ,
"responses" : {
"200" : {
2025-12-27 07:50:13 -05:00
"description" : "Bundle successfully enabled" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : {
2025-12-27 07:50:13 -05:00
"type" : "object"
2026-04-29 13:33:03 -04:00
}
}
}
}
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"401" : {
"description" : "Current user is not logged in" ,
2026-04-29 13:33:03 -04:00
"content" : {
2025-12-27 07:50:13 -05:00
"application/json" : {
2026-04-29 13:33:03 -04:00
"schema" : {
2025-12-27 07:50:13 -05:00
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
2026-04-29 13:33:03 -04:00
}
}
}
} ,
2025-12-27 07:50:13 -05:00
"403" : {
"description" : "Logged in account must be an admin" ,
2026-04-29 13:33:03 -04:00
"content" : {
"application/json" : {
"schema" : {
"type" : "object" ,
"required" : [
"ocs"
] ,
"properties" : {
"ocs" : {
"type" : "object" ,
"required" : [
"meta" ,
"data"
] ,
"properties" : {
"meta" : {
"$ref" : "#/components/schemas/OCSMeta"
} ,
"data" : { }
}
}
}
}
}
}
}
}
}
}
} ,
"tags" : [ ]
}