API reference › Reports

Kundli Matching PDF Report API

A client-ready matching report as a PDF: Ashtakoot, Dashakoot and Manglik

POST/v1/reports/match.pdf

10 credits · Secret key (test or live) · getMatchReport

Needs both birth times. With lang hi the labels and Dashakoot are Hindi; Ashtakoot notes and Manglik notes stay in English. Nothing is stored.

Request body

  • person_a Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • person_b Birth required
    • date string (date) required

      e.g. "1990-08-13"

    • time string

      pattern ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$ · e.g. "06:30"

    • time_accuracy string

      With "unknown", lagna- and house-dependent fields are omitted and listed in warnings — never filled with a noon default.

      one of exact, approximate, unknown · default "exact"

    • place Coordinates or object or object required

      Coordinates, a place_id from /v1/places/search, or a free-text query. A vague query returns 422 place_ambiguous with candidates; the API never guesses.

      One of:

      1. Coordinates
        Fields
        • latitude number required

          ≥ -90 · ≤ 90

        • longitude number required

          ≥ -180 · ≤ 180

        No other fields are accepted.

      2. object
        Fields
        • place_id string required

        No other fields are accepted.

      3. object
        Fields
        • query string required

          at least 2 characters · at most 120 characters

        No other fields are accepted.

    • timezone string

      "auto" (from coordinates AND date), an IANA name, or a fixed offset like "+05:30".

      default "auto"

    No other fields are accepted.

  • brand object required
    • name string required

      Printed at the top of every page.

      at least 1 characters · at most 80 characters

    • tagline string

      at most 120 characters

    • contact string

      Printed at the foot of every page.

      at most 120 characters

    • color string

      Accent colour, as #rrggbb.

      pattern ^#[0-9a-fA-F]{6}$

    • logo_base64 string

      A PNG or JPEG in base64, up to about 150 KB.

      at most 200000 characters

    No other fields are accepted.

  • name_a string

    at least 1 characters · at most 80 characters

  • name_b string

    at least 1 characters · at most 80 characters

  • lang string

    one of en, hi · default "en"

No other fields are accepted.

Response

application/pdf

Errors: 400, 401, 403, 404, 422, 429, 500. See error codes.

Example request

curl -X POST 'https://api.astrologics.in/v1/reports/match.pdf' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"person_a":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"person_b":{"date":"1992-03-02","time":"14:10","place":{"latitude":19.076,"longitude":72.8777}},"brand":{"name":"Sample Jyotish Studio"},"lang":"hi"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/reports/match.pdf", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "person_a": {
      "date": "1990-08-13",
      "time": "06:30",
      "place": {
        "latitude": 28.6139,
        "longitude": 77.209
      }
    },
    "person_b": {
      "date": "1992-03-02",
      "time": "14:10",
      "place": {
        "latitude": 19.076,
        "longitude": 72.8777
      }
    },
    "brand": {
      "name": "Sample Jyotish Studio"
    },
    "lang": "hi"
  }),
});
console.log(await res.text());
Python
import json
import urllib.error
import urllib.request

body = {
    "person_a": {
        "date": "1990-08-13",
        "time": "06:30",
        "place": {
            "latitude": 28.6139,
            "longitude": 77.209,
        },
    },
    "person_b": {
        "date": "1992-03-02",
        "time": "14:10",
        "place": {
            "latitude": 19.076,
            "longitude": 72.8777,
        },
    },
    "brand": {
        "name": "Sample Jyotish Studio",
    },
    "lang": "hi",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/reports/match.pdf",
    method="POST",
    headers={"Authorization": "Bearer al_test_YOUR_KEY", "Content-Type": "application/json"},
    data=json.dumps(body).encode(),
)
try:
    with urllib.request.urlopen(req) as res:
        print(res.read().decode())
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/reports/match.pdf');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"person_a":{"date":"1990-08-13","time":"06:30","place":{"latitude":28.6139,"longitude":77.209}},"person_b":{"date":"1992-03-02","time":"14:10","place":{"latitude":19.076,"longitude":72.8777}},"brand":{"name":"Sample Jyotish Studio"},"lang":"hi"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

Returns a PDF document. Save the response body as a file.

Try it

Leave empty to use the shared demo key (limited). Test keys only: never charged. Kept in this browser tab and sent through this site to the API. Create one

More in Reports

Get a free API key Reports product page