UGC Photo Scoring
The model gives
an aesthetic score to
photographs based on
their technical parameters
and attractiveness.
This algorithm will solve the problem of content moderation for anyone building a classified platform, a DAM-system, social media websites, or a photography-related app.
Try any user-generated photo to get an objective scoring from the AI
Select photo
JPG and PNG more than 20 Kb and less 10 Mb
Try our samples
A unique model that sees the beauty* of user-generated photos like a human, but gives an objective score to every image instantly and without any doubt
The new neural network UGC Photo Scoring was designed to evaluate the aesthetics and technical quality of user-generated photos (taken both by a professional camera and by a smartphone) to help developers with content moderation.
* Note: The algorithm doesn't estimate the plot and does not measure how cool or beautiful a person or an object on a photo may look. The service is not intended for scoring historical photos, illustrations, or 3D visualizations.
Estimation parameters for this model were established by a group of 10 professional photographers.
It was trained on 347,000 user Instagram photos.
Use Cases
Recommendation Services
Help your users select the best photo. You know how often they have doubts when choosing a photo. Now, you can help them make the best decision while they use your application or upload photos to your website! As a result, your users will be happier with their photos, while you will be happier with the retention rates.
Image Moderation
When you need to filter out poor quality photos that users upload to your service, use the UGC photo scoring algorithm. It instantly analyzes thousands of user-generated photos and assigns them a rating according to their quality.
Image quality control system
If attractiveness is the key to the success of your platform, then don’t allow your user to upload poor photos. Better notify them if they need to choose or make another photo with better quality.
Search Results Ranking
Make visual search results on your classified platform, marketplace, or app better with the UGC photo scoring algorithm. Use it as an additional search criterion or set it as the default. Your customers will appreciate it!
How UGC Photo Scoring works
0 — 20%
Very bad photos are photos with unbalanced composition, unfocused, and overexposed. It includes photos which are too blurred, as well as screenshots of text messages and unattractive collages.
20 — 40%
The “bad” category consists of everyday shots. These photos primitively capture the surrounding reality and have a low technical quality.
40 — 60%
Average photos make up the bulk of Instagram user content. Some author try to do their best: they look for a view and impose filters. The photo can be nice, but we can still see that they are not professionals.
60 — 80%
Good images look like typical Insta blogger’s photography. Staged photos with thoughtful composition, use of filters or retouching, and without technical flaws.
80 — 100%
Excellent images are professional photos made without flaws.


We are a completely pay-as-you-go service. No monthly fees or forced bundles.

for testing in your app or service
500 free requests
pay as you go
1,000 requests for $0.6
an exclusive offer tailored to your business goals
Contact us
After authentication you will gain an access to the UGC Photo Scoring model. To make a request, an Image should be specified by its URL or uploaded with multipart form by parameter 'data'.
Image should be specified by its url or uploaded with multipart form by parameter 'data'. You should use, respectively, GET and POST methods.
The response will contain the aesthetics score and quality class given by the algorithm to the image. You will also get an answer regarding the status of the request.
curl --user "<your-client-id>:<your-client-secret>" ""
client_id = '<your-client-id>'
client_secret = '<your-client-secret>'
params = {'url': ''}
quality = requests.get('', params=params, auth=(client_id, client_secret)).json()

with open('image.jpg','rb') as image:
    data = {'data': image}
    quality ='', files=data, auth=(client_id, client_secret)).json()
$authorization = "<your-client-id>" . ":" . "<your-client-secret>";
$url = "";

$curl = curl_init();
curl_setopt($curl, CURLOPT_USERPWD, $authorization);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$data = curl_exec($curl);

$json = json_decode($data);
And the answer would be:
  "quality": {
    "score": 0.5947988033294678,
    "class": 3
  "status": "ok"
Learn more about the Everypixel API’s models created for Image Keywording, Categorization, and Moderation