Skip to main content

The photo fetcher

What NoviKvadrat-PartnerFetch is, when it downloads your photos, the rules it follows, and how to report a problem.

What it is#

NoviKvadrat-PartnerFetch downloads the listing photos that partner software sends to the Novi Kvadrat partner API as URLs. It runs when a staged listing is imported — within minutes of a push — and only for photos it does not already have.

Its user agent:

text
NoviKvadrat-PartnerFetch/1 (+https://developers.novikvadrat.rs/fetcher)

The rules#

  • HTTPS on port 443 only.
  • Public hosts only: addresses in private, local, link-local and other reserved ranges are refused, and so are IP-literal URLs and local host names.
  • The connection goes to the address we checked, so a DNS change in the middle of a request can't redirect it.
  • At most 3 redirects, each checked again.
  • 15 seconds for the whole download, 10 MiB per image.
  • JPEG, PNG, WebP and AVIF only, decided by the file's own bytes (its magic number), not only by Content-Type. SVG, GIF and HEIC are refused.
  • Images are re-encoded to WebP, at most 2560 px on the long side, with metadata stripped.
  • Unchanged photos are not fetched again when the URL and its digest match the previous push.
  • Sandbox items fetch at most 8 photos.
  • A 4xx answer, a non-image or a file too large fails the photo at once; a timeout, a 5xx or a 429 is retried later with backoff.

Allowing the fetcher#

Our egress IP addresses are not fixed and not published. Serve photos from a public CDN or allow the user agent.

Reporting a problem#

If the fetcher misbehaves on your servers — too many requests, an unexpected address, anything else — write to partners@novikvadrat.rs with the time, the URL and your server's log line. Partners: see Photos and the fetcher.