ForHosting KIT · Images

Detect objects

This endpoint doesn't just say what's in a photo — it draws a box around each object and hands you the coordinates. If your workflow needs to count, crop, blur or measure something inside an image, bounding boxes are the piece that makes it possible.

● StablePer request + per image$0.010
Use it from WebAPIEmailApp soonTelegram soon

Run this on our servers with your account. Free tools run in your browser; this one bills your KIT balance per the price above.

Why location matters, not just presence

Knowing a photo 'contains a car' is often not enough — you need to know where the car is, how big it is relative to the frame, and whether there's more than one. That's the gap between classification and detection: a warehouse camera counting boxes on a shelf, a retail app measuring shelf space, or a redaction tool blurring faces all need coordinates, not just a yes/no answer. image.detect_objects returns exactly that — a bounding box, a label and a confidence score for every object it finds.

What the response looks like

POST to /image/detect-objects with an image and get back a list of detections, each one a rectangle (defined by its corner coordinates) paired with the object label inside it and a confidence score. A single photo can return zero, one or dozens of detections depending on what's actually in the frame — a street scene might return pedestrians, vehicles and signage all in one pass.

From a research problem to a routine API call

Locating multiple objects within a single image, rather than labeling the image as a whole, was for years a much harder computer-vision problem than simple classification — it required models built specifically to propose and score regions of an image, not just describe it. That complexity is now behind a single asynchronous endpoint: submit the image, get a task_id back immediately, and receive the detections once processing finishes, without operating any detection model yourself.

Built for pipelines, not single lookups

Because detection work varies wildly in how long it takes depending on image complexity, every request is async: it queues, processes, and delivers by webhook the moment it's done, or through a signed link you can fetch for 24 hours. That means a batch of ten thousand warehouse photos and a single spot-check both use the same call, just at different volumes.

Where it plugs in

Detection is often step one of a bigger job: crop each bounding box to feed into image.classify for a finer-grained label, blur the boxes returned around faces or plates for privacy, or count detections per frame for inventory and crowd-density use cases. Pricing is a small base fee per request plus a per-image rate, both published up front, and a request that fails after three automatic retries is never charged — only a clear error comes back.

Inventory and shelf monitoring

Count and locate products on shelf-camera images to flag out-of-stock sections without a person walking the aisle.

Privacy and redaction pipelines

Detect faces or license plates and use their bounding boxes to automatically blur them before publishing an image.

Security and access footage review

Locate people or vehicles in still frames pulled from camera feeds to speed up manual review of flagged events.

Automated cropping and thumbnails

Use the returned bounding boxes to crop tight, subject-centered thumbnails from product or listing photos automatically.

What does the object detection API return exactly?

A list of detections, each with a bounding box, an object label and a confidence score, for every object found in the image.

How many objects can be detected in one image?

As many as the image actually contains — from zero to dozens — since each detection is returned independently rather than a single fixed count.

Is bounding box detection free?

There's no free tier — free tiers get abused and slow everyone down. Access runs on a prepaid ForHosting KIT balance: top up from $10.00 (it never expires) and each request is charged at its published price, so a call with no balance returns HTTP 402. No subscription, no tokens, no invented credits, and a failed task is never charged.

How is object detection priced?

A small per-request base fee plus a per-image rate, both published on this page — no tokens or hidden credits.

Can I run object detection on a large batch of images?

Yes, each image is submitted as its own async task, so you can queue large batches and collect results by webhook as they finish.

What format are the bounding box coordinates in?

Each detection includes corner coordinates for its rectangle along with the label and confidence, ready to use for cropping, blurring or measuring.

How is detection different from classification?

Classification assigns one label to the whole image; detection locates and labels every individual object within it, with a box for each.

What happens if a detection request fails?

It's retried automatically up to three times; if it still fails you get a clear error and pay nothing for that request.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/image/detect-objects

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, and soon from our app, email and Telegram.

curl -X POST https://api.kit.forhosting.com/image/detect-objects \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"image":"https://ejemplo.com/imagen.jpg"}'
{
  "image": "https://ejemplo.com/imagen.jpg"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "image.detect_objects",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.010
Per image$0.0575

Published price — no tokens, no invented credits. A failed task is never charged.

max_mb15
max_megapixels12
HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.
422task_failedThe task failed after 3 retries. You are never charged for it.

Read the full KIT documentation →