Те же инструменты, что и в кабинете, доступны программно. Каждый вызов списывается с вашего кошелька так же, как работа через интерфейс: подписка, затем пакет, затем оплата по факту. Чтение (GET) не списывается никогда.
Базовый URL: https://developers.grem.capital/api/v1.
Перечень инструментов
| Вызов | Scope ключа | Как работает |
|---|---|---|
POST /valuation/express | любой ключ | синхронно |
POST /valuation/report | tools:valuation | отложенно |
POST /valuation/rent | tools:rent | синхронно |
POST /valuation/review | tools:review | отложенно, с файлом |
POST /content/generate | tools:contentgen | отложенно |
POST /text/generate | tools:text | отложенно |
POST /avatar/video | tools:avatar | отложенно |
POST /video/create | tools:video | отложенно, с файлом |
POST /photo/enhance | tools:photo | отложенно, с файлом |
POST /floorplan/create | tools:floorplan | отложенно, с файлом |
POST /draft/extract | tools:draft | синхронно, с файлом |
POST /site/create | tools:sitegen | синхронно, нужен объект |
POST /pdf/create | tools:pdf | отложенно, нужен объект |
Если у ключа нет нужного scope, вызов вернёт 403. Scope выдаются при создании ключа в кабинете: AI-инструменты → API → Ключи. См. Аутентификацию.
Синхронные вызовы
Синхронный инструмент возвращает 200 и готовый результат в теле ответа:
curl -X POST https://developers.grem.capital/api/v1/valuation/rent \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"propertyCategory":"apartment","totalArea":50,"city":"Kyiv"}'
Отложенные вызовы
Долгие инструменты (отчёт об оценке, тексты, фото, видео, аватар, планировка, PDF) возвращают 202 и ссылку на задачу:
{ "jobId": "…", "status": "pending", "requestId": "req_…" }
Дальше опрашивайте статус по адресу GET /<путь инструмента>/jobs/{jobId}:
curl -H "Authorization: Bearer gsk_live_xxx" \
https://developers.grem.capital/api/v1/content/generate/jobs/JOB_ID
В ответе есть поле status. Завершённые состояния: completed (либо done, success) и failed. Пока задача выполняется, повторяйте запрос раз в несколько секунд.
Опрос бесплатный: GET не считается вызовом API и не списывается с кошелька. Но вместо плотного опроса лучше подписаться на событие - см. Вебхуки.
Каждая задача принадлежит тому ключу, который её создал. Чужой jobId всегда возвращает 404, даже если такая задача существует.
Инструменты с файлом
Вызовы, помеченные «с файлом», принимают multipart/form-data: параметры - в текстовом поле data в виде JSON, сам файл - отдельной частью.
curl -X POST https://developers.grem.capital/api/v1/photo/enhance \
-H "Authorization: Bearer gsk_live_xxx" \
-F 'data={"mode":"enhance"}' \
-F "image=@room.jpg"
Если отправить таким инструментам обычный JSON, в ответ придёт 400 с пояснением, что ожидается multipart/form-data.
Инструменты, которым нужен объект
Генератор сайтов и генератор PDF собирают презентацию из уже существующего объявления, поэтому в теле запроса обязателен objectId (или collectionId для подборки). Объект должен принадлежать вам - чужой идентификатор даст ошибку доступа.
curl -X POST https://developers.grem.capital/api/v1/pdf/create \
-H "Authorization: Bearer gsk_live_xxx" \
-H "Content-Type: application/json" \
-d '{"objectId":"64f…","language":"ru"}'
Готовые файлы
Результаты (PDF, видео, изображения, страницы) отдаются ссылками на домен GREM. Скачивайте их через GET /artifacts/… с тем же ключом - см. Файлы и готовые результаты.
Повторный вызов без дублей
Создание задачи безопасно повторять: отправьте заголовок Idempotency-Key, и повтор с тем же ключом вернёт прежний результат вместо второго списания. Подробности - в статье Идемпотентность.
Что делать с ошибками
402- на кошельке недостаточно средств или исчерпана квота плана.403- у ключа нет scope для этого инструмента.429- превышен лимит частоты, повторите после паузы из заголовкаRetry-After.
Полный перечень - в статье Ошибки.
Связанные статьи
- Быстрый старт - первый вызов за пять минут.
- Вебхуки - получать готовый результат вместо опроса.
- Файлы и готовые результаты - загрузка изображений и скачивание артефактов.