For AI agents: this page is also available as Markdown at https://docs.refabric.com/task-api-reference/image.extract_colours.md, and the index of every page is https://docs.refabric.com/llms.txt.

Production prep

Extract the colours of a garment

Read a garment's colours from its image, with their Pantone matches, largest share first. Delivered as a palette image with the colours in its data.

Endpoint: POST https://api.refabric.com/v1/tasks/image.extract_coloursTask: image.extract_coloursScope: tasks:runCategory: Production prep

Quick start

import os
import time
import requests

headers = {"Authorization": f"Key {os.environ['REFABRIC_API_KEY']}"}

job = requests.post(
    "https://api.refabric.com/v1/tasks/image.extract_colours",
    headers=headers,
    json={
        "image": "art:9f3c01",
    },
).json()
print(job["job_id"])

while True:
    status = requests.get(job["status_url"], headers=headers).json()
    if status["lifecycle"] == "terminal":
        break
    time.sleep(5)

print(requests.get(job["result_url"], headers=headers).json())

cURL waits for the result with Prefer: wait; when the job outlives the wait, it answers 202 with the job's URLs.

Input schema

  • stringrequired

    The garment image to read its colours from, as one string: a URL, a file from an earlier result (art:… or its url) or an upload (file:…). If it is an image of one of your designs, the result is also saved on that design.

    pattern: ^(https://|art:|file:).+$

    Example: art:9f3c01

Output schema

  • array<object>optional

    One file: the palette chart (image/*), with the colours in data. Pass a colour on unchanged wherever a colour is taken (moodboard.create, brand_kit.create).

Required-fields example

{
  "image": "art:9f3c01"
}

Full example

{
  "image": "art:9f3c01"
}

Response example

{
  "job_id": "5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968",
  "lifecycle": "queued",
  "status_url": "http://v3-api.refabric.com/v1/jobs/5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968",
  "result_url": "http://v3-api.refabric.com/v1/jobs/5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968/result",
  "cancel_url": "http://v3-api.refabric.com/v1/jobs/5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968/cancel"
}

Result example

{
  "job_id": "5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968",
  "files": [
    {
      "file": "art:a1b2c4",
      "url": "https://files.example.com/image.extract_colours/1.png",
      "media_type": "image/png",
      "task": "image.extract_colours",
      "job_id": "5f0c2a1e9b8d4c7a8e6f1d2c3b4a5968",
      "created_at": "2026-10-01T09:30:00Z",
      "data": {
        "colours": [
          {
            "hex": "#E8D9C4",
            "name": "Bleached Sand",
            "pantone": "13-1008 TCX"
          },
          {
            "hex": "#2B2F36"
          },
          {
            "hex": "#F4F1EA",
            "name": "Snow White",
            "pantone": "11-0602 TCX"
          }
        ]
      }
    }
  ],
  "has_more": false
}

The file is the palette chart; data.colours is largest share first. The image is one of your designs, so the palette is also saved on that design's production details.

Send an image of a garment and get its colours back, the largest share first, each with its Pantone code when one is known, together with a palette chart image. If the image is one of your designs, the colours are also saved on that design.

Built for

  • A garment's palette for a tech pack
  • Colours to pass on to a moodboard or a brand kit
  • Pantone references for production

What you get

  • One file: the palette chart image.
  • data.colours: the garment's colours, the largest share first, one per hex.

Specs

Input formatsImages, each one string: a URL, an upload (file:…) or a file from an earlier result (art:…). Upload types and sizes: GET /v1/meta limits.upload.
Input countimage: one
Output formatFiles: each one line with its url and its media_type, in the job's result.
Outputs per jobOne file per job.

Choosing a task

Errors

Good to know

    Pricing: Estimate a request before you run it, or see the price of each option.

    For agents and code generation

    Schema changes follow Versioning.