# AttachReady ## Product AttachReady provides machine-callable tools for file inspection, submission-rule validation, image compression, PDF conversion and submission packages. The independent /tools/ workspaces need no login. Browser-capable image checks can run locally. Guest image/PDF processing uses /api/tools/guest with limited immediate downloads; API keys, MCP and CLI require a free account. Authenticated image and PDF jobs use a private, bounded media runner: Pillow/pillow-heif for images, pikepdf/qpdf for documents. A browser-local JPEG compression option is also available. REST, MCP and the Node CLI share the same job API and authorization. ## Guarantees and limits - Validation reports actual bytes, MIME type, dimensions, pages and each rule result. - Strict mode succeeds only when every hard rule passes. - Best-effort operations label the closest verified result when a target cannot be reached. - Every tool advertises input, output, page, pixel and timeout limits in the shared registry. - Image input: JPEG, PNG, WebP, AVIF, HEIC/HEIF, GIF, TIFF; output: JPEG, PNG, WebP, AVIF. Animated/multipage inputs use the first frame with a warning. 25 MB and 40 MP limits apply. - Images support compression, conversion, contain/cover resize, coordinate crop, EXIF orientation, metadata stripping and JPEG/PNG DPI. JPEG transparency is flattened onto a white or selected background. - PDF: inspect, merge, select/reorder pages, rotate, multi-image layout and embedded-image recompression. 100 pages maximum. Unsupported masks/color spaces are preserved with warnings. Existing signatures require re-signing after processing. - PDF active-content rejection is a structural check, not antivirus or signature verification. Inspection reports structural font/image counts and metadata/signature presence. - Set input.execution to "async" for a durable 202 job; poll get_job until a terminal state, then download its artifact. Cancel through cancel_job. Strict failures preserve their report in job.result.error.details. - inspect_file with fileId inspects uploaded bytes; root-level supplied facts are explicitly labeled and never treated as decoded evidence. - create_submission_package accepts namingTemplate, mode and rules/ruleId; ZIP contains original files, manifest and per-file JSON/Markdown reports. Strict mode rejects a failing package. - Tool inputs expire 24 hours after upload; artifacts expire at their returned expiresAt. Access ends immediately; bounded cleanup runs every 15 minutes and can lag during outages. - Create and revoke API keys at https://attachready.com/settings/apikeys after registering and verifying your email. The full key is shown once. Send Authorization: Bearer $API_KEY for uploads, jobs, polling and downloads. Each key defaults to 120 requests/minute; processing allowances are shared across all account keys. - API key permissions apply to the requested tool. No arbitrary URL ingestion is supported. ## Tool catalog - inspect_file: Inspect uploaded bytes by fileId, or normalize explicitly supplied file facts. (public, sync, timeout 70s) - upload_file: Store an authenticated input file for later tool jobs. (user, sync, timeout 70s) - validate_file: Compare file facts with explicit submission rules. (public, sync, timeout 70s) - compress_image: Compress an image to a verified byte target with optional downsampling. (user, async, timeout 70s) - inspect_image: Decode an uploaded image and inspect pixels, DPI and privacy metadata. (user, async, timeout 70s) - convert_image: Convert an image to JPEG, PNG, WebP or AVIF and remove private metadata. (user, async, timeout 70s) - resize_image: Resize an image proportionally with contain or cover fit. (user, async, timeout 70s) - crop_image: Crop an orientation-corrected image using validated pixel coordinates. (user, async, timeout 70s) - remove_background: Remove the background from an image and return a transparent PNG. (user, async, timeout 70s) - compress_pdf: Optimize a PDF and verify its actual output size and rules. (user, async, timeout 70s) - convert_image_to_pdf: Place one or more images into a checked PDF. (user, async, timeout 70s) - merge_pdfs: Merge PDFs in an explicit order and validate the result. (user, async, timeout 70s) - split_pdf: Split a PDF by a validated page range. (user, async, timeout 70s) - rotate_pdf: Rotate selected PDF pages and re-check the output. (user, async, timeout 70s) - create_submission_package: Build a named material package with a manifest and report. (user, async, timeout 70s) - get_job: Read an authenticated asynchronous job status. (user, sync, timeout 70s) - list_jobs: List authenticated asynchronous jobs with cursor pagination. (user, sync, timeout 70s) - cancel_job: Cancel an authenticated non-terminal asynchronous job. (user, sync, timeout 70s) - download_artifact: Create an authenticated short-lived artifact download. (user, sync, timeout 70s) - save_rule: Save an authenticated reusable submission rule template. (user, sync, timeout 70s) - list_rules: List authenticated owner-scoped submission rule templates. (user, sync, timeout 70s) - get_rule: Read one authenticated owner-scoped submission rule template. (user, sync, timeout 70s) - delete_rule: Delete one authenticated owner-scoped submission rule template. (user, sync, timeout 70s) - get_entitlements: Read authenticated daily usage, quota and tool limits. (user, sync, timeout 70s) ## Machine interfaces - REST tool catalog: https://attachready.com/api/tools - REST validation: https://attachready.com/api/tools/validate - REST jobs: https://attachready.com/api/tools/jobs - REST saved rules: https://attachready.com/api/tools/rules - REST entitlements: https://attachready.com/api/tools/entitlements - REST artifacts: https://attachready.com/api/tools/artifacts - OpenAPI 3.1: https://attachready.com/api/openapi.json - MCP Streamable HTTP: https://attachready.com/mcp - API documentation: https://attachready.com/docs/api - MCP documentation: https://attachready.com/docs/mcp - Pricing data: https://attachready.com/pricing.md - Documentation raw markdown: https://attachready.com/docs/.md - Blog raw markdown: https://attachready.com/blog/.md Raw markdown endpoints serve the corresponding localized page, including its frontmatter. The base language is English (no prefix). Other supported languages use their locale code as a prefix: - zh: https://attachready.com/zh/docs/quick-start.md - ja: https://attachready.com/ja/docs/quick-start.md - ko: https://attachready.com/ko/docs/quick-start.md - de: https://attachready.com/de/docs/quick-start.md - fr: https://attachready.com/fr/docs/quick-start.md - es: https://attachready.com/es/docs/quick-start.md - pt: https://attachready.com/pt/docs/quick-start.md - ru: https://attachready.com/ru/docs/quick-start.md ## Core pages - https://attachready.com/tools - https://attachready.com/docs - https://attachready.com/blog - https://attachready.com/privacy - https://attachready.com/terms