К содержанию

Быстрый старт

Как создать первый скриншот

Этот пример работает на FREE и PAID: создайте задачу, дождитесь статуса DONE и скачайте результат.

Что понадобится

Нужны аккаунт Shotly, API-ключ из кабинета и curl. Сохраните ключ в переменной окружения:

shell
export SHOTLY_API_KEY='...'

В PowerShell используйте $env:SHOTLY_API_KEY = '...'.

1. Создайте задачу

curl
curl --fail-with-body \
  -X POST "https://api.shotly.cloud/v1/screenshots" \
  -H "X-API-Key: $SHOTLY_API_KEY" \
  -H "Content-Type: application/json" \
  --data '{
    "url": "https://example.com",
    "browser": "chromium",
    "format": "png",
    "fullPage": true
  }'

API ответит со статусом 202 Accepted:

json
{
  "taskId": "9f0c6a7e-7d7f-4a62-9d70-7c7ddf4c8e52"
}

2. Проверьте статус

Подставьте полученный taskId в URL:

curl
curl --fail-with-body \
  -H "X-API-Key: $SHOTLY_API_KEY" \
  "https://api.shotly.cloud/v1/screenshots/<taskId>"

Если статус PENDING или IN_PROGRESS, повторите запрос через пару секунд.

json
{
  "taskId": "9f0c6a7e-7d7f-4a62-9d70-7c7ddf4c8e52",
  "status": "DONE",
  "resultUrl": "https://storage.example/signed-result",
  "errorMessage": null,
  "payloadSize": 12345,
  "createdAt": "2026-07-11T09:00:00Z",
  "updatedAt": "2026-07-11T09:00:06Z"
}

PENDING — задача ждёт обработки, IN_PROGRESS — скриншот создаётся. DONE и ERROR завершают задачу.

При ERROR поле resultUrl равно null. Храните taskId, пока задача не перейдёт в DONE или ERROR.

3. Скачайте результат

resultUrl появляется только при статусе DONE. Скопируйте значение из ответа:

shell
RESULT_URL='<resultUrl>'
curl --fail --location --output screenshot.png "$RESULT_URL"

Ссылка временная. Если она истекла, снова запросите статус задачи и используйте новый resultUrl.

На PAID можно использовать POST /take. При 200 тело ответа содержит изображение. Если задача не успела завершиться, API вернёт 202 и JSON с taskId и statusUrl.