The GuardaFoto API

One endpoint. You send a link, it answers with the public photo that link points to and every real size it exists in. Free, no key, no sign-up.

The endpoint

GET https://guardafoto.com/api/resolve?url=<LINK>

Send the link URL-encoded in the url parameter (the name u works too). It answers JSON, with CORS open (Access-Control-Allow-Origin: *), so you can call it straight from a browser, a script or a WordPress plugin — ours does.

What it accepts

Instagram, TikTok, X and Twitch are not in the API: they lock anonymous reads and there is no honest way in without an account key. If that ever changes, they will appear here.

An answer looks like this

{
  "ok": true,
  "platform": "youtube",
  "type": "channel",
  "name": "Justin Bieber",
  "source_url": "https://www.youtube.com/@justinbieber",
  "images": [
    {"kind": "avatar", "label": "1600x1600", "width": 1600, "height": 1600,
     "url": "https://yt3.googleusercontent.com/…=s1600-c-k-…"},
    {"kind": "banner", "label": "2560x424", "width": 2560, "height": 424,
     "url": "https://yt3.googleusercontent.com/…"}
  ],
  "cached": true
}

Every size listed was checked against the real file before answering — a size in the answer is a size that exists. images comes sorted biggest first.

Errors

Fair use

The API is free because it is cheap to run: most answers come from cache and from what the platforms publish openly. Use it in your tools and sites; a link back to guardafoto.com is appreciated but not required. Bulk scraping of the endpoint itself (asking for thousands of unrelated IDs to build a mirror) will get rate-limited — that is what the limit is for. The photos belong to their owners; the API changes nothing about their rights.

Questions or a platform you need: the contact page.