Generate a simple chart
Generates a simplified Human Design chart with type, profile, gates, channels, and centers. Available to any access tier.
curl --request POST \
--url https://api.humandesignapi.nl/v2/charts/simple \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'HD-Geocode-Key: <api-key>' \
--data '
{
"birthdate": "1990-01-15",
"birthtime": "14:30",
"location": "Amsterdam, The Netherlands"
}
'import requests
url = "https://api.humandesignapi.nl/v2/charts/simple"
payload = {
"birthdate": "1990-01-15",
"birthtime": "14:30",
"location": "Amsterdam, The Netherlands"
}
headers = {
"Authorization": "Bearer <token>",
"HD-Geocode-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'HD-Geocode-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
birthdate: '1990-01-15',
birthtime: '14:30',
location: 'Amsterdam, The Netherlands'
})
};
fetch('https://api.humandesignapi.nl/v2/charts/simple', 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/simple",
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',
'location' => 'Amsterdam, The Netherlands'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"HD-Geocode-Key: <api-key>"
],
]);
$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/simple"
payload := strings.NewReader("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("HD-Geocode-Key", "<api-key>")
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/simple")
.header("Authorization", "Bearer <token>")
.header("HD-Geocode-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humandesignapi.nl/v2/charts/simple")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["HD-Geocode-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}"
response = http.request(request)
puts response.read_body{
"timestamp": "2026-03-24T12:00:00.000Z",
"success": true,
"message": "Chart generated",
"errorCode": "",
"type": "ChartSimpleResult",
"data": {
"type": "Generator",
"profile": "6/2",
"gates": [
"20",
"34",
"10",
"57"
],
"channelsShort": [
"20-34",
"10-57"
],
"centers": [
"G",
"Sacral",
"Spleen",
"Throat"
]
}
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Birthdate must be in YYYY-MM-DD format",
"errorCode": "INVALID_BIRTHDATE",
"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
Google Geocoding API key
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"
Location of birth (city, country)
4 - 200"Amsterdam, The Netherlands"
Response
Simple 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
"ChartSimpleResult"
Simplified chart with core properties only
Show child attributes
Show child attributes
curl --request POST \
--url https://api.humandesignapi.nl/v2/charts/simple \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'HD-Geocode-Key: <api-key>' \
--data '
{
"birthdate": "1990-01-15",
"birthtime": "14:30",
"location": "Amsterdam, The Netherlands"
}
'import requests
url = "https://api.humandesignapi.nl/v2/charts/simple"
payload = {
"birthdate": "1990-01-15",
"birthtime": "14:30",
"location": "Amsterdam, The Netherlands"
}
headers = {
"Authorization": "Bearer <token>",
"HD-Geocode-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
Authorization: 'Bearer <token>',
'HD-Geocode-Key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({
birthdate: '1990-01-15',
birthtime: '14:30',
location: 'Amsterdam, The Netherlands'
})
};
fetch('https://api.humandesignapi.nl/v2/charts/simple', 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/simple",
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',
'location' => 'Amsterdam, The Netherlands'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json",
"HD-Geocode-Key: <api-key>"
],
]);
$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/simple"
payload := strings.NewReader("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("HD-Geocode-Key", "<api-key>")
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/simple")
.header("Authorization", "Bearer <token>")
.header("HD-Geocode-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.humandesignapi.nl/v2/charts/simple")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["HD-Geocode-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"birthdate\": \"1990-01-15\",\n \"birthtime\": \"14:30\",\n \"location\": \"Amsterdam, The Netherlands\"\n}"
response = http.request(request)
puts response.read_body{
"timestamp": "2026-03-24T12:00:00.000Z",
"success": true,
"message": "Chart generated",
"errorCode": "",
"type": "ChartSimpleResult",
"data": {
"type": "Generator",
"profile": "6/2",
"gates": [
"20",
"34",
"10",
"57"
],
"channelsShort": [
"20-34",
"10-57"
],
"centers": [
"G",
"Sacral",
"Spleen",
"Throat"
]
}
}{
"timestamp": "2026-03-24T12:00:01.000Z",
"success": false,
"message": "Birthdate must be in YYYY-MM-DD format",
"errorCode": "INVALID_BIRTHDATE",
"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
}
