API · typed image scoring

Category, objects and photo quality — in a single API response for marketplaces and media libraries

Typed image scoring for your pipeline: what is in the picture, whether a person is present, how sharp the photo is. The output is an option from a given list, a yes/no with a probability, or a score on a scale — not the free-form text of a neural network.

Leave your contacts — we will set up access and estimate for your volume.

Service responsedone
  • choiceWhat is shown?
    Animal74%
  • noulIs a person present?
    No0.12
  • scoreImage quality
    High2.4 / 3

An option from your list, a yes/no with a probability, or a score on a scale — a single machine-readable answer.

The problem the service solves

Four customer problems and how a strict machine-readable answer closes them.

1

The image stream keeps growing, and manual review does not scale.

API scoring by a single rule applies to the whole stream; manual review kicks in only where you set the threshold.

2

Manual review is expensive and subjective.

The same attribute is scored identically for every image: decisions are uniform and reproducible.

3

You need uniform rules and an audit trail for every decision.

Every response is a typed structure; you define the thresholds and rules, and the service does not override them.

4

Integration seems long and complex.

A quick API start without running your own infrastructure; pay-for-use pricing, with no subscription fee for idle time.

How it is used in practice

Segment-by-segment scenarios with an example of a typed response.

Marketplaces and e-commerce

We verify and categorize product cards through the API: object type and category match — right inside the publishing pipeline.

is_product: 0.94→ the card gets its category automatically.See an example response →

Media libraries and DAM systems

Automatic tagging: what is in the picture — people, animals, food, objects. No manual media-library labeling.

subject: "animal"→ tags are applied on upload.See an example response →

Classifieds and listing boards

We filter out blurry and dark photos before publication, so listings look neat and consistent.

sharpness: 2.4→ depending on your threshold, the photo goes back for rework.See an example response →

Content platforms

Lowering the cost of manual review: routine uploads are handled automatically, and a human looks only at the borderline cases set by your threshold.

has_text: 0.62→ the decision is made by your business rule.See an example response →

Example scenario: a stream of product cards

Each image goes into an API job and returns one typed answer: a category (a choice from a list), a "has text" attribute (yes/no with a probability), and a sharpness score (on a scale). Your rule then decides whether to publish the card, send it back for rework, or show it to a human.

What has been measured on public datasets

The service has been tested on open datasets with standard labels — object presence checks and multiple-choice answers. Below is the accuracy on each dataset, so quality can be compared against external references.

DatasetTaskImagesKey metricAlso
POPErandom / popular / adversarialObject presence (yes/no)19980.815F1Accuracy: 0.839Precision: 0.954Recall: 0.712
MMVPChoice between two options3000.763Accuracymacro-F1: 0.763
COCO presencethreshold tuned on the data (>0.5)Presence of 80 categories (multi-label)10000.939ROC-AUCmacro ROC-AUC: 0.972PR-AUC: 0.732F1 (tuned threshold): 0.694

The measurements use closed questions: a choice from a fixed list, or yes/no with a probability. The same engine that serves the API is used, and images are resized to a single size. For yes/no tasks we report threshold-independent ROC-AUC plus F1 at a tuned threshold: a fixed 0.5 threshold on uncalibrated probabilities understates accuracy.

Public datasets do not reflect every real-world scenario. Accuracy on your data is evaluated separately on a pilot set.

From image to finished answer in four steps

Four steps from sending an image to a finished answer. We discuss integration and the details for your volumes after your request.

01Send

The image and questions go into an API job: the service creates a ticket for processing.

02Queue

The job gets a number and a place in the queue — you can close the page, the result will not be lost.

03Score

The service answers the given list of options based on your set of attributes.

04Result

The finished typed response comes back and is immediately handled by your rules.

Try it on your own image

Upload your image and ask three questions — one per answer type: a choice from a list, yes/no, and a score on a scale. The service returns a machine-readable JSON answer. No sign-up and no talking to a manager required.

Upload an imageJPG or PNG

Your questions

  1. Choice from a listcategory
    Categories
  2. Yes / nopresent
  3. Score on a scalescore
    0%25%50%75%100%
  1. Image
  2. Queue
  3. Processing
  4. Done

Upload an image to run the check.

Enter a question.

Example response
{
"usage": {
"input_tokens": 2749
},
"results": {
"category": {
"answer": "category_0",
"confidence": 0.738,
"probabilities": {
"category_0": 0.738,
"category_1": 0.145,
"category_2": 0.09,
"category_3": 0.027
}
},
"present": 0.124,
"score": {
"score": 2.42,
"confidence": 0.61,
"probabilities": {
"0": 0.08,
"1": 0.11,
"2": 0.2,
"3": 0.61,
"4": 0
}
}
}
}

`category` — the chosen category with `confidence` and a distribution over options; `present` (yes/no) — the probability of "yes" (a number from 0 to 1); `score` — the score on the scale (a weighted level) with `confidence`. You apply the threshold and manual review — the service returns a typed score.

The same result — in a single API request

The demo above runs through the public endpoint of the service. In your product, send an image and a list of questions to POST /v1/jobs and collect the result via GET /v1/jobs/{job_id}. Processing is asynchronous: first a ticket arrives, then the finished answer.

  • POST/v1/jobs

    Enqueues a job. Accepts multipart/form-data (the image field is a file, questions is a JSON string) or JSON with image as a data URL. Responds with 202 and a ticket.

  • GET/v1/jobs/{job_id}

    Job status: queued, running, done or error. On done, a typed response arrives — results and usage.

Response codes

  • 202Job accepted, a ticket has been issued.
  • 422The file failed validation or the request body is invalid.
  • 429Too many requests — see the Retry-After header.
  • 503The queue is full or the service is temporarily unavailable.
Request with a file
curl -X POST https://<host>/v1/jobs \
  -F "image=@photo.jpg;type=image/jpeg" \
  -F 'questions={"category":{"type":"choice","instructions":"What fruit is in the photo?","criteria":{"red_apple":"Red apple","green_apple":"Green apple"}}}'
Response
202 Accepted
{"job_id":"...","status":"queued","position":0}

An access key is issued after your request; the examples above are the endpoint contract.

API access and pricing

Quick start with the API

  1. 1Send a request — we will issue an API access key.
  2. 2Send an image and a list of questions with your first API call.
  3. 3Get a typed response and wire it into your business rules.

We work out the specific scenario and thresholds during onboarding.

Free until November 1, 2026.

Until November 1, 2026, API access is free. After that — pay-as-you-go (PayAsYouGo) in rubles, with no subscription fee for idle time, no foreign-currency cards and no overseas subscriptions. The contract and settlements are within Russia; we estimate the cost for your volume based on your request.

Russian service.

Development and support for Russia and the CIS, with documentation and support in Russian. The offer and company details are in the footer.

Besides the API, the solution can be deployed in your own infrastructure — terms are discussed separately upon request.

Access and pricing

Image categorization and tagging, object and text recognition, photo quality assessment, and company compliance rules.

Through the API: you get access and embed image scoring into your product or pipeline. We discuss the scenario and thresholds at the start.

Until November 1, 2026, the service is free. After that — PayAsYouGo: you pay for actual usage, in rubles. No foreign-currency cards, overseas subscriptions, or subscription fee for idle time. The cost for your volume is estimated upon request.

No. The output is an answer option from those you set: a choice from a list, a yes/no with a probability, or a score on a scale. Such an answer can be processed by rules and logged directly.

Yes, right on this page: upload your own image and get the scoring result, including the JSON answer.

Yes, deployment in your own infrastructure is possible; it is a separate option, and terms are discussed individually upon request.

Ready to connect via API?

Leave your contacts — we will set up free API access until November 1, 2026 and help with your first call. It takes a minute. We do not call without a request — we only respond to your inquiry.