Official Python client for the Tippiti API – the transcription and dictation platform for physicians, attorneys, forensic examiners and professional typing services.
Project description
Tippiti Python Client
Official Python client for the Tippiti API – the transcription and dictation platform for physicians, attorneys, forensic examiners and professional typing services.
- Interactive API docs: apidocs.tippiti.io
- OpenAPI specification: tippiti/openapi
- Platform: tippiti.io
- Support: app.tippiti.io/support/create
Installation
pip install tippiti
Requires Python 3.10 or newer. Built on httpx with type-annotated request and response models.
Quick start
import os
from tippiti import Tippiti
from tippiti.generated.api.dictation import dictation_index
from tippiti.generated.models.dictation_index_response_200 import (
DictationIndexResponse200,
)
client = Tippiti.create(token=os.environ["TIPPITI_TOKEN"])
result = dictation_index.sync(client=client, include_notes=True)
if isinstance(result, DictationIndexResponse200):
for dictation in result.data:
print(dictation.id, dictation.title)
The .sync() helper returns the parsed payload directly; its return type is a union of all documented response models (DictationIndexResponse200, DictationIndexResponse401, DictationIndexResponse422, …). Narrow with isinstance() before touching model-specific fields, or use .sync_detailed() if you need the raw response (status code, headers, unparsed body). Every endpoint, parameter, and response is typed, derived directly from the OpenAPI specification at apidocs.tippiti.io.
Async variants
Every endpoint also ships an asyncio variant. Swap .sync(...) for .asyncio(...) (or .sync_detailed(...) for .asyncio_detailed(...)):
import asyncio
async def main() -> None:
result = await dictation_index.asyncio(client=client, include_notes=True)
if isinstance(result, DictationIndexResponse200):
for dictation in result.data:
print(dictation.id, dictation.title)
asyncio.run(main())
Authentication
The client sends your token as a Bearer credential in the Authorization header. Tokens are scoped to the issuing user's permissions (main user or sub-user with the relevant capabilities) and can be created in the account settings.
Resource IDs
All resource identifiers are sqid-encoded strings prefixed with aid-, for example aid-xyz12345. Model fields reflect this – IDs are typed str, never int:
from tippiti.generated.api.dictation import dictation_show
response = dictation_show.sync_detailed(client=client, dictation="aid-xyz12345")
Raw integer IDs are rejected with a 404 response.
Available API modules
After installation, every API group has a dedicated module under tippiti.generated.api.*:
from tippiti.generated.api.dictation import dictation_index, dictation_show, dictation_store
from tippiti.generated.api.folder import folder_index, folder_store
from tippiti.generated.api.account import account_show, account_update
from tippiti.generated.api.instruction_set import instruction_set_index
from tippiti.generated.api.sub_user import sub_user_index
# ...
Module and function names follow the tags and operationIds from the specification. See apidocs.tippiti.io for the full operation list.
Response envelope
.sync() / .asyncio() return a typed dataclass exposing success and either data (success) or message / errors (failure). .sync_detailed() / .asyncio_detailed() wrap that payload in a Response object whose .parsed attribute is typed as a union of all possible status-code responses – use response.status_code to pick the right branch. Validation failures return 422 with per-field error messages. Rate-limit breaches return 429 with a Retry-After header.
Custom base URL
client = Tippiti.create(
token="...",
base_url="https://staging.app.tippiti.io/api",
)
Custom httpx configuration
Pass any keyword argument to Tippiti.create(...) and it is forwarded to the underlying httpx client – for example timeout, proxy, or TLS settings:
client = Tippiti.create(
token="...",
timeout=30.0,
follow_redirects=True,
)
Versioning
This client follows Semantic Versioning. A release note in CHANGELOG.md accompanies every version. Breaking changes to the underlying API produce a major version bump of this package.
License
MIT. The Tippiti platform, trademarks and data are not covered by this license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file tippiti-1.0.2.tar.gz.
File metadata
- Download URL: tippiti-1.0.2.tar.gz
- Upload date:
- Size: 142.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d1eb4bcad3e753eef1796db91d846e6da41ad12cd84209d8d9c8d81931834b3
|
|
| MD5 |
30d14f0d432aabd99925420df9667ade
|
|
| BLAKE2b-256 |
4b2383df227c6e52ee972f85b13ad51dac4d628d13af05facfdd0180c703fab0
|
File details
Details for the file tippiti-1.0.2-py3-none-any.whl.
File metadata
- Download URL: tippiti-1.0.2-py3-none-any.whl
- Upload date:
- Size: 780.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.18
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dfff96a945270eb584f8053e072636b8f8da190d6b10f24e0a1f63550030ecdd
|
|
| MD5 |
df34ac2d3317f18b09adaf900729b1d0
|
|
| BLAKE2b-256 |
a3c20e836b212834ce3bf814776745a232c9264bdebda5649d2bb394e7388209
|