# AccessibleTranslator Python SDK
Official Python SDK for AccessibleTranslator API - automated cognitive accessibility
Transform complex text into accessible content for users with autism, intellectual disabilities, limited vocabulary, and other cognitive accessibility needs.
## Features
- **Async/Sync Support**: Built with asyncio for optimal performance
- **Type Safety**: Full type hints with Pydantic models
- **Comprehensive Error Handling**: Detailed error messages and retry logic
- **API Key Authentication**: Secure API key-based authentication
- **Complete API Coverage**: All endpoints including text translation, transformations, and word balance
## Installation
```bash
pip install accessibletranslator
```
## Quick Start
```python
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
async def main():
# Configure the client with your API key
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
# Create API instances
translation_api = accessibletranslator.TranslationApi(api_client)
# Transform text for better accessibility
request = TranslationRequest(
text="The implementation of this algorithm requires substantial computational resources and exhibits significant complexity in its operational parameters.",
transformations=[
"language_simple_sentences",
"language_common_words",
"clarity_concrete_examples"
]
)
# Get the accessible version
result = await translation_api.text_api_translate_post(request)
print(f"Original: {request.text}")
print(f"Accessible: {result.translated_text}")
print(f"Word balance: {result.word_balance}")
print(f"Processing time: {result.processing_time_ms}ms")
# Run the example
asyncio.run(main())
```
## Authentication
Get your API key from [AccessibleTranslator](https://www.accessibletranslator.com/resources/api-docs):
```python
import accessibletranslator
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
```
## API Reference
### Text Translation
Transform text for cognitive accessibility:
```python
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
async def translate_text():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
request = TranslationRequest(
text="Your complex text here",
transformations=[
"language_simple_sentences",
"language_common_words",
"clarity_pronouns"
],
target_language="Same as input" # or "English", "Spanish", etc.
)
result = await translation_api.text_api_translate_post(request)
return result
asyncio.run(translate_text())
```
### Available Transformations
Get list of available transformations:
```python
async def get_transformations():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
transformations = await translation_api.available_transformations_api_transformations_get()
print(f"Available transformations: {transformations.total_transformations}")
for transform in transformations.transformations:
print(f"- {transform.name}: {transform.description}")
return transformations
asyncio.run(get_transformations())
```
### Target Languages
Get supported target languages:
```python
async def get_languages():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
languages = await translation_api.available_target_languages_api_target_languages_get()
print(f"Supported languages: {languages.total_languages}")
for lang in languages.languages:
print(f"- {lang}")
return languages
asyncio.run(get_languages())
```
### Word Balance
Check your remaining word balance:
```python
async def check_balance():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
user_api = accessibletranslator.UserManagementApi(api_client)
balance = await user_api.word_balance_users_word_balance_get()
print(f"Remaining words: {balance.word_balance}")
return balance
asyncio.run(check_balance())
```
## Error Handling
```python
import asyncio
import accessibletranslator
from accessibletranslator.rest import ApiException
async def handle_errors():
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'}
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
try:
request = TranslationRequest(
text="Text to transform",
transformations=["language_simple_sentences"]
)
result = await translation_api.text_api_translate_post(request)
return result
except ApiException as e:
if e.status == 401:
print("Invalid API key")
elif e.status == 402:
print("Insufficient word balance")
elif e.status == 422:
print("Invalid request data")
else:
print(f"API error: {e.status} - {e.reason}")
except Exception as e:
print(f"Unexpected error: {e}")
asyncio.run(handle_errors())
```
## Rate Limiting
The API includes rate limiting. The SDK can automatically handle retries when properly configured:
```python
import asyncio
import accessibletranslator
from accessibletranslator.models.translation_request import TranslationRequest
from accessibletranslator.exceptions import ApiException
async def with_retry():
# ⚠️ IMPORTANT: Retries must be explicitly enabled
configuration = accessibletranslator.Configuration(
api_key={'ApiKeyAuth': 'sk_your_api_key_here'},
api_key_prefix={'ApiKeyAuth': 'Bearer'}, # Required for authentication
retries=3 # Enable 3 retry attempts with exponential backoff
)
async with accessibletranslator.ApiClient(configuration) as api_client:
translation_api = accessibletranslator.TranslationApi(api_client)
# Define the request
request = TranslationRequest(
text="Text to translate",
transformations=["language_simple_sentences"]
)
try:
# The SDK will automatically retry on rate limits (429) and server errors (5xx)
# Retry timing: 100ms → 200ms → 400ms → 800ms (exponential backoff)
result = await translation_api.text_api_translate_post(request)
return result
except ApiException as e:
if e.status == 429:
print("Rate limit exceeded. All retries exhausted. Please wait and try again.")
elif e.status >= 500:
print("Server error. All retries exhausted.")
else:
print(f"API error: {e.status} - {e.reason}")
raise
asyncio.run(with_retry())
```
**Note:** By default, retries are **disabled**. You must set `retries=N` to enable automatic retry handling for rate limits and server errors.
## Health Check
Check API health status:
```python
async def health_check():
configuration = accessibletranslator.Configuration()
async with accessibletranslator.ApiClient(configuration) as api_client:
system_api = accessibletranslator.SystemApi(api_client)
health = await system_api.health_check_health_get()
print(f"API Status: {health.status}")
print(f"Timestamp: {health.timestamp}")
return health
asyncio.run(health_check())
```
## Requirements
- Python 3.9+
- aiohttp
- pydantic
- typing-extensions
## Support
- **Documentation**: [AccessibleTranslator API Docs](https://www.accessibletranslator.com/resources/api-docs)
- **Issues**: For SDK-related issues, please open an issue in the repository
- **API Support**: Visit [AccessibleTranslator.com](https://www.accessibletranslator.com) for general API support
## License
This SDK is licensed under the MIT License.
Raw data
{
"_id": null,
"home_page": "https://www.accessibletranslator.com/resources/api-docs",
"name": "accessibletranslator",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "accessibility, translation, text-simplification, cognitive-accessibility, autism, sdk, python",
"author": "AccessibleTranslator Team",
"author_email": "AccessibleTranslator Team <support@accessibletranslator.com>",
"download_url": "https://files.pythonhosted.org/packages/52/df/9dc7185f3aa252fb94e21974cfd2ec37e3086811d04752c4cc8a92dd2998/accessibletranslator-1.0.3.tar.gz",
"platform": null,
"description": "# AccessibleTranslator Python SDK\n\nOfficial Python SDK for AccessibleTranslator API - automated cognitive accessibility\n\nTransform complex text into accessible content for users with autism, intellectual disabilities, limited vocabulary, and other cognitive accessibility needs.\n\n## Features\n\n- **Async/Sync Support**: Built with asyncio for optimal performance\n- **Type Safety**: Full type hints with Pydantic models\n- **Comprehensive Error Handling**: Detailed error messages and retry logic\n- **API Key Authentication**: Secure API key-based authentication\n- **Complete API Coverage**: All endpoints including text translation, transformations, and word balance\n\n## Installation\n\n```bash\npip install accessibletranslator\n```\n\n## Quick Start\n\n```python\nimport asyncio\nimport accessibletranslator\nfrom accessibletranslator.models.translation_request import TranslationRequest\n\nasync def main():\n # Configure the client with your API key\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n # Create API instances\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n # Transform text for better accessibility\n request = TranslationRequest(\n text=\"The implementation of this algorithm requires substantial computational resources and exhibits significant complexity in its operational parameters.\",\n transformations=[\n \"language_simple_sentences\",\n \"language_common_words\",\n \"clarity_concrete_examples\"\n ]\n )\n \n # Get the accessible version\n result = await translation_api.text_api_translate_post(request)\n \n print(f\"Original: {request.text}\")\n print(f\"Accessible: {result.translated_text}\")\n print(f\"Word balance: {result.word_balance}\")\n print(f\"Processing time: {result.processing_time_ms}ms\")\n\n# Run the example\nasyncio.run(main())\n```\n\n## Authentication\n\nGet your API key from [AccessibleTranslator](https://www.accessibletranslator.com/resources/api-docs):\n\n```python\nimport accessibletranslator\n\nconfiguration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n)\n```\n\n## API Reference\n\n### Text Translation\n\nTransform text for cognitive accessibility:\n\n```python\nimport asyncio\nimport accessibletranslator\nfrom accessibletranslator.models.translation_request import TranslationRequest\n\nasync def translate_text():\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n request = TranslationRequest(\n text=\"Your complex text here\",\n transformations=[\n \"language_simple_sentences\",\n \"language_common_words\",\n \"clarity_pronouns\"\n ],\n target_language=\"Same as input\" # or \"English\", \"Spanish\", etc.\n )\n \n result = await translation_api.text_api_translate_post(request)\n return result\n\nasyncio.run(translate_text())\n```\n\n### Available Transformations\n\nGet list of available transformations:\n\n```python\nasync def get_transformations():\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n transformations = await translation_api.available_transformations_api_transformations_get()\n \n print(f\"Available transformations: {transformations.total_transformations}\")\n for transform in transformations.transformations:\n print(f\"- {transform.name}: {transform.description}\")\n \n return transformations\n\nasyncio.run(get_transformations())\n```\n\n### Target Languages\n\nGet supported target languages:\n\n```python\nasync def get_languages():\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n languages = await translation_api.available_target_languages_api_target_languages_get()\n \n print(f\"Supported languages: {languages.total_languages}\")\n for lang in languages.languages:\n print(f\"- {lang}\")\n \n return languages\n\nasyncio.run(get_languages())\n```\n\n### Word Balance\n\nCheck your remaining word balance:\n\n```python\nasync def check_balance():\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n user_api = accessibletranslator.UserManagementApi(api_client)\n \n balance = await user_api.word_balance_users_word_balance_get()\n print(f\"Remaining words: {balance.word_balance}\")\n \n return balance\n\nasyncio.run(check_balance())\n```\n\n\n## Error Handling\n\n```python\nimport asyncio\nimport accessibletranslator\nfrom accessibletranslator.rest import ApiException\n\nasync def handle_errors():\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'}\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n try:\n request = TranslationRequest(\n text=\"Text to transform\",\n transformations=[\"language_simple_sentences\"]\n )\n \n result = await translation_api.text_api_translate_post(request)\n return result\n \n except ApiException as e:\n if e.status == 401:\n print(\"Invalid API key\")\n elif e.status == 402:\n print(\"Insufficient word balance\")\n elif e.status == 422:\n print(\"Invalid request data\")\n else:\n print(f\"API error: {e.status} - {e.reason}\")\n except Exception as e:\n print(f\"Unexpected error: {e}\")\n\nasyncio.run(handle_errors())\n```\n\n## Rate Limiting\n\nThe API includes rate limiting. The SDK can automatically handle retries when properly configured:\n\n```python\nimport asyncio\nimport accessibletranslator\nfrom accessibletranslator.models.translation_request import TranslationRequest\nfrom accessibletranslator.exceptions import ApiException\n\nasync def with_retry():\n # \u26a0\ufe0f IMPORTANT: Retries must be explicitly enabled\n configuration = accessibletranslator.Configuration(\n api_key={'ApiKeyAuth': 'sk_your_api_key_here'},\n api_key_prefix={'ApiKeyAuth': 'Bearer'}, # Required for authentication\n retries=3 # Enable 3 retry attempts with exponential backoff\n )\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n translation_api = accessibletranslator.TranslationApi(api_client)\n \n # Define the request\n request = TranslationRequest(\n text=\"Text to translate\",\n transformations=[\"language_simple_sentences\"]\n )\n \n try:\n # The SDK will automatically retry on rate limits (429) and server errors (5xx)\n # Retry timing: 100ms \u2192 200ms \u2192 400ms \u2192 800ms (exponential backoff)\n result = await translation_api.text_api_translate_post(request)\n return result\n except ApiException as e:\n if e.status == 429:\n print(\"Rate limit exceeded. All retries exhausted. Please wait and try again.\")\n elif e.status >= 500:\n print(\"Server error. All retries exhausted.\")\n else:\n print(f\"API error: {e.status} - {e.reason}\")\n raise\n\nasyncio.run(with_retry())\n```\n\n**Note:** By default, retries are **disabled**. You must set `retries=N` to enable automatic retry handling for rate limits and server errors.\n\n## Health Check\n\nCheck API health status:\n\n```python\nasync def health_check():\n configuration = accessibletranslator.Configuration()\n \n async with accessibletranslator.ApiClient(configuration) as api_client:\n system_api = accessibletranslator.SystemApi(api_client)\n \n health = await system_api.health_check_health_get()\n print(f\"API Status: {health.status}\")\n print(f\"Timestamp: {health.timestamp}\")\n \n return health\n\nasyncio.run(health_check())\n```\n\n## Requirements\n\n- Python 3.9+\n- aiohttp\n- pydantic\n- typing-extensions\n\n## Support\n\n- **Documentation**: [AccessibleTranslator API Docs](https://www.accessibletranslator.com/resources/api-docs)\n- **Issues**: For SDK-related issues, please open an issue in the repository\n- **API Support**: Visit [AccessibleTranslator.com](https://www.accessibletranslator.com) for general API support\n\n## License\n\nThis SDK is licensed under the MIT License.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Official Python SDK for AccessibleTranslator API - automated cognitive accessibility",
"version": "1.0.3",
"project_urls": {
"Documentation": "https://www.accessibletranslator.com/resources/api-docs",
"Homepage": "https://www.accessibletranslator.com",
"Issues": "https://www.accessibletranslator.com/resources/api-docs",
"Repository": "https://www.accessibletranslator.com/resources/api-docs"
},
"split_keywords": [
"accessibility",
" translation",
" text-simplification",
" cognitive-accessibility",
" autism",
" sdk",
" python"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "fcd7a2fcf96cf7f0c4b0c3e479b4631dd48efd9b582af0d5e44bb8cc123d56e5",
"md5": "fc23faa1917ee41cb8a27db375fa0f02",
"sha256": "8e0e1eab5ce7a739f323338eb184a119f5b38007b05262d2f0c7ec79a3fbcf5c"
},
"downloads": -1,
"filename": "accessibletranslator-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fc23faa1917ee41cb8a27db375fa0f02",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 45674,
"upload_time": "2025-07-16T11:55:03",
"upload_time_iso_8601": "2025-07-16T11:55:03.200810Z",
"url": "https://files.pythonhosted.org/packages/fc/d7/a2fcf96cf7f0c4b0c3e479b4631dd48efd9b582af0d5e44bb8cc123d56e5/accessibletranslator-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "52df9dc7185f3aa252fb94e21974cfd2ec37e3086811d04752c4cc8a92dd2998",
"md5": "b355936de0d41570697d5787401b65c3",
"sha256": "c3c3d9b27680f8b8f6511d04f4f5e580f84ff8585cdab0acb4e279198caed1e0"
},
"downloads": -1,
"filename": "accessibletranslator-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "b355936de0d41570697d5787401b65c3",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 49567,
"upload_time": "2025-07-16T11:55:04",
"upload_time_iso_8601": "2025-07-16T11:55:04.350775Z",
"url": "https://files.pythonhosted.org/packages/52/df/9dc7185f3aa252fb94e21974cfd2ec37e3086811d04752c4cc8a92dd2998/accessibletranslator-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-16 11:55:04",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "accessibletranslator"
}