---
title: Python SDK
---

<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

## API Docs

[View API documentation](http://pythonhosted.org/PredictionIO/) (compatible with
PredictionIO <%= data.versions.pio %>).

## PyPI

[Browse](https://pypi.python.org/pypi/PredictionIO)

## GitHub

<iframe src="/github/?user=apache&repo=predictionio-sdk-python&type=fork&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="170" height="30"></iframe>
<iframe src="/github/?user=apache&repo=predictionio-sdk-python&type=watch&count=true&size=large" allowtransparency="true" frameborder="0" scrolling="0" width="170" height="30"></iframe>

[View code](https://github.com/apache/predictionio-sdk-python) on GitHub.

## License

[Apache License 2.0](https://github.com/apache/predictionio-sdk-python/blob/develop/LICENSE.txt).
