REST API
이미지, PDF 및 파일 처리 API
모든 파일 프로세서는 하나의 작업 엔드포인트를 공유합니다. toolName와 함께 작업을 선택하십시오. 매개 변수를 찾아 모든 도구에 대한 전체 예제를 확인하십시오.
- 등록, 이메일 확인 및 무료 계정에 로그인.
- 설정 열기 → API 키 (사용자 메뉴에서도 사용할 수 있습니다), 이름을 입력하고 키를 만듭니다.
- 전체 키는 한번 표시됩니다. 서버 측 API_KEY 환경 변수에 복사하십시오. 잃어버린 키를 복사하고 교체하십시오.
Authorization: Bearer $API_KEY
업로드, 작업, polling, 다운로드 및 규칙 관리는 유효한 API 열쇠 또는 서명 웹 세션을 요구합니다. 스크립트, MCP 및 자동화를 위한 API 열쇠를 사용하십시오; 프론트엔드 부호에서 그것을 두지 마십시오. 즉시 작동되는 열쇠 정지.
각 키는 최대 120 요청/분을 기본으로 허용합니다. 작업 할당은 계정과 키에 걸쳐 공유됩니다. 20/day, Pro를 100/day에 무료로 기본으로 설정할 수 있습니다. 실제 구성에 /api/tools/entitlements를 읽으십시오.
| * 이름 * | 입력 / 응답 |
|---|---|
| POST /api/tools/files | multipart 필드 파일 → 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 | 인증 바이너리 다운로드; data.job.result.data.artifact.id에 ID |
| DELETE /api/tools/jobs?id=JOB_ID | 종료 작업을 취소; 터미널 작업은 409를 반환 할 수 있습니다 |
HTTP 202 (status: allowed)는 완료되지 않습니다. data.job.status가 완료 될 때까지 모든 2 초마다 오염, 취소 또는 만료됩니다. data.job.result.data에서 성공 데이터를 읽고 data.job.result.error.details에서 고장 세부 사항. 검사는 다운로드 파일없이 JSON를 반환합니다.
모드: must_pass는 모든 규칙을 통과해야 합니다; best_effort는 경고를 가진 후보자를 돌려보낼 수 있습니다. 인라인 규칙 또는 저장된 ruleId를, 결코 둘 다 보내십시오. 단 하나 이미지 공구는 일 당 하나 fileId를 받아들입니다; 이미지 당 일을 창조하십시오.
업로드 및 artifacts 일반적으로 지속 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 사실 반환. 다운로드 artifact 없음.
{
"toolName": "inspect_image",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}도구 열기 및 양식에서 코드를 생성convert_image_to_pdfPOST /api/tools/jobs페이지 순서에 있는 fileIds; pageSize (원래/a4/letter), pageOrientation (초상/landscape), 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 페이지를 반환, 치수, 글꼴 및 임베디드 이미지 사실. 다운로드 Artifact 없음.
{
"toolName": "inspect_file",
"input": {
"fileId": "FILE_ID",
"execution": "async"
}
}도구 열기 및 양식에서 코드를 생성compress_pdfPOST /api/tools/jobsfileId; 규칙.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/rule 실패: 오류를 검사하십시오. 200는 혼자서만 실행하지 않습니다.
카탈로그, OpenAPI 및 공급-제품 /api/tools/validate 엔드포인트 공개. 게스트 웹 처리에는 별도의 세션 / IP 제한 경로가 있으며 익명 자동화 자격 증명이 없습니다. 파일, 작업, 규칙 및 검사는 소유자의 ROI입니다.
/api/tools/rules (GET/POST/DELETE)를 사용하여 저장한 규칙을 위한 /api/tools/jobs를 역사에 얻십시오. OpenAPI는 가득 차있는 스키마를 포함합니다. MCP와 REST 공유 공구 및 계정 quotas. Pro 체크 아웃 및 정상 가동은 아직 열리지 않습니다.
# CLI: ATTACHREADY_BASE_URL + ATTACHREADY_API_KEY
node scripts/tools-cli.mjs run convert_image --input '{"fileId":"FILE_ID","format":"webp"}' --wait