Skip to content

Item fields

The schema is item.schema.json. Unknown fields are ignored, so a site can add its own.

FieldMeaning
idA stable id.
linkThe page of the item, absolute or relative.
imageThe picture for the card, about 512 px wide.
aspectWidth divided by height.

An item whose link or image is not an http(s) URL or a relative reference is dropped. See Security and privacy.

FieldOne line
title, subtitleText on the card and in the viewer.
image_focus, image_fullLarger images for the focused card and the viewer. See Image sizes.
video, projection, stereoVideo URL, its projection (flat, equirect180, equirect360) and stereo layout (mono, sbs, tb).
badgesShort labels drawn on the card.
blurhashA placeholder while the texture loads.
metaFree key and value strings shown in the viewer, in order.
kinditem (default), collection or tag: what the card is.
media_typephoto, gif or video.
unplayable{ "provider": "..." }: the video is an embed that cannot play in WebGL.
creator{ "id", "label" }: who made the item.
collection{ "id", "label", "following" }: the set the item belongs to.
tagsA list of tags.
countThe number of items inside a collection or tag card.
width, heightPixel size of the original image. When width is known, the wall does not ask an image host for a copy wider than the original. See Image sizes.
actionsAction ids that apply to this item, from the manifest’s actions. Absent means all of them. An empty list means none.
state{ "liked": true }: the viewer’s state for this item, by key (boolean, number or string).
likesThe like count.
descriptionLonger text for the viewer.
tagThe tag name on a tag card.
  • state.liked is the state of the like action. Another action reads its own key. See Actions and login.
  • meta values are strings. Show a price as text ("1 250 EUR"), and label the key in the view with panel.metaLabels.
  • A video URL must be allowed by CORS to play in the wall. Without that, set unplayable or leave the video out and the wall offers the item’s page instead.