Skip to content

Quick Start

Inspect any public URL and receive structured media intelligence in a single request.

Production API

Base URL:

txt
https://api.urlmediainspector.dev

Swagger Explorer:

txt
https://api.urlmediainspector.dev/api-docs

OpenAPI Specification:

txt
https://api.urlmediainspector.dev/openapi.json

Hosted API Request

bash
curl -X POST "https://api.urlmediainspector.dev/api/v1/inspect?profile=standard" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://images.unsplash.com/photo-example"
  }'
ProfilePurpose
fastlightweight metadata detection
standardbalanced metadata enrichment
fulladvanced media probing

Installation

bash
cd server
npm install

Start the Server

bash
npm run dev

The server starts on port 3000 by default.

Your First Request

Inspect an image with the FAST profile for minimal latency:

bash
curl -X POST https://api.urlmediainspector.dev/api/v1/inspect?profile=fast \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.geekygallery.in/cdn/shop/files/god_16.jpg?v=1726037386&width=1946"}'

Response

jsonc
{
  "success": true,
  "responseSource": "fresh",
  "cached": false,
  "processing": {
    "status": "partial",
    "completion": 0.5,
    "enrichmentsPending": true,
    "completedStages": ["semantic", "mediaFormat", "metadata:image"],
    "pendingStages": [
      "preview:thumbnail",
      "preview:blurhash",
      "preview:palette",
    ],
  },
  "data": {
    "identity": {
      "url": "https://www.geekygallery.in/cdn/shop/files/god_16.jpg?v=1726037386&width=1946",
      "finalUrl": "https://www.geekygallery.in/cdn/shop/files/god_16.jpg?v=1726037386&width=1946",
      "mime": "image/jpeg",
    },
    "semantic": { "kind": "direct-media", "semanticType": "image" },
    "playback": {
      "strategy": "native",
      "component": "img",
      "streamable": false,
      "downloadable": true,
    },
    "metadata": {
      "filename": "god_16.jpg",
      "size": { "bytes": 204800, "formatted": "200 KB" },
    },
  },
  "projection": { "profile": "fast", "hiddenFields": ["preview"] },
}

Try Different Profiles

FULL — Complete enrichment (synchronous)

bash
curl -X POST https://api.urlmediainspector.dev/api/v1/inspect?profile=full \
  -H "Content-Type: application/json" \
  -d '{"url": "https://www.geekygallery.in/cdn/shop/files/god_16.jpg?v=1726037386&width=1946"}'

FULL blocks until all enrichments complete and returns completion: 1 with thumbnail, blurhash, palette, and diagnostics.

STANDARD — Progressive async

bash
curl -X POST https://api.urlmediainspector.dev/api/v1/inspect?profile=standard \
  -H "Content-Type: application/json" \
  -d '{"url": "https://download.blender.org/peach/bigbuckbunny_movies/BigBuckBunny_320x180.mp4"}'

STANDARD returns 202 Accepted for heavy media with a job reference, or 200 OK if enrichment completes immediately.

Inspect a YouTube URL

bash
curl -X POST https://api.urlmediainspector.dev/api/v1/inspect?profile=fast \
  -H "Content-Type: application/json" \
  -d '{"url": "https://youtu.be/GLTTI1NFHus?si=okdNMy6_p0VSqZJG"}'

YouTube URLs are provider-detected — the response includes canonical URL normalization, provider-native thumbnail, and oEmbed intelligence without downloading the video.

Next Steps

Infrastructure Documentation — Behavior-Driven, Schema-Governed