Back to Docs
SVG Composite Chart Generator
SVG Composite Chart Generator
POST
/api/v1/natal/chart/compositeGenerate a standalone midpoint composite SVG/PNG chart from two people. The endpoint reuses the natal SVG styling contract while building one composite wheel from midpoint planets and, when both birth times are known, midpoint houses and angles.
If either person has time_known: false, the composite falls back to an untimed chart and hides houses and angles.
Related SVG Endpoints
Full URL
https://api.freeastroapi.com/api/v1/natal/chart/compositeTop-level Parameters
Request-level controls for the composite endpoint.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| person_a | object | Yes | - | Primary person object. Also controls output format, size, theme, and chart styling. |
| person_b | object | Yes | - | Secondary person object used to build midpoint positions. |
| show_aspects | boolean | No | true | Show aspect lines inside the composite wheel. |
| chart_config | object | No | null | Optional top-level chart style overrides merged after person_a.chart_config. |
| custom_planet_color | string|null | No | null | Top-level alias for composite planet color. |
| custom_sign_color | string|null | No | null | Top-level alias for sign symbol color. |
| custom_house_color | string|null | No | null | Top-level alias for house number color. |
| custom_sign_bg_color | string|null | No | null | Single sign background color alias. |
| custom_house_bg_color | string|null | No | null | Single house background color alias. |
| show_sign_background | boolean|null | No | null | Explicit sign background toggle alias. |
| show_house_background | boolean|null | No | null | Explicit house background toggle alias. |
| custom_sign_colors | string[]|null | No | null | Per-sign background colors alias. |
| custom_house_colors | string[]|null | No | null | Per-house background colors alias. |
| sign_background_opacity | float|null | No | null | Sign background opacity alias. |
| house_background_opacity | float|null | No | null | House background opacity alias. |
| show_retrograde_markers | boolean|null | No | null | Top-level alias for retrograde markers on degree labels. |
| retrograde_marker_style | string|null | No | null | Top-level alias for retrograde marker style: R or rx. |
person_a / person_b Schema
Both nested objects follow the natal SVG request schema.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| name | string | No | User | Display name for the person. |
| year | integer | Yes | - | Birth year. |
| month | integer | Yes | - | Birth month (1-12). |
| day | integer | Yes | - | Birth day (1-31). |
| hour | integer | No | 12 | Birth hour (0-23). |
| minute | integer | No | 0 | Birth minute (0-59). |
| time_known | boolean | No | true | When either person is untimed, the composite falls back to planets-only and hides houses/angles. |
| city | string | No | - | Birth city. Optional when lat/lng are provided. |
| lat | float | No | auto | Optional latitude override. Required with lng if city is omitted. |
| lng | float | No | auto | Optional longitude override. Required with lat if city is omitted. |
| tz_str | string | No | AUTO | Timezone or AUTO. |
| format | string | No | svg | Output format from person_a only: 'svg' or 'png'. |
| size | integer | No | 700 | Output width/height in px from person_a only. |
| theme_type | string | No | light | Theme from person_a only: 'light', 'dark', or 'mono'. |
| display_settings | object | No | null | Optional body visibility toggles. Both nested objects are accepted and merged into the composite display config. |
| chart_config | object | No | null | Advanced styling settings inherited from the natal SVG contract. |
display_settings (nested)
Optional body visibility toggles inside each person object.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| sun | boolean | No | true | Show Sun. |
| moon | boolean | No | true | Show Moon. |
| mercury | boolean | No | true | Show Mercury. |
| venus | boolean | No | true | Show Venus. |
| mars | boolean | No | true | Show Mars. |
| jupiter | boolean | No | true | Show Jupiter. |
| saturn | boolean | No | true | Show Saturn. |
| uranus | boolean | No | true | Show Uranus. |
| neptune | boolean | No | true | Show Neptune. |
| pluto | boolean | No | true | Show Pluto. |
| north_node | boolean | No | true | Show North Node. |
| south_node | boolean | No | false | Show South Node. |
| chiron | boolean | No | true | Show Chiron. |
| ceres | boolean | No | false | Show Ceres. |
| pallas | boolean | No | false | Show Pallas. |
| juno | boolean | No | false | Show Juno. |
| vesta | boolean | No | false | Show Vesta. |
| asc | boolean | No | true | Show Ascendant glyph when timed. |
| ic | boolean | No | false | Show IC glyph when timed. |
| dsc | boolean | No | false | Show Descendant glyph when timed. |
| mc | boolean | No | false | Show Midheaven glyph when timed. |
| lilith | boolean | No | true | Show mean Lilith. |
| mean_lilith | boolean | No | false | Alias toggle for mean Lilith. |
| true_lilith | boolean | No | false | Show true Lilith. |
| eris | boolean | No | false | Show Eris. |
| eros | boolean | No | false | Show Eros. |
| vertex | boolean | No | false | Show Vertex. |
| part_of_fortune | boolean | No | false | Show Part of Fortune. |
chart_config
Composite styling uses the same advanced settings as the SVG/PNG Chart Generator. The fields below are accepted by this endpoint even if some are more relevant to other SVG modes.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| stroke_width | integer | No | 1 | Base SVG stroke width. |
| stroke_opacity | float | No | 1.0 | Global stroke opacity. |
| font | string | No | sans-serif | SVG font family. |
| font_size_fraction | float | No | 0.35 | Base label scaling factor. |
| inner_min_degree | float | No | 9.0 | Minimum spacing for inner wheel placements. |
| outer_min_degree | float | No | 8.0 | Minimum spacing for outer wheel placements. |
| margin_factor | float | No | 0.04 | Outer SVG margin factor. |
| ring_thickness_fraction | float | No | 0.15 | Fallback ring thickness fraction. |
| sign_ring_thickness_fraction | float|null | No | 0.16 | Sign ring thickness fraction. |
| house_ring_thickness_fraction | float|null | No | 0.05 | House ring thickness fraction. |
| center_disk_fraction | float|null | No | 0.45 | Center disk radius fraction. |
| planet_symbol_scale | float|null | No | 0.35 | Planet glyph scale. |
| sign_symbol_scale | float|null | No | 0.6 | Sign glyph scale. |
| house_number_scale | float|null | No | 0.25 | House number scale. |
| chart_background | string|null | No | null | Chart background color. |
| custom_planet_color | string|null | No | null | Override all planet colors. |
| custom_sign_color | string|null | No | null | Override all sign symbol colors. |
| custom_house_color | string|null | No | #000000 | Override house number color. |
| sign_line_width | float|null | No | 2.0 | Sign separator width. |
| sign_line_color | string|null | No | black | Sign separator color. |
| house_line_width | float|null | No | 1.0 | House separator width. |
| house_line_color | string|null | No | #919191 | House separator color. |
| sign_ring_inner_width | float|null | No | 1.5 | Inner sign ring width. |
| sign_ring_inner_color | string|null | No | #000000 | Inner sign ring color. |
| sign_ring_outer_width | float|null | No | 2.0 | Outer sign ring width. |
| sign_ring_outer_color | string|null | No | #000000 | Outer sign ring color. |
| house_ring_inner_width | float|null | No | 1.0 | Inner house ring width. |
| house_ring_inner_color | string|null | No | #000000 | Inner house ring color. |
| house_ring_outer_width | float|null | No | 1.0 | Outer house ring width. |
| house_ring_outer_color | string|null | No | #000000 | Outer house ring color. |
| asc_line_width | float|null | No | 3.0 | ASC axis width. |
| asc_line_color | string|null | No | #000000 | ASC axis color. |
| dsc_line_width | float|null | No | 3.0 | DSC axis width. |
| dsc_line_color | string|null | No | #000000 | DSC axis color. |
| mc_line_width | float|null | No | 3.0 | MC axis width. |
| mc_line_color | string|null | No | #000000 | MC axis color. |
| ic_line_width | float|null | No | 3.0 | IC axis width. |
| ic_line_color | string|null | No | #000000 | IC axis color. |
| sign_tick_width | float|null | No | 0.5 | Degree tick width. |
| sign_tick_color | string|null | No | #000000 | Degree tick color. |
| aspect_conjunction_width | float|null | No | 3.0 | Conjunction line width. |
| aspect_conjunction_color | string|null | No | #1A1A1A | Conjunction line color. |
| aspect_opposition_width | float|null | No | 3.0 | Opposition line width. |
| aspect_opposition_color | string|null | No | #C00000 | Opposition line color. |
| aspect_trine_width | float|null | No | 2.2 | Trine line width. |
| aspect_trine_color | string|null | No | #0047AB | Trine line color. |
| aspect_square_width | float|null | No | 2.6 | Square line width. |
| aspect_square_color | string|null | No | #C00000 | Square line color. |
| aspect_sextile_width | float|null | No | 1.9 | Sextile line width. |
| aspect_sextile_color | string|null | No | #0047AB | Sextile line color. |
| aspect_quincunx_width | float|null | No | 1.7 | Quincunx line width. |
| aspect_quincunx_color | string|null | No | #2E7D32 | Quincunx line color. |
| scale_adj_factor | float | No | 600.0 | Glyph scale adjustment baseline. |
| pos_adj_factor | float | No | 2.2 | Glyph position adjustment baseline. |
| show_color_background | boolean | No | false | Enable color background mode. |
| show_sign_background | boolean|null | No | null | Show per-sign backgrounds. |
| show_house_background | boolean|null | No | null | Show per-house backgrounds. |
| custom_sign_colors | string[]|null | No | null | Per-sign background colors. |
| custom_house_colors | string[]|null | No | null | Per-house background colors. |
| sign_background_opacity | float|null | No | null | Sign background opacity. |
| house_background_opacity | float|null | No | null | House background opacity. |
| custom_sign_bg_color | string|null | No | null | Single sign background color. |
| custom_house_bg_color | string|null | No | null | Single house background color. |
| show_retrograde_markers | boolean | No | false | Show retrograde markers on degree text. |
| retrograde_marker_style | string | No | R | Retrograde marker style: R or rx. |
| show_inner_ring_angles | boolean|null | No | false | Renderer flag inherited from the shared config model. |
| show_data2_house_wheel | boolean|null | No | false | Renderer flag inherited from the shared config model. |
| show_data2_house_numbers | boolean|null | No | false | Renderer flag inherited from the shared config model. |
| invert_data2_orientation | boolean|null | No | null | Renderer flag inherited from the shared config model. |
| invert_data2_radial_placement | boolean|null | No | null | Renderer flag inherited from the shared config model. |
| data2_house_ring_scale | float|null | No | 0.62 | Renderer flag inherited from the shared config model. |
| data2_house_ring_extra_width_px | float|null | No | 3.0 | Renderer flag inherited from the shared config model. |
| data2_house_line_width | float|null | No | 1.0 | Renderer flag inherited from the shared config model. |
| data2_house_line_color | string|null | No | #919191 | Renderer flag inherited from the shared config model. |
| data2_house_ring_inner_width | float|null | No | 1.0 | Renderer flag inherited from the shared config model. |
| data2_house_ring_inner_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_house_ring_outer_width | float|null | No | 1.0 | Renderer flag inherited from the shared config model. |
| data2_house_ring_outer_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_custom_house_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_asc_line_width | float|null | No | 3.0 | Renderer flag inherited from the shared config model. |
| data2_asc_line_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_dsc_line_width | float|null | No | 3.0 | Renderer flag inherited from the shared config model. |
| data2_dsc_line_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_mc_line_width | float|null | No | 3.0 | Renderer flag inherited from the shared config model. |
| data2_mc_line_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
| data2_ic_line_width | float|null | No | 3.0 | Renderer flag inherited from the shared config model. |
| data2_ic_line_color | string|null | No | #000000 | Renderer flag inherited from the shared config model. |
Sample Code
curl -X POST "https://api.freeastroapi.com/api/v1/natal/chart/composite" \
-H "Content-Type: application/json" \
-H "x-api-key: YOUR_API_KEY" \
-d '{
"person_a": {
"year": 1990,
"month": 5,
"day": 15,
"city": "London"
},
"person_b": {
"year": 1992,
"month": 8,
"day": 6,
"city": "Paris"
}
}' --output composite_chart.svg