AI Astrologer engine/AI Astrologer
GET/v1/conversations/:id

Conversations API

Fetch a single conversation's messages.

About the engine

Part of the AI Astrologer engine

A conversational layer over the astrology engine. Every response is anchored in a deterministic chart context - not a generic chatbot - and gated by a defense-in-depth safety layer that intercepts medical, financial, and self-harm prompts. Multi-turn memory keyed on caller-owned conversation_id; tone + confidence labels; a structured `practices` array on every reply. Streaming variant available for token-by-token UI.

Request

Try it from the command line

# 'id' is a conversation_id from GET /v1/conversations.
curl -X GET 'https://api.astronode.dev/v1/conversations/demo-conv-01' \
  -H 'Authorization: Bearer aie_test_REPLACE_WITH_YOUR_API_KEY' \
  -H 'Accept: application/json'

Every AstroNode endpoint needs a bearer token from your dashboard. Test keys (aie_test_*) work on the free tier - 1,000 requests / month, no card.

Request schema

Fields GET /v1/conversations/:id accepts

Path parameters

Path parameters for GET /v1/conversations/:id
FieldTypeNotes
idrequiredstring

len 1..120

Generated from the same OpenAPI 3.1 document the API validates against, so this table cannot drift from the endpoint without the build failing.

Response

What you get back

Every AstroNode response uses the same envelope: request_id, data (the endpoint-specific payload), interpretation (optional narrative block), and meta (engine version + computed_at timestamp). This endpoint documents 200, 401, 404, 429, 500.

Fields inside data

Response data fields for GET /v1/conversations/:id
FieldTypeNotes
conversationrequiredobject-
conversation.idrequiredstring-
conversation.statusrequiredenum

ACTIVE | CLOSED | BLOCKED

conversation.created_atrequiredstring-
conversation.updated_atrequiredstring-
conversation.message_countrequiredinteger

0..9007199254740991

conversation.last_user_message_previewrequiredobject-
conversation.last_message_atrequiredobject-
messagesrequiredobject[]-
messages[].idrequiredstring-
messages[].rolerequiredenum

USER | ASSISTANT

messages[].contentrequiredstring-
messages[].tonerequiredobject-
messages[].confidencerequiredobject-
messages[].practicesrequiredobject[]-
messages[].practices[].planetrequiredenum

The graha the practice works with.

Sun | Moon | Mars | Mercury | Jupiter | Venus | Saturn | Rahu

messages[].practices[].kindrequiredenum

Practice type - for client-side rendering / filtering. The full classical spread: beej `mantra`, `weekday` observance, charitable `donation`, `color` therapy, `gemstone`, `metal`,…

mantra | weekday | donation | color | gemstone | metal | lifestyle

messages[].practices[].summaryrequiredstring

One short sentence describing the practice.

messages[].safety_flagrequiredobject-
messages[].created_atrequiredstring-

Engine highlights

What the AI Astrologer engine ships

  • Bounded reasoning - every reply grounded in the user's deterministic chart context
  • Multi-turn memory keyed on caller-owned `conversation_id`
  • Defense-in-depth safety layer on input + output (medical / financial / self-harm)
  • Structured `practices` array on every response (planet, kind, summary)
  • Tone (supportive | reflective | grounded | calm | neutral) and confidence (low | moderate | high) labels
  • Optional `partner` block triggers compatibility-aware reasoning
  • Strict JSON-schema response enforcement on Gemini + Groq + OpenAI providers
  • Streaming variant for token-by-token UI
  • Conversation history endpoints for resume + per-user transcripts

Ready to call GET /v1/conversations/:id?

Free tier covers 1,000 requests / month. Razorpay-billed, GST-compliant invoices when you upgrade.

Informational, not predictive. Not medical, legal, or financial advice.