ASO-Direct Image URL Preflight avatar

ASO-Direct Image URL Preflight

Pricing

$1.00 / 1,000 image inspection results

Go to Apify Store
ASO-Direct Image URL Preflight

ASO-Direct Image URL Preflight

Inspect public image URLs before imports. Check HTTP status, fully decode supported static images, and report dimensions, size and exact duplicates in JSON/CSV. Pay $0.001 per qualifying result. Does not convert images or guarantee importer acceptance.

Pricing

$1.00 / 1,000 image inspection results

Rating

0.0

(0)

Developer

ASO-Direct

ASO-Direct

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

20 days ago

Last modified

Categories

Security

Limited permissions

Share

Inspect public product-image URLs before an import or ingestion job. Version 0.1.5 checks HTTP responses and fully decodes supported static images, then returns ordered JSON/CSV records with status, format, dimensions, size and duplicate references.

A passing result does not guarantee acceptance by Shopify, ZenPlus or any other importer, image rights, image-content safety, or future URL availability. This Actor does not convert, resize, upload or import images.

Input

Supply an array of public, unauthenticated HTTP/HTTPS URLs in urls. Never supply signed private links, credentials or tokens. Apify retains the full input according to storage settings even though result URLs are redacted.

{
"urls": ["https://www.w3.org/Icons/w3c_home.png"],
"max_items": 1,
"concurrency": 1,
"timeout": 5,
"max_bytes": 65536,
"max_pixels": 100000,
"max_redirects": 2
}

This is a public third-party example; future availability and results may change.

  • max_items: default 100, maximum 1,000. Input count must not exceed this value.
  • concurrency: default 2, maximum 4. Applies to the local CLI/API; the billed Actor processes rows sequentially.
  • timeout: default 15, maximum 30 seconds, separately for fetch and decoding.
  • max_bytes: default 10 MiB, maximum 20 MiB per response.
  • max_pixels: default 10 million, maximum 20 million.
  • max_redirects: default 5, maximum 8.

Limits must be positive integers. Cookies, credentials, custom headers and custom proxies are unsupported. These limits are safety bounds, not maximum-throughput or host-memory guarantees.

Results

Only static PNG, JPEG, WebP and GIF that pass identification, verification and full decoding succeed. Animated/multiframe images and other formats are rejected. Filename and Content-Type do not establish success.

Each completed input produces a default Dataset row and a RESULT_###### key-value record. Cumulative JSON in OUTPUT and CSV in RESULTS_CSV are written only when the Actor finishes normally, including a spending-limit stop. An aborted or crashed run can have saved, charged Dataset/individual records but no cumulative JSON or CSV. RUN_SUMMARY reports completed and unprocessed counts, the next input index, stop reason and confirmed custom charges. Missing metadata on failed rows means unknown, not zero.

sha256/duplicate_of identify identical encoded files; pixel_sha256/pixel_duplicate_of identify identical width, height and decoded RGBA pixels. References point to the first matching successful index. This is not perceptual matching or EXIF/ICC normalization.

Pricing and spending limits

Price: $0.001 per qualifying inspection result ($1 per 1,000), using only the image-inspection-result custom event. No startup fee or automatic per-Dataset-row fee is configured.

A charge is eligible only after a retrievable result is saved, once per exact input URL string per run:

  • A fully decoded supported static image.
  • An observed HTTP 404 or 410.
  • A complete, nonempty HTTP 2xx response conclusively classified as invalid image, unsupported format or unsupported animated image.

Exact repeated URL strings reuse their first result without another fetch or charge. Different URL strings may each be charged even if their image bytes or decoded pixels match. Query order, escapes and fragments are part of exact URL identity.

Preflight URL rejection, HTTP 401/403/429/5xx, DNS/TLS/protocol failures, timeouts, decoding/process failures, size/pixel limits and incomplete responses are not chargeable under this contract.

Use Apify's Maximum cost per run setting, not an input property named max_charged_items. When the event budget is exhausted the Actor stops; trailing inputs are not inspected and do not receive completed rows. The event-charge cap is not a general compute/storage spending cap.

Result storage and charging are separate operations. Exactly-once billing is not promised. Resurrecting the same run with identical input can repair final exports from completed journal entries without repeating completed inspections or charges. Starting a new run is separate work and may charge again. If interrupted with an unresolved delivery or charge intent, the Actor stops for reconciliation rather than blindly repeating operations. Do not clear billing state or retry a charge without checking the original platform ledger and saved records.

Security and privacy

Only public addresses are accepted. URL and redirect checks, DNS/IP pinning, TLS hostname verification, bounded requests and subprocess decoding reduce risk. They are not an independent security certification. Results redact URL paths, query strings and fragments; hostnames remain. Full INPUT may still contain the submitted URLs in Apify storage. Manage retention and inspect results before sharing.

Verified scope

Version 0.1.5 was tested on Apify with the Python SDK 4.1.0. Tests covered a spending limit below one event, a one-event limit, a supported PNG, exact URL repetition, a rejected FTP URL, and a distinct URL pointing to identical image content. Dataset, cumulative JSON, journal rows and CSV agreed in the mixed case. These tests do not certify maximum-load operation, every format variant, broad network environments or downstream importer acceptance.

Troubleshooting

For HTTP failures, verify the object exists and allows unauthenticated access. For unsupported/animated/invalid files, prepare a supported static image outside this Actor. For size/time limits, split work or adjust only within the documented bounds. Private/metadata address restrictions cannot be bypassed. An Actor run can succeed while individual rows report expected failures; inspect each row and RUN_SUMMARY.

No custom integration setup, support SLA or guaranteed savings is included. For issue reports, include the version, reason code and a nonsensitive reproduction; remove secret URLs and private input first.