Skip to content
96Astro API

API reference

Human Design

Human Design type, authority, profile, centers, channels and gates, calculated from the birth and design moments, with our own descriptions. Not affiliated with or endorsed by any owner of a Human Design trademark.

  • 6 endpoints
  • POST JSON body
  • Bearer key

6 endpoints. Every endpoint is POST with a JSON body and your key in the Authorization header. Request schemas and examples come from the OpenAPI document; each example response was captured from the live engine, and each endpoint says where its data fields come from: a hand-written contract, a schema measured from several real answers, or the one example.

Human Design Summary

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design

Type, strategy, authority, definition, profile and incarnation cross, calculated from birth and the moment 88 degrees of Sun earlier.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
26 languages; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed values: enhimrbngutatemlknpaurneorassifresptdeitnlpltrrukoja

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • type · string
  • strategy · string
  • not_self_theme · string
  • signature · string
  • summary · string
  • authority · string
  • definition · string
  • profile · string
  • incarnation_cross · object
  • design_moment · string
  • defined_centers · array of string
  • open_centers · array of string
  • method · string

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "type": "Projector",
    "strategy": "To wait for the invitation",
    "not_self_theme": "Bitterness",
    "signature": "Success",
    "summary": "You see how others and systems work, and guide best when asked.",
    "authority": "Splenic",
    "definition": "Split",
    "profile": "5/1",
    "incarnation_cross": {
      "angle": "Left angle",
      "gates": [
        32,
        42,
        56
      ]
    },
    "design_moment": "1990-07-19T21:36:54",
    "defined_centers": [
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Human Design Interpretation

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design-interpretation

The chart in plain words: each of the nine centers, defined or open, with where to draw it, plus the authority and definition explained. Our own descriptions.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
26 languages; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed values: enhimrbngutatemlknpaurneorassifresptdeitnlpltrrukoja

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • type · string
  • strategy · string
  • summary · string
  • authority · object
  • definition · object
  • profile · string
  • profile_reading · object
  • centers · array of object
  • channels · array of object
  • gates · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "type": "Projector",
    "strategy": "To wait for the invitation",
    "summary": "You see how others and systems work, and guide best when asked.",
    "authority": {
      "name": "Splenic",
      "reading": "Trust the quiet first instinct in the moment. It speaks once and does not repeat itself."
    },
    "definition": {
      "name": "Split",
      "reading": "Your defined centers form two groups. People who bridge them can feel like they complete you."
    },
    "profile": "5/1",
    "profile_reading": {
      "profile": "5/1",
      "conscious": {
        "line": 5,
        "theme": "practical help: others expect you to have solutions"
      },
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Human Design Activations

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design-activations

Gate, line and colour of each planet at birth and at the design moment.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • design_moment · string
  • personality · array of object
  • design · array of object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "design_moment": "1990-07-19T21:36:54",
    "personality": [
      {
        "planet": "Sun",
        "longitude": 204.7272,
        "gate": 32,
        "line": 5,
        "colour": 2,
        "center": "spleen"
      },
      {
        "planet": "Earth",
        "longitude": 24.7272,
        "gate": 42,
        "line": 5,
        "colour": 2,
        "center": "sacral"
      },
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Human Design Centers and Channels

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design-centers-channels

Defined and open centers, channels, gates and connected groups, to draw the chart.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • defined_centers · array of string
  • open_centers · array of string
  • channels · array of object
  • gates · array of number
  • connected_groups · array of array of string

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "defined_centers": [
      "g",
      "root",
      "spleen"
    ],
    "open_centers": [
      "ajna",
      "ego",
      "head"
    ],
    "channels": [
      {
        "gates": [
          7,
          31
        ],
        "centers": [
          "g",
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Human Design Analysis

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design-analysis

Counts of defined centers, channels and gates, and the gates and centers with the most activations.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
English; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed value: en

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • defined_center_count · number
  • open_center_count · number
  • channel_count · number
  • gate_count · number
  • dominant_gates · array of object
  • activations_by_center · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "defined_center_count": 4,
    "open_center_count": 5,
    "channel_count": 2,
    "gate_count": 18,
    "dominant_gates": [
      {
        "gate": 32,
        "activations": 4
      },
      {
        "gate": 41,
        "activations": 2
      },
      {
        "gate": 31,
        "activations": 2
      }
    ],
  …

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.

Human Design Traits

POSTAvailable

POSThttps://api.96astroapi.com/v1/human-design/human-design-traits

Type, strategy, signature, not-self theme, authority, definition and profile lines.

Credits
1 credit
Input
Birth details
Output
JSON
Delivery
Direct response
Languages
26 languages; translated term names with labels
Headers
HeaderValue and description
AuthorizationRequiredBearer YOUR_API_KEY

Your sandbox (sk_test_...) or live (sk_live_...) key. X-API-Key: <key> is accepted instead.

Content-TypeRequiredapplication/json

The body is JSON.

Idempotency-KeyOptional<unique string>

Makes retries safe: a repeated key with the same body replays the stored response and is never charged twice. (1 to 200 characters)

Body · application/json
FieldDescription
datetimestringRequired

Local date and time, ISO 8601 without offset, e.g. 1990-10-18T14:30:00

Limits: format local-date-time, pattern ^\d{4}-\d{2}-\d{2}[T ]\d{2}:\d{2}(:\d{2}(\.\d{1,6})?)?$

Example: 1990-10-18T14:30:00

timezonestring | nullOptional

IANA time zone, e.g. Asia/Kolkata

Default: null

Example: Asia/Kolkata

utc_offsetstring | nullOptional

Fixed offset such as +05:30, if no IANA zone is known

Default: null

Limits: pattern ^[+-]?\d{1,2}(:[0-5]\d)?$

Example: +05:30

latitudenumberRequired

Latitude in decimal degrees, north positive, e.g. 28.6139.

Limits: minimum -90, maximum 90

Example: 28.6139

longitudenumberRequired

Longitude in decimal degrees, east positive, e.g. 77.209.

Limits: minimum -180, maximum 180

Example: 77.209

ayanamshastringOptional

Sidereal system for Vedic positions. Default lahiri. `ayanamsha-list` compares seven of them.

Default: lahiri

languagestringOptional

Output language (ISO 639-1). The values listed are the ones this capability supports; any other is refused with 422 unsupported_language. Identifiers, enum values and numbers never change with language.

Default: en

Allowed values: enhimrbngutatemlknpaurneorassifresptdeitnlpltrrukoja

labelsstringOptional

Optional. Adds `meta.labels`: translated display names for the identifiers in the answer. `data` is unchanged. Free. Any other code is refused with 422 unsupported_language.

Allowed values: asbndeesfrguhiitknkomlmrnenlorpaplptrusitatetrur

Response · fields in data

Measured from 6 real answers to different inputs: a required field was in every one.

  • type · object
  • strategy · string
  • not_self_theme · string
  • signature · string
  • authority · string
  • definition · string
  • profile · object

Try in Playground →Capability overview

Example request

Example response

200application/json
{
  "data": {
    "type": {
      "value": "Projector",
      "summary": "You see how others and systems work, and guide best when asked."
    },
    "strategy": "To wait for the invitation",
    "not_self_theme": "Bitterness",
    "signature": "Success",
    "authority": "Splenic",
    "definition": "Split",
    "profile": {
      "value": "5/1",
      "personality_line": 5,
      "design_line": 1
    }
  },
  "meta": {
    "request_id": "req_00000000000000000000",
    "api_version": "v1",
    "credits_used": 0,
    "warnings": [],
    "language": "en"
  }
}

Captured from the live engine with a sandbox key (so credits_used is 0) and trimmed: long arrays keep their first items.

Error responses

  • 400invalid_request
  • 401invalid_key, expired_key
  • 402payment_required
  • 403account_suspended, plan_upgrade_required, plan_family_not_included, key_scope_denied, ip_not_allowed, origin_not_allowed, publishable_key_not_allowed
  • 404not_found
  • 409idempotency_conflict
  • 413payload_too_large
  • 422invalid_request, unsupported_language
  • 429rate_limited, quota_exhausted, spend_cap_reached, project_budget_exceeded
  • 500computation_failed
  • 502unavailable
  • 503unavailable, maintenance, temporarily_unavailable
  • 504deadline_exceeded

Errors are never charged. What each status means and what to do: errors.