Biorhythm Cycles
Computes physical (23-day), emotional (28-day), and intellectual (33-day) biorhythm cycles for a birth date. Returns cycle values (-1.0 to +1.0), percentage, phase label (High/Rising/Falling/Low), and critical day flags. Critical days occur when a cycle crosses zero — these represent instability and vulnerability to poor judgment. Supports single-day and multi-day (up to 90 days) range requests. Formula: sin(2π × t / cycle_length) where t = days since birth. Source: Wilhelm Fliess (1897) physical cycle; Hermann Swoboda (1900) emotional cycle; Alfred Teltscher (1926) intellectual cycle.
Endpoint
POST /v1/western/biorhythm
Request parameters
| Field | Type | Required | Description |
|---|---|---|---|
| birth_date | string (date) | Yes | Date of birth in YYYY-MM-DD format. |
| target_date | string (date) | null | No | Date to compute cycles for. Defaults to today. |
| days | integer | No | Number of consecutive days to compute (1-90). Use 1 for a single day snapshot. Use >1 for a date range. |
Example request
- curl
- Python
- TypeScript
curl -X POST "https://api.asterwise.com/v1/western/biorhythm" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"birth_date":"1985-11-12","target_date":"2026-01-01","days":1}'
import asterwise
from asterwise.api.western_api import WesternApi
from asterwise.models.biorhythm_request import BiorhythmRequest
configuration = asterwise.Configuration(
host="https://api.asterwise.com",
access_token="YOUR_API_KEY",
)
request = BiorhythmRequest(
birth_date="1985-11-12",
target_date="2026-01-01",
days=1,
)
with asterwise.ApiClient(configuration) as client:
api = WesternApi(client)
result = api.western_biorhythm(biorhythm_request=request)
print(result)
import { createClient, createConfig, westernBiorhythm } from 'asterwise';
const client = createClient(createConfig({
baseUrl: 'https://api.asterwise.com',
headers: { Authorization: 'Bearer YOUR_API_KEY' },
}));
const result = await westernBiorhythm({
client,
body: {
"birth_date": "1985-11-12",
"target_date": "2026-01-01",
"days": 1
},
});
console.log(result.data);
Example response
Response fields
| Field | Type | Description |
|---|---|---|
| success | boolean | True if the request succeeded |
| message | string | Human-readable status message |
| data | BiorhythmSingleDayResponse | BiorhythmRangeResponse | The endpoint response payload |
Errors
| Code | Description | Reference |
|---|---|---|
| authentication_failed | Missing or invalid API key. | authentication_failed |
| ephemeris_unavailable | Upstream ephemeris service error. | ephemeris_unavailable |
| insufficient_tier | API key tier does not include this endpoint. | insufficient_tier |
| internal_error | Unexpected server error. | internal_error |
| ip_rate_limit_exceeded | Too many requests in a short window. | ip_rate_limit_exceeded |
| payload_too_large | Request body exceeds the size limit. | payload_too_large |
| resource_not_found | Referenced resource was not found. | resource_not_found |
| validation_error | Request body failed schema validation. | validation_error |