Appearance
Справочник API
Полное описание endpoint для работы с датасетами.
Base URL
https://workbench.ab-labz.com/api/v1
POST /datasets/initiate/
Генерирует presigned URL для прямой загрузки датасета в облачное хранилище.
Аутентификация
Authorization: Bearer abn_xxxxxxxxxxxxxxxxxxxxx
Request
json
{
"experiment_id": "homepage_test"
}
Параметры:
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
experiment_id | string | Да | ID эксперимента. Макс 128 символов, только A-Za-z0-9._- |
Response 200
json
{
"upload_url": "https://fra1.digitaloceanspaces.com/...",
"bucket": "ab-labz-datasets",
"key": "org/1/experiments/homepage_test/latest.csv",
"experiment_id": "homepage_test",
"expires_in": 900
}
Поля:
| Поле | Тип | Описание |
|---|---|---|
upload_url | string | Presigned URL для PUT запроса (действителен 15 минут) |
bucket | string | Имя бакета в облачном хранилище |
key | string | Путь к файлу в хранилище |
experiment_id | string | ID эксперимента из запроса |
expires_in | integer | TTL ссылки в секундах (900 = 15 минут) |
Загрузка файла
Используйте полученный upload_url для загрузки CSV файла:
bash
curl -X PUT "{upload_url}" \
-H "Content-Type: text/csv" \
--data-binary @dataset.csv
Важно:
- Метод: PUT (не POST)
- Content-Type:
text/csv - Тело запроса: raw bytes файла (не multipart)
- TTL: ссылка действительна 15 минут
Response:
200 OK- файл успешно загружен403 Forbidden- ссылка истекла (получите новую через/initiate)
Ошибки
| Код | Описание | Решение |
|---|---|---|
| 400 | Невалидный experiment_id | Используйте только A-Za-z0-9._-, макс 128 символов |
| 401 | Неверный API ключ | Проверьте формат: Bearer abn_... |
| 403 | Организация деактивирована | Свяжитесь с администратором |
| 500 | Ошибка сервера | Повторите запрос через несколько секунд |
Структура хранения
Файлы сохраняются по пути:
org/{org_id}/experiments/{experiment_id}/latest.csv
Особенности:
org_idопределяется автоматически по API ключу- Каждая новая загрузка перезаписывает предыдущий файл
- Версионирование не поддерживается
- Имя файла всегда
latest.csv - После загрузки файл сразу доступен для анализа в UI
Пример полного процесса
python
import requests
API_KEY = 'abn_xxxxxxxxxxxxxxxxxxxxx'
BASE_URL = 'https://workbench.ab-labz.com/api/v1'
# 1. Получить URL для загрузки
response = requests.post(
f'{BASE_URL}/datasets/initiate/',
headers={'Authorization': f'Bearer {API_KEY}'},
json={'experiment_id': 'homepage_test'}
)
upload_url = response.json()['upload_url']
# 2. Загрузить файл
with open('dataset.csv', 'rb') as f:
requests.put(upload_url, data=f, headers={'Content-Type': 'text/csv'})
# 3. Анализ в UI: Подготовка данных → Получить по API
AB-Labz Library