Скип на основной контент

REST API

Изображение: PDF и обработка файлов API

Все файловые процессоры имеют одну конечную точку работы. Выберите операцию с toolName; найдите параметры и полные примеры для каждого инструмента ниже.

1. Создайте ключ API
  1. Зарегистрируйтесь, проверьте свою электронную почту и войдите в бесплатный аккаунт.
  2. Открытые настройки → ключи API (также доступно в меню пользователя), введите имя и создайте ключ.
  3. Полный ключ отображается один раз. Копируйте его в переменную окружения API_KEY на стороне сервера. Отзовите и замените потерянный ключ.
Authorization: Bearer $API_KEY

Загрузки, вакансии, опросы, загрузки и управление правилами требуют наличия действительного ключа API или подписанной веб-сессии. Используйте ключ API для сценариев, MCP и автоматизации; никогда не ставьте его в интерфейсный код. Отозванные ключи немедленно прекращают работу.

Каждый ключ позволяет выполнять запросы 120 / минута по умолчанию, включая опрос. Квоты рабочих мест распределяются по всей учетной записи и ключам: бесплатные по умолчанию 20 / день, Pro до 100 / день. Читайте GET /api/tools/entitlements для фактической конфигурации.

2. Загрузить → создать работу → опрос → скачать
ПросьбаВвод/ответ
POST /api/tools/filesмногочастный полевой файл → data.file.id; один файл на загрузку
POST /api/tools/jobs{toolName, input: {fileId / fileIds, execution: "async", …}} → data.job.id
GET /api/tools/jobs?id=JOB_IDdata.job.status + data.job.result
GET /api/tools/artifacts?id=ARTIFACT_ID&download=1Аутентифицированная загрузка двоичного файла; ID на data.job.result.data.artifact.id
DELETE /api/tools/jobs?id=JOB_IDОтмена отложенной работы; терминальные работы могут вернуть 409

HTTP 202 (статус: принят) не является завершенным. Ознакомьтесь с каждой секундой 2, пока data.job.status не будет завершен, не будет выполнен, отменен или истек. Прочитайте данные об успехе на data.job.result.data и данные об отказе на data.job.result.error.details.Inspection возвращает JSON без файла загрузки.

Режим: must_pass требует прохождения каждого правила; best_effort может вернуть кандидата с предупреждениями. Отправьте встроенные правила или сохраненный ruleId, никогда оба. Инструменты одноизображения принимают один fileId за работу; создайте работу за изображение.

Загрузки и артефакты обычно длятся часы 24; используйте expiresAt. Настройте Idempotency-Key на создание рабочих мест и повторно используйте его с одним и тем же телом после сбоев в сети. Бесплатные рабочие места позволяют объединять 25 MB, страницы 100, 40 MP и до входов 10. Pro позволяет входы 100; ограничения двигателя по-прежнему применяются.

3. Параметры и примеры с помощью инструмента

Проверка файла перед отправкой · validate_file
POST /api/tools/validate

Файл содержит предоставленные факты и правила содержит ограничения. Никакие байты не загружаются и не проверяются. Сохраненный ruleId требует аутентификации.

{
  "file": {
    "name": "example.png",
    "mimeType": "image/png",
    "bytes": 180000
  },
  "rules": {
    "maxBytes": 200000
  },
  "mode": "must_pass"
}
Откройте инструмент и сгенерируйте код из вашей формы
Сжатие изображения до 200KB · compress_image
POST /api/tools/jobs

fileId, targetBytes (байт), формат, allowDownscale; правила.maxBytes может валидировать вывод.

{
  "toolName": "compress_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "format": "jpeg",
    "targetBytes": 200000,
    "allowDownscale": true,
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Конвертация изображений · convert_image
POST /api/tools/jobs

fileId, формат; дополнительный фон (#RRGGBB) и dpi (только JPEG/PNG).

{
  "toolName": "convert_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "format": "webp",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Изменение размера изображения · resize_image
POST /api/tools/jobs

fileId, по меньшей мере один из ширины/высоты (пикселей), фитиль (содержит/покрывает), allowUpscale, формат, dpi.

{
  "toolName": "resize_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "width": 1200,
    "fit": "contain",
    "allowUpscale": false,
    "format": "jpeg",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Обрезка изображения · crop_image
POST /api/tools/jobs

fileId, растениеводство: {x,y,width,height} в пикселях из верхнего левого угла; формат выбирает тип вывода.

{
  "toolName": "crop_image",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "crop": {
      "x": 0,
      "y": 0,
      "width": 200,
      "height": 200
    },
    "format": "png",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Удалить фон · remove_background
POST /api/tools/jobs

Удалите фон и скачайте прозрачный PNG.

{
  "toolName": "remove_background",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Проверка изображения · inspect_image
POST /api/tools/jobs

fileId; возвращает декодированные размеры, DPI и EXIF/GPS факты.

{
  "toolName": "inspect_image",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Изображения в PDF · convert_image_to_pdf
POST /api/tools/jobs

fileIds в порядке страницы; pageSize (оригинал/a4/буква), pageOrientation (портрет/ландшафт), marginPoints (0-144 pt), pageDpi (36-600).

{
  "toolName": "convert_image_to_pdf",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "pageSize": "a4",
    "pageOrientation": "portrait",
    "marginPoints": 24,
    "pageDpi": 150,
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Проверка PDF · inspect_file
POST /api/tools/jobs

fileId; возвращает фактические страницы PDF, размеры, шрифты и встроенные факты изображения.

{
  "toolName": "inspect_file",
  "input": {
    "fileId": "FILE_ID",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Сжатие PDF до 200KB · compress_pdf
POST /api/tools/jobs

fileId; rules.maxBytes устанавливает цель в байтах. Строгий режим не работает с отчетом о правилах, если цель не может быть достигнута.

{
  "toolName": "compress_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "rules": {
      "maxBytes": 200000
    },
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Объединение PDF · merge_pdfs
POST /api/tools/jobs

fileIds, по крайней мере 2, слился в порядке массива; дополнительные правила подтверждают результат.

{
  "toolName": "merge_pdfs",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Извлечение страниц PDF · split_pdf
POST /api/tools/jobs

fileId, pageRange (например). 1-3,5,2) или массив страниц; номера страниц начинаются с 1 Они могут быть переупорядочены или повторены.

{
  "toolName": "split_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "pageRange": "1-2",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Поворот страниц PDF · rotate_pdf
POST /api/tools/jobs

fileId, ротация (90/180/270); необязательные pageRange/страницы, опущенные для вращения всех страниц.

{
  "toolName": "rotate_pdf",
  "input": {
    "fileId": "FILE_ID",
    "mode": "best_effort",
    "rotation": 90,
    "pageRange": "1",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
ZIP-пакет для отправки · create_submission_package
POST /api/tools/jobs

fileIds, packageName, namingTemplateБесплатный шаблон: {index}-{name}..{ext}Пользовательские шаблоны требуют Pro.. ZIP включает в себя файлы, манифесты и отчеты по файлам.

{
  "toolName": "create_submission_package",
  "input": {
    "fileIds": [
      "FILE_ID_1",
      "FILE_ID_2"
    ],
    "mode": "best_effort",
    "packageName": "submission-package",
    "namingTemplate": "{index}-{name}.{ext}",
    "execution": "async"
  }
}
Откройте инструмент и сгенерируйте код из вашей формы
Ошибки, разрешения и интеграции

401: отсутствующий, недействительный или отозванный ключ. 403: учетная запись/ключ не имеет разрешения. 429 / rate_limited: скорость запроса или суточная квота достигнута; откажитесь только при разрешении повторного использования. invalid_input: параметры проверки. subscription_required: требуемая возможность планирования. processing_failed / сбои в работе правил: проверка error.details. Опрос HTTP 200 сам по себе не означает, что обработка прошла успешно.

Каталог, OpenAPI и поставляемые-факты /api/tools/validate конечная точка являются общедоступными. Гостевая веб-обработка имеет отдельный сеанс/IP-ограниченный путь, а не анонимные учетные данные автоматизации. Файлы, задания, правила и артефакты являются владельцами.

Используйте /api/tools/rules (GET/POST/DELETE) для сохраненных правил и GET /api/tools/jobs для истории. OpenAPI содержит полные схемы. MCP и REST инструменты обмена и квоты счетов. Pro касса и пополнения еще не открыты.

# CLI: ATTACHREADY_BASE_URL + ATTACHREADY_API_KEY
node scripts/tools-cli.mjs run convert_image --input '{"fileId":"FILE_ID","format":"webp"}' --wait