Metadata-Version: 2.4
Name: smartsheet-python-sdk
Version: 3.6.0
Summary: Library that uses Python to connect to Smartsheet services (using API 2.0).
License-Expression: Apache-2.0
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Programming Language :: Python :: 3.15
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Office/Business :: Financial :: Spreadsheet
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.md
License-File: NOTICE
Requires-Dist: requests
Requires-Dist: requests-toolbelt
Requires-Dist: six>=1.9
Requires-Dist: certifi
Requires-Dist: python-dateutil
Provides-Extra: test
Requires-Dist: coverage; extra == "test"
Requires-Dist: coveralls; extra == "test"
Requires-Dist: pytest; extra == "test"
Requires-Dist: pytest-rerunfailures; extra == "test"
Requires-Dist: requests-toolbelt; extra == "test"
Provides-Extra: develop
Requires-Dist: coverage; extra == "develop"
Requires-Dist: coveralls[yaml]; extra == "develop"
Requires-Dist: pytest; extra == "develop"
Requires-Dist: pytest-instafail; extra == "develop"
Requires-Dist: pylint; extra == "develop"
Provides-Extra: docs
Requires-Dist: sphinx; extra == "docs"
Requires-Dist: sphinx_rtd_theme; extra == "docs"
Requires-Dist: setuptools_scm; extra == "docs"
Provides-Extra: packaging
Requires-Dist: wheel; extra == "packaging"
Requires-Dist: twine; extra == "packaging"
Requires-Dist: gitchangelog; extra == "packaging"
Requires-Dist: mako; extra == "packaging"
Dynamic: license-file

# Smartsheet Python SDK

[![Build Status](https://github.com/smartsheet/smartsheet-python-sdk/actions/workflows/test-build.yaml/badge.svg)](https://github.com/smartsheet/smartsheet-python-sdk/actions/workflows/test-build.yaml) [![Coverage Status](https://coveralls.io/repos/github/smartsheet/smartsheet-python-sdk/badge.svg?branch=mainline)](https://coveralls.io/github/smartsheet/smartsheet-python-sdk?branch=mainline) [![PyPI version](https://badge.fury.io/py/smartsheet-python-sdk.svg)](https://badge.fury.io/py/smartsheet-python-sdk)

A library for connecting to the [Smartsheet API](https://developers.smartsheet.com/api/smartsheet/) from Python applications.

## Requirements

The SDK is compatible with [actively supported](https://devguide.python.org/versions/#versions) Python versions `3.10`, `3.9`, `3.8`, `3.7`.

## Installation

To install using [pip](http://www.pip-installer.org/):

```bash
pip install smartsheet-python-sdk
```

## Getting Started

To get started with the Smartsheet Python SDK:

1. Set **SMARTSHEET_ACCESS_TOKEN** in your environment, using your Smartsheet API key. Find out more about [Authentication and Access Tokens](https://developers.smartsheet.com/api/smartsheet/guides/basics/authentication) in the Smartsheet API Documentation. You can generate an access token in Smartsheet UI under Account > Personal Settings > API Access.

2. Install the Smartsheet Python SDK (see the installation instructions above)

3. The following snippet shows how to create a Smartsheet client and perform some basic actions using the SDK. Ensure your Smartsheet user has access to at least one sheet.

``` python

import smartsheet

smart = smartsheet.Smartsheet()             # Create a Smartsheet client 

response = smart.Sheets.list_sheets()       # Call the list_sheets() function and store the response object
sheetId = response.data[0].id               # Get the ID of the first sheet in the response
sheet = smart.Sheets.get_sheet(sheetId)     # Load the sheet by using its ID

print(f"The sheet {sheet.name} has {sheet.total_row_count} rows")   # Print information about the sheet
```

## Documentation

Use the following resources to learn more about the SDK capabilities:

1. [Smartsheet Python SDK sample project](https://github.com/smartsheet-samples/python-read-write-sheet)
2. [Python SDK documentation](https://smartsheet.github.io/smartsheet-python-sdk/)
3. [Smartsheet API Documentation](https://developers.smartsheet.com/api/smartsheet/)

## Contributing

We welcome contributions! Before submitting code changes, please review our [Issue First approach](ISSUE-FIRST.md) for creating effective issues that work well with both human reviewers and AI-powered Cloud Agents. For additional contribution guidelines, see [CONTRIBUTING.md](CONTRIBUTING.md).

## Advanced Topics

For details about logging, testing, how to use a passthrough option, and how to override HTTP client behavior,
see [Advanced Topics](ADVANCED.md).

## Developer Agreement

Review the [Developer Program Agreement](https://www.smartsheet.com/legal/developer-program-agreement).

## Acknowledgements

We would like to thank the following people for their contributions to this project:

* Tim Wells - [timwellswa](https://github.com/timwellswa)
* Scott Wimer - [happybob007](https://github.com/happybob007)
* Steve Weil - [seweil](https://github.com/seweil)
* Kevin Fansler - [kfansler](https://github.com/kfansler)
* Nathan Armstrong - [armstnp](https://github.com/armstnp)
