OCS API’s

This document provides a quick overview of the OCS API endpoints supported in Nextcloud.

All requests need to provide authentication information, either as a Basic Auth header or by passing a set of valid session cookies, if not stated otherwise.

Testing requests with curl

All OCS requests can be easily tested out using curl by specifying the request method (GET, PUT, etc) and setting a request body where needed.

For example: you can perform a GET request to get information about a user:

curl -u username:password -X GET 'https://cloud.example.com/ocs/v1.php/...' -H "OCS-APIRequest: true"

User metadata

Since: 11.0.2, 12.0.0

This request returns the available metadata of a user. Admin users can see the information of all users, while a default user only can access it’s own metadata.

GET /ocs/v1.php/cloud/users/USERID
<?xml version="1.0"?>
<ocs>
        <meta>
                <status>ok</status>
                <statuscode>100</statuscode>
                <message>OK</message>
                <totalitems></totalitems>
                <itemsperpage></itemsperpage>
        </meta>
        <data>
                <enabled>true</enabled>
                <quota>
                        <free>338696790016</free>
                        <used>7438874</used>
                        <total>338704228890</total>
                        <relative>0</relative>
                        <quota>-3</quota>
                </quota>
                <email>user@foo.de</email>
                <displayname>admin</displayname>
                <phone></phone>
                <address></address>
                <webpage></webpage>
                <twitter>schiessle</twitter>
        </data>
</ocs>

Capabilities API

Clients can obtain capabilities provided by the Nextcloud server and its apps via the capabilities OCS API.

GET /ocs/v1.php/cloud/capabilities
<?xml version="1.0"?>
<ocs>
 <meta>
  <status>ok</status>
  <statuscode>100</statuscode>
  <message>OK</message>
  <totalitems></totalitems>
  <itemsperpage></itemsperpage>
 </meta>
 <data>
  <version>
   <major>12</major>
   <minor>0</minor>
   <micro>0</micro>
   <string>12.0 beta 4</string>
   <edition></edition>
  </version>
  <capabilities>
   <core>
    <pollinterval>60</pollinterval>
    <webdav-root>remote.php/webdav</webdav-root>
   </core>
  </capabilities>
 </data>
</ocs>

Theming capabilities

Values of the theming app are exposed though the capabilities API, allowing client developers to adjust the look of clients to the theming of different Nextcloud instances.

<theming>
    <name>Nextcloud</name>
    <url>https://nextcloud.com</url>
    <slogan>A safe home for all your data</slogan>
    <color>#0082c9</color>
    <logo>http://cloud.example.com/index.php/apps/theming/logo?v=1</logo>
    <background>http://cloud.example.com/index.php/apps/theming/logo?v=1</background>
</theming>

The background value can either be an URL to the background image or a hex color value.

Notifications

There is also the Notifications API As well as documentation on how to Register a device for push notifications