MH MediaHarvester Web Context API

Media

Image Enrichment

Move from a list of image URLs to records your application can reason about—size, format and visual metadata are attached before the next media step.

GET /v1/web/scrape/images

What you get

Developer-ready output for Image Enrichment

01 Image type classification
02 Dimensions and MIME
03 Dominant colors
04 Hosted URL option

Real workflows

Where teams use Image Enrichment

These examples map to the endpoint's current inputs and outputs—not hypothetical platform features.

Filter unusable assets automatically

Remove tiny, unsupported or unsuitable images before they reach a CMS or generation workflow.

OutcomeCleaner media inputs with fewer manual checks.
Choose processing rules by format and size

Use MIME and dimensions to decide whether an asset should be resized, compressed or converted.

OutcomeDeterministic image pipelines from discovered media.
Build a searchable media inventory

Store enriched image metadata alongside source pages and hosted URLs.

OutcomeA media catalog that can be filtered without downloading every file again.

How it works

4 concrete steps from input to result

1

Collect image URLs

2

Fetch lightweight metadata

3

Classify asset type

4

Return enriched records

API response

Fields developers usually wire first

Add dimensions, MIME type, color signals and hosted-media metadata to discovered images so downstream systems can filter and process them intelligently.

images[].classification images[].width images[].height images[].dominantColors
curl.exe -H "X-API-Key: YOUR_API_KEY" "http://127.0.0.1:8013/v1/web/scrape/images"

Developer FAQ

Common questions about Image Enrichment

12 answers
How is image enrichment different from scrape images?

Scrape images finds assets. Image enrichment adds metadata such as type, dimensions, MIME and colors.

Can it detect product images?

It can classify common asset roles. Product-specific accuracy improves when combined with Product Extraction.

Can I host enriched media?

When hosted URL output is enabled, assets can be copied into generated media storage and returned as stable URLs.

What endpoint should I call for Image Enrichment?

Use GET /v1/web/scrape/images. Local development accepts the X-API-Key header with YOUR_API_KEY, and production clients can use the same shape with their own key.

Can I call it from CLI, SDK, MCP and no-code tools?

Yes. The same endpoint can be called with curl, the TypeScript SDK, Python SDK, MCP server, Zapier, Make, n8n, Google Sheets or Excel workflows where appropriate.

How does caching with maxAgeMs work?

When maxAgeMs is supported, a cached response can be reused if it is younger than the requested freshness window. Set maxAgeMs to 0 when you need a fresh scrape or extraction.

What happens when a page is blocked or requires login?

The API returns clear states such as blocked, verification_required, login_required, robots_disallowed or permission_required. It does not promise to bypass access controls.

Which response fields should I store?

Most integrations store images[].classification, images[].width, images[].height, images[].dominantColors, plus source URL, status, confidence and timestamp fields when present. Keep source metadata so users can audit values later.

Can I batch this endpoint?

For local or small workflows, loop over a list of URLs or domains. For larger jobs, use crawl, batch workflow endpoints or a queue so failures and retries are tracked cleanly.

How should I handle errors in production?

Check success, HTTP status, error.type and retryable flags. Retry timeouts and temporary network failures, but do not retry robots, login or permission errors without changing input or authorization.

Does the API work with JavaScript-heavy sites?

The engine router starts with fast fetching and escalates when content quality is low. Browser-style rendering is used where available, while access-control barriers are reported explicitly.

Is this safe to use with customer data?

Send only domains, URLs or fields your workflow needs. Use retention controls for generated artifacts and avoid storing unnecessary raw HTML, screenshots or extracted personal data.

Related data APIs

Build the next step in the workflow