API Documentation

Build powerful integrations with FulliO's comprehensive API ecosystem. Connect your apps, automate workflows, design custom webhooks, and extend FulliO's functionality with our developer-friendly APIs to fit your organization's unique needs.

Get Started
Getting Started Authentication Integrations Projects API Documents API Users API Groups API OCS API WebDAV API Webhooks Custom API Solutions Client API Security Best Practices Rate Limits SDKs & Libraries

Getting Started

The FulliO API is organized around REST. Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses, and uses standard HTTP response codes, authentication, and verbs.

Base URL

All API requests should be made to:

https://api.fullio.com/v1

API Keys

To use the FulliO API, you'll need an API key. You can generate one from your FulliO dashboard under Settings > API Keys.

Keep your API keys secure and never share them in publicly accessible areas such as GitHub, client-side code, etc.

Authentication

FulliO uses API keys to authenticate requests. You can view and manage your API keys in the FulliO Dashboard.

Authentication via Bearer Token

Include your API key in the Authorization header of all requests:

Authorization: Bearer your_api_key_here

Example Request

// Making a request with your API key
curl -X GET \
  https://api.fullio.com/v1/projects \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Content-Type: application/json"

Integrations

FulliO offers multiple integration pathways to connect with your existing tools and services. Our flexible API architecture allows you to create seamless workflows across your technology stack.

Available Integration Options

Popular Integrations

FulliO seamlessly connects with many popular services including:

Looking for an integration not listed here? Contact our team to discuss your specific integration needs.

Projects API

The Projects API allows you to create, read, update, and delete projects and their associated tasks, milestones, and assignments.

List Projects

GET /projects

Returns a list of all projects accessible to the authenticated user.

Query Parameters

Parameter Type Description
page integer Page number for pagination. Default is 1.
per_page integer Number of items per page. Default is 20, maximum is 100.
status string Filter by project status (active, completed, archived).

Response Example

{
  "status": "success",
  "data": {
    "projects": [
      {
        "id": "proj_12345",
        "name": "Website Redesign",
        "description": "Redesign company website",
        "status": "active",
        "created_at": "2024-05-01T12:00:00Z",
        "owner_id": "user_67890"
      },
      {
        "id": "proj_67890",
        "name": "Mobile App Development",
        "description": "Develop iOS and Android apps",
        "status": "active",
        "created_at": "2024-05-05T09:30:00Z",
        "owner_id": "user_12345"
      }
    ],
    "pagination": {
      "total": 15,
      "per_page": 20,
      "current_page": 1,
      "total_pages": 1
    }
  }
}

Create Project

POST /projects

Creates a new project.

Request Parameters

Parameter Type Required Description
name string Yes The name of the project.
description string No A detailed description of the project.
status string No Project status (active, completed, archived). Default is active.

Documents API

The Documents API allows you to create, read, update, and delete documents and folders in FulliO Docs.

List Documents

GET /documents

Returns a list of all documents accessible to the authenticated user.

Create Document

POST /documents

Creates a new document.

Users API

The Users API allows you to manage users, teams, and permissions within your FulliO workspace, providing comprehensive identity management capabilities.

List Users

GET /users

Returns a list of all users in your workspace with pagination support.

Query Parameters

Parameter Type Description
search string Filter users by name or email
limit integer Maximum number of users to return (default: 25, max: 100)
offset integer Number of users to skip for pagination
group string Filter users by group membership

Get User

GET /users/{userId}

Returns detailed information about a specific user.

Response Example

{
  "id": "user_12345",
  "displayName": "Jane Smith",
  "email": "jane.smith@example.com",
  "enabled": true,
  "quota": {
    "free": 5368709120,
    "used": 2147483648,
    "total": 10737418240,
    "relative": 20,
    "definition": "10 GB"
  },
  "groups": ["admin", "developers"],
  "subadmin": ["developers"],
  "language": "en",
  "lastLogin": 1683621600,
  "backend": "Database",
  "phone": "+1 (555) 123-4567",
  "address": "123 Main St",
  "website": "https://janesmith.com",
  "twitter": "@janesmith",
  "createdAt": "2023-01-15T12:30:45Z"
}

Create User

POST /users

Creates a new user in your FulliO workspace.

Request Parameters

Parameter Type Required Description
userid string Yes The user's unique identifier (username)
password string Yes The user's initial password
displayName string No The user's full name
email string Yes The user's email address
groups array No List of groups to add the user to
language string No The user's preferred language (ISO code)
quota string No The user's storage quota (e.g., "5GB")

Update User

PUT /users/{userId}

Updates an existing user's information.

Supports the same parameters as user creation, plus additional fields for user profile updates.

Delete User

DELETE /users/{userId}

Deletes a user from your FulliO workspace. This action cannot be undone.

Get User's Groups

GET /users/{userId}/groups

Returns a list of groups that the specified user belongs to.

Add User to Group

POST /users/{userId}/groups

Adds a user to one or more groups.

Remove User from Group

DELETE /users/{userId}/groups/{groupId}

Removes a user from a specific group.

Disable User

PUT /users/{userId}/disable

Disables a user account without deleting it.

Enable User

PUT /users/{userId}/enable

Re-enables a previously disabled user account.

User Capabilities

GET /users/{userId}/capabilities

Returns a list of capabilities available to the specified user based on their permissions and group memberships.

Groups API

The Groups API allows you to manage user groups, permissions, and access controls within your FulliO workspace.

List Groups

GET /groups

Returns a list of all groups in your workspace.

Query Parameters

Parameter Type Description
search string Filter groups by name
limit integer Maximum number of groups to return (default: 25)
offset integer Number of groups to skip for pagination

Response Example

{
  "groups": [
    {
      "id": "administrators",
      "displayName": "Administrators",
      "userCount": 3,
      "permissions": "admin"
    },
    {
      "id": "developers",
      "displayName": "Development Team",
      "userCount": 12,
      "permissions": "edit"
    },
    {
      "id": "marketing",
      "displayName": "Marketing Team",
      "userCount": 8,
      "permissions": "edit"
    }
  ]
}

Get Group

GET /groups/{groupId}

Returns detailed information about a specific group.

Create Group

POST /groups

Creates a new user group in your FulliO workspace.

Request Parameters

Parameter Type Required Description
id string Yes Unique identifier for the group
displayName string No Display name for the group
description string No Description of the group's purpose
permissions string No Default permission level for the group (read, edit, admin)

Update Group

PUT /groups/{groupId}

Updates an existing group's information.

Delete Group

DELETE /groups/{groupId}

Deletes a group from your FulliO workspace. This action cannot be undone, but users who were members of the group will not be deleted.

Get Group Members

GET /groups/{groupId}/members

Returns a list of all users who are members of the specified group.

Add Members to Group

POST /groups/{groupId}/members

Adds one or more users to a group.

Request Parameters

Parameter Type Required Description
userIds array Yes Array of user IDs to add to the group

Remove Member from Group

DELETE /groups/{groupId}/members/{userId}

Removes a specific user from a group.

Group Permissions

GET /groups/{groupId}/permissions

Returns detailed information about the permissions assigned to a group.

Update Group Permissions

PUT /groups/{groupId}/permissions

Updates the permissions for a specific group.

Request Parameters

Parameter Type Required Description
permissions object Yes Object containing permission settings

Example Request

{
  "permissions": {
    "files": {
      "create": true,
      "update": true,
      "delete": false,
      "share": true
    },
    "projects": {
      "create": true,
      "update": true,
      "delete": false
    },
    "admin": false
  }
}

OCS API Integration

FulliO provides OCS (Open Collaboration Services) API compatibility for seamless integration with Nextcloud and other platforms that support the OCS standard.

OCS API Base Endpoint

GET /ocs/v1.php/cloud

All OCS API requests should include the OCS-APIRequest: true header for proper response formatting.

Capabilities API

GET /ocs/v1.php/cloud/capabilities

Returns detailed information about the capabilities of the system, including supported APIs, features, and versions.

Response Example

{
  "ocs": {
    "meta": {
      "status": "ok",
      "statuscode": 100,
      "message": "OK"
    },
    "data": {
      "version": {
        "major": 1,
        "minor": 0,
        "micro": 1,
        "string": "1.0.1",
        "edition": "Enterprise"
      },
      "capabilities": {
        "core": {
          "pollinterval": 60,
          "webdav-root": "remote.php/webdav"
        },
        "files": {
          "versioning": true,
          "bigfilechunking": true
        },
        "user": {
          "metadata": true
        }
      }
    }
  }
}

User Provisioning API

The User Provisioning API allows administrators to manage users and groups in an OCS-compatible format.

List Users (OCS Format)

GET /ocs/v1.php/cloud/users

Returns a list of all users in OCS format with pagination support.

Query parameters: search, limit, and offset are supported.

Get User Info (OCS Format)

GET /ocs/v1.php/cloud/users/{userId}

Returns detailed information about a user in OCS format.

Create User (OCS Format)

POST /ocs/v1.php/cloud/users

Creates a new user using the OCS standard format.

Required parameters: userid, password, and email

Edit User (OCS Format)

PUT /ocs/v1.php/cloud/users/{userId}

Updates a user's information using the OCS standard format.

Supports key-value pairs where key is the property to update.

User Subadmin Management

GET /ocs/v1.php/cloud/users/{userId}/subadmins

Lists groups where the user has subadmin permissions.

Make User Subadmin

POST /ocs/v1.php/cloud/users/{userId}/subadmins

Makes a user a subadmin of one or more groups.

Group Provisioning API

The Group Provisioning API allows administrators to manage groups in an OCS-compatible format.

List Groups (OCS Format)

GET /ocs/v1.php/cloud/groups

Returns a list of all groups in OCS format.

Query parameters: search, limit, and offset are supported.

Create Group (OCS Format)

POST /ocs/v1.php/cloud/groups

Creates a new group using the OCS standard format.

Required parameter: groupid

Get Group Members (OCS Format)

GET /ocs/v1.php/cloud/groups/{groupId}/users

Returns a list of all users who are members of the specified group in OCS format.

Add Group Member (OCS Format)

POST /ocs/v1.php/cloud/groups/{groupId}/users/{userId}

Adds a user to a group using the OCS standard format.

Remove Group Member (OCS Format)

DELETE /ocs/v1.php/cloud/groups/{groupId}/users/{userId}

Removes a user from a group using the OCS standard format.

Apps API

GET /ocs/v1.php/cloud/apps

Returns a list of all installed apps with their enabled/disabled status.

Get App Info

GET /ocs/v1.php/cloud/apps/{appId}

Returns detailed information about a specific app.

Enable App

POST /ocs/v1.php/cloud/apps/{appId}

Enables a specific app.

Disable App

DELETE /ocs/v1.php/cloud/apps/{appId}

Disables a specific app.

WebDAV API

FulliO provides WebDAV API capabilities for file operations, synchronization, and management, compatible with Nextcloud and other WebDAV clients.

WebDAV Base URL

https://your-instance.fullio.com/remote.php/webdav/

The WebDAV API uses Basic Authentication with your FulliO username and password or app-specific passwords for better security.

File Operations

List Files and Folders

PROPFIND /remote.php/webdav/[path]

Lists files and folders at the specified path. The depth parameter controls recursion level.

// Example using curl
curl -X PROPFIND \
  -u "username:password" \
  -H "Depth: 1" \
  https://your-instance.fullio.com/remote.php/webdav/

Download File

GET /remote.php/webdav/[path-to-file]

Downloads a file from the specified path.

Upload File

PUT /remote.php/webdav/[path-to-file]

Uploads a file to the specified path. If the file already exists, it will be overwritten.

// Example using curl
curl -X PUT \
  -u "username:password" \
  --data-binary "@localfile.txt" \
  https://your-instance.fullio.com/remote.php/webdav/folder/file.txt

Create Folder

MKCOL /remote.php/webdav/[path-to-folder]

Creates a new folder at the specified path.

Delete File or Folder

DELETE /remote.php/webdav/[path]

Deletes a file or folder at the specified path.

Move File or Folder

MOVE /remote.php/webdav/[source-path]

Moves a file or folder from source path to destination path specified in the Destination header.

// Example using curl
curl -X MOVE \
  -u "username:password" \
  -H "Destination: https://your-instance.fullio.com/remote.php/webdav/new-location/file.txt" \
  https://your-instance.fullio.com/remote.php/webdav/old-location/file.txt

Copy File or Folder

COPY /remote.php/webdav/[source-path]

Copies a file or folder from source path to destination path specified in the Destination header.

File Properties

Get File Properties

PROPFIND /remote.php/webdav/[path-to-file]

Retrieves properties of a file, including size, modified time, content type, and custom properties.

Update File Properties

PROPPATCH /remote.php/webdav/[path-to-file]

Updates custom properties of a file.

File Chunking

For large file uploads, FulliO supports chunked uploads using WebDAV. This allows for resumable uploads and better handling of large files.

PUT /remote.php/webdav/[path-to-file]-chunking-[session-id]-[chunk-number]

Upload a chunk of a file. After all chunks are uploaded, a MOVE request is used to assemble the final file.

Client Libraries

FulliO's WebDAV implementation is compatible with popular WebDAV client libraries:

Desktop Sync Clients

FulliO's WebDAV API is compatible with desktop sync clients including:

Rate Limits

The FulliO API has rate limits to ensure the stability and availability of the service for all users.

Default Limits

By default, the API allows:

Rate Limit Headers

All API responses include headers that provide information about your current rate limit status:

Webhooks

Webhooks allow you to receive real-time HTTP notifications when events occur in your FulliO workspace, enabling powerful automation and integration scenarios.

How Webhooks Work

When an event occurs in FulliO (such as a project being created or a task being completed), our system sends an HTTP POST request to the URL you configure. The request includes a JSON payload with details about the event.

Creating Webhooks

You can create webhooks through:

Webhook Security

All webhook requests include a signature header (X-Fullio-Signature) that you can use to verify the request came from FulliO. We strongly recommend validating this signature before processing webhooks.

// Example code for validating webhook signatures (Node.js)
const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
  const hmac = crypto.createHmac('sha256', secret);
  const calculatedSignature = hmac.update(payload).digest('hex');
  return crypto.timingSafeEqual(
    Buffer.from(calculatedSignature),
    Buffer.from(signature)
  );
}

Available Events

FulliO supports webhooks for the following events:

Best Practices

Custom API Solutions

Need specialized API capabilities not covered by our standard offerings? FulliO offers custom API development services for enterprise clients with unique integration requirements.

Enterprise API Development

Our team of API specialists can work with your organization to create tailored solutions including:

Development Process

Our custom API development process includes:

  1. Requirements Analysis - Detailed assessment of your integration needs
  2. Solution Design - API architecture and specifications development
  3. Implementation - Secure and scalable API development
  4. Testing - Comprehensive testing including security audits
  5. Deployment - Seamless deployment to production
  6. Documentation - Custom API documentation for your team
  7. Training - Developer workshops and implementation support
  8. Maintenance - Ongoing support and updates

Getting Started with Custom API Solutions

To discuss your custom API development needs, please contact our Enterprise Solutions team:

SDKs & Libraries

We can provide official client libraries to make integrating with the FulliO API even easier. Already built some and willing to share with the community? Contact Us!

Official Libraries (coming)

Community Libraries

There are also places for several community-maintained libraries available for various languages and frameworks. See our FulliO Github repository for a list of community resources and for more information on how to contribute.

Client API

FulliO provides comprehensive client APIs for web, desktop, and mobile applications, allowing developers to create seamless cross-platform experiences. These APIs are compatible with Nextcloud client specifications for easy integration and migration.

Web Client API

Our Web Client API enables developers to embed FulliO functionality directly into web applications.

Features

// Example: Initialize the FulliO Web Client
const fullioClient = new FulliO.Client({
  serverUrl: 'https://your-instance.fullio.com',
  authType: 'oauth',
  clientId: 'your-client-id'
});

// List files in a folder
fullioClient.files.list('/Documents').then(files => {
  console.log(files);
});

Desktop Client API

The Desktop Client API allows developers to create native desktop applications that seamlessly integrate with FulliO services, supporting Windows, macOS, and Linux platforms.

Features

Desktop Client Capabilities

Capability Description Platform Support
Virtual Files OS-integrated placeholder files that download on demand Windows, macOS
Differential Sync Only sync changed parts of files All platforms
Conflict Resolution Automatic and manual conflict resolution tools All platforms
System Extensions File explorer/finder integration Windows, macOS

Mobile Client API

Our Mobile Client API enables developers to build native mobile applications for iOS and Android that integrate with FulliO services.

Features

// Example: Android Kotlin Integration
val fullioClient = FullioClient.Builder()
  .serverUrl("https://your-instance.fullio.com")
  .credentials(savedCredentials)
  .build()

// Download file for offline access
fullioClient.files.makeAvailableOffline(
  remotePath = "/Documents/report.pdf",
  callback = object : OperationCallback {
    override fun onSuccess() {
      // File now available offline
    }
  }
)

Client API Capabilities

All FulliO clients support the following capabilities based on the Nextcloud client specifications:

Endpoints and Protocol Support

Authentication Methods

Sync Engine Capabilities

Feature Description
Selective Sync Choose which folders to sync to each device
Chunked Upload Split large files into smaller chunks for reliable transfer
Delta Sync Only transfer changed parts of files
Conflict Resolution Automatic handling of file conflicts with versioning
Bandwidth Limiting Control upload and download speeds
End-to-end Encryption Client-side encryption for maximum privacy

Getting Started with Client Development

To start building on our client API platforms, visit our Client SDK repository for sample code, documentation, and developer resources.

For detailed integration guides and tutorials, see our Client Development Documentation.

API Security Best Practices

Securing your API integrations is crucial. Follow these best practices to ensure your FulliO API usage remains secure.

Token Security

Connection Security

Data Protection

Error Handling

OAuth 2.0 Best Practices