A Python-based API for accessing Shotgun.
Python C
Latest commit 1780be8 Oct 28, 2016 @kporangehat kporangehat committed on GitHub for #39129: catch empty files before uploading() and raise exception
It was possible to attempt to upload a zero-byte file which can cause all sorts of issues but most notably it generates a ServerError which is misleading to the user. We now check the file exists and is not empty before calling upload(). If the file is empty, and exception is now raised stating the issue.


Shotgun Python API

Shotgun provides a simple Python-based API for accessing Shotgun and integrating with other tools. This is the official API that is maintained by Shotgun Software (support@shotgunsoftware.com)

The latest version can always be found at http://github.com/shotgunsoftware/python-api

Minimum Requirements

  • Shotgun server v2.4.12+.
  • Python v2.4 - v2.7.

High Performance Requirements


Tutorials and detailed documentation about the Python API are available at http://developer.shotgunsoftware.com/python-api).

Some useful direct links:


You can see the full history of the Python API on the documentation site.


Integration and unit tests are provided.

Build Status

  • All tests require the nose unit testing tools, and a tests/config file (you can copy an example from tests/example_config).
  • Tests can be run individually like this: nosetest tests/test_client.py
  • test_client and tests_unit use mock server interaction and do not require a Shotgun instance to be available (no modifications to tests/config are necessary).
  • test_api and test_api_long do require a Shotgun instance, with a script key available for the tests. The server and script user values must be supplied in the tests/config file. The tests will add test data to your server based on information in your config. This data will be manipulated by the tests, and should not be used for other purposes.
  • To run all of the tests, use the shell script run-tests.