{"slug":"supervision-draw-saastemly-com-v1-annotate-cc9b2d","title":"Annotate an image with detections using supervision's annotators (box, round_box","host":"supervision-draw.saastemly.com","method":"POST","resource":"https://supervision-draw.saastemly.com/v1/annotate","category":"image","description":"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 xy","price_listed":0.003,"price_asked":0.003,"state":"answering","state_label":"Answering","checks_7d":1,"answered_7d":1,"latency_ms_median":1072,"reported_calls_30d":0,"reported_payers_30d":0,"networks":["eip155:8453"],"badge":"unverified","paid_checks_7d":0,"paid_ok_7d":0,"example_input":{"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"},"output_schema":{"$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"},"history":[{"day":"2026-10-03","reachable":true,"status":402,"valid_402":true,"asked_usdc":0.003,"price_match":true,"latency_ms":1072,"error":null}],"description_full":"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.","last_updated":"2026-10-03T14:37:31.89Z","schemes":["exact"]}