Python library for uploadcare
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
docs Updated examples of codes and added information about models fields. Apr 1, 2016
pyuploadcare restore backward compatibility for Sep 28, 2016
.gitignore Add ``docs/_build`` into .gitignore Apr 10, 2013
.travis.yml add url to django release support policy [skip ci] Sep 29, 2016
AUTHORS.txt new api iterator Jul 14, 2015
requirements.txt Preparation to new release Nov 5, 2015


PyUploadcare: a Python library for Uploadcare Documentation Status

The most important thing for us at Uploadcare is to make file uploading on the web really easy. Everyone is used to the routine work, related to allowing users upload their user pics or attach resumes: from installing image processing libraries to creating folder with right permissions to ensuring the server never goes down or out of space to enabling CDN. Feature like ability to simply use a picture from Facebook or manual cropping are much more burdensome, hence rare. Uploadcare's goal is to change the status quo.

This library consists of an API interface for Uploadcare and a couple of Django goodies.

A simple Uploadcare ImageField can be added to an existing Django project in just a couple of simple steps. As a result, your users are going to be able to see the progress of the upload, choose files from Google Drive or Instagram, and edit form while files are uploading asynchronously.

from django import forms
from django.db import models

from import ImageField
from import FileWidget

class Candidate(models.Model):
    photo = ImageField(blank=True, manual_crop="")

# optional. provide advanced widget options:
class CandidateForm(forms.Form):
    photo = ImageField(widget=FileWidget(attrs={
        'data-cdn-base': '',
        'data-image-shrink': '1024x1024',


  • Python wrapper for Uploadcare REST and Upload APIs
  • Django widget with useful manual crop and multi-upload;
  • ucare console utility;
  • hosted assets (Kudos to Sławek Ehlert!).


pyuploadcare requires Python 2.6, 2.7, 3.3, 3.4 or 3.5.

If you're using pyuploadcare with Django, check .travis.yml for supported Python-Django combinations.


To install it, just run:

$ pip install pyuploadcare

or, if you're into vintage:

$ easy_install pyuploadcare


Besides the Travis CI we use tox. In order to run tests just:

$ pip install tox
$ tox