Western product profiles¶
Product profiles are deterministic Western feature vectors for UI, analytics, and LLM grounding. They are not LLM-generated text.
All routes require charts:read and a stored Western chart.
Both routes accept house_system=placidus|whole_sign|equal; the override
applies only to that response.
All product profiles — GET /v1/western/charts/{id}/product-profile¶
curl -H "Authorization: Bearer $TOKEN" \
"https://api.astrolinkers.com/v1/western/charts/$CHART/product-profile?house_system=whole_sign"
{
"chart_id": "019e32b5-...",
"profiles": [
{
"domain": "career",
"score": 0.642,
"primary_style": "structured_builder",
"signals": [
{
"key": "tenth_house",
"value": 0.5,
"explanation": "Tenth-house emphasis supports public role focus."
}
],
"themes": ["fire", "mutable"]
}
]
}
Single product profile — GET /v1/western/charts/{id}/product-profile/{domain}¶
Supported domains:
| Domain | Purpose |
|---|---|
personality |
Baseline self-expression and temperament style. |
career |
Work style and public-role orientation. |
relationship |
Partnership orientation. |
stress |
Pressure pattern and internalization tendency. |
communication |
Messaging, learning, and exchange style. |
leadership |
Initiative, visibility, and directive capacity. |
money |
Resource and value pattern. |
decision_making |
Choice-making and follow-through pattern. |
curl -H "Authorization: Bearer $TOKEN" \
"https://api.astrolinkers.com/v1/western/charts/$CHART/product-profile/communication"
{
"domain": "communication",
"score": 0.718,
"primary_style": "verbal_connector",
"signals": [
{
"key": "mercury",
"value": 0.75,
"explanation": "Mercury strength supports communication agility."
},
{
"key": "air",
"value": 0.31,
"explanation": "Air emphasis supports exchange and abstraction."
},
{
"key": "third_house",
"value": 0.25,
"explanation": "Third-house emphasis supports learning and messaging."
}
],
"themes": ["air", "cardinal"]
}
How to use this layer¶
Recommended LLM flow:
- Fetch the deterministic product profile.
- Pass the profile as structured context to the LLM.
- Ask the LLM to explain the signals in user-friendly language.
- Keep the profile in the UI so generated prose remains auditable.
The API intentionally returns compact primary_style labels and signal
explanations so clients can render useful UI even without an LLM call.