Developer API

Public API docs

Integrate chart calculation, report generation, and Kundli matching.

These docs describe the provider API surface. Use the workspace console after sign-in to create keys, inspect usage, and manage limits.

Base URL

https://jyotishone-api-obf6jvpdqq-uc.a.run.app/api/v1
Authenticate with a workspace API key using Bearer auth or X-API-Key.
Pass customer references through external_customer_id and idempotency_key.
Keep your own customer pricing, checkout, consent, and delivery flow.

Authentication

Send the workspace API secret as a Bearer token or as X-API-Key. Secrets are shown once when created in the workspace console.

Authorization: Bearer $PANDITONE_API_KEY
X-API-Key: $PANDITONE_API_KEY

Quickstart

This call returns chart facts without creating a report checkout. Use the full report endpoint when you need a saved report link.

curl -X POST https://jyotishone-api-obf6jvpdqq-uc.a.run.app/api/v1/developer/api/v1/charts/calculate \
  -H "Authorization: Bearer $PANDITONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "birth": {
    "full_name": "Customer Name",
    "date_of_birth": "1998-01-01",
    "time_of_birth": "02:02:00",
    "time_accuracy": "exact",
    "birth_place_text": "Mumbai, India",
    "latitude": "19.076000",
    "longitude": "72.877700",
    "timezone": "Asia/Kolkata"
  },
  "locale": "en-US",
  "report_type": "detailed_kundli",
  "external_customer_id": "cust_123",
  "idempotency_key": "order_123_chart"
}'

Endpoints

POST

Calculate Chart

chart_calculation

/developer/api/v1/charts/calculate

Return deterministic Kundli chart facts from provider-submitted birth details.

POST

Generate Full Kundli Report

full_kundli_report

/developer/api/v1/reports/full

Create a saved report record, secure report link, and PDF/download reference.

POST

Match Two Kundlis

compatibility_match

/developer/api/v1/kundli-matching/match

Match two birth profiles with Ashtakoot, dosha review, dasha timing, and practical guidance.

Birth payload

Use this shape for chart calculation and full report generation. Coordinates are recommended because they reduce ambiguity in place matching and timezone selection.

{
  "birth": {
    "full_name": "Customer Name",
    "date_of_birth": "1998-01-01",
    "time_of_birth": "02:02:00",
    "time_accuracy": "exact",
    "birth_place_text": "Mumbai, India",
    "latitude": "19.076000",
    "longitude": "72.877700",
    "timezone": "Asia/Kolkata"
  },
  "locale": "en-US",
  "report_type": "detailed_kundli",
  "external_customer_id": "cust_123",
  "idempotency_key": "order_123_chart"
}

Kundli matching

POST /developer/api/v1/kundli-matching/match

Send two birth profiles to receive deterministic Ashtakoot scoring, dosha and mitigation evidence, relationship factors, D1 and relationship-varga context, dasha references, practical recommendations, warnings, and current quota usage.

Required for each partner

full_name
· Display name, 1–180 characters.
date_of_birth
· ISO date in YYYY-MM-DD format.
birth_place_text
· Human-readable birth city or place.

Accuracy fields

time_of_birth
· HH:MM:SS; omit when unknown.
time_accuracy
· exact, approximate, or unknown. Set unknown when omitting the time.
latitude / longitude / timezone
· Recommended to avoid place and timezone ambiguity.

external_customer_id and idempotency_key are optional reconciliation references. Do not place secrets or unnecessary personal data in either field.

{
  "partner_a": {
    "full_name": "Partner A",
    "date_of_birth": "1998-01-01",
    "time_of_birth": "02:02:00",
    "time_accuracy": "exact",
    "birth_place_text": "Mumbai, India",
    "latitude": "19.076000",
    "longitude": "72.877700",
    "timezone": "Asia/Kolkata"
  },
  "partner_b": {
    "full_name": "Partner B",
    "date_of_birth": "1996-09-01",
    "time_of_birth": "20:38:00",
    "time_accuracy": "exact",
    "birth_place_text": "New York, United States",
    "latitude": "40.712800",
    "longitude": "-74.006000",
    "timezone": "America/New_York"
  },
  "locale": "en-US",
  "external_customer_id": "match_123",
  "idempotency_key": "match_123_v1"
}
curl -X POST https://jyotishone-api-obf6jvpdqq-uc.a.run.app/api/v1/developer/api/v1/kundli-matching/match \
  -H "Authorization: Bearer $PANDITONE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "partner_a": {
    "full_name": "Partner A",
    "date_of_birth": "1998-01-01",
    "time_of_birth": "02:02:00",
    "time_accuracy": "exact",
    "birth_place_text": "Mumbai, India",
    "latitude": "19.076000",
    "longitude": "72.877700",
    "timezone": "Asia/Kolkata"
  },
  "partner_b": {
    "full_name": "Partner B",
    "date_of_birth": "1996-09-01",
    "time_of_birth": "20:38:00",
    "time_accuracy": "exact",
    "birth_place_text": "New York, United States",
    "latitude": "40.712800",
    "longitude": "-74.006000",
    "timezone": "America/New_York"
  },
  "locale": "en-US",
  "external_customer_id": "match_123",
  "idempotency_key": "match_123_v1"
}'
Legacy endpoint: POST /developer/api/v1/compatibility/match remains available for existing integrations but is deprecated. New integrations should use the Kundli matching path above. Both consume the compatibility_match quota unit.

Matching response

Use score_summary for a compact overview and retain the evidence sections when presenting the result. A classical score is not a standalone approval or rejection.

ashtakoot

Eight Guna Milan checks, individual scores, total out of 36, percentage, and verdict.

dosha_analysis

Nadi, Bhakoot, Manglik or Kuja evidence, severity, mitigation details, and warnings.

relationship_factors

Chart-based factors beyond the classical score, including communication and partnership context.

recommendations

Prioritized, practical follow-up guidance derived from the calculated evidence.

pundit_reference

Moon, house, varga, dasha, placement, lordship, and Vedic-aspect reference data.

usage

The compatibility_match quota consumed, remaining allowance, and billing period key.

{
  "request_id": "req_...",
  "provider": "panditone-developer-api",
  "tenant_id": "workspace_...",
  "locale": "en-US",
  "match": {
    "request_id": "match_...",
    "provider": "local-deterministic",
    "locale": "en-US",
    "matching_engine_version": "compatibility-match-0.2.0",
    "methodology": {
      "zodiac": "sidereal",
      "ayanamsa": "lahiri",
      "house_system": "whole-sign",
      "matching_system": "Ashtakoot Guna Milan with separate dosha and mitigation evidence"
    },
    "partners": { "partner_a": {}, "partner_b": {} },
    "score_summary": {
      "overall_band": "strong",
      "classical_score": 27.5,
      "max_score": 36,
      "percentage": 76.4
    },
    "ashtakoot": {
      "system": "Ashtakoot Guna Milan",
      "total_score": 27.5,
      "max_score": 36,
      "percentage": 76.4,
      "verdict": "strong",
      "checks": []
    },
    "dosha_analysis": {
      "flags": [],
      "manglik": {},
      "overall": "clear"
    },
    "relationship_factors": [],
    "recommendations": [],
    "pundit_reference": {
      "moon_reference": {},
      "ashtakoot_table": [],
      "key_placements": {},
      "partnership_houses": {},
      "varga_reference": {},
      "relationship_varga_interpretations": {},
      "dasha_reference": {},
      "vedic_aspects": {}
    },
    "warnings": [],
    "disclaimer": "This compatibility match is a deterministic cultural and spiritual Jyotish reading."
  },
  "usage": {
    "unit": "compatibility_match",
    "used": 4,
    "limit": 100,
    "remaining": 96,
    "period_key": "2026-08"
  }
}

Locales

Set locale on the request. Language aliases such as hi are accepted, while canonical locale codes are preferred.

en-USes-EShi-INhi-Latnbn-INmr-INgu-INta-INte-INkn-INml-INpa-INne-NP

Response shape

Responses include a request id, provider id, workspace id, locale, engine version, calculation details, result payload, warnings, and the relevant usage quota.

{
  "request_id": "req_...",
  "provider": "panditone-developer-api",
  "tenant_id": "workspace_...",
  "locale": "en-US",
  "engine_version": "vedic-engine-...",
  "calculation_config": {
    "ayanamsa": "Lahiri",
    "house_system": "whole_sign"
  },
  "chart": {
    "birth_profile": {},
    "chart_summary": {},
    "planetary_positions": []
  },
  "warnings": [],
  "usage": {
    "unit": "chart_calculation",
    "used": 18,
    "limit": 1000,
    "remaining": 982,
    "period_key": "2026-07"
  }
}

Errors and limits

400

Invalid request or matching input that cannot be calculated.

401

Missing, malformed, revoked, or unknown API key.

402

Workspace API access is not active.

422

Validation error for payload shape, date, time, locale, or plan code.

429

Rate limit or monthly quota exceeded for the requested unit.

5xx

Provider or engine error. Retry only according to your own duplicate-request safeguards; a supplied reference key does not by itself guarantee response replay.

Data and privacy posture

  • The API is intended for provider platforms that already manage their own customer relationship and consent.
  • Full report calls create saved report records so the generated link can be reopened by the customer flow.
  • Store your own customer references in external_customer_id instead of sending unnecessary internal account data.
  • Do not use API output as medical, legal, financial, psychological, or safety advice.
  • Keep API keys server-side. Never expose a workspace API key in mobile app binaries or browser JavaScript.

Private API operations

Manage keys, limits, and usage from the workspace console.

The docs are public so providers can evaluate the integration. API keys, active subscriptions, quota usage, and request history stay behind workspace sign-in.