Render paint colors from hex values

Repaint the walls, ceiling or cabinet fronts of any scene in an exact color, sent as a hex value. No product is needed.

Updated

How paint renders work

A paint render takes a color instead of a product. It repaints the scene’s own picture in that exact color, so any room works, including a picture you uploaded yourself. Your colors do not need to be products in your catalog first.

A paint render is 1 credit, the same as any other render.

Send a color

Send paint in place of product_id, with the color’s hex value and, if you like, your own name for it:

curl -X POST https://www.skipshoot.com/api/v1/renders \
  -H "Authorization: Bearer $SKIPSHOOT_SECRET_KEY" \
  -H "Idempotency-Key: paint-812-harbour-blue" \
  -H "Content-Type: application/json" \
  -d '{
  "scene_id": 812,
  "paint": {
    "hex": "#4A78B8",
    "name": "Harbour Blue"
  }
}'

The name is yours, up to 60 characters: a color name, a code, or both. It is shown back to you on the render and never changes what is rendered; only the hex value does.

Accepted hex formats

You sendRead as
#4A78B8#4A78B8
4a78b8#4A78B8
#4AB#44AABB

Six hex digits, or the three-digit short form, with or without the #, in either case. Renders report the color back as #RRGGBB in capitals. Anything else is refused with 422 and nothing is charged.

Surfaces that take paint

  • Paint goes on walls, ceilings and cabinet fronts. Name one of those surfaces with surface_id, or leave it out and the first of them in the scene is used.
  • Painting a wall repaints every painted wall in view, as a room painted one color would look.
  • Naming any other kind of surface, such as a floor or a sofa, is refused with 422, and nothing is charged. So is a scene with no wall, ceiling or cabinets.

Render a whole color range

Put each color in a batch, up to 100 at a time. Every color in a range is then shown in the same room, which makes them easy to compare.

curl -X POST https://www.skipshoot.com/api/v1/renders \
  -H "Authorization: Bearer $SKIPSHOOT_SECRET_KEY" \
  -H "Idempotency-Key: coastal-range-library" \
  -H "Content-Type: application/json" \
  -d '{
  "renders": [
    {
      "scene_id": 812,
      "paint": {
        "hex": "#4A78B8",
        "name": "Harbour Blue"
      }
    },
    {
      "scene_id": 812,
      "paint": {
        "hex": "#E8DCC8",
        "name": "Linen"
      }
    },
    {
      "scene_id": 812,
      "paint": {
        "hex": "#6B7F5E",
        "name": "Sage Field"
      }
    }
  ]
}'

Read the result

A paint render carries its color in paint, and product is empty:

200 OK
{
  "render": {
    "id": "8c41f7b6-2d8c-4e7b-9a05-3f2b8e9a6c1d",
    "status": "completed",
    "scene": {
      "id": 812,
      "name": "Library"
    },
    "product": {
      "id": null,
      "name": null
    },
    "paint": {
      "hex": "#4A78B8",
      "name": "Harbour Blue"
    },
    "surface": "Walls",
    "image_url": "https://…",
    "upscale_status": "not_requested",
    "error": null,
    "created_at": "2026-10-21T14:03:12.000Z"
  }
}

Want shoppers to try your colors in their own rooms? The website visualizer does that on your product pages.

Something these pages do not answer? Email admin@skipshoot.com and we’ll help.