Back to Docs
Numerology Profile

Numerology Profile API

POST/api/v1/numerology/profile

Calculate an explicit, versioned Pythagorean, Chaldean, Kabbalah/Gematria, or Ank Jyotish profile. The request and response are discriminated by method, so developers can validate each tradition without hidden defaults.

Full URL

https://api.freeastroapi.com/api/v1/numerology/profile

Authentication, quota, and privacy

Send x-api-key and Content-Type: application/json. Each call uses the normal API quota. The numerology calculation itself does not persist submitted names, dates, or derived results; every success reports the endpoint policy in meta.privacy.

Choose an explicit method profile

Pythagorean

pythagorean
Profiles
pythagorean-component-preserve-core-v1pythagorean-raw-date-preserve-core-v1
Policies

preserve_core_11_22_33 + root_only | compound_and_root | full_trace

Inputs

Requires birth_date. Name is optional; birth name enables name_analysis. Personal cycles use reference_date/as_of or a resolved timezone.

Output

Life Path, Birthday, Attitude, personal cycles, period cycles, pinnacles, challenges, and optional name/digit-grid analysis.

Chaldean / Cheiro

chaldean
Profiles
chaldean-cheiro-current-name-v1chaldean-cheiro-birth-name-v1
Policies

reduce_all + compound_and_root | full_trace

Inputs

Name-only. The profile selects current or birth name. Non-Latin names require a caller-supplied Latin transliteration.

Output

One Chaldean name number using the Cheiro 1-8 alphabet; no letter is assigned 9.

Kabbalah / Gematria

kabbalah
Profiles
kabbalah-gematria-hechrechi-v1kabbalah-gematria-siduri-v1kabbalah-gematria-katan-v1kabbalah-gematria-katan-mispari-v1kabbalah-gematria-millui-alef-v1kabbalah-gematria-millui-alef-reduced-v1
Policies

not_applicable + compound_and_root | full_trace

Inputs

Direct Hebrew (script=Hebr) and an explicit birth/current name_source. Niqqud is removed; transliteration is not used for calculation.

Output

Profile-specific Gematria total, root, and trace; Millui profiles expose frozen letter-name expansions.

Ank Jyotish

ank_jyotish
Profiles
ank-jyotish-civil-cheiro-navagraha-reduce-all-v1
Policies

reduce_all + compound_and_root | full_trace

Inputs

Requires Gregorian civil birth_date, explicit birth/current name_source, and the selected name. Non-Latin selected names require Latin transliteration.

Output

Moolank, Bhagyank, Namank, and versioned ruling-graha metadata with Hindi-ready labels.

Treat GET /methods as the canonical registry. Profile IDs are intentionally verbose because they freeze calculation choices that differ between practitioners and products.

Request body

Parameter
method.system
Type
string enum
Required
Yes
Default
-
Description
Discriminator: pythagorean, chaldean, kabbalah, or ank_jyotish.
Parameter
method.profile
Type
string enum
Required
Yes
Default
-
Description
Versioned profile ID advertised by GET /methods. The profile must belong to method.system.
Parameter
method.master_policy
Type
string enum
Required
Yes
Default
-
Description
Explicit master-number policy allowed by the selected profile. There is no hidden method default.
Parameter
method.compound_policy
Type
string enum
Required
Yes
Default
-
Description
Controls result evidence: root_only, compound_and_root, or full_trace where the profile permits it.
Parameter
method.name_source
Type
birth | current
Required
Conditional
Default
-
Description
Required for Kabbalah and Ank Jyotish. Chaldean encodes the selected name source in its profile ID.
Parameter
subject.birth_date
Type
date
Required
Conditional
Default
-
Description
Gregorian YYYY-MM-DD birth date. Required for Pythagorean and Ank Jyotish; unused by name-only methods.
Parameter
subject.name
Type
object
Required
Conditional
Default
-
Description
Structured name input containing at least birth or current. Required by Chaldean, Kabbalah, and Ank Jyotish; optional for Pythagorean name analysis.
Parameter
subject.name.birth
Type
string
Required
Conditional
Default
-
Description
Nonblank full birth name, maximum 200 characters. Pythagorean uses this field when present. Also required by profiles or name_source values that select birth.
Parameter
subject.name.current
Type
string
Required
Conditional
Default
-
Description
Nonblank current or everyday name, maximum 200 characters. Required by the Chaldean current-name profile or when name_source is current.
Parameter
subject.name.script
Type
ISO 15924
Required
No
Default
Latn
Description
Exact ISO 15924-style code matching ^[A-Z][a-z]{3}$, such as Latn, Deva, Cyrl, or Hebr. Kabbalah requires Hebr.
Parameter
subject.name.transliteration
Type
object
Required
Conditional
Default
-
Description
Caller-supplied Latin form. Include a nonblank profile (max 100) plus matching nonblank birth/current values (max 200). Pythagorean and Chaldean treat a supplied value as authoritative even for Latn; Ank ignores it for Latn. Kabbalah uses direct Hebrew.
Parameter
subject.calendar
Type
literal
Required
No
Default
gregory
Description
Currently fixed to the Gregorian calendar.
Parameter
subject.locale
Type
string enum
Required
No
Default
en
Description
en, en-IN, hi, or hi-IN. Current Pythagorean, Chaldean, and Kabbalah opt-in content requires exact en; other locales do not fall back to English. Hindi locales localize Ank labels and graha metadata.
Parameter
subject.tz_str
Type
string
Required
Conditional
Default
-
Description
Pythagorean only. Required when reference_date/as_of is omitted. Accepts an IANA timezone or AUTO.
Parameter
subject.city
Type
string
Required
Conditional
Default
-
Description
Location for tz_str=AUTO, maximum 200 characters. With no reference date, use this or paired lat/lng. With an explicit date, it is optional but needed if AUTO must actually resolve a timezone.
Parameter
subject.lat / subject.lng
Type
number pair
Required
Conditional
Default
-
Description
Latitude -90..90 and longitude -180..180. Both must be supplied together; they can resolve AUTO without geocoding a city.
Parameter
date_context.reference_date
Type
date
Required
Conditional
Default
-
Description
Date used for Pythagorean personal year/month/day cycles. The alias date_context.as_of is also accepted.
Parameter
date_context.year_anchor
Type
literal
Required
No
Default
calendar_year
Description
Currently fixed to calendar_year and echoed in meta.date_context.
Parameter
include_interpretations
Type
boolean
Required
No
Default
false
Description
Opt in to available versioned content. Arithmetic and provenance are always returned.

Name validation and transliteration precedence

  • A supplied name object must contain birth, current, or both.
  • For non-Latin Pythagorean and Chaldean input, provide transliteration for every supplied birth/current value. Ank Jyotish needs transliteration only for the name selected by method.name_source.
  • Pythagorean and Chaldean calculate from a supplied matching transliteration even when script: "Latn". Omit it for Latin names unless that replacement is intentional. Ank retains but ignores transliteration for Latin input.
  • Kabbalah accepts direct Hebrew input and does not use Latin transliteration.

Pythagorean timezone and calendar anchor

  • With reference_date or as_of, timezone is optional and that exact Gregorian date anchors the personal cycles. tz_str: "AUTO" without a location is valid here, but no resolved timezone is returned.
  • Without a date, subject.tz_str is required so the API can resolve the local current date.
  • tz_str: "AUTO" uses the same resolver as natal calculation. A city or paired coordinates is required when no date is supplied, and is optional with an explicit date unless you need AUTO resolved.
  • The response returns the resolved reference date, the requested timezone when supplied, the resolved timezone when resolution occurs, calendar: "gregory", and year_anchor: "calendar_year".
  • Chaldean, Kabbalah, and Ank Jyotish do not use this cycle date context.

Example requests

Switch method and language independently. These payloads are production-verified oracle cases.

curl -X POST "https://api.freeastroapi.com/api/v1/numerology/profile" \
  -H "Content-Type: application/json" \
  -H "x-api-key: YOUR_API_KEY" \
  --data '{
  "method": {
    "system": "pythagorean",
    "profile": "pythagorean-component-preserve-core-v1",
    "master_policy": "preserve_core_11_22_33",
    "compound_policy": "full_trace"
  },
  "subject": {
    "birth_date": "1992-07-16",
    "name": {
      "birth": "John Alan Doe",
      "script": "Latn"
    },
    "tz_str": "Europe/Paris"
  },
  "date_context": {
    "reference_date": "2026-07-15"
  },
  "include_interpretations": false
}'

Response envelope

Field
meta.schema_version
Type
string
Required
n/a
Description
Response contract version; currently 2.0.
Field
meta.source_profile_version
Type
string
Required
n/a
Description
Version of the method/source registry used for the calculation.
Field
meta.method
Type
object
Required
n/a
Description
Exact system, profile, and policy combination applied to the request.
Field
meta.date_context
Type
object
Required
n/a
Description
Pythagorean cycle anchor. Includes reference date, calendar/year anchor, and requested/resolved timezone when applicable.
Field
meta.calculation_policy
Type
object
Required
n/a
Description
Preserved masters, normalization rules, Y policy, alphabet table, and method-specific calculation settings.
Field
meta.graha_mapping
Type
object
Required
n/a
Description
Ank Jyotish only: versioned 1-9 ruling-graha registry with English, common, IAST, and Hindi names.
Field
meta.interpretations
Type
object
Required
n/a
Description
Whether content was requested, locale/content version, content kinds, and availability.
Field
meta.privacy
Type
object
Required
n/a
Description
Endpoint-level non-persistence metadata for the submitted subject data and derived numerology result.
Field
normalized_input
Type
object
Required
n/a
Description
Normalized dates, names, scripts, transliteration provenance, locale, and selected name source.
Field
data.kind
Type
string enum
Required
n/a
Description
Response discriminator matching method.system.
Field
data.core / data.*_analysis
Type
object
Required
n/a
Description
System-specific result: Pythagorean core/cycles/life cycles/name analysis, Chaldean name analysis, Kabbalah name analysis, or Ank core numbers.

Optional fields are omitted when unavailable; clients should not depend on explicit null values.

Numeric result semantics

Do not treat value and root as synonyms. The method decides which unreduced compound or master number remains canonical.

Field
raw_total
Type
integer
Required
n/a
Description
Arithmetic total before the method applies its final reduction policy.
Field
compound
Type
integer
Required
n/a
Description
Unreduced compound retained by the selected method and compound policy.
Field
value
Type
integer
Required
n/a
Description
Canonical method value. It is not always the root: a Pythagorean birthday may preserve 16 and classic Gematria may preserve 26.
Field
root
Type
integer
Required
n/a
Description
Reduced root used for comparisons and value_display.
Field
value_display
Type
string
Required
n/a
Description
Stable display form such as 17/8, 26/8, or 6.
Field
master_number
Type
integer
Required
n/a
Description
Present only when the selected policy preserves an applicable 11, 22, or 33.
Field
reduction_path
Type
array<integer>
Required
n/a
Description
Ordered reduction path included by full_trace, for example [30, 3].
Field
steps
Type
array<object>
Required
n/a
Description
Auditable full_trace operations with source, input, and result.
Field
details
Type
object
Required
n/a
Description
Calculation evidence such as date digits, per-token totals, character values, and alphabet IDs.
Field
karmic_debts
Type
array<object>
Required
n/a
Description
Pythagorean debt findings with number, root, display, source component, and provenance origin.
Field
warnings
Type
array<object>
Required
n/a
Description
Nonfatal method or content caveats. Warnings do not change the HTTP success status.
root_only

Canonical value/root without totals or calculation evidence.

compound_and_root

Keeps totals and structured details, but omits the step trace.

full_trace

Adds reduction paths, operations, and character-level evidence.

Selected response fields

These are valid excerpts from successful responses. Full responses include every calculation and the evidence level selected by compound_policy.

{
  "meta": {
    "schema_version": "2.0",
    "source_profile_version": "2026-07",
    "method": {
      "system": "pythagorean",
      "profile": "pythagorean-component-preserve-core-v1",
      "master_policy": "preserve_core_11_22_33",
      "compound_policy": "full_trace"
    },
    "date_context": {
      "reference_date": "2026-07-15",
      "timezone_requested": "Europe/Paris",
      "timezone_resolved": "Europe/Paris",
      "calendar": "gregory",
      "year_anchor": "calendar_year"
    },
    "privacy": {
      "persisted": false,
      "retention": "none_by_numerology_endpoint",
      "request_data_stored_by_endpoint": false
    }
  },
  "data": {
    "kind": "pythagorean",
    "core": {
      "life_path": {
        "calculation": "life_path",
        "raw_total": 17,
        "compound": 17,
        "value": 8,
        "root": 8,
        "value_display": "17/8",
        "reduction_path": [
          17,
          8
        ]
      },
      "birthday": {
        "calculation": "birthday",
        "raw_total": 16,
        "compound": 16,
        "value": 16,
        "root": 7,
        "value_display": "16/7"
      }
    },
    "cycles": {
      "personal_year": {
        "value_display": "6"
      },
      "personal_month": {
        "value_display": "13/4"
      },
      "personal_day": {
        "value_display": "19/1"
      }
    },
    "name_analysis": {
      "expression": {
        "value_display": "9"
      },
      "soul_urge": {
        "value_display": "19/1"
      },
      "personality": {
        "value_display": "17/8"
      }
    }
  }
}

Interpretation behavior

include_interpretations defaults to false. Calculation values, provenance, and warnings do not depend on prose content.

  • Locale: current Pythagorean, Chaldean, and Kabbalah content requires exact subject.locale: "en". en-IN, hi, and hi-IN do not fall back to English; unavailable content is omitted and reported with NUM-CONTENT-001.
  • Pythagorean: calculation-specific English archetype content is available for locale en.
  • Chaldean: English compound/root content is available for compounds 10-52 with locale en. Larger totals return root-only content with NUM-CONTENT-002.
  • Kabbalah: arithmetic alone is not presented as a universal personal meaning. For locale en, opt-in content is a profile-specific method explanation.
  • Ank Jyotish: deterministic arithmetic and graha metadata are returned without generated interpretation prose, even when requested.

Errors and nonfatal warnings

Numerology validation uses RFC 9457 application/problem+json with a trace ID. Authentication happens earlier: missing and invalid keys return ordinary JSON with HTTP 401 and 403.

Field
NUM-000
Type
HTTP 422
Required
n/a
Description
Fallback invalid request.
Field
NUM-001
Type
HTTP 400
Required
n/a
Description
Invalid birth date, reference_date, or as_of value.
Field
NUM-002
Type
HTTP 400
Required
n/a
Description
Unsupported system/profile or a method field that belongs to another discriminator variant.
Field
NUM-003
Type
HTTP 422
Required
n/a
Description
Missing, blank, or unmappable required name.
Field
NUM-004
Type
HTTP 422
Required
n/a
Description
Unsupported, mixed, or incorrect script.
Field
NUM-005
Type
HTTP 422
Required
n/a
Description
Vowel/Y-policy ambiguity. The same code can also appear as a nonfatal result warning.
Field
NUM-006
Type
HTTP 422
Required
n/a
Description
Required transliteration or transliteration profile is missing or invalid.
Field
NUM-007
Type
HTTP 409
Required
n/a
Description
Master or compound policy is incompatible with the selected profile.
Field
NUM-008
Type
HTTP 422
Required
n/a
Description
Required timezone/date context is missing or AUTO cannot be resolved.

422 — missing Pythagorean timezone

{
  "type": "https://freeastroapi.com/problems/num-008",
  "title": "Invalid date context",
  "status": 422,
  "detail": "subject.tz_str is required when date_context.reference_date is omitted",
  "instance": "/api/v1/numerology/profile",
  "code": "NUM-008",
  "field": "subject.tz_str",
  "trace_id": "45457e6a"
}

Successful results can also carry NUM-CONTENT-001/002 or NUM-METHOD-001..004 warnings. Treat them as machine-readable caveats, not failed calculations.

Method scope

Numerology is tradition-specific symbolic practice, not a scientific measurement or professional recommendation. The Ank profile is explicitly a modern composite: Gregorian civil-date arithmetic, Cheiro 1-8 Namank, explicit name-source selection, and a versioned 1-9 graha map. It does not silently apply a near-dawn birth boundary or infer a person's most-used name.

Related endpoints

Frequently asked questions

Which numerology profile should my integration use?

Call GET /api/v1/numerology/methods and store the explicit profile and policy combination you choose. The profile IDs freeze method differences that would otherwise be hidden assumptions.

When is a timezone required?

Only Pythagorean personal cycles need a date anchor. If reference_date or as_of is present, timezone is optional. If it is omitted, provide an IANA tz_str or AUTO with a city or paired coordinates.

Does the numerology endpoint store names or birth dates?

The calculation endpoint does not persist subject names, dates, or derived numerology results. Successful responses expose this endpoint-level policy in meta.privacy; normal platform security and quota operations are separate.

Are interpretations returned automatically?

No. include_interpretations defaults to false. With subject.locale set exactly to en, Pythagorean and bounded Chaldean English content can be requested and Kabbalah can return a method explanation rather than a generic personal meaning. en-IN, hi, and hi-IN do not fall back to English. Ank Jyotish returns arithmetic and graha metadata without interpretation prose.

What does Hindi locale support include?

For Ank Jyotish, hi and hi-IN return Hindi calculation labels plus English, common romanization, IAST, and Hindi graha names. Hindi interpretation prose is not currently returned.