Skip to content

Commit 4bdac97

Browse files
committed
chore: update repository name
1 parent 0b74475 commit 4bdac97

File tree

5 files changed

+94
-102
lines changed

5 files changed

+94
-102
lines changed

README.md

Lines changed: 82 additions & 92 deletions
Original file line numberDiff line numberDiff line change
@@ -1,169 +1,159 @@
1-
# pytally-sdk
1+
# PyTally SDK
2+
3+
> Unofficial Python SDK for the [Tally.so](https://tally.so) API.
24
35
[![PyPI version](https://badge.fury.io/py/pytally-sdk.svg)](https://badge.fury.io/py/pytally-sdk)
46
[![Python Versions](https://img.shields.io/pypi/pyversions/pytally-sdk.svg)](https://pypi.org/project/pytally-sdk/)
57
[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)
8+
[![Docs](https://img.shields.io/badge/docs-online-brightgreen)](https://pytally-sdk.fa.dev.br)
9+
10+
---
611

7-
Unofficial Python SDK for the [Tally.so](https://tally.so) API.
12+
## Overview
813

9-
> **Early Development**: This SDK is currently in early development and does not yet cover the entire Tally API. We're actively working on adding more endpoints and features.
14+
**PyTally SDK** is a lightweight, fully typed Python client for the [Tally.so API](https://tally.so).
15+
It provides a clean, Pythonic interface for authenticating, querying, and managing Tally resources -- without worrying about HTTP requests or pagination.
16+
17+
### Implemented Resources
18+
19+
[x] Users
20+
[x] Organizations
21+
[x] Forms
22+
[x] Workspaces
23+
[x] Webhooks
24+
[] MCP
25+
---
1026

1127
## Installation
1228

13-
Install the package using pip:
29+
### pip
1430

1531
```bash
1632
pip install pytally-sdk
1733
```
1834

19-
Or using [uv](https://github.com/astral-sh/uv):
35+
### uv (recommended)
2036

2137
```bash
2238
uv add pytally-sdk
2339
```
2440

41+
**Requirements:**
42+
Python ≥ 3.11
43+
`httpx` (auto-installed)
44+
45+
---
46+
2547
## Quick Start
2648

2749
```python
2850
from tally import Tally
2951

30-
# Initialize the client with your API key
31-
client = Tally(api_key="tly-your-api-key-here")
52+
client = Tally(api_key="tly_your_api_key_here")
3253

33-
# Get current user information
3454
user = client.users.me()
35-
print(f"Hello, {user.full_name}!")
36-
print(f"Email: {user.email}")
37-
print(f"Plan: {user.subscription_plan.value}")
55+
print(f"Hello, {user.full_name} ({user.email})")
3856
```
3957

4058
### With Context Manager
4159

4260
```python
4361
from tally import Tally
4462

45-
with Tally(api_key="tly-your-api-key-here") as client:
46-
user = client.users.me()
47-
print(f"Organization ID: {user.organization_id}")
63+
with Tally(api_key="tly_your_api_key_here") as client:
64+
for form in client.forms:
65+
print(f"{form.name} ({form.id})")
4866
```
4967

50-
## Features
68+
---
5169

52-
### Currently Implemented
70+
## Webhooks — Example Usage
5371

54-
- **Authentication**: Bearer token authentication with API versioning support
55-
- **Users Resource**:
56-
- `client.users.me()` - Get current authenticated user information
57-
- **Error Handling**: Comprehensive exception handling for all HTTP error codes
58-
- **Type Safety**: Full type hints support for better IDE experience
59-
- **Context Manager**: Automatic resource cleanup
72+
### List Webhooks
6073

61-
### Coming Soon
74+
```python
75+
from tally import Tally
6276

63-
- **Forms Resource**: List, retrieve, and manage forms
64-
- **Submissions Resource**: Access and filter form submissions
65-
- **Webhooks Resource**: Manage webhooks and events
66-
- **Organizations Resource**: Manage organization users and invites
67-
- **Workspaces Resource**: List and manage workspaces
77+
client = Tally(api_key="tly_your_api_key_here")
6878

69-
## API Versioning
79+
# Get all webhooks
80+
for webhook in client.webhooks:
81+
print(f"{webhook.url} → enabled={webhook.is_enabled}")
82+
```
7083

71-
The Tally API uses date-based versioning. You can specify a specific API version when initializing the client:
84+
### Create a Webhook
7285

7386
```python
7487
from tally import Tally
7588

76-
client = Tally(
77-
api_key="tly-your-api-key-here",
78-
api_version="2025-02-01" # Optional: specify API version
89+
client = Tally(api_key="tly_your_api_key_here")
90+
91+
webhook = client.webhooks.create(
92+
url="https://your-app.com/webhooks/tally",
93+
event_types=["FORM_RESPONSE"],
7994
)
95+
96+
print(f"Webhook created: {webhook.id}")
8097
```
8198

82-
If not specified, the client will use the version tied to your API key.
99+
For complete API usage, visit the [📘 Webhooks Reference](https://pytally-sdk.fa.dev.br/api-reference/webhooks/).
83100

84-
## Error Handling
101+
---
85102

86-
The SDK provides specific exceptions for different API errors:
103+
## Error Handling
87104

88105
```python
89-
from tally import Tally, UnauthorizedError, RateLimitError, TallyAPIError
106+
from tally import Tally, UnauthorizedError, NotFoundError
90107

91-
client = Tally(api_key="tly-your-api-key-here")
108+
client = Tally(api_key="tly_invalid")
92109

93110
try:
94-
user = client.users.me()
111+
client.users.me()
95112
except UnauthorizedError:
96-
print("Invalid API key!")
97-
except RateLimitError:
98-
print("Rate limit exceeded. Please wait before retrying.")
99-
except TallyAPIError as e:
100-
print(f"API error: {e.message} (status code: {e.status_code})")
113+
print("Invalid API key.")
114+
except NotFoundError:
115+
print("Resource not found.")
101116
```
102117

103-
## Configuration
118+
See [Error Handling → docs](https://pytally-sdk.fa.dev.br/error-handling/).
104119

105-
The client accepts the following configuration options:
106-
107-
```python
108-
from tally import Tally
109-
110-
client = Tally(
111-
api_key="tly-your-api-key-here", # Required: Your Tally API key
112-
api_version="2025-02-01", # Optional: API version
113-
timeout=30.0, # Optional: Request timeout in seconds
114-
base_url="https://api.tally.so" # Optional: Custom base URL
115-
)
116-
```
120+
---
117121

118-
## Getting Your API Key
122+
## Documentation
119123

120-
1. Go to [Tally Settings > API Keys](https://tally.so/settings/api-keys)
121-
2. Click "Create API key"
122-
3. Copy and store your API key securely
124+
👉 Full documentation and API reference available at:
125+
**[https://pytally-sdk.fa.dev.br](https://pytally-sdk.fa.dev.br)**
123126

124-
> **Security Note**: Never commit your API key to version control. Use environment variables or a secure secrets manager.
127+
---
125128

126129
## Development
127130

128-
This project uses [uv](https://github.com/astral-sh/uv) for dependency management.
131+
Wanna help improve the SDK?
129132

130133
```bash
131-
# Clone the repository
132134
git clone https://github.com/felipeadeildo/pytally.git
133-
134-
# Install dependencies
135+
cd pytally
135136
uv sync
136-
137-
# Run tests (coming soon)
138-
uv run pytest
137+
uv run mkdocs serve # preview docs locally
138+
pre-commit install # install pre-commit hooks
139139
```
140140

141-
## Contributing
142-
143-
Contributions are welcome! This SDK is in early development, and we'd love your help to:
144-
145-
- Add missing API endpoints
146-
- Improve documentation
147-
- Report bugs
148-
- Suggest new features
149-
150-
Please feel free to open an issue or submit a pull request.
151-
152-
## License
153-
154-
This project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.
141+
---
155142

156-
## Acknowledgments
143+
## 🔗 Links
157144

158-
This is an unofficial SDK and is not affiliated with or endorsed by Tally. Tally and the Tally logo are trademarks of Tally B.V.
145+
* 📦 [PyPI Package](https://pypi.org/project/pytally-sdk/)
146+
* 💻 [GitHub Repository](https://github.com/felipeadeildo/pytally)
147+
* 🧾 [Tally API Reference](https://developers.tally.so/api-reference/introduction)
148+
* 🪲 [Issue Tracker](https://github.com/felipeadeildo/pytally/issues)
149+
* 📘 [Documentation](https://pytally-sdk.fa.dev.br)
159150

160-
## Links
151+
---
161152

162-
- [PyPI Package](https://pypi.org/project/pytally-sdk/)
163-
- [GitHub Repository](https://github.com/felipeadeildo/pytally)
164-
- [Tally API Documentation](https://tally.so/help/api)
165-
- [Issue Tracker](https://github.com/felipeadeildo/pytally/issues)
153+
## ⚖️ License
166154

167-
---
155+
Licensed under the [Apache License 2.0](https://github.com/felipeadeildo/pytally/blob/main/LICENSE).
168156

169-
Made with ❤️ by [Felipe Adeildo](https://github.com/felipeadeildo)
157+
> **Disclaimer**
158+
> This is an unofficial SDK and is not affiliated with or endorsed by Tally.
159+
> “Tally” and the Tally logo are trademarks of Tally B.V.

docs/index.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,13 +205,13 @@ client = Tally(
205205
## Links
206206

207207
- [PyPI Package](https://pypi.org/project/pytally-sdk/)
208-
- [GitHub Repository](https://github.com/felipeadeildo/pytally)
208+
- [GitHub Repository](https://github.com/felipeadeildo/pytally-sdk)
209209
- [Official Tally API Documentation](https://developers.tally.so/api-reference/introduction)
210-
- [Issue Tracker](https://github.com/felipeadeildo/pytally/issues)
210+
- [Issue Tracker](https://github.com/felipeadeildo/pytally-sdk/issues)
211211

212212
## License
213213

214-
This project is licensed under the Apache License 2.0 - see the [LICENSE](https://github.com/felipeadeildo/pytally/blob/main/LICENSE) file for details.
214+
This project is licensed under the Apache License 2.0 - see the [LICENSE](https://github.com/felipeadeildo/pytally-sdk/blob/main/LICENSE) file for details.
215215

216216
!!! warning "Disclaimer"
217217
This is an unofficial SDK and is not affiliated with or endorsed by Tally. Tally and the Tally logo are trademarks of Tally B.V.

mkdocs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ site_description: Unofficial Python SDK for the Tally.so API
44
site_author: Felipe Adeildo
55
copyright: Copyright © 2025 Felipe Adeildo
66

7-
repo_url: https://github.com/felipeadeildo/pytally
8-
repo_name: felipeadeildo/pytally
7+
repo_url: https://github.com/felipeadeildo/pytally-sdk
8+
repo_name: felipeadeildo/pytally-sdk
99
edit_uri: blob/main/docs/
1010

1111
theme:
@@ -92,6 +92,6 @@ nav:
9292
extra:
9393
social:
9494
- icon: fontawesome/brands/github
95-
link: https://github.com/felipeadeildo/pytally
95+
link: https://github.com/felipeadeildo/pytally-sdk
9696
- icon: fontawesome/brands/python
9797
link: https://pypi.org/project/pytally-sdk/

pyproject.toml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,11 @@ dependencies = [
2626
]
2727

2828
[project.urls]
29-
Homepage = "https://github.com/felipeadeildo/pytally"
30-
Repository = "https://github.com/felipeadeildo/pytally"
31-
Issues = "https://github.com/felipeadeildo/pytally/issues"
29+
Homepage = "https://github.com/felipeadeildo/pytally-sdk"
30+
Repository = "https://github.com/felipeadeildo/pytally-sdk"
31+
Issues = "https://github.com/felipeadeildo/pytally-sdk/issues"
32+
Documentation = "https://pytally-sdk.fa.dev.br/"
33+
3234

3335
[tool.uv.build-backend]
3436
module-name = "tally"

release.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,4 @@ git push origin main --tags
3131

3232
echo ""
3333
echo "✨ Release v$VERSION criada com sucesso!"
34-
echo "🔗 Acompanhe o build em: https://github.com/felipeadeildo/pytally/actions"
34+
echo "🔗 Acompanhe o build em: https://github.com/felipeadeildo/pytally-sdk/actions"

0 commit comments

Comments
 (0)