Две операции с файлами: положить изображение в GREM, чтобы затем прикрепить его к объявлению, и забрать готовый результат работы инструмента.
Базовый URL: https://developers.grem.capital/api/v1.
Загрузить изображение
curl -X POST https://developers.grem.capital/api/v1/uploads \
-H "Authorization: Bearer gsk_live_xxx" \
-F "file=@photo.jpg"
{ "files": [ { "id": "…", "url": "…" } ], "requestId": "req_…" }
Нужен scope media:write. Загрузка не списывается с кошелька.
Ограничения:
| Параметр | Значение |
|---|---|
| Форматы | JPG, PNG, WEBP |
| Размер одного файла | до 15 МБ |
| Файлов за один запрос | до 10 |
| Размер всего запроса | до 30 МБ |
Имена полей в форме значения не имеют - отправьте сколько угодно частей с файлами в пределах лимита.
Полученные id подставляются в поле photos при создании или изменении объявления:
{ "photos": ["<id первого файла>", "<id второго файла>"] }
Загруженный вами оригинал видите только вы. Как только фотография прикрепляется к объявлению, внешним читателям отдаются лишь варианты с водяным знаком.
Забрать готовый результат
Инструменты возвращают ссылки на файлы относительными путями. Скачивайте их через домен GREM тем же ключом:
curl -H "Authorization: Bearer gsk_live_xxx" \
https://developers.grem.capital/api/v1/artifacts/<путь из ответа> \
-o presentation.pdf
Нужен scope tools:artifacts. Скачивание - это GET, поэтому оно бесплатно и не считается вызовом API.
Поддерживается частичная загрузка по заголовку Range: большие видео и презентации можно тянуть частями или возобновлять прерванное скачивание.
Ключ нужен и здесь: ссылка на артефакт не публична. Не встраивайте её в страницу, доступную посетителям, - лучше отдавайте файл со своего сервера.
Произвольный путь подставить не выйдет: принимаются только адреса из ответов инструментов, всё остальное возвращает 404.
Связанные статьи
- Инструменты через API - что именно создаёт эти файлы.
- Объекты (чтение) - форма объявления и его фотографий.
- Ошибки - коды отказов.