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 Tamil Festivals API

Get the major Tamil festivals for any year with the Find Tamil Festivals API. For a given year and location, this API returns each festival's Gregorian date, the relevant auspicious muhurta or parana timings where applicable, and associated festival images, covering Thai Pongal, Puthandu, Karthigai Deepam, Thaipusam, Vaikuntha Ekadashi and more.


API Endpoint

POST https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals

This endpoint provides Tamil festival data for the given year and location, including each festival's date, any solar-transition moment or auspicious muhurta and parana timings that apply, and festival images.


Headers

NameTypeDescription
Authorization*StringYour API Access Token. Example: Bearer {token}

Request Body

NameTypeRequiredDescription
api_keyStringYesYour API key.
yearIntegerYesThe year for which you want to fetch Tamil festival data. Example: 2027.
placeStringNoThe name of the place. Example: New Delhi.
latFloatYesLatitude of the location. Example: 28.6139.
lonFloatYesLongitude of the location. Example: 77.2090.
tzoneFloatYesTimezone offset for the location. Example: 5.5. See: Timezone Guide

200: OK Fetched Tamil festivals successfully

{
    "success": 1,
    "data": {
        "year": 2026,
        "thai_pongal": {
            "date": "2026-01-14",
            "sankranti_moment": "2026-01-14 15:08:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Thai%20Pongal.png"
        },
        "puthandu": {
            "date": "2026-04-14",
            "sankranti_moment": "2026-04-14 09:33:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Puthandu.png"
        },
        "tamil_deepavali": {
            "date": "2026-11-08",
            "deepavali_muhurta": {
                "start_time": "2026-11-08 05:17:08",
                "end_time": "2026-11-08 06:38:08"
            },
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Tamil%20Deepavali.png"
        },
        "kedar_gauri_vrat": {
            "date": "2026-11-08",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Kedar%20Gauri%20Vrat.png"
        },
        "karthigai_deepam": {
            "date": "2026-11-24",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Karthigai%20Deepam.png"
        },
        "soorasamharam": {
            "date": "2026-11-15",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Soorasamharam.png"
        },
        "panguni_uthiram": {
            "date": "2026-04-01",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Panguni%20Uthiram.png"
        },
        "vaikuntha_ekadashi": {
            "smartas": {
                "date": "2026-12-20",
                "parana": {
                    "start_time": "2026-12-21 07:09:30",
                    "end_time": "2026-12-21 09:12:30"
                },
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikuntha%20Ekadashi.png"
            },
            "vaishnavas": {
                "date": "2026-12-20",
                "parana": {
                    "start_time": "2026-12-21 07:09:30",
                    "end_time": "2026-12-21 09:12:30"
                },
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikuntha%20Ekadashi.png"
            }
        },
        "vaikasi_visakam": {
            "date": "2026-05-30",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikasi%20Visakam.png"
        },
        "thai_pusam": {
            "date": "2026-02-01",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Thai%20Pusam.png"
        },
        "karadaiyan_nombu": {
            "date": "2026-03-15",
            "sankranti_moment": "2026-03-15 01:04:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Karadaiyan%20Nombu.png"
        },
        "masi_magam": {
            "date": "2026-03-03",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Masi%20Magam.png"
        },
        "hanumath_jayanthi": [],
        "arudra_darshan": [
            {
                "date": "2026-01-03",
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Arudra%20Darshan.png"
            },
            {
                "date": "2026-12-24",
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Arudra%20Darshan.png"
            }
        ],
        "avani_avittam": {
            "date": "2026-08-28",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Avani%20Avittam.png"
        },
        "chitra_pournami": {
            "date": "2026-05-01",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Chitra%20Pournami.png"
        }
    }
}

Response Explanation

success
Indicates if the request was successful. Value 1 represents success.

data
Contains the year along with every Tamil festival for that year.

year: The year for which the festivals are calculated.

date: The Gregorian date of the festival.

sankranti_moment: For solar-transition based festivals such as Thai Pongal and Puthandu, the exact date and time the Sun enters the new sign.

image: URL of the corresponding festival image (useful for UI display).

Depending on the festival, additional timing fields are included:

deepavali_muhurta: The auspicious window (start and end) for Tamil Deepavali.

parana: For Vaikuntha Ekadashi, the fast-breaking window, returned under both smartas and vaishnavas traditions.

Some festivals return an array of entries (for example Arudra Darshan, which can occur twice in a year); a festival that does not fall in the requested year is returned as an empty array.

Festivals included in the response

Thai Pongal, Puthandu (Tamil New Year), Tamil Deepavali, Kedar Gauri Vrat, Karthigai Deepam, Soorasamharam, Panguni Uthiram, Vaikuntha Ekadashi, Vaikasi Visakam, Thaipusam, Karadaiyan Nombu, Masi Magam, Hanumath Jayanthi, Arudra Darshan, Avani Avittam and Chitra Pournami.


Example Code Implementations

Below are example implementations in various programming environments.


cURL 

curl --location 'https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals' \
--header 'Authorization: Bearer {Your Auth Token}' \
--form 'api_key="{Your API Key}"' \
--form 'year="2027"' \
--form 'place="New Delhi"' \
--form 'lat="28.6139"' \
--form 'lon="77.2090"' \
--form 'tzone="5.5"'

NodeJS 

var request = require('request');
var options = {
  'method': 'POST',
  'url': 'https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals',
  'headers': {
    'Authorization': 'Bearer {Your Auth Token}'
  },
  formData: {
    'api_key': '{Your API Key}',
    'year': '2027',
    'Place': 'New Delhi',
    'lat': '28.6139',
    'lon': '77.2090',
    'tzone': '5.5'
  }
};
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("year", "2027");
form.append("Place", "New Delhi");
form.append("lat", "28.6139");
form.append("lon", "77.2090");
form.append("tzone", "5.5");

var settings = {
  "url": "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals",
  "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);
});import requests

url = "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals"

payload = {'api_key': '{Your API Key}',
'year': '2027',
'Place': 'New Delhi',
'lat': '28.6139',
'lon': '77.2090',
'tzone': '5.5'}
files=[

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

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

print(response.text)


Python 

import requests

url = "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals"

payload = {'api_key': '{Your API Key}',
'year': '2027',
'Place': 'New Delhi',
'lat': '28.6139',
'lon': '77.2090',
'tzone': '5.5'}

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

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

print(response.text)


Implementation Notes

Always include both api_key and Authorization headers.

These are the principal festivals of the Tamil calendar. Coverage includes Thai Pongal, Puthandu (Tamil New Year), Karthigai Deepam, Thaipusam, Panguni Uthiram, Vaikuntha Ekadashi, Masi Magam and Chitra Pournami.

Not every festival returns the same fields: some include a sankranti_moment, Tamil Deepavali includes a deepavali_muhurta, Vaikuntha Ekadashi includes parana timings under the smartas and vaishnavas traditions, and some festivals such as Arudra Darshan return an array of dates while a festival that does not fall in the requested year returns an empty array.

Use the provided image URLs to visually represent festivals in your application interface.

Recommended for Panchang-based apps, event calendars, and festival scheduling dashboards.

curl -X POST "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals" \
  -H "Authorization: Bearer {Your Auth Token}" \
  --form 'api_key="{Your API Key}"' \
  --form 'year="2027"' \
  --form 'place="New Delhi"' \
  --form 'lat="28.6139"' \
  --form 'lon="77.2090"' \
  --form 'tzone="5.5"'
const FormData = require('form-data');
const axios = require('axios');

const form = new FormData();
form.append('api_key', '{Your API Key}');
form.append('year', '2027');
form.append('place', 'New Delhi');
form.append('lat', '28.6139');
form.append('lon', '77.2090');
form.append('tzone', '5.5');

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

console.log(response.data);
import requests

url = "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals"
headers = {
    "Authorization": "Bearer {Your Auth Token}",
}
payload = {
    "api_key": "{Your API Key}",
    "year": "2027",
    "place": "New Delhi",
    "lat": "28.6139",
    "lon": "77.2090",
    "tzone": "5.5",
}

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

print(response.json())
const formData = new FormData();
formData.append('api_key', '{Your API Key}');
formData.append('year', '2027');
formData.append('place', 'New Delhi');
formData.append('lat', '28.6139');
formData.append('lon', '77.2090');
formData.append('tzone', '5.5');

const response = await fetch('https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals', {
  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-3.divineapi.com/indian-api/v1/tamil-festivals', [
    'headers' => [
        'Authorization' => 'Bearer {Your Auth Token}',
    ],
    'multipart' => [
        ['name' => 'api_key', 'contents' => '{Your API Key}'],
        ['name' => 'year', 'contents' => '2027'],
        ['name' => 'place', 'contents' => 'New Delhi'],
        ['name' => 'lat', 'contents' => '28.6139'],
        ['name' => 'lon', 'contents' => '77.2090'],
        ['name' => 'tzone', 'contents' => '5.5'],
    ],
]);

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("year", "2027")
    writer.WriteField("place", "New Delhi")
    writer.WriteField("lat", "28.6139")
    writer.WriteField("lon", "77.2090")
    writer.WriteField("tzone", "5.5")
    writer.Close()

    req, _ := http.NewRequest("POST", "https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals", 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("year", "2027")
            .addFormDataPart("place", "New Delhi")
            .addFormDataPart("lat", "28.6139")
            .addFormDataPart("lon", "77.2090")
            .addFormDataPart("tzone", "5.5")
            .build();

        Request request = new Request.Builder()
            .url("https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals")
            .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-3.divineapi.com/indian-api/v1/tamil-festivals")!
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=\"year\"\r\n\r\n".data(using: .utf8)!)
bodyData.append("2027\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)!)
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("year", "2027")
        .addFormDataPart("place", "New Delhi")
        .addFormDataPart("lat", "28.6139")
        .addFormDataPart("lon", "77.2090")
        .addFormDataPart("tzone", "5.5")
        .build()

    val request = Request.Builder()
        .url("https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals")
        .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("2027"), "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");

        var response = await client.PostAsync("https://astroapi-3.divineapi.com/indian-api/v1/tamil-festivals", content);
        var result = await response.Content.ReadAsStringAsync();
        Console.WriteLine(result);
    }
}
Response 200
{
    "success": 1,
    "data": {
        "year": 2027,
        "thai_pongal": {
            "date": "2027-01-15",
            "sankranti_moment": "2027-01-14 21:11:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Thai%20Pongal.png"
        },
        "puthandu": {
            "date": "2027-04-14",
            "sankranti_moment": "2027-04-14 15:29:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Puthandu.png"
        },
        "tamil_deepavali": {
            "date": "2027-10-28",
            "deepavali_muhurta": {
                "start_time": "2027-10-28 05:07:00",
                "end_time": "2027-10-28 06:30:00"
            },
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Tamil%20Deepavali.png"
        },
        "kedar_gauri_vrat": {
            "date": "2027-10-29",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Kedar%20Gauri%20Vrat.png"
        },
        "karthigai_deepam": {
            "date": "2027-12-11",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Karthigai%20Deepam.png"
        },
        "soorasamharam": {
            "date": "2027-11-04",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Soorasamharam.png"
        },
        "panguni_uthiram": {
            "date": "2027-03-22",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Panguni%20Uthiram.png"
        },
        "vaikuntha_ekadashi": {
            "smartas": {
                "date": "2027-01-18",
                "parana": {
                    "start_time": "2027-01-19 13:34:54",
                    "end_time": "2027-01-19 15:40:54"
                },
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikuntha%20Ekadashi.png"
            },
            "vaishnavas": {
                "date": "2027-01-19",
                "parana": {
                    "start_time": "2027-01-20 07:14:11",
                    "end_time": "2027-01-20 09:20:11"
                },
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikuntha%20Ekadashi.png"
            }
        },
        "vaikasi_visakam": {
            "date": "2027-05-20",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Vaikasi%20Visakam.png"
        },
        "thai_pusam": {
            "date": "2027-01-23",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Thai%20Pusam.png"
        },
        "karadaiyan_nombu": {
            "date": "2027-03-15",
            "sankranti_moment": "2027-03-15 07:01:00",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Karadaiyan%20Nombu.png"
        },
        "masi_magam": {
            "date": "2027-02-21",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Masi%20Magam.png"
        },
        "hanumath_jayanthi": [
            {
                "date": "2027-01-07",
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Hanumath%20Jayanthi.png"
            },
            {
                "date": "2027-12-27",
                "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Hanumath%20Jayanthi.png"
            }
        ],
        "arudra_darshan": [],
        "avani_avittam": {
            "date": "2027-08-17",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Avani%20Avittam.png"
        },
        "chitra_pournami": {
            "date": "2027-04-20",
            "image": "https://astroapi-6.divineapi.com/public/assets/vedic/festivals/images/main/Chitra%20Pournami.png"
        }
    }
}