ToolAssay

Annotate an image with detections using supervision's annotators (box, round_box

Annotate an image with detections using supervision's annotators (box, round_box, box_corner, circle, dot, ellipse, triangle, label, color, mask, polygon, halo, background_overlay, blur, pixelate, percentage_bar), applied in order. Input: base64 image up to 4 megapixels, up to 500 detections with xyxy pixel boxes and optional class_id, confidence, ASCII label, polygon. Returns the annotated image (base64 PNG or JPEG), size and counts per class.

Answeringour last check, 2026-10-03
1 of 1checks answered this week
1072 msmedian answer time
$0.003listed price per call
$0.003price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://supervision-draw.saastemly.com/v1/annotate

CategoryImage and media
Provider hostsupervision-draw.saastemly.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days0 from 0 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-03 valid payment request 402$0.003 1072 ms

Example input (from the provider)

{
  "body": {
    "annotators": [
      {
        "thickness": 2,
        "type": "box"
      },
      {
        "text_padding": 4,
        "text_scale": 0.4,
        "type": "label"
      }
    ],
    "class_names": [
      "car",
      "person",
      "ball"
    ],
    "detections": [
      {
        "class_id": 0,
        "confidence": 0.94,
        "xyxy": [
          30,
          60,
          90,
          120
        ]
      },
      {
        "class_id": 1,
        "confidence": 0.88,
        "xyxy": [
          140,
          40,
          180,
          115
        ]
      },
      {
        "class_id": 2,
        "confidence": 0.71,
        "xyxy": [
          190,
          90,
          225,
          125
        ]
      }
    ],
    "format": "jpeg",
    "image": "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",
    "quality": 85
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "properties": {
            "annotators": {
              "description": "Annotators applied in order, each a type name or an object {\"type\": ..., options}. Default [box, label]. Put blur, pixelate, color, mask or background_overlay before box and label. Types: box, round_box, box_corner, circle, dot, ellipse, triangle, label, color, mask, polygon, halo, background_overlay, blur, pixelate, percentage_bar. Options use supervision's names: color, color_lookup, thickness, opacity, roundness, corner_length, radius, position, start_angle, end_angle, base, height, width, kernel_size, pixel_size, outline_thickness, outline_color, border_color, border_thickness, force_box, text_color, text_scale, text_thickness, text_padding, text_position, border_radius, smart_position. color: A hex colour like \"#ff8800\" or a name: black, blue, green, grey, red, roboflow, white, yellow (default: supervision's class palette). color_lookup: What picks the colour: \"class\" (default when every detection has a class_id), \"index\" (position in the list) or \"track\" (tracker_id). position and text_position: Anchor point: center, center_left, center_right, top_center, top_left, top_right, bottom_left, bottom_center, bottom_right, center_of_mass",
              "items": {
                "properties": {
                  "type": {
                    "description": "Annotator type",
                    "type": "string"
                  }
                },
                "required": [
                  "type"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "class_names": {
              "description": "Names indexed by class_id, used in generated labels and in counts.byClass (printable ASCII)",
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            "detections": {
              "description": "Up to 500 detections, drawn in this order",
              "items": {
                "properties": {
                  "class_id": {
                    "description": "Class number, 0 or more; picks the colour and the name from class_names",
                    "type": "integer"
                  },
                  "confidence": {
                    "description": "0 to 1; shown in the label unless label is given",
                    "type": "number"
                  },
                  "label": {
                    "description": "Label text, printable ASCII, up to 64 characters (replaces the generated one)",
                    "type": "string"
                  },
                  "polygon": {
                    "description": "Outline [[x, y], ...] (3 to 512 points) that mask, polygon and halo draw; required on every detection when one of them is used",
                    "items": {
                      "items": {
                        "type": "number"
                      },
                      "type": "array"
                    },
                    "type": "array"
                  },
                  "tracker_id": {
                    "description": "Tracker id, used when color_lookup is track",
                    "type": "integer"
                  },
                  "xyxy": {
                    "description": "Box [x1, y1, x2, y2] in pixels from the top-left corner; may extend past the image",
                    "items": {
                      "type": "number"
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "xyxy"
                ],
                "type": "object"
              },
              "type": "array"
            },
            "format": {
              "description": "Output format (default png)",
              "enum": [
                "png",
                "jpeg"
              ],
              "type": "string"
            },
            "image": {
              "description": "Base64 of a PNG, JPEG, BMP or WebP file (a data: URI also works), up to 4 million pixels and about 2 MB",
              "type": "string"
            },
            "quality": {
              "description": "JPEG quality 1-100 (default 90)",
              "type": "integer"
            }
          },
          "required": [
            "image",
            "detections"
          ]
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST",
            "PUT",
            "PATCH"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON