# Uploads
The Uploads class from the mapbox.services.uploads module provides access to the Mapbox Uploads API. You can also import it directly from the mapbox module.
```python >>> from mapbox import Uploader
See https://www.mapbox.com/api-documentation/maps/#uploads for general documentation of the API.
Your Mapbox access token should be set in your environment; see the [access
tokens](access_tokens.md) documentation for more information. To use the
Uploads API, you must use a token created with uploads:*
scopes. See
https://www.mapbox.com/account/apps/.
## Upload methods
The methods of the Uploads class that provide access to the Uploads API return an instance of [requests.Response](http://docs.python-requests.org/en/latest/api/#requests.Response).
## Usage
Upload any supported file to your account using the Uploader
. The file
object must be opened in binary mode (rb) and produce bytes when read, not unicode strings.
The name of the destination dataset can be any string of <= 32 chars. Choose one suited to your application or generate one using, e.g., uuid.uuid4().hex. In the example below, we use a string defined in a test fixture.
```python >>> service = Uploader() >>> from time import sleep >>> from random import randint >>> mapid = getfixture(‘uploads_dest_id’) # ‘uploads-test’ >>> with open(‘tests/twopoints.geojson’, ‘rb’) as src: … upload_resp = service.upload(src, mapid) … >>> if upload_resp.status_code == 422: … for i in range(5): … sleep(5) … with open(‘tests/twopoints.geojson’, ‘rb’) as src: … upload_resp = service.upload(src, mapid) … if upload_resp.status_code != 422: … break
This 201 Created response indicates that your data file has been received and is being processed. Poll the Upload API to determine if the processing has finished using the upload identifier from the the body of the above response.
```python >>> upload_resp.status_code 201 >>> upload_id = upload_resp.json()[‘id’] >>> for i in range(5): … status_resp = service.status(upload_id).json() … if status_resp[‘complete’]: … break … sleep(5) … >>> mapid in status_resp[‘tileset’] True
See import mapbox; help(mapbox.Uploader)
for more detailed usage.