Base URL
https://api.wiabraille.com
🔐 Authentication
All API endpoints (except /health) require API key authentication via Bearer token.
Authorization: Bearer YOUR_API_KEY
API Key Format
| Environment | Format |
|---|---|
| Production | wia_live_sk_{64_char_hex} |
| Testing | wia_test_sk_{64_char_hex} |
📡 Endpoints
GET
/health
Health check (no auth required)
Check if the API is running.
Response
{
"status": "healthy",
"service": "WIA Braille API",
"version": "1.0.0",
"timestamp": "2025-12-10T12:00:00.000Z"
}
POST
/api/v1/convert
Convert text to braille
Convert any text to braille using the WIA Braille system.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
| text | string | Yes | Text to convert (max 10,000 chars) |
| language | string | No | ISO 639-1 code (default: "en") |
| format | string | No | "unicode", "ascii", or "dots" (default: "unicode") |
Response
{
"success": true,
"data": {
"original": "Hello World",
"braille": "⠓⠑⠇⠇⠕ ⠺⠕⠗⠇⠙",
"ipa": "[həˈloʊ wɜːrld]",
"language": "en",
"format": "unicode"
},
"usage": {
"requests_used": 1,
"requests_remaining": 999,
"tier": "free"
}
}
GET
/api/v1/languages
Get supported languages
Get list of all 211 supported languages.
Response
{
"success": true,
"data": {
"total": 211,
"languages": [
{ "code": "en", "name": "English" },
{ "code": "ko", "name": "Korean" },
...
]
}
}
⚡ Rate Limits
Rate limits are enforced per API key based on your subscription tier.
Free
1,000
requests/month
Startup
50,000
requests/month
Professional
200,000
requests/month
Business
1,000,000
requests/month
Enterprise
Unlimited
requests/month
Rate Limit Headers
X-RateLimit-Limit: 1000 X-RateLimit-Remaining: 999 X-RateLimit-Reset: 1702224000 Retry-After: 3600
💻 Code Examples
curl -X POST https://api.wiabraille.com/api/v1/convert \ -H "Authorization: Bearer wia_live_sk_..." \ -H "Content-Type: application/json" \ -d '{ "text": "Hello World", "language": "en" }'
const response = await fetch('https://api.wiabraille.com/api/v1/convert', { method: 'POST', headers: { 'Authorization': 'Bearer wia_live_sk_...', 'Content-Type': 'application/json' }, body: JSON.stringify({ text: 'Hello World', language: 'en' }) }); const data = await response.json(); console.log(data.data.braille); // ⠓⠑⠇⠇⠕ ⠺⠕⠗⠇⠙
import requests response = requests.post( 'https://api.wiabraille.com/api/v1/convert', headers={ 'Authorization': 'Bearer wia_live_sk_...', 'Content-Type': 'application/json' }, json={ 'text': 'Hello World', 'language': 'en' } ) result = response.json() print(result['data']['braille']) # ⠓⠑⠇⠇⠕ ⠺⠕⠗⠇⠙
⚠️ Error Codes
| Code | Description |
|---|---|
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Missing API key |
| 403 | Forbidden - Invalid API key |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Error Response Format
{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Rate limit exceeded. Please upgrade your plan."
}
}
📦 SDKs & Resources
Official SDKs and resources to help you get started.