REST API
Изображение: PDF и обработка файлов API
Все файловые процессоры имеют одну конечную точку работы. Выберите операцию с toolName; найдите параметры и полные примеры для каждого инструмента ниже.
- Зарегистрируйтесь, проверьте свою электронную почту и войдите в бесплатный аккаунт.
- Открытые настройки → ключи API (также доступно в меню пользователя), введите имя и создайте ключ.
- Полный ключ отображается один раз. Копируйте его в переменную окружения API_KEY на стороне сервера. Отзовите и замените потерянный ключ.
Authorization: Bearer $API_KEY
Загрузки, вакансии, опросы, загрузки и управление правилами требуют наличия действительного ключа API или подписанной веб-сессии. Используйте ключ API для сценариев, MCP и автоматизации; никогда не ставьте его в интерфейсный код. Отозванные ключи немедленно прекращают работу.
Каждый ключ позволяет выполнять запросы 120 / минута по умолчанию, включая опрос. Квоты рабочих мест распределяются по всей учетной записи и ключам: бесплатные по умолчанию 20 / день, Pro до 100 / день. Читайте GET /api/tools/entitlements для фактической конфигурации.
| Просьба | Ввод/ответ |
|---|---|
| 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_ID | data.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_filePOST /api/tools/validateФайл содержит предоставленные факты и правила содержит ограничения. Никакие байты не загружаются и не проверяются. Сохраненный ruleId требует аутентификации.
{
"file": {
"name": "example.png",
"mimeType": "image/png",
"bytes": 180000
},
"rules": {
"maxBytes": 200000
},
"mode": "must_pass"
}Откройте инструмент и сгенерируйте код из вашей формыcompress_imagePOST /api/tools/jobsfileId, targetBytes (байт), формат, allowDownscale; правила.maxBytes может валидировать вывод.
{
"toolName": "compress_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"format": "jpeg",
"targetBytes": 200000,
"allowDownscale": true,
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыconvert_imagePOST /api/tools/jobsfileId, формат; дополнительный фон (#RRGGBB) и dpi (только JPEG/PNG).
{
"toolName": "convert_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"format": "webp",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыresize_imagePOST /api/tools/jobsfileId, по меньшей мере один из ширины/высоты (пикселей), фитиль (содержит/покрывает), allowUpscale, формат, dpi.
{
"toolName": "resize_image",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"width": 1200,
"fit": "contain",
"allowUpscale": false,
"format": "jpeg",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыcrop_imagePOST /api/tools/jobsfileId, растениеводство: {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_backgroundPOST /api/tools/jobsУдалите фон и скачайте прозрачный PNG.
{
"toolName": "remove_background",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыinspect_imagePOST /api/tools/jobsfileId; возвращает декодированные размеры, DPI и EXIF/GPS факты.
{
"toolName": "inspect_image",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыconvert_image_to_pdfPOST /api/tools/jobsfileIds в порядке страницы; 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"
}
}Откройте инструмент и сгенерируйте код из вашей формыinspect_filePOST /api/tools/jobsfileId; возвращает фактические страницы PDF, размеры, шрифты и встроенные факты изображения.
{
"toolName": "inspect_file",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыcompress_pdfPOST /api/tools/jobsfileId; rules.maxBytes устанавливает цель в байтах. Строгий режим не работает с отчетом о правилах, если цель не может быть достигнута.
{
"toolName": "compress_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"rules": {
"maxBytes": 200000
},
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыmerge_pdfsPOST /api/tools/jobsfileIds, по крайней мере 2, слился в порядке массива; дополнительные правила подтверждают результат.
{
"toolName": "merge_pdfs",
"input": {
"fileIds": [
"FILE_ID_1",
"FILE_ID_2"
],
"mode": "best_effort",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыsplit_pdfPOST /api/tools/jobsfileId, pageRange (например). 1-3,5,2) или массив страниц; номера страниц начинаются с 1 Они могут быть переупорядочены или повторены.
{
"toolName": "split_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"pageRange": "1-2",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыrotate_pdfPOST /api/tools/jobsfileId, ротация (90/180/270); необязательные pageRange/страницы, опущенные для вращения всех страниц.
{
"toolName": "rotate_pdf",
"input": {
"fileId": "FILE_ID",
"mode": "best_effort",
"rotation": 90,
"pageRange": "1",
"execution": "async"
}
}Откройте инструмент и сгенерируйте код из вашей формыcreate_submission_packagePOST /api/tools/jobsfileIds, 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