TeleCheck Clinic API
Integrate Medicare disaster telehealth eligibility checking into your practice management system
Quick Start
Data updated daily from DisasterAssist.gov.au. Each API response includes a metadata.last_updated timestamp.
Get your API key
Subscribe to Clinic-Wide Access and generate your key from Settings → API
Make API requests
Include your API key in the x-api-key header
Handle the response
Parse the JSON response to determine eligibility and display disaster information
Endpoint
POST /api/v1/check-postcodeRequest Headers
| Header | Value | Required |
|---|---|---|
Content-Type | application/json | Yes |
x-api-key | Your API key | Yes |
Request Body
{
"postcode": "4051" // 4-digit Australian postcode
}curl Example
curl -X POST https://www.telecheck.clinic/api/v1/check-postcode \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{"postcode": "4051"}'Response Example
{
"success": true,
"data": {
"summary": {
"is_eligible": true,
"status_color": "green",
"headline_text": "ELIGIBLE - 4 Active Disaster(s) in Brisbane",
"medicare_status_text": "Eligible for extended telehealth services under disaster exemptions.",
"clinical_decision_support": [
"Check Postcode - View the disaster eligibility result above",
"Verify Official Links - Click government disaster links below to confirm details",
"Make Your Clinical Decision - YOU decide if telehealth is appropriate",
"Copy Verified Notes - Use the proforma below"
]
},
"location": {
"postcode": "4051",
"suburb": "ALDERLEY, ENOGGERA, GAYTHORNE...",
"state": "QLD",
"lga_name": "Brisbane",
"lga_code": "31000"
},
"clinical_documentation": {
"proforma_text": "TELEHEALTH ELIGIBILITY CHECK - ELIGIBLE\n..."
},
"disasters": [
{
"agrn": "1221",
"title": "South East Queensland Severe Storms (26 October 2025)",
"hazard_type": null,
"start_date": "2025-10-26",
"end_date": null,
"url": "https://www.disasterassist.gov.au/...",
"status_color": "green",
"is_active": true,
"display_date": "26/10/2025"
}
],
"disclaimers": [
"This tool provides information only and does not constitute medical or legal advice",
"Clinicians remain responsible for verifying current Medicare requirements",
"Disaster declarations may change without notice"
]
}
}Code Examples
Python
import requests
response = requests.post(
"https://www.telecheck.clinic/api/v1/check-postcode",
headers={
"Content-Type": "application/json",
"x-api-key": "YOUR_API_KEY"
},
json={"postcode": "4051"}
)
data = response.json()
if data["success"]:
result = data["data"]
print(f"Eligible: {result['summary']['is_eligible']}")
print(f"Status: {result['summary']['status_color']}")
print(f"LGA: {result['location']['lga_name']}")
print(f"Disasters: {len(result['disasters'])}")JavaScript / TypeScript
const response = await fetch('https://www.telecheck.clinic/api/v1/check-postcode', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'x-api-key': 'YOUR_API_KEY'
},
body: JSON.stringify({ postcode: '4051' })
});
const { success, data } = await response.json();
if (success) {
console.log('Eligible:', data.summary.is_eligible);
console.log('Status:', data.summary.status_color);
console.log('LGA:', data.location.lga_name);
console.log('Disasters:', data.disasters.length);
}Response Fields
Top Level
| Field | Type | Description |
|---|---|---|
success | boolean | Whether the request was processed successfully |
data | object | Contains summary, location, clinical_documentation, disasters, and disclaimers |
data.summary
| Field | Type | Description |
|---|---|---|
is_eligible | boolean | Whether the postcode is eligible for Medicare telehealth exemptions |
status_color | string | Traffic light: green (active, recent), amber (active, 2+ years), red (not eligible) |
headline_text | string | Human-readable summary of the eligibility result |
medicare_status_text | string | Medicare-specific status description |
clinical_decision_support | string[] | Suggested clinical decision steps |
data.location
| Field | Type | Description |
|---|---|---|
postcode | string | The queried postcode |
suburb | string | Suburb(s) associated with the postcode |
state | string | Australian state/territory |
lga_name | string | Local Government Area name |
lga_code | string | LGA code |
data.disasters[]
| Field | Type | Description |
|---|---|---|
agrn | string | Australian Government Reference Number |
title | string | Official disaster declaration title |
start_date | string | Date the disaster was declared (ISO 8601) |
end_date | string | null | Date the disaster ended, or null if still active |
url | string | null | DisasterAssist.gov.au reference URL |
status_color | string | Traffic light for this disaster: green, amber, or red |
is_active | boolean | Whether the disaster is currently active |
display_date | string | Australian-formatted start date (e.g. 26/10/2025) |
Other Fields
| Field | Type | Description |
|---|---|---|
data.clinical_documentation.proforma_text | string | Pre-formatted clinical documentation text for Medicare claims |
data.disclaimers | string[] | Legal disclaimers about the data |
Error Codes
| Code | Message | Description |
|---|---|---|
401 | Missing x-api-key header | API key was not provided |
401 | Invalid API key | API key is not valid |
403 | API subscription is inactive | Your subscription has expired or been cancelled |
400 | Invalid postcode format | Postcode must be a 4-digit Australian postcode |
429 | Rate limit exceeded | Too many requests — wait for Retry-After header value (seconds) |
Rate Limits
- 100 requests per minute per API key (sliding window)
- Exceeded limits return
429 Too Many Requests - Contact support if you need higher limits for large clinics
Rate Limit Response Headers
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window (100) |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Seconds until the window resets |
Retry-After | Seconds to wait (only included on 429 responses) |
API Key Management
Manage your API key from Settings → API. Keys use the format sk_live_... and are shown only once on creation — store them securely.
| Endpoint | Method | Description |
|---|---|---|
/api/v1/keys/generate | POST | Generate a new API key (requires active subscription, no existing key) |
/api/v1/keys/regenerate | POST | Revoke the current key and generate a new one (key rotation) |
/api/v1/keys/revoke | POST | Permanently deactivate the current API key |
/api/v1/keys/status | GET | Check subscription and key status |
Key management endpoints require an authenticated session (cookie-based). Only one active key per subscription. Keys are hashed with SHA-256 before storage — raw keys are never persisted.