Generate a chart from coordinates
Generates a complete Human Design chart from birth date, time, and geographic coordinates. No geocoding key required — timezone is resolved from lat/lng directly. Requires the “advanced” access tier.
curl --request POST \
--url https://api.humandesignapi.nl/v2/charts/coordinates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"birthdate": "1990-01-15",
"birthtime": "14:30",
"lat": 52.3676,
"lng": 4.9041
}
'import requests
url = "https://api.humandesignapi.nl/v2/charts/coordinates"
payload = {
"birthdate": "1990-01-15",
"birthtime": "14:30",
"lat": 52.3676,
"lng": 4.9041
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({birthdate: '1990-01-15', birthtime: '14:30', lat: 52.3676, lng: 4.9041})
};
fetch('https://api.humandesignapi.nl/v2/charts/coordinates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.humandesignapi.nl/v2/charts/coordinates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'birthdate' => '1990-01-15',
'birthtime' => '14:30',
'lat' => 52.3676,
'lng' => 4.9041
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.humandesignapi.nl/v2/charts/coordinates"
payload := strings.NewReader("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.humandesignapi.nl/v2/charts/coordinates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humandesignapi.nl/v2/charts/coordinates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}"
response = http.request(request)
puts response.read_body{
"timestamp": "2026-03-24T12:00:00.000Z",
"success": true,
"message": "Chart generated",
"errorCode": "",
"type": "ChartResult",
"data": {
"type": "Generator",
"profile": "6/2",
"channelsShort": [
"20-34",
"10-57"
],
"centers": [
"G",
"Sacral",
"Spleen",
"Throat"
],
"strategy": "To Respond",
"authority": "Sacral",
"incarnationCross": "Right Angle Cross of Tension (39/38 | 51/57)",
"definition": "Split Definition",
"signature": "Satisfaction",
"notSelfTheme": "Frustration",
"cognition": "Smell",
"determination": "Calm Appetite",
"variables": "PLL DRL",
"motivation": "Hope",
"transference": "Guilt",
"perspective": "Survival",
"distraction": "Power",
"environment": "Selective Caves",
"circuitries": "Individual, Tribal",
"channelsLong": [
"The Channel of Charisma (20-34)",
"The Channel of the Brainwave (57-10)"
],
"gates": [
"20",
"34",
"10",
"57"
],
"activations": {
"design": {
"sun": "20.1",
"earth": "34.1",
"northNode": "10.3",
"southNode": "15.3",
"moon": "57.4",
"mercury": "48.2",
"venus": "18.5",
"mars": "28.1",
"jupiter": "32.6",
"saturn": "50.3",
"uranus": "44.2",
"neptune": "26.4",
"pluto": "54.1"
},
"personality": {
"sun": "20.1",
"earth": "34.1",
"northNode": "10.3",
"southNode": "15.3",
"moon": "57.4",
"mercury": "48.2",
"venus": "18.5",
"mars": "28.1",
"jupiter": "32.6",
"saturn": "50.3",
"uranus": "44.2",
"neptune": "26.4",
"pluto": "54.1"
}
},
"birthDateUtc": "1990-01-15T13:30:00.000Z"
}
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Latitude must be a number between -90 and 90",
"errorCode": "INVALID_LATITUDE",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "No Authorization header provided",
"errorCode": "API_KEY_MISSING",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "No credits remaining. Enable overage or upgrade your plan.",
"errorCode": "CREDITS_EXHAUSTED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Your plan does not include this endpoint",
"errorCode": "ACCESS_DENIED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Too many requests. Please try again later.",
"errorCode": "RATE_LIMIT_EXCEEDED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "An unexpected error occurred",
"errorCode": "INTERNAL_ERROR",
"type": "",
"data": null
}Authorizations
API key used as Bearer token in the Authorization header
Body
Date of birth in YYYY-MM-DD format
^\d{4}-\d{2}-\d{2}$"1990-01-15"
Time of birth in HH:MM format (24-hour)
^\d{2}:\d{2}$"14:30"
Latitude of birth location
-90 <= x <= 9052.3676
Longitude of birth location
-180 <= x <= 1804.9041
Response
Chart generated successfully
Standard API response envelope wrapping all responses
ISO 8601 timestamp of response generation
"2026-03-24T12:00:00.000Z"
Whether the request succeeded
true
Human-readable success or error message
"Chart generated"
Machine-readable error code (empty string on success)
""
Data type name of the object in the data field
"ChartResult"
Full Human Design chart with all properties
Show child attributes
Show child attributes
curl --request POST \
--url https://api.humandesignapi.nl/v2/charts/coordinates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"birthdate": "1990-01-15",
"birthtime": "14:30",
"lat": 52.3676,
"lng": 4.9041
}
'import requests
url = "https://api.humandesignapi.nl/v2/charts/coordinates"
payload = {
"birthdate": "1990-01-15",
"birthtime": "14:30",
"lat": 52.3676,
"lng": 4.9041
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({birthdate: '1990-01-15', birthtime: '14:30', lat: 52.3676, lng: 4.9041})
};
fetch('https://api.humandesignapi.nl/v2/charts/coordinates', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.humandesignapi.nl/v2/charts/coordinates",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'birthdate' => '1990-01-15',
'birthtime' => '14:30',
'lat' => 52.3676,
'lng' => 4.9041
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.humandesignapi.nl/v2/charts/coordinates"
payload := strings.NewReader("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.humandesignapi.nl/v2/charts/coordinates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humandesignapi.nl/v2/charts/coordinates")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"lat\": 52.3676,\n \"lng\": 4.9041\n}"
response = http.request(request)
puts response.read_body{
"timestamp": "2026-03-24T12:00:00.000Z",
"success": true,
"message": "Chart generated",
"errorCode": "",
"type": "ChartResult",
"data": {
"type": "Generator",
"profile": "6/2",
"channelsShort": [
"20-34",
"10-57"
],
"centers": [
"G",
"Sacral",
"Spleen",
"Throat"
],
"strategy": "To Respond",
"authority": "Sacral",
"incarnationCross": "Right Angle Cross of Tension (39/38 | 51/57)",
"definition": "Split Definition",
"signature": "Satisfaction",
"notSelfTheme": "Frustration",
"cognition": "Smell",
"determination": "Calm Appetite",
"variables": "PLL DRL",
"motivation": "Hope",
"transference": "Guilt",
"perspective": "Survival",
"distraction": "Power",
"environment": "Selective Caves",
"circuitries": "Individual, Tribal",
"channelsLong": [
"The Channel of Charisma (20-34)",
"The Channel of the Brainwave (57-10)"
],
"gates": [
"20",
"34",
"10",
"57"
],
"activations": {
"design": {
"sun": "20.1",
"earth": "34.1",
"northNode": "10.3",
"southNode": "15.3",
"moon": "57.4",
"mercury": "48.2",
"venus": "18.5",
"mars": "28.1",
"jupiter": "32.6",
"saturn": "50.3",
"uranus": "44.2",
"neptune": "26.4",
"pluto": "54.1"
},
"personality": {
"sun": "20.1",
"earth": "34.1",
"northNode": "10.3",
"southNode": "15.3",
"moon": "57.4",
"mercury": "48.2",
"venus": "18.5",
"mars": "28.1",
"jupiter": "32.6",
"saturn": "50.3",
"uranus": "44.2",
"neptune": "26.4",
"pluto": "54.1"
}
},
"birthDateUtc": "1990-01-15T13:30:00.000Z"
}
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Latitude must be a number between -90 and 90",
"errorCode": "INVALID_LATITUDE",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "No Authorization header provided",
"errorCode": "API_KEY_MISSING",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "No credits remaining. Enable overage or upgrade your plan.",
"errorCode": "CREDITS_EXHAUSTED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Your plan does not include this endpoint",
"errorCode": "ACCESS_DENIED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Too many requests. Please try again later.",
"errorCode": "RATE_LIMIT_EXCEEDED",
"type": "",
"data": null
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "An unexpected error occurred",
"errorCode": "INTERNAL_ERROR",
"type": "",
"data": null
}
