Base URL
There’s no path prefix beyond/v1 — the service is meant to sit behind a
gateway that handles routing/TLS/auth. Locally, that’s:
Endpoints at a glance
Request format
Both/v1/embed and /v1/compare take multipart/form-data, not JSON —
you’re uploading raw image bytes, not base64-encoding them into a JSON
body. Field names are documented per-endpoint.
Error format
Every error response is JSON with at minimum anerror key, and a
field key when the error is specific to one of multiple uploaded images
(/v1/compare only):
See Architecture → ImageUtils for
exactly where each check happens and why.
Upload limits
- Per-file: 10 MB (
ImageUtils::kMaxUploadBytes) - Total request body: 12 MB (Drogon’s
setClientMaxBodySize, inmain.cpp) — gives headroom for multipart boundaries/headers over two 10 MB files in/v1/compare, but two files close to the per-file limit can still combine to exceed this and get a413from Drogon itself (before your handler even runs). - Dimensions: 20px–4096px on both axes.