Sign in Start free

VKDevelopers

Real objects, in your product.

An embeddable viewer for any page and a REST API to create objects from your own system.

For marketplaces and portals.

Let your users create the 360°.

A vehicle portal, a marketplace or a store network plugs in the API once. From then on, each seller films the product at home, sends it through your own app or site, and the listing shows it in 360° with the real photos, in about eight minutes.

  • Your brand on the upload screen; the processing is ours
  • Allowance and keys per account
  • Faces and license plates blurred automatically

Why it is worth it.

94%

more conversions, on average, for stores using 3D instead of photos alone.

Shopify, 2020
44%

more add-to-cart after shoppers interacted with a product in 3D.

Rebecca Minkoff · Shopify
11×

more likely to buy among Houzz app users who placed products in 3D.

Houzz · Retail Dive, 2018
11%

of returns come from products that did not match their pictures online.

Coresight Research, 2024

Paste two lines. It turns.

The viewer

One JavaScript file, no dependencies, WebGL2. Drag to turn, two fingers to zoom, arrow keys to turn. It fires veyskar-pronto when the first photo shows.

Always keep the version in the script address (?v=N). Browsers cache the file.

Objects only open on the sites you allow in the account area (any site, by default). On the free trial, embed the share page in an iframe instead: it shows the Powered by VEYSKAR seal.

<script src="https://objetos.veyskar.com/js/veyskar-viewer.js?v=5"></script>
<veyskar-object
  src="https://objetos.veyskar.com/poltrona-cognac/"
  background="miv" ring></veyskar-object>

EmbedCreator+

AttributeWhat it does
srcAddress of the object folder. The only required attribute.
backgroundmiv (dark studio) or transparent.
ringShows the ring of captured angles.
autoplayTurns slowly on its own until the first touch.
zoomAllows pinch and wheel zoom.
az / elInitial view, in degrees.

Create objects from your own system

REST API

Available on Business and above. Base address https://api.veyskar.com.

Authenticate with Authorization: Bearer vk_live_…. Create keys in the account area, under API keys. A key is shown only once. Use it on servers, never in the browser.

Limit: 240 requests per minute per key.

GET/v1/objetosList the account objects and the allowance: franquia {total, usadas, restantes}.
POST/v1/objetosCreate an object. Body {"titulo", "altura_m"}. Returns {objeto, envio_url}.
PUT<envio_url>Send the raw video bytes directly to storage. Valid for 1 hour. It does not pass through our servers.
POST/v1/objetos/{id}/processarStart processing after the upload. Takes 7 to 8 minutes.
GET/v1/objetos/{id}Current state, warnings, error and files.
DELETE/v1/objetos/{id}Take the object down and delete its public files.

Full flow

Webhooks per key are coming soon. For now, poll the object while it is processing.

# 1. create
curl -X POST https://api.veyskar.com/v1/objetos \
  -H "Authorization: Bearer $VEYSKAR_KEY" -H "Content-Type: application/json" \
  -d '{"titulo":"Poltrona Cognac","altura_m":0.82}'
# -> {"objeto":{"id":42,"estado":"aguardando_video",...},"envio_url":"https://..."}

# 2. upload the video straight to envio_url
curl -X PUT "$ENVIO_URL" -H "Content-Type: video/mp4" --data-binary @poltrona.mp4

# 3. process, then poll every 20-30 s
curl -X POST https://api.veyskar.com/v1/objetos/42/processar -H "Authorization: Bearer $VEYSKAR_KEY"
curl https://api.veyskar.com/v1/objetos/42 -H "Authorization: Bearer $VEYSKAR_KEY"

Reference

Object format

Each object is a public folder: manifest.json, the real photos, splat.spz (0.5 to 1.4 MB), capa.jpg and export/giro.mp4 and .gif. A typical object weighs 12 to 20 MB, and visitors download only what they see.

Errors come as {"erro": "message"}.

estadoaguardando_video, processando, pronto or falhou
etapaCurrent processing step
avisos[]captura_com_buracos, uma_altura_so, altura_estimada
erro{etapa, mensagem, regravar_segundos} when it failed
srcObject folder, for the viewer
capa, mp4, gifPreview image 1200×630 and the object turning
linkShare page, when ready

Errors

400Invalid data
401Missing or invalid key
402Allowance used up or payment pending
403Plan without API
404Not found
429Too many requests