Copy page

Copy page as Markdown for LLMs

View as Markdown

View this page as plain text


Open in ChatGPT

Ask ChatGPT about this page

Open in Claude

Ask Claude about this page

Find Choghadiya API

Optimize daily actions by identifying auspicious (Shubh, Amrit, Labh, Char) and inauspicious (Kaal, Rog, Udveg) time blocks with the Find Choghadiya API. This API calculates day and night choghadiyas for a given date and location, following traditional Indian Astrology principles.


Step-by-Step Find Choghadiya API Postman Testing Integration

Detailed testing instructions are available here:

Step by Step Find Choghadiya API Postman Testing Integration
https://support.divineapi.com/indian-astrology-apis/testing-panchang-api-find-choghadiya-api-using-postman


Supported Language Codes

You can localize the API response by passing the lan field in the body.

Reference:
https://support.divineapi.com/general-api-support/translating-an-indian-vedic-apis-into-a-different-language

CodeLanguage
enEnglish
hiHindi
bnBengali
maMarathi
tmTamil
tlTelugu
mlMalayalam
knKannada

Note: If lan is not provided, the API defaults to en.


API Endpoint

POST https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya

This endpoint returns day and night choghadiya slots for the given date and place.


Headers

NameTypeDescription
Authorization*StringYour API Access Token, e.g. Bearer {token}

Request Body

NameTypeRequiredDescription
api_keyStringYesYour API key.
dayIntegerYesPanchang day, e.g. 24.
monthIntegerYesPanchang month, e.g. 05.
yearIntegerYesPanchang year, e.g. 2023.
placeStringNoPlace name, e.g. New Delhi.
latFloatYesLatitude, e.g. 28.6139.
lonFloatYesLongitude, e.g. 77.2090.
tzoneFloatYesTimezone offset, e.g. 5.5. See timezone guide in Divine docs.
lanStringNoResponse language code. Default en.

200: OK Choghadiyas fetched successfully

{
    "success": 1,
    "data": {
        "day_choghadiyas": {
            "Labh": "05:26 AM to 07:09 AM",
            "Amrit": "07:09 AM to 08:52 AM",
            "Kaal": "08:52 AM to 10:35 AM",
            "Shubh": "10:35 AM to 12:18 PM",
            "Rog": "12:18 PM to 02:01 PM",
            "Udveg": "02:01 PM to 03:44 PM",
            "Char": "03:44 PM to 05:27 PM",
            "Next Labh": "05:27 PM to 07:10 PM"
        },
        "night_choghadiyas": {
            "Udveg": "07:10 PM to 08:27 PM",
            "Shubh": "08:27 PM to 09:44 PM",
            "Amrit": "09:44 PM to 11:01 PM",
            "Char": "11:01 PM to 12:18 AM May 25",
            "Rog": "12:18 AM to 01:35 AM May 25",
            "Kaal": "01:35 AM to 02:52 AM May 25",
            "Labh": "02:52 AM to 04:09 AM May 25",
            "Next Udveg": "04:09 AM to 05:26 AM May 25"
        }
    }
}

Response Structure

success
Indicates whether the API call was successful. 1 means success.

data.day_choghadiyas
A map of choghadiya names to their corresponding time intervals for daytime (sunrise to sunset).

data.night_choghadiyas
A map of choghadiya names to their corresponding time intervals for nighttime (sunset to next sunrise).

Time values are already formatted and user-friendly, so they can be displayed directly in an app or panel.


Choghadiya Types (General Reference)

Amrit / Shubh / Labh / Char: Generally considered favorable.

Udveg / Kaal / Rog: Generally considered unfavorable.

The API orders them chronologically for the given date and location.


Example Code Implementations

Below are example implementations in various programming environments.


cURL

curl --location 'https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya' \
--header 'Authorization: Bearer {Your Auth Token}' \
--form 'api_key="{Your API Key}"' \
--form 'day="24"' \
--form 'month="05"' \
--form 'year="2023"' \
--form 'place="New Delhi"' \
--form 'lat="28.6139"' \
--form 'lon="77.2090"' \
--form 'tzone="5.5"' \
--form 'lan="en"'

NodeJS 

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya',
  'headers': {
    'Authorization': 'Bearer {Your Auth Token}'
  },
  formData: {
    'api_key': '{Your API Key}',
    'day': '24',
    'month': '05',
    'year': '2023',
    'Place': 'New Delhi',
    'lat': '28.6139',
    'lon': '77.2090',
    'tzone': '5.5',
    'lan': 'en'
  }
};
request(options, function (error, response) {
  if (error) throw new Error(error);
  console.log(response.body);
});

JavaScript jQuery AJAX

var form = new FormData();
form.append("api_key", "{Your API Key}");
form.append("day", "24");
form.append("month", "05");
form.append("year", "2023");
form.append("Place", "New Delhi");
form.append("lat", "28.6139");
form.append("lon", "77.2090");
form.append("tzone", "5.5");
form.append("lan", "en");

var settings = {
  "url": "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Authorization": "Bearer {Your Auth Token}"
  },
  "processData": false,
  "mimeType": "multipart/form-data",
  "contentType": false,
  "data": form
};

$.ajax(settings).done(function (response) {
  console.log(response);
});

Python

import requests

url = "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya"

payload = {'api_key': '{Your API Key}',
'day': '24',
'month': '05',
'year': '2023',
'Place': 'New Delhi',
'lat': '28.6139',
'lon': '77.2090',
'tzone': '5.5',
'lan': 'en'}

headers = {
  'Authorization': 'Bearer {Your Auth Token}'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Implementation Notes

Always send accurate latitude, longitude, and timezone to get correct sunrise/sunset-based choghadiya.

You can display day and night choghadiya separately in your UI.

For multi-language apps, pass lan so the API gives translated labels where supported.

This API fits well with daily panchang dashboards, muhurta pickers, and astrology scheduling tools.

Example Code
curl -X POST "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya" \
  -H "Authorization: Bearer {Your Auth Token}" \
  --form 'api_key="{Your API Key}"' \
  --form 'day="24"' \
  --form 'month="05"' \
  --form 'year="2023"' \
  --form 'place="New Delhi"' \
  --form 'lat="28.6139"' \
  --form 'lon="77.2090"' \
  --form 'tzone="5.5"' \
  --form 'lan="en"'
const FormData = require('form-data');
const axios = require('axios');

const form = new FormData();
form.append('api_key', '{Your API Key}');
form.append('day', '24');
form.append('month', '05');
form.append('year', '2023');
form.append('place', 'New Delhi');
form.append('lat', '28.6139');
form.append('lon', '77.2090');
form.append('tzone', '5.5');
form.append('lan', 'en');

const response = await axios.post('https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya', form, {
  headers: {
    ...form.getHeaders(),
    'Authorization': 'Bearer {Your Auth Token}',
  }
});

console.log(response.data);
import requests

url = "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya"
headers = {
    "Authorization": "Bearer {Your Auth Token}",
}
payload = {
    "api_key": "{Your API Key}",
    "day": "24",
    "month": "05",
    "year": "2023",
    "place": "New Delhi",
    "lat": "28.6139",
    "lon": "77.2090",
    "tzone": "5.5",
    "lan": "en",
}

response = requests.post(url, headers=headers, data=payload)

print(response.json())
const formData = new FormData();
formData.append('api_key', '{Your API Key}');
formData.append('day', '24');
formData.append('month', '05');
formData.append('year', '2023');
formData.append('place', 'New Delhi');
formData.append('lat', '28.6139');
formData.append('lon', '77.2090');
formData.append('tzone', '5.5');
formData.append('lan', 'en');

const response = await fetch('https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya', {
  method: 'POST',
  headers: {
      'Authorization': "Bearer {Your Auth Token}",
    },
  body: formData,
});

const data = await response.json();
console.log(data);
<?php

use GuzzleHttp\Client;

$client = new Client();

$response = $client->request('POST', 'https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya', [
    'headers' => [
        'Authorization' => 'Bearer {Your Auth Token}',
    ],
    'multipart' => [
        ['name' => 'api_key', 'contents' => '{Your API Key}'],
        ['name' => 'day', 'contents' => '24'],
        ['name' => 'month', 'contents' => '05'],
        ['name' => 'year', 'contents' => '2023'],
        ['name' => 'place', 'contents' => 'New Delhi'],
        ['name' => 'lat', 'contents' => '28.6139'],
        ['name' => 'lon', 'contents' => '77.2090'],
        ['name' => 'tzone', 'contents' => '5.5'],
        ['name' => 'lan', 'contents' => 'en'],
    ],
]);

echo $response->getBody();
package main

import (
    "bytes"
    "fmt"
    "mime/multipart"
    "net/http"
    "io"
)

func main() {
    body := &bytes.Buffer{}
    writer := multipart.NewWriter(body)
    writer.WriteField("api_key", "{Your API Key}")
    writer.WriteField("day", "24")
    writer.WriteField("month", "05")
    writer.WriteField("year", "2023")
    writer.WriteField("place", "New Delhi")
    writer.WriteField("lat", "28.6139")
    writer.WriteField("lon", "77.2090")
    writer.WriteField("tzone", "5.5")
    writer.WriteField("lan", "en")
    writer.Close()

    req, _ := http.NewRequest("POST", "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya", body)
    req.Header.Set("Content-Type", writer.FormDataContentType())
    req.Header.Set("Authorization", "Bearer {Your Auth Token}")

    client := &http.Client{}
    resp, _ := client.Do(req)
    defer resp.Body.Close()

    body2, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body2))
}
import okhttp3.*;
import java.io.IOException;

public class Main {
    public static void main(String[] args) throws IOException {
        OkHttpClient client = new OkHttpClient();

        RequestBody body = new MultipartBody.Builder()
            .setType(MultipartBody.FORM)
            .addFormDataPart("api_key", "{Your API Key}")
            .addFormDataPart("day", "24")
            .addFormDataPart("month", "05")
            .addFormDataPart("year", "2023")
            .addFormDataPart("place", "New Delhi")
            .addFormDataPart("lat", "28.6139")
            .addFormDataPart("lon", "77.2090")
            .addFormDataPart("tzone", "5.5")
            .addFormDataPart("lan", "en")
            .build();

        Request request = new Request.Builder()
            .url("https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya")
            .post(body)
            .addHeader("Authorization", "Bearer {Your Auth Token}")
            .build();

        Response response = client.newCall(request).execute();
        System.out.println(response.body().string());
    }
}
import Foundation

let url = URL(string: "https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer {Your Auth Token}", forHTTPHeaderField: "Authorization")

let boundary = "Boundary-\(UUID().uuidString)"
request.setValue("multipart/form-data; boundary=\(boundary)", forHTTPHeaderField: "Content-Type")

var bodyData = Data()
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"api_key\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("{Your API Key}\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"day\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("24\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"month\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("05\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"year\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("2023\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"place\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("New Delhi\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lat\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("28.6139\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lon\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("77.2090\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"tzone\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("5.5\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)\r\n".data(using: .utf8)!)
bodyData.append("Content-Disposition: form-data; name=\"lan\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("en\r\n".data(using: .utf8)!)
bodyData.append("--\(boundary)--\r\n".data(using: .utf8)!)
request.httpBody = bodyData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    if let data = data {
        print(String(data: data, encoding: .utf8) ?? "")
    }
}
task.resume()
import okhttp3.*

fun main() {
    val client = OkHttpClient()

    val body = MultipartBody.Builder()
        .setType(MultipartBody.FORM)
        .addFormDataPart("api_key", "{Your API Key}")
        .addFormDataPart("day", "24")
        .addFormDataPart("month", "05")
        .addFormDataPart("year", "2023")
        .addFormDataPart("place", "New Delhi")
        .addFormDataPart("lat", "28.6139")
        .addFormDataPart("lon", "77.2090")
        .addFormDataPart("tzone", "5.5")
        .addFormDataPart("lan", "en")
        .build()

    val request = Request.Builder()
        .url("https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya")
        .post(body!!)
        .addHeader("Authorization", "Bearer {Your Auth Token}")
        .build()

    client.newCall(request).execute().use { response ->
        println(response.body?.string())
    }
}
using System;
using System.Net.Http;
using System.Threading.Tasks;

class Program {
    static async Task Main() {
        using var client = new HttpClient();
        client.DefaultRequestHeaders.Add("Authorization", "Bearer {Your Auth Token}");

        var content = new MultipartFormDataContent();
        content.Add(new StringContent("{Your API Key}"), "api_key");
        content.Add(new StringContent("24"), "day");
        content.Add(new StringContent("05"), "month");
        content.Add(new StringContent("2023"), "year");
        content.Add(new StringContent("New Delhi"), "place");
        content.Add(new StringContent("28.6139"), "lat");
        content.Add(new StringContent("77.2090"), "lon");
        content.Add(new StringContent("5.5"), "tzone");
        content.Add(new StringContent("en"), "lan");

        var response = await client.PostAsync("https://astroapi-2.divineapi.com/indian-api/v1/find-choghadiya", content);
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}