> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kaalchakra.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> About the Kaalchakra REST API

## Authentication

All API endpoints are secured. To generate your API key,
<a href="https://kaalchakra.dev/login">sign in</a>, navigate to `Account > API
Keys` and click `Create API key`. Set the token that was generated as the value
of the `auth` query parameter in requests to API endpoints.

Example: `https://api.kaalchakra.dev/v1/panchang/current_day?auth=kk-prod-my-token`

## Time Zones

```
curl -H "Accept: application/json" \
  "https://api.kaalchakra.dev/v1/panchang/current_day?time_zone=America%2FLos_Angeles&auth=$TOKEN"
```

API clients may supply a `time_zone` query parameter, which is used by the REST API server
to determine the current date for the client application. Time zones defined by
the [tz database](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) are
supported. If `time_zone` is not set the client application's time zone is
assumed to be `"Asia/Kolkata"`.

## Rate Limits

Rate limits are applied to manage capacity and prevent excessive usage.

## Conventions

### Romanization

Sanskrit and Arabic words are romanized using Hunterian transliteration.

### Timestamps

All timestamps conform to the ISO 8601 format.

### Localization

#### Overview

Most objects with a `name` property also have a `localized_name` property.

<Info>Localized names of **holidays** and **days of observance** are coming soon.</Info>

Names are usually romanized Sanskrit; for regional calendar data, names may have origins in other languages.
By default, the value of `localized_name` fields is `null`.

When localization is enabled via the `language` query parameter, `localized_name` fields are populated according to
the following rules:

1. The primary writing system and alphabet for the language are used.
2. If a name exists in the vernacular of the language, the vernacular name is
   returned. Otherwise, the name in the original language -- usually Sanskrit, but
   possibly another Indian language, English, Arabic or Hebrew -- is returned.

#### List of supported languages

| Language | Abbreviation | Status      |
| -------- | ------------ | ----------- |
| Bengali  | `bn`         | Supported   |
| Hindi    | `hi`         | Supported   |
| Marathi  | `mar`        | Supported   |
| Tamil    | `tam`        | Supported   |
| Telugu   | --           | Coming soon |

<Callout icon="mailbox" color="#1e3a8a" iconType="regular">
  Don't see the language you're looking for? <a href="mailto:support@kaalchakra.dev">Email us</a> and we'll add it to the roadmap.
</Callout>

#### Example: Default

```bash theme={null}
curl -H "Accept: application/json" \
  "https://api.kaalchakra.dev/v1/panchang/current_day?auth=$TOKEN" \
  | jq '{tithis: .angas.tithis}'
```

```json theme={null}
{
  "tithis": [{
    "name": "Tritiya",
    "localized_name": null,
    "ends_at": ""2025-09-10T15:39:00.000+05:30"
  }]
}
```

#### Example: Hindi

```bash theme={null}
curl -H "Accept: application/json" \
  "https://api.kaalchakra.dev/v1/panchang/current_day?auth=$TOKEN&language=hi" \
  | jq '{tithis: .angas.tithis}'
```

```json theme={null}
{
  "tithis": [{
    "name": "Tritiya",
    "localized_name": "तृतीया",
    "ends_at": ""2025-09-10T15:39:00.000+05:30"
  }]
}
```

#### Example: Bengali

```bash theme={null}
curl -H "Accept: application/json" \
  "https://api.kaalchakra.dev/v1/panchang/current_day?auth=$TOKEN&language=bn" \
  | jq '{tithis: .angas.tithis}'
```

```json theme={null}
{
  "tithis": [{
    "name": "Tritiya",
    "localized_name": "তৃতীয়",
    "ends_at": ""2025-09-10T15:39:00.000+05:30"
  }]
}
```
