Biorhythm

Three cycles counted from the date of birth: the day's values, a chartable range, critical days, phases and two people's distance. Arithmetic, with the sources and the evidence stated.

The three cycles on a date, with their state, trend, next critical date and meaning

POST/v1/biorhythm/reading

1 credit · Secret key (test or live) · getBiorhythmReading · Page for this operation

Value = 100 × sin(2π × days since birth ÷ period), with periods of 23, 28 and 33 days. Controlled studies have not found that biorhythm predicts events.

Request body

  • birth_date string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • date string (date) required

    e.g. "1990-08-13"

  • lang string

    one of en, hi · default "en"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • days_since_birth integer required
  • cycles array of object required
    • id string required

      one of physical, emotional, intellectual

    • name string required
    • period_days integer required
    • value number required

      ≥ -100 · ≤ 100

    • state string required

      one of positive, negative, critical

    • trend string required

      one of rising, falling

    • day_in_cycle integer required
    • next_critical string (date) required

      e.g. "1990-08-13"

    • meaning string required
  • critical_today array of string required
  • note string required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/reading' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date":"1990-05-15","date":"2026-11-02"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/reading", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date": "1990-05-15",
    "date": "2026-11-02"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date": "1990-05-15",
    "date": "2026-11-02",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/reading",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/reading');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-15","date":"2026-11-02"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,595 characters
{
  "data": {
    "date": "2026-11-02",
    "days_since_birth": 13320,
    "cycles": [
      {
        "id": "physical",
        "name": "Physical",
        "period_days": 23,
        "value": 73.1,
        "state": "positive",
        "trend": "rising",
        "day_in_cycle": 3,
        "next_critical": "2026-11-10",
        "meaning": "The physical cycle is in its upper half, which biorhythm charts read as more energy and stamina."
      },
      {
        "id": "emotional",
        "name": "Emotional",
        "period_days": 28,
        "value": -97.5,
        "state": "negative",
        "trend": "falling",
        "day_in_cycle": 20,
        "next_critical": "2026-11-10",
        "meaning": "The emotional cycle is in its lower half, which biorhythm charts read as a quieter or more sensitive mood."
      },
      {
        "id": "intellectual",
        "name": "Intellectual",
        "period_days": 33,
        "value": -75.6,
        "state": "negative",
        "trend": "falling",
        "day_in_cycle": 21,
        "next_critical": "2026-11-14",
        "meaning": "The intellectual cycle is in its lower half, which biorhythm charts read as a time for review over new work."
      }
    ],
    "critical_today": [],
    "note": "Biorhythm is a tradition of counting days from birth. Controlled studies have not found that it predicts events, so read this for interest and not for decisions."
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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

The three values for each day of a range, ready to chart

POST/v1/biorhythm/forecast

1 credit · Secret key (test or live) · getBiorhythmForecast · Page for this operation

Request body

  • birth_date string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • from string (date) required

    e.g. "1990-08-13"

  • days integer

    ≥ 1 · ≤ 366 · default 30

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • from string (date) required

    e.g. "1990-08-13"

  • count integer required
  • days array of object required
    • date string (date) required

      e.g. "1990-08-13"

    • physical number required
    • emotional number required
    • intellectual number required
    • critical array of string required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/forecast' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date":"1990-05-15","from":"2026-11-02","days":7}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/forecast", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date": "1990-05-15",
    "from": "2026-11-02",
    "days": 7
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date": "1990-05-15",
    "from": "2026-11-02",
    "days": 7,
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/forecast",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/forecast');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-15","from":"2026-11-02","days":7}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,334 characters
{
  "data": {
    "from": "2026-11-02",
    "count": 7,
    "days": [
      {
        "date": "2026-11-02",
        "physical": 73.1,
        "emotional": -97.5,
        "intellectual": -75.6,
        "critical": []
      },
      {
        "date": "2026-11-03",
        "physical": 88.8,
        "emotional": -100,
        "intellectual": -86.6,
        "critical": []
      },
      {
        "date": "2026-11-04",
        "physical": 97.9,
        "emotional": -97.5,
        "intellectual": -94.5,
        "critical": []
      },
      {
        "date": "2026-11-05",
        "physical": 99.8,
        "emotional": -90.1,
        "intellectual": -99,
        "critical": []
      },
      {
        "date": "2026-11-06",
        "physical": 94.2,
        "emotional": -78.2,
        "intellectual": -99.9,
        "critical": []
      },
      {
        "date": "2026-11-07",
        "physical": 81.7,
        "emotional": -62.3,
        "intellectual": -97.2,
        "critical": []
      },
      {
        "date": "2026-11-08",
        "physical": 63.1,
        "emotional": -43.4,
        "intellectual": -91,
        "critical": []
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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

The dates a cycle crosses zero, marked single, double or triple

POST/v1/biorhythm/critical-days

1 credit · Secret key (test or live) · getBiorhythmCriticalDays · Page for this operation

With 23 and 33 days the crossing can fall between two dates. A date is critical when a crossing falls between its start and the start of the next date. At most 366 days.

Request body

  • birth_date string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    Inclusive. At most 366 days from from.

    e.g. "1990-08-13"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • from string (date) required

    e.g. "1990-08-13"

  • to string (date) required

    e.g. "1990-08-13"

  • count integer required
  • days array of object required
    • date string (date) required

      e.g. "1990-08-13"

    • days_since_birth integer required
    • kind string required

      one of single, double, triple

    • crossings array of object required
      Fields
      • cycle string required

        one of physical, emotional, intellectual

      • direction string required

        one of rising, falling

      • crossing_day number required

        Days since birth at the crossing. It can end in .5.

  • rule string required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/critical-days' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date":"1990-05-15","from":"2026-11-01","to":"2026-11-30"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/critical-days", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date": "1990-05-15",
    "from": "2026-11-01",
    "to": "2026-11-30"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date": "1990-05-15",
    "from": "2026-11-01",
    "to": "2026-11-30",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/critical-days",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/critical-days');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-15","from":"2026-11-01","to":"2026-11-30"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,867 characters
{
  "data": {
    "from": "2026-11-01",
    "to": "2026-11-30",
    "count": 5,
    "days": [
      {
        "date": "2026-11-10",
        "days_since_birth": 13328,
        "kind": "double",
        "crossings": [
          {
            "cycle": "physical",
            "direction": "falling",
            "crossing_day": 13328.5
          },
          {
            "cycle": "emotional",
            "direction": "rising",
            "crossing_day": 13328
          }
        ]
      },
      {
        "date": "2026-11-14",
        "days_since_birth": 13332,
        "kind": "single",
        "crossings": [
          {
            "cycle": "intellectual",
            "direction": "rising",
            "crossing_day": 13332
          }
        ]
      },
      {
        "date": "2026-11-22",
        "days_since_birth": 13340,
        "kind": "single",
        "crossings": [
          {
            "cycle": "physical",
            "direction": "rising",
            "crossing_day": 13340
          }
        ]
      },
      {
        "date": "2026-11-24",
        "days_since_birth": 13342,
        "kind": "single",
        "crossings": [
          {
            "cycle": "emotional",
            "direction": "falling",
            "crossing_day": 13342
          }
        ]
      },
      {
        "date": "2026-11-30",
        "days_since_birth": 13348,
        "kind": "single",
        "crossings": [
          {
            "cycle": "intellectual",
            "direction": "falling",
            "crossing_day": 13348.5
          }
        ]
      }
    ],
    "rule": "A date is critical when a cycle crosses zero between its start and the start of the next date."
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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

How far two people's cycles sit apart, scored for each cycle

POST/v1/biorhythm/compatibility

1 credit · Secret key (test or live) · getBiorhythmCompatibility · Page for this operation

The distance between two people's cycles never changes, so this takes no date. The score is a labelled convention.

Request body

  • birth_date_a string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • birth_date_b string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • lang string

    one of en, hi · default "en"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • days_apart integer required
  • cycles array of object required
    • id string required

      one of physical, emotional, intellectual

    • name string required
    • offset_days integer required
    • score number required

      ≥ 0 · ≤ 100

  • overall number required

    ≥ 0 · ≤ 100

  • basis string required

    one of convention

  • rule string required
  • note string required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/compatibility' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date_a":"1990-05-15","birth_date_b":"1992-01-20"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/compatibility", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date_a": "1990-05-15",
    "birth_date_b": "1992-01-20"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date_a": "1990-05-15",
    "birth_date_b": "1992-01-20",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/compatibility",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/compatibility');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date_a":"1990-05-15","birth_date_b":"1992-01-20"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 931 characters
{
  "data": {
    "days_apart": 615,
    "cycles": [
      {
        "id": "physical",
        "name": "Physical",
        "offset_days": 17,
        "score": 46.6
      },
      {
        "id": "emotional",
        "name": "Emotional",
        "offset_days": 27,
        "score": 98.7
      },
      {
        "id": "intellectual",
        "name": "Intellectual",
        "offset_days": 21,
        "score": 17.3
      }
    ],
    "overall": 54.2,
    "basis": "convention",
    "rule": "score = 50 × (1 + cos(2π × days apart ÷ period)); overall is the mean of the three.",
    "note": "Biorhythm is a tradition of counting days from birth. Controlled studies have not found that it predicts events, so read this for interest and not for decisions."
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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

Where each cycle is: its half, when that half began and ends, and the next peak and trough

POST/v1/biorhythm/phases

1 credit · Secret key (test or live) · getBiorhythmPhases · Page for this operation

Request body

  • birth_date string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • date string (date) required

    e.g. "1990-08-13"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • days_since_birth integer required
  • cycles array of object required
    • id string required

      one of physical, emotional, intellectual

    • period_days integer required
    • half string required

      one of upper, lower

    • trend string required

      one of rising, falling

    • percent_through_cycle number required
    • half_began string (date) required

      e.g. "1990-08-13"

    • half_ends string (date) required

      e.g. "1990-08-13"

    • next_peak string (date) required

      e.g. "1990-08-13"

    • next_trough string (date) required

      e.g. "1990-08-13"

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/phases' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date":"1990-05-15","date":"2026-11-02"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/phases", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date": "1990-05-15",
    "date": "2026-11-02"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date": "1990-05-15",
    "date": "2026-11-02",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/phases",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/phases');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-15","date":"2026-11-02"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,185 characters
{
  "data": {
    "date": "2026-11-02",
    "days_since_birth": 13320,
    "cycles": [
      {
        "id": "physical",
        "period_days": 23,
        "half": "upper",
        "trend": "rising",
        "percent_through_cycle": 13,
        "half_began": "2026-10-30",
        "half_ends": "2026-11-10",
        "next_peak": "2026-11-05",
        "next_trough": "2026-11-16"
      },
      {
        "id": "emotional",
        "period_days": 28,
        "half": "lower",
        "trend": "falling",
        "percent_through_cycle": 71.4,
        "half_began": "2026-10-27",
        "half_ends": "2026-11-10",
        "next_peak": "2026-11-17",
        "next_trough": "2026-11-03"
      },
      {
        "id": "intellectual",
        "period_days": 33,
        "half": "lower",
        "trend": "falling",
        "percent_through_cycle": 63.6,
        "half_began": "2026-10-28",
        "half_ends": "2026-11-14",
        "next_peak": "2026-11-22",
        "next_trough": "2026-11-06"
      }
    ]
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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

A short daily summary with the coming week's values

POST/v1/biorhythm/daily

1 credit · Secret key (test or live) · getBiorhythmDaily · Page for this operation

Request body

  • birth_date string (date) required

    The date of birth. It is used for this response and not stored.

    e.g. "1990-08-13"

  • date string (date) required

    e.g. "1990-08-13"

  • lang string

    one of en, hi · default "en"

No other fields are accepted.

Response

JSON { data, meta, warnings }, where data is:

  • date string (date) required

    e.g. "1990-08-13"

  • headline string required
  • values object required
    • physical number required
    • emotional number required
    • intellectual number required
  • highest string required

    one of physical, emotional, intellectual

  • critical_today array of string required
  • next_critical string (date) required

    e.g. "1990-08-13"

  • week array of object required
    • date string (date) required

      e.g. "1990-08-13"

    • physical number required
    • emotional number required
    • intellectual number required
    • critical array of string required
  • note string required

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

Example request

curl -X POST 'https://api.astrologics.in/v1/biorhythm/daily' \
  -H 'Authorization: Bearer al_test_YOUR_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"birth_date":"1990-05-15","date":"2026-11-02","lang":"hi"}'
Node.js
const res = await fetch("https://api.astrologics.in/v1/biorhythm/daily", {
  method: "POST",
  headers: { Authorization: "Bearer al_test_YOUR_KEY", "Content-Type": "application/json" },
  body: JSON.stringify({
    "birth_date": "1990-05-15",
    "date": "2026-11-02",
    "lang": "hi"
  }),
});
console.log(JSON.stringify(await res.json(), null, 2));
Python
import json
import urllib.error
import urllib.request

body = {
    "birth_date": "1990-05-15",
    "date": "2026-11-02",
    "lang": "hi",
}

req = urllib.request.Request(
    "https://api.astrologics.in/v1/biorhythm/daily",
    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(json.dumps(json.load(res), indent=2, ensure_ascii=False))
except urllib.error.HTTPError as err:
    print(err.code, err.read().decode())
PHP
<?php
$ch = curl_init('https://api.astrologics.in/v1/biorhythm/daily');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => ['Authorization: Bearer al_test_YOUR_KEY', 'Content-Type: application/json'],
    CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-15","date":"2026-11-02","lang":"hi"}',
    CURLOPT_RETURNTRANSFER => true,
]);
echo curl_exec($ch), PHP_EOL;

Example response

200 OK · 1,723 characters
{
  "data": {
    "date": "2026-11-02",
    "headline": "आज सबसे ऊँचा: शारीरिक।",
    "values": {
      "physical": 73.1,
      "emotional": -97.5,
      "intellectual": -75.6
    },
    "highest": "physical",
    "critical_today": [],
    "next_critical": "2026-11-10",
    "week": [
      {
        "date": "2026-11-02",
        "physical": 73.1,
        "emotional": -97.5,
        "intellectual": -75.6,
        "critical": []
      },
      {
        "date": "2026-11-03",
        "physical": 88.8,
        "emotional": -100,
        "intellectual": -86.6,
        "critical": []
      },
      {
        "date": "2026-11-04",
        "physical": 97.9,
        "emotional": -97.5,
        "intellectual": -94.5,
        "critical": []
      },
      {
        "date": "2026-11-05",
        "physical": 99.8,
        "emotional": -90.1,
        "intellectual": -99,
        "critical": []
      },
      {
        "date": "2026-11-06",
        "physical": 94.2,
        "emotional": -78.2,
        "intellectual": -99.9,
        "critical": []
      },
      {
        "date": "2026-11-07",
        "physical": 81.7,
        "emotional": -62.3,
        "intellectual": -97.2,
        "critical": []
      },
      {
        "date": "2026-11-08",
        "physical": 63.1,
        "emotional": -43.4,
        "intellectual": -91,
        "critical": []
      }
    ],
    "note": "बायोरिदम जन्म से दिन गिनने की एक परंपरा है। नियंत्रित अध्ययनों में यह घटनाओं का पूर्वानुमान करती नहीं पाई गई, इसलिए इसे रुचि के लिए पढ़ें, निर्णय के लिए नहीं।"
  },
  "meta": {
    "request_id": "req_example",
    "api_version": "v1",
    "engine_version": "2026.10.10",
    "mode": "live",
    "credits_charged": 1
  },
  "warnings": []
}
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