image.getPublic

public

Get a publicly accessible photo (no authentication)

Preserves the flat photo response and generated render URLs. API uploads default to public; cabinet uploads explicitly request private. A private photo is also accessible while its album is publicly published. Metadata follows both photo and album settings.

Parameters

Passed by name in the params object.

Name Type Required Description
id string yes Image UUID

Result

Returns PublicImage:

Field Type Description
created_at * string
custom_crops * array<object>
description * string
exif * PublicEXIF
format * string
height * integer
id * string
renders * array<PublicRender>
size_bytes * integer
status * string
title * string
width * integer

Errors

Code Message When
2002 validation_failed Malformed request; see error.data.
2001 not_found No such resource owned by the caller.
4002 rate_limited Too many requests; wait before retrying.

See the error reference for the full catalog, including the authentication codes.

Example

Request:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "image.getPublic",
  "params": {
    "id": "018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d"
  }
}

Response:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "id": "018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d",
    "title": "Golden Gate at dawn",
    "description": "Long exposure from the Marin Headlands.",
    "status": "ready",
    "width": 6000,
    "height": 4000,
    "size_bytes": 8452016,
    "format": "jpg",
    "exif": {
      "taken_at": "2026-02-11T06:42:18Z"
    },
    "renders": [
      {
        "crop": "large",
        "format": "webp",
        "width": 2048,
        "height": 1365,
        "size_bytes": 412880,
        "url": "https://img.peinture.gumeniuk.com/r/018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d/large.webp?v=3",
        "pending": false
      }
    ],
    "custom_crops": [],
    "created_at": "2026-02-11T07:03:00Z"
  }
}

curl

curl -s https://peinture.gumeniuk.com/rpc \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"image.getPublic","params":{"id":"018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d"}}'

JavaScript

const res = await fetch("https://peinture.gumeniuk.com/rpc", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    jsonrpc: "2.0", id: 1, method: "image.getPublic", params: {"id":"018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d"},
  }),
});
const { result, error } = await res.json();

Go

body := []byte(`{"jsonrpc":"2.0","id":1,"method":"image.getPublic","params":{"id":"018f3a7d-2b8c-7f1a-a4d5-6e7f8a9b0c1d"}}`)
req, _ := http.NewRequest("POST", "https://peinture.gumeniuk.com/rpc", bytes.NewReader(body))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)

Try it

Sends a real request to /rpc from your browser. No authentication required.