Skip to content
API96Astro API

API reference / Annual charts (Tajika)

Annual charts (Tajika)

Varshaphal and Tithi Pravesh annual charts, sahams and annual dashas.

3 endpoints. Every endpoint is POST with a JSON body and your key in the Authorization header. Request schemas and examples come from the OpenAPI document; each example response was captured from the live engine and its data fields are a guide to the shape, not a contract.

Natal Sahams

POSTAvailable

https://api.96astro.com/v1/tajika/natal-sahams

The 42 Tajika sahams computed for the birth chart, each with longitude, sign, degree and sign lord, and whether the birth is a day birth.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · object
  • day_birth · boolean
  • ascendant_longitude · number
  • sahams · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": {
      "id": "lahiri",
      "name": "N.C. Lahiri",
      "degrees": 23.7285
    },
    "day_birth": true,
    "ascendant_longitude": 293.8936,
    "sahams": [
      {
        "name": "Punya Saham",
        "longitude": 290.7753,
        "sign": "Capricorn",
        "degree": 20.7753,
        "sign_lord": "Saturn"
      },
      {
        "name": "Guru Saham",
        "longitude": 297.0119,
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Varshaphal (Annual Chart)

POSTAvailable

https://api.96astro.com/v1/tajika/varshaphal

Annual Tajika chart for a target year: the return moment, ascendant and planets, muntha, panchadhikari, sahams, the twelve monthly (Maasa) charts, mudda dasha and Tajika yogas.

Credits
3 credits
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

target_yearintegerRequired

Calendar year of the return.

Example: 2026

nodestringOptional

Lunar node: true (osculating) or mean.

Default: true

Allowed values: truemean

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · string
  • target_year · integer
  • return_moment · object
  • method · string
  • ascendant · object
  • planets · array of object
  • muntha · object
  • panchadhikari · object
  • sahams · array of object
  • maasa_charts · array of object
  • mudda_dasha · array of object
  • tajika_yogas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": "lahiri",
    "target_year": 2026,
    "return_moment": {
      "local": "2026-10-18T19:47:14",
      "utc_offset_hours": 5.5,
      "utc": "2026-10-18T14:17:14Z"
    },
    "method": "Sidereal solar return; the engine matches the geometric (aberration-free) Sun to the apparent natal Sun.",
    "ascendant": {
      "longitude": 38.3161,
      "sign": "Taurus",
      "degree": 8.3161,
      "nakshatra": "Krittika",
      "pada": 4
    },
    "planets": [
      {
        "name": "Sun",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Tithi Pravesh

POSTAvailable

https://api.96astro.com/v1/tajika/tithi-pravesh

The annual chart cast at the return of the birth tithi in a target year: the return moment, ascendant and planets, muntha, panchadhikari, mudda dasha and Tajika yogas.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

latitudenumberRequired

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

target_yearintegerRequired

Calendar year of the return.

Example: 2026

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Inferred from the example response: a guide to the shape, not a contract.

  • ayanamsha · string
  • target_year · integer
  • birth_tithi · object
  • return_moment · object
  • days_from_birthday · number
  • ascendant · object
  • planets · array of object
  • muntha · object
  • panchadhikari · object
  • mudda_dasha · array of object
  • tajika_yogas · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "ayanamsha": "lahiri",
    "target_year": 2026,
    "birth_tithi": {
      "name": "Amavasya",
      "paksha": "krishna",
      "number_in_paksha": 15,
      "sun_moon_elongation": 356.8815
    },
    "return_moment": {
      "local": "2026-10-10T15:07:35",
      "utc_offset_hours": 5.5,
      "utc": "2026-10-10T09:37:35Z"
    },
    "days_from_birthday": -7.37,
    "ascendant": {
      "longitude": 295.6583,
      "sign": "Capricorn",
      "degree": 25.6583,
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.