SyncDataCloud API Documentation

Полное руководство по работе с API SyncDataCloud для интеграции облачного хранилища в ваши приложения.

Начало работы

SyncDataCloud API предоставляет простой REST-интерфейс для управления файлами, пользователями и настройками хранилища. Для работы с API вам понадобится API-ключ, который можно получить в личном кабинете.

Базовый URL

https://api.syncdatacloud.ru/v2/

Аутентификация

Все запросы к API должны содержать заголовок Authorization с вашим API-ключом:

Authorization: Bearer YOUR_API_KEY

Endpoints

GET /files

Получить список всех файлов в хранилище.

Параметры запроса:

  • folder (string, optional) - ID папки
  • limit (integer, optional) - Количество файлов (по умолчанию 50)
  • offset (integer, optional) - Смещение для пагинации

Пример запроса:

curl -X GET "https://api.syncdatacloud.ru/v2/files?limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример ответа:

{
  "files": [
    {
      "id": "file_abc123",
      "name": "document.pdf",
      "size": 1024000,
      "created_at": "2025-11-01T10:30:00Z",
      "modified_at": "2025-11-08T14:20:00Z"
    }
  ],
  "total": 234,
  "offset": 0,
  "limit": 10
}

POST /files/upload

Загрузить новый файл в хранилище.

Параметры запроса:

  • file (binary) - Содержимое файла
  • folder_id (string, optional) - ID папки назначения
  • name (string, optional) - Имя файла

Пример запроса:

curl -X POST "https://api.syncdatacloud.ru/v2/files/upload" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -F "file=@/path/to/file.pdf" \
  -F "name=document.pdf"

Пример ответа:

{
  "id": "file_xyz789",
  "name": "document.pdf",
  "size": 2048000,
  "url": "https://syncdatacloud.ru/files/file_xyz789",
  "created_at": "2025-11-08T15:45:00Z"
}

GET /files/:id/download

Скачать файл по ID.

Пример запроса:

curl -X GET "https://api.syncdatacloud.ru/v2/files/file_abc123/download" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  --output file.pdf

DELETE /files/:id

Удалить файл.

Пример запроса:

curl -X DELETE "https://api.syncdatacloud.ru/v2/files/file_abc123" \
  -H "Authorization: Bearer YOUR_API_KEY"

Пример ответа:

{
  "success": true,
  "message": "File deleted successfully"
}

WebSocket API

Для real-time уведомлений о изменениях файлов используйте WebSocket-соединение:

wss://api.syncdatacloud.ru/v2/stream

Подключение

При подключении отправьте API-ключ в первом сообщении:

{
  "type": "auth",
  "token": "YOUR_API_KEY"
}

События

После успешной аутентификации вы будете получать события об изменениях:

{
  "type": "file.created",
  "data": {
    "id": "file_new123",
    "name": "new_file.pdf",
    "created_at": "2025-11-08T16:00:00Z"
  }
}

Коды ответов

Лимиты

API имеет следующие ограничения:

Примеры кода

Python

import requests

API_KEY = "your_api_key_here"
BASE_URL = "https://api.syncdatacloud.ru/v2"

headers = {
    "Authorization": f"Bearer {API_KEY}"
}

# Получить список файлов
response = requests.get(f"{BASE_URL}/files", headers=headers)
files = response.json()

# Загрузить файл
with open("document.pdf", "rb") as f:
    files = {"file": f}
    data = {"name": "document.pdf"}
    response = requests.post(
        f"{BASE_URL}/files/upload",
        headers=headers,
        files=files,
        data=data
    )
print(response.json())

JavaScript (Node.js)

const axios = require('axios');
const FormData = require('form-data');
const fs = require('fs');

const API_KEY = 'your_api_key_here';
const BASE_URL = 'https://api.syncdatacloud.ru/v2';

const headers = {
    'Authorization': `Bearer ${API_KEY}`
};

// Получить список файлов
axios.get(`${BASE_URL}/files`, { headers })
    .then(response => console.log(response.data))
    .catch(error => console.error(error));

// Загрузить файл
const form = new FormData();
form.append('file', fs.createReadStream('document.pdf'));
form.append('name', 'document.pdf');

axios.post(`${BASE_URL}/files/upload`, form, {
    headers: {
        ...headers,
        ...form.getHeaders()
    }
}).then(response => console.log(response.data));

Поддержка

Если у вас возникли вопросы по работе с API, свяжитесь с нами: