Put the readings on any site
One script tag for the widget, or a JSON API for your own app. English and Hindi.
Sign in or create a free account to create a key.
The embed
One script tag puts the full reading widget on any page: the question, the shuffle, the fan of cards, the flip, and the reading in English and Hindi. It runs inside an iframe, so your theme's CSS cannot break it and it cannot touch your page. It grows to fit its content.
<script src="https://tarotpandit.com/embed.js" data-key="tp_pub_YOUR_KEY" data-spread="past-present-future" data-lang="en" async></script>
data-key: a public key whose allowlist includes your site, for examplehttps://www.example.com.data-spread: any spread slug fromGET /api/v1/spreads. Free keys use the free spreads:daily,yes-or-no,past-present-future,celtic-cross.data-lang:enorhifor the language that leads.
The widget only loads on the sites in the key's allowlist; the browser refuses it anywhere else. Each reading counts against the key's daily quota.
Shopify
In the theme editor, add a Custom Liquid section to the page template you want (for example a page called Tarot) and paste:
<div style="max-width:980px;margin:0 auto">
<script src="https://tarotpandit.com/embed.js" data-key="tp_pub_YOUR_KEY" data-spread="past-present-future" data-lang="en" async></script>
</div>
Add both https://your-store.com and https://your-store.myshopify.com to the key's allowlist if the store is reached at both.
The JSON API
Base address https://tarotpandit.com/api/v1. Responses are JSON in UTF-8. Every card and spread also exists as JSON, so a mobile app can be built on the same API.
Open endpoints, no key
| Request | Returns |
|---|---|
GET /cards?lang=en|hi | All 78 cards: name, Hindi name, numeral, arcana, suit, element, images, page address. |
GET /cards/{slug}?lang=hi | One card with keywords, essence, upright and reversed meanings, yes or no, astrology. |
GET /spreads | Every spread with its positions and tier. |
GET /daily?lang=en | The card of the day (Indian Standard Time). |
Keyed endpoints
| Request | Returns |
|---|---|
POST /readings | A bilingual reading. Body: {"spread": "celtic-cross", "question": "…", "lang": "en", "name": "…", "dob": "1990-05-17"}. The date of birth only selects the birth card and is not stored. |
GET /readings/{token} | A reading this key created. |
GET /usage | The key's quota, today's use and the last 30 days. |
From your server, send a secret key: Authorization: Bearer tp_sec_…. From a browser, send a public key in X-TP-Key; the page's origin must be on the key's allowlist. Never put a secret key in a web page.
curl -X POST https://tarotpandit.com/api/v1/readings \
-H "Authorization: Bearer tp_sec_YOUR_SECRET" -H "Content-Type: application/json" \
-d '{"spread":"past-present-future","question":"How do I approach the new role?","lang":"en"}'
Each card in a reading carries four sections, each in English and Hindi (speaks, position, combined, guidance), and the reading closes with a synthesis. Errors: 401 no or unknown key, 403 origin not allowed, 402 spread not included with the key, 404 unknown spread, 429 daily quota used.
Quotas and terms
Free keys: 100 readings a day, free spreads, with a "Powered by TarotPandit" line that must stay visible. Practitioner members: 1000 a day, and every spread through a secret (server) key. White-label keys and higher quotas: write to care@pandit.com. Do not present the readings as medical, legal or financial advice.