Send readings on WhatsApp

AstroLogics does not send WhatsApp messages. Your server or automation gets the reading from our API, then gives it to a WhatsApp Business Solution Provider, which delivers it. You keep your subscribers' phone numbers and consent with that provider and on your side. Phone numbers never need to reach AstroLogics, because a horoscope call carries only the sign, the period, the date and the language.

Early guide: we checked each provider's request against its own documentation on 3 November 2026, and we ran the AiSensy workflow below against a stand-in server. We have not sent a real message through any of these providers. Check their current documentation before you rely on the details, and tell us at developers@astrologics.in if anything differs.

Before you start

  • A WhatsApp Business API account with a provider. A personal or ordinary WhatsApp Business app number will not do.
  • An opt-in from each person you message. Keep a record of it, and make it easy to stop. This is WhatsApp's rule, and your responsibility.
  • An approved template. To message someone who has not written to you in the past 24 hours, you must use a template that Meta has approved.
  • A cost in mind. Meta charges per template message, by category, and your provider may add its own charge. A regular horoscope is likely to count as marketing, the dearer category. Meta decides the category when it reviews your template, so check your provider's current rates.

1. Create a template

Your provider's dashboard submits it for approval. This one has three variables:

Namaste {{1}}. Your {{2}} reading for today: {{3}} Reply STOP to stop these messages.

Variable values cannot contain line breaks. Our reading field is a single line. Meta tends to refuse a template that starts or ends with a variable, which is why this one has words on both ends. Keep the Hindi and English versions as two templates, each in its own language.

2. Get the reading once for each sign

Readings are the same for everyone with the same sign, period, date and language. Fetch each once a day, however many subscribers you have, and reuse it. That is at most 12 calls a day for each language, at 1 credit each.

curl 'https://api.astrologics.in/v1/horoscope/leo?period=weekly&date=2026-10-02&lang=hi' \
  -H 'Authorization: Bearer al_test_YOUR_KEY'

Use data.sign_label for {{2}} and data.reading for {{3}}. With lang=hi both are in Hindi.

3. Send it through your provider

Providers are in alphabetical order. We know of no neutral ranking, so choose on price, support and what your business already uses.

Provider Good to know
AiSensy You send through a campaign you create in its dashboard
Gupshup Takes a form post, and identifies a template by its ID
Interakt Its public API is not on its Starter plan
LeadNXT Offers a WhatsApp Business API. We found no public API documentation
WATI A request needs your tenant ID, and a success means accepted, not delivered

The values in these requests are made up. Each provider's key is a secret, so send these from a server or from n8n, never from a web page.

AiSensy

Create the template, then an API campaign that uses it, and set the campaign to Live. Your API key is in the dashboard. See AiSensy's API reference.

curl -X POST https://backend.aisensy.com/campaign/t1/api/v2 \
  -H "Content-Type: application/json" \
  -d '{
    "apiKey": "YOUR_AISENSY_KEY",
    "campaignName": "daily_horoscope",
    "destination": "+910000000000",
    "userName": "Your AiSensy project name",
    "templateParams": ["Asha", "Leo", "A good day to finish what you started."]
  }'

The templateParams list must have as many values as the template has variables, or AiSensy rejects the request.

There is an n8n workflow for this one: Daily horoscope on WhatsApp. Follow the n8n guide, and for the AiSensy step create a Custom Auth credential, so that your key is not stored in the workflow:

{ "body": { "apiKey": "YOUR_AISENSY_KEY" } }

Gupshup

A template is identified by its ID, which you get from Gupshup once it is created. source is your registered number, and neither number has a +. See Gupshup's template messages.

curl -X POST https://api.gupshup.io/wa/api/v1/template/msg \
  -H "apikey: YOUR_GUPSHUP_KEY" \
  --data-urlencode "source=910000000001" \
  --data-urlencode "destination=910000000000" \
  --data-urlencode 'template={"id":"YOUR_TEMPLATE_ID","params":["Asha","Leo","A good day to finish what you started."]}'

A success means that Gupshup has accepted the message. Whether it was delivered comes to your webhook.

Interakt

Your key is in the dashboard under Developer Settings, and is sent after the word Basic, as it is. The template's language must match the one you created it in. See Interakt's guide.

curl -X POST https://api.interakt.ai/v1/public/message/ \
  -H "Authorization: Basic YOUR_INTERAKT_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "countryCode": "+91",
    "phoneNumber": "0000000000",
    "type": "Template",
    "template": {
      "name": "daily_horoscope",
      "languageCode": "en",
      "bodyValues": ["Asha", "Leo", "A good day to finish what you started."]
    }
  }'

LeadNXT

LeadNXT offers bulk WhatsApp campaigns, a chatbot and missed-call-to-WhatsApp, along with its lead management tools. We did not find public API documentation, so ask LeadNXT how to send a template by API. The horoscope call in step 2 stays the same.

WATI

Your tenant ID and token are in the dashboard under API Settings. WATI recommends its newer v3 API for new work, so check its reference first. This is the documented v1 request:

curl -X POST "https://live-mt-server.wati.io/YOUR_TENANT_ID/api/v1/sendTemplateMessage?whatsappNumber=910000000000" \
  -H "Authorization: Bearer YOUR_WATI_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "template_name": "daily_horoscope",
    "broadcast_name": "daily_horoscope",
    "channel_number": "910000000001",
    "parameters": [
      { "name": "1", "value": "Asha" },
      { "name": "2", "value": "Leo" },
      { "name": "3", "value": "A good day to finish what you started." }
    ]
  }'

Other messages

The panchang works the same way, at 1 credit for each date and place. It returns no paragraph of text, so build your line from data.tithi.label, data.nakshatra.label and data.rahu_kaal, as the daily panchang workflow does.

Keep to readings that are the same for many people. A message built from one person's birth details is that person's data, so check what your provider stores and keeps before you send it.