---
title: "Experimental Secondary Progressions Chart"
method: POST
path: "/api/v1/natal/chart/secondary-progressions"
tags: ["Natal", "natal"]
---

# Experimental Secondary Progressions Chart

`POST /api/v1/natal/chart/secondary-progressions`

## Request

- Base URL: `https://api.freeastroapi.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.freeastroapi.com/api/v1/natal/chart/secondary-progressions`
- Auth: none declared

Generate a bi-wheel chart with natal planets inside and secondary progressed planets outside.

The progressed wheel is cast for the symbolic instant used by
`/api/v1/western/progressions/secondary` (natal instant + one ephemeris day per
tropical year elapsed at `progression_date`), at the progression location
(natal location by default). Aspect lines, colours, themes and `chart_config`
presets behave exactly like `/api/v1/natal/chart/transits`.

Response headers expose the resolved timing: `X-Progression-System`,
`X-Progression-Target-Date-UTC`, `X-Progressed-Datetime-UTC`, `X-Progression-Age-Years`.

## Request body

- ExperimentalSecondaryProgressionsChartRequest: Bi-wheel request: natal chart inside, secondary progressed chart outside. Mirrors `ExperimentalTransitChartRequest`; only the outer wheel differs. The progressed instant follows the classic rule used by `/api/v1/western/progressions/secondary`: one ephemeris day after birth per tropical year of life elapsed at `progression_date`.
  - `natal` union, required
    - object
      - `name` string, nullable
      - `year` integer, required: Astronomical year (0-2399; 0 = 1 BCE)
      - `month` integer, required
      - `day` integer, required
      - `hour` integer, nullable
      - `minute` integer, nullable
      - `time_known` boolean
      - `city` string, nullable, required
      - `lat` number, nullable
      - `lng` number, nullable
      - `tz_str` string, nullable
      - `dst_policy` 'reject' | 'earlier' | 'later' | 'shift_forward', nullable: Optional DST fold/gap policy. Omit to preserve legacy behavior; use reject for strict integrations.
      - `renderer` 'default'
      - `theme` string, nullable
      - `format` string, nullable
      - `lang` string, nullable
      - `size` integer, nullable
      - `glyphs` boolean, nullable
      - `show_aspects` boolean, nullable
      - `show_houses` boolean, nullable
      - `show_positions_panel` boolean, nullable
      - `show_legend` boolean, nullable
      - `custom_css` string, nullable
      - `house_system` string, nullable
      - `orb_settings` AspectOrbSettings: Per-aspect detection orbs, expressed in degrees.
        - `conjunction` number, nullable
        - `opposition` number, nullable
        - `trine` number, nullable
        - `square` number, nullable
        - `sextile` number, nullable
        - `quincunx` number, nullable
        - `quintile` number, nullable
        - `semi_sextile` number, nullable
        - `semi_square` number, nullable
        - `sesquiquadrate` number, nullable
      - `include_speed` boolean, nullable
      - `lilith` boolean, nullable
      - `mean_lilith` boolean, nullable
      - `true_lilith` boolean, nullable
      - `chiron` boolean, nullable
      - `chiron_invisible_door` boolean, nullable
      - `chiron_visible_door` boolean, nullable
      - `true_node` boolean, nullable
      - `mean_node` boolean, nullable
      - `pholus` boolean, nullable
      - `ceres` boolean, nullable
      - `pallas` boolean, nullable
      - `juno` boolean, nullable
      - `vesta` boolean, nullable
      - `eris` boolean, nullable
      - `eros` boolean, nullable
      - `vertex` boolean, nullable
      - `include_minor_aspects` boolean, nullable
      - `include_declination_aspects` boolean, nullable
      - `declination_orb` number, nullable
      - `include_stelliums` boolean, nullable
      - `stellium_policy` 'legacy' | 'classified', nullable: Optional stellium classification policy. Natal insights defaults omission to 'classified'; other shared-request endpoints retain legacy omission behavior. 'legacy' preserves count-based sign/house groups; 'classified' requires a conjunction cluster and reports loose sign/house occupancy as concentrations.
      - `include_tables` boolean, nullable
      - `include_fixed_stars` boolean, nullable
      - `fixed_stars` string[], nullable
      - `fixed_star_packs` string[], nullable
      - `include_features` string[], nullable
      - `include_dominants` boolean, nullable
      - `dominants_method` 'traditional' | 'modern', nullable: Opt in to detailed planet dominance scores, weighted elements, and a signature sign. Omit this field to keep the default response unchanged.
      - `include_dignity` boolean, nullable
      - `include_rulers` boolean, nullable
      - `include_configurations` boolean, nullable
      - `zodiac_type` string, nullable
      - `sidereal_ayanamsa` string, nullable
      - `view` 'all' | 'grouped-top' | 'grouped-all' | 'grouped-canonical', nullable
      - `separate_signatures_from_facts` boolean, nullable
      - `response_format` 'full' | 'flat', nullable: Use 'flat' to return a shallow no-code-friendly response with a single text field.
      - `interpretation` InterpretationSettings
        - `enable` boolean
        - `template_id` string, nullable
        - `language` string, nullable
        - `style` string, nullable
      - `psychological_report` PsychologicalReportSettings
        - `enabled` boolean
        - `mode` 'async' | 'sync'
        - `style` 'standard' | 'jungian_parental', nullable
        - `tone` string, nullable
        - `depth` string, nullable
        - `audience` string, nullable
        - `focus_areas` string[], nullable
        - `excluded_topics` string[], nullable
        - `custom_instructions` string, nullable
        - `report_structure` object, nullable
        - `markdown` boolean
        - `output_format` 'json' | 'pdf', nullable
        - `include_chart_in_pdf` boolean
        - `include_svg_chart_in_pdf` boolean
        - `include_natal_chart_in_response` boolean
        - `pdf_matrix_position` 'end' | 'after_chart', nullable
        - `chart_config` object, nullable
        - `pdf_footer_label` string, nullable
        - `include_profile_branding_logo` boolean
        - `callback_url` string, nullable
        - `callback_signing_secret` string, nullable
      - `theme_type` 'light' | 'dark' | 'mono'
      - `custom_theme` ExperimentalThemeSettings
        - `fire` string, nullable
        - `earth` string, nullable
        - `air` string, nullable
        - `water` string, nullable
        - `points` string, nullable
        - `asteroids` string, nullable
        - `positive` string, nullable
        - `negative` string, nullable
        - `others` string, nullable
        - `transparency` number, nullable
        - `foreground` string, nullable
        - `background` string, nullable
        - `dim` string, nullable
      - `display_settings` ExperimentalDisplaySettings
        - `sun` boolean
        - `moon` boolean
        - `mercury` boolean
        - `venus` boolean
        - `mars` boolean
        - `jupiter` boolean
        - `saturn` boolean
        - `uranus` boolean
        - `neptune` boolean
        - `pluto` boolean
        - `north_node` boolean
        - `south_node` boolean
        - `chiron` boolean
        - `chiron_invisible_door` boolean
        - `chiron_visible_door` boolean
        - `ceres` boolean
        - `pallas` boolean
        - `juno` boolean
        - `vesta` boolean
        - `asc` boolean
        - `ic` boolean
        - `dsc` boolean
        - `mc` boolean
        - `lilith` boolean
        - `mean_lilith` boolean
        - `true_lilith` boolean
        - `corrected_lilith` boolean
        - `eris` boolean
        - `eros` boolean
        - `vertex` boolean
        - `part_of_fortune` boolean
      - `chart_config` ExperimentalChartConfigSettings
        - `stroke_width` integer
        - `stroke_opacity` number
        - `font` string
        - `font_size_fraction` number
        - `inner_min_degree` number
        - `outer_min_degree` number
        - `margin_factor` number
        - `ring_thickness_fraction` number
        - `sign_ring_thickness_fraction` number, nullable
        - `house_ring_thickness_fraction` number, nullable
        - `center_disk_fraction` number, nullable
        - `planet_symbol_scale` number, nullable
        - `planet_backing_style` 'disk' | 'halo' | 'none': Planet/point backing treatment: filled background disk, glyph-shaped halo, or none.
        - `planet_spacing_scale` number, nullable: Multiplier applied to inner_min_degree/outer_min_degree before planet glyph collision adjustment. If omitted, spacing automatically increases when planet_symbol_scale is above the default.
        - `planet_radius_offset` number, nullable: Move non-angle planet/point glyphs radially; negative moves inward, positive outward.
        - `round_planet_glyphs` boolean: Use rounded stroke caps/joins for planet and point glyphs in the body wheel.
        - `show_planet_connectors` boolean: Show radial connector lines between planet/point glyphs and their source ring positions.
        - `planet_connector_scope` 'all' | 'natal' | 'transit' | 'none': Which wheel should draw planet connector lines: all wheels, natal/primary only, transit/secondary only, or none.
        - `show_synastry_inner_planet_guides` boolean: For synastry inner-wheel planets, draw dashed radial guides from their divider-ring longitude ticks to the inner sign-ring circle.
        - `planet_connector_width` number, nullable: Stroke width for planet/point connector lines.
        - `planet_connector_opacity` number, nullable: Stroke opacity for planet/point connector lines.
        - `planet_connector_color` string, nullable: Optional stroke color override for all planet/point connector lines.
        - `planet_connector_clearance` number, nullable: Distance in SVG pixels from a planet/point glyph center where its connector line stops. If omitted, the renderer uses the visible glyph radius plus half the connector stroke width.
        - `sign_symbol_scale` number, nullable
        - `sign_symbol_stroke_width` number, nullable: Stroke width for the large zodiac sign glyphs in the outer sign wheel.
        - `round_sign_wheel_glyphs` boolean: Use rounded stroke caps/joins for the large zodiac sign glyphs in the outer sign wheel.
        - `house_number_scale` number, nullable
        - `show_house_ring` boolean: Draw the house wheel/ring visuals. When false, house ring sectors, ring circles, non-angle separators, and house numbers are omitted.
        - `show_house_numbers` boolean: Show house numbers in the house ring.
        - `show_house_separators` boolean: Show non-angle house cusp separator lines.
        - `show_house_ring_circles` boolean: Show house ring circle borders/separator circles.
        - `chart_background` string, nullable
        - `planet_color_mode` 'body' | 'sign': Planet/point glyph color source. 'body' uses each body's default palette; 'sign' uses the element color of the sign occupied by each non-angle body. Explicit custom planet colors take precedence.
        - `element_color_scheme` 'western' | 'earth_yellow_air_green': Element palette used by sign glyphs, sign-based planet colors, and element-based ring backgrounds. 'western' keeps Earth green and Air yellow; 'earth_yellow_air_green' swaps those two colors. Explicit custom sign and planet colors take precedence.
        - `custom_planet_color` string, nullable
        - `custom_planet_colors` object, nullable: Per-body planet/point glyph color overrides keyed by body id, e.g. sun, moon, mercury, north_node, asc, mc.
        - `fixed_star_color` string, nullable: Color override for fixed-star markers, labels, and connector/aspect lines in chart SVG output.
        - `custom_sign_color` string, nullable
        - `custom_sign_glyph_colors` union: Per-sign glyph color overrides. Accepts a 12-item Aries-to-Pisces list or a map keyed by sign id, e.g. aries, taurus.
          - string[]
          - object
        - `custom_house_color` string, nullable
        - `degree_label_color` string, nullable: Override planet degree/minute label text color (hex or CSS color).
        - `sign_line_width` number, nullable
        - `sign_line_color` string, nullable
        - `house_line_width` number, nullable
        - `house_line_color` string, nullable
        - `sign_ring_inner_width` number, nullable
        - `sign_ring_inner_color` string, nullable
        - `sign_ring_outer_width` number, nullable
        - `sign_ring_outer_color` string, nullable
        - `house_ring_inner_width` number, nullable
        - `house_ring_inner_color` string, nullable
        - `house_ring_outer_width` number, nullable
        - `house_ring_outer_color` string, nullable
        - `asc_line_width` number, nullable
        - `asc_line_color` string, nullable
        - `dsc_line_width` number, nullable
        - `dsc_line_color` string, nullable
        - `mc_line_width` number, nullable
        - `mc_line_color` string, nullable
        - `ic_line_width` number, nullable
        - `ic_line_color` string, nullable
        - `angle_label_color` string, nullable: Fallback color for all ASC/DSC/MC/IC glyph labels.
        - `asc_label_color` string, nullable: ASC glyph label color.
        - `dsc_label_color` string, nullable: DSC glyph label color.
        - `mc_label_color` string, nullable: MC glyph label color.
        - `ic_label_color` string, nullable: IC glyph label color.
        - `angle_label_scale` number, nullable: Fallback scale multiplier for all ASC/DSC/MC/IC glyph labels.
        - `asc_label_scale` number, nullable: ASC glyph label scale multiplier.
        - `dsc_label_scale` number, nullable: DSC glyph label scale multiplier.
        - `mc_label_scale` number, nullable: MC glyph label scale multiplier.
        - `ic_label_scale` number, nullable: IC glyph label scale multiplier.
        - `angle_label_radius_offset` number: Move all angle labels along their fixed axes; negative moves inward and positive outward.
        - `asc_label_radius_offset` number, nullable: ASC label axis offset.
        - `dsc_label_radius_offset` number, nullable: DSC label axis offset.
        - `mc_label_radius_offset` number, nullable: MC label axis offset.
        - `ic_label_radius_offset` number, nullable: IC label axis offset.
        - `angle_marker_style` 'glyph' | 'french_arrow': Angle marker rendering style. 'glyph' renders ASC/DSC/MC/IC abbreviation glyph paths; 'french_arrow' renders French-style arrow axis markers and keeps enabled angle labels visible by default.
        - `angle_line_span` 'wheel' | 'full': Angle line span: wheel keeps angle axes inside the default wheel area; full extends ASC/DSC and MC/IC axes across the chart to the sign ring edge.
        - `show_angle_labels_with_french_arrows` boolean: When angle_marker_style is french_arrow, also render enabled ASC/DSC/MC/IC glyph labels.
        - `show_sign_ticks` boolean: Show degree graduation ticks on the sign wheel.
        - `sign_tick_width` number, nullable
        - `sign_tick_color` string, nullable
        - `long_sign_tick_width` number, nullable
        - `short_sign_tick_width` number, nullable
        - `long_tick_color` string, nullable
        - `short_tick_color` string, nullable
        - `long_sign_tick_length` number, nullable
        - `short_sign_tick_length` number, nullable
        - `show_decans` boolean: Show an inner ring of three 10-degree decans per zodiac sign.
        - `decan_system` 'chaldean' | 'traditional_chaldean' | 'modern_triplicity': Planetary ruler system for the decan ring. Use chaldean or traditional_chaldean for the seven classical planets, or modern_triplicity to include Uranus, Neptune, and Pluto.
        - `decan_ring_thickness_fraction` number: Decan ring thickness as a fraction of the chart radius. Increase or reduce it to control radial spacing around the ruler glyphs.
        - `decan_symbol_scale` number: Scale of the planetary ruler glyphs inside the decan ring. Set this manually to make them smaller or larger.
        - `decan_symbol_stroke_width` number: Stroke width of decan ruler glyphs.
        - `decan_symbol_color` string, nullable: Optional color override for all decan ruler glyphs. When omitted, a darker theme-aware foreground is used.
        - `decan_line_width` number: Shared fallback stroke width for decan separators and circular borders.
        - `decan_line_color` string, nullable: Shared fallback color for decan separators and circular borders.
        - `decan_ring_line_width` number, nullable: Optional stroke width for the inner and outer circular borders of the decan ring.
        - `decan_ring_line_color` string, nullable: Optional color for the inner and outer circular borders of the decan ring.
        - `decan_separator_width` number, nullable: Optional stroke width for the 10-degree radial decan separators.
        - `decan_separator_color` string, nullable: Optional color for the 10-degree radial decan separators.
        - `decan_background_color` string, nullable: Optional uniform decan ring fill. When omitted, adjacent faces receive a subtle alternating tint.
        - `decan_background_opacity` number: Strength of the alternating decan background tint when no explicit fill is supplied.
        - `show_aspect_lines` boolean: Show all aspect line SVG elements. When false, natal, transit, inter-chart aspect lines and aspect degree ticks are omitted.
        - `show_angle_aspects` boolean: Include aspect lines and aspect degree ticks involving ASC, DSC, MC, or IC. When false, planet-to-planet aspects remain visible and angle axes and labels are unchanged.
        - `aspect_excluded_bodies` string[]: Body ids whose SVG aspects should be hidden, for example ['part_of_fortune', 'chiron']. The bodies remain visible; only aspect lines, midpoint symbols, and aspect degree ticks touching them are omitted. Names are case-insensitive and common angle, node, Lilith, and Part of Fortune aliases are accepted. The filter applies across both rings in bi-wheel charts and does not change the calculated canonical aspect graph. Pattern overlays can opt into this visual filter with pattern_overlay_respects_aspect_exclusions.
        - `aspect_opacity_by_strength` boolean: When true, aspect line and midpoint-symbol opacity follows orb strength. When false, orb-based opacity variation is disabled: conjunction, opposition, trine, square, and sextile use 100% opacity, while minor aspects such as quincunx use 70%. The global stroke_opacity multiplier still applies.
        - `aspect_conjunction_width` number, nullable
        - `aspect_conjunction_color` string, nullable
        - `aspect_opposition_width` number, nullable
        - `aspect_opposition_color` string, nullable
        - `aspect_trine_width` number, nullable
        - `aspect_trine_color` string, nullable
        - `aspect_circle_background` string, nullable: Fill color for the central aspect circle/disk. When omitted, the aspect circle has no fill.
        - `aspect_square_width` number, nullable
        - `aspect_square_color` string, nullable
        - `aspect_sextile_width` number, nullable
        - `aspect_sextile_color` string, nullable
        - `aspect_quincunx_width` number, nullable
        - `aspect_quincunx_color` string, nullable
        - `show_aspect_symbols` boolean, nullable
        - `show_fixed_star_aspects` boolean: Opt-in fixed-star aspect lines. Fixed stars are rendered as body-wheel items by default, but their aspects are omitted unless this is true.
        - `fixed_star_aspect_types` string[], nullable: Aspect types to draw from fixed stars to planets, points, and angles. Defaults to conjunction only.
        - `fixed_star_aspect_orb` number: Orb in degrees for fixed-star aspects. Defaults to a tight 1 degree.
        - `show_degree_labels` boolean: Show planet/point degree labels in generated SVG charts.
        - `show_angle_labels` boolean: Show angle abbreviation labels in generated SVG charts.
        - `avoid_angle_label_collisions` boolean: Keep movable planets and points clear of visible ASC/DSC/MC/IC labels. Set false to ignore angle labels during collision placement while keeping the labels fixed on their axes.
        - `angle_label_style` 'international' | 'french' | 'astrocom': Angle label convention: international renders ASC/DSC/IC/MC; french renders AS/DS/FC/MC; astrocom renders AS/DS/IC/MC.
        - `show_pattern_overlays` boolean: Overlay detected chart structures such as T-squares, grand trines, yods, kites, grand crosses, and stelliums.
        - `pattern_overlay_types` string[], nullable: Optional allow-list of overlay types. Examples: grand_trine, t_square, yod, kite, grand_cross, stellium.
        - `pattern_overlay_style` 'subtle' | 'strong': Visual intensity for pattern overlays.
        - `pattern_overlay_labels` boolean: Show compact pattern labels near the overlay geometry.
        - `pattern_overlay_max_items` integer: Maximum number of detected configuration overlays to draw. Stellium sector highlights are not counted against this limit.
        - `pattern_overlay_respects_aspect_exclusions` boolean: When true, do not select or render a pattern that requires an aspect hidden by aspect_excluded_bodies. False preserves the legacy policy and exposes an embedded metadata warning for an affected selected pattern. Body visibility is always respected.
        - `embed_pattern_metadata` boolean: Embed detected overlay metadata in an SVG metadata element.
        - `show_horoscope_shape` boolean: Detect and render the chart distribution shape in the central aspect disk using only the 10 planets.
        - `horoscope_shape_style` 'subtle' | 'strong': Visual intensity for the horoscope shape overlay.
        - `horoscope_shape_color` string: SVG color used for all horoscope shape overlays.
        - `embed_horoscope_shape_metadata` boolean: Embed detected horoscope shape metadata in an SVG metadata element when show_horoscope_shape is enabled.
        - `horoscope_shape_label` boolean: Show a compact label for the detected horoscope shape in the center disk.
        - `scale_adj_factor` number
        - `pos_adj_factor` number
        - `show_color_background` boolean
        - `show_sign_background` boolean, nullable
        - `show_house_background` boolean, nullable
        - `custom_sign_colors` string[], nullable
        - `custom_house_colors` string[], nullable
        - `sign_background_inner_border_colors` union
          - string[]
          - object
        - `sign_background_inner_border_widths` union
          - number[]
          - object
        - `sign_background_opacity` number, nullable
        - `house_background_opacity` number, nullable
        - `houses_inside_planets` boolean
        - `french_style` boolean
        - `french_planet_radius_offset` number, nullable
        - `french_degree_label_offset` number, nullable
        - `french_transit_planet_radius_offset` number, nullable: Transit French-mode only. Moves transit planet glyphs radially without moving natal house/sign rings.
        - `french_transit_degree_label_offset` number, nullable: Transit French-mode only. Controls radial transit degree label offset; positive moves inward, negative moves outward.
        - `french_transit_natal_planets_inside` boolean, nullable: Transit French-mode variant. Moves the house ring/aspect disk inside, places natal/user glyphs inside the sign ring, and keeps transit/current-sky glyphs outside.
        - `french_transit_natal_inner_radius_offset` number, nullable: Transit French-mode inner-natal variant. Adjusts the inner natal planet lane radius.
        - `french_transit_inner_natal_house_gap` number, nullable: Transit French-mode inner-natal variant. Gap from the sign inner ring to the house outer ring; larger values make the house ring and aspect disk smaller.
        - `french_transit_inner_natal_planet_radius_offset` number, nullable: Transit French-mode inner-natal variant. Overrides the current-sky/transit planet lane offset; null uses the close default for this mode.
        - `degree_label_scale` number, nullable
        - `degree_label_degree_scale` number, nullable: Precise label whole-degree text scale relative to degree_label_scale.
        - `degree_label_minute_scale` number, nullable: Precise label minute text scale relative to degree_label_scale.
        - `degree_label_sign_scale` number, nullable: Precise label zodiac sign glyph scale relative to the base degree label text size.
        - `degree_label_row_gap` number, nullable: Precise label spacing between degree, sign, and minute rows, relative to base degree label text size.
        - `house_highlights` object, nullable: Map primary house numbers 1-12 to SVG background colors. Only listed house sectors are highlighted.
        - `house_highlight_opacity` number: Opacity applied to house_highlights colors before compositing over the chart background.
        - `house_highlight_include_planet_zone` boolean: Extend each house_highlights color through the corresponding primary planet zone.
        - `custom_sign_bg_color` string, nullable
        - `custom_house_bg_color` string, nullable
        - `show_retrograde_markers` boolean, nullable
        - `retrograde_marker_style` 'R' | 'rx', nullable
        - `degree_label_format` 'degree' | 'decimal' | 'minutes', nullable: Planet degree label format. 'degree' shows whole degrees, 'decimal' shows decimal degrees, and 'minutes' shows the stacked degree + sign glyph + minute layout. If omitted, degree_label_precision > 0 preserves the legacy stacked minutes layout.
        - `degree_label_precision` integer, nullable: Decimal places for degree_label_format='decimal'. For backward compatibility, when degree_label_format is omitted, values greater than 0 select the stacked minutes layout.
        - `show_inner_ring_angles` boolean, nullable
        - `show_data2_house_wheel` boolean, nullable
        - `show_data2_house_numbers` boolean, nullable
        - `data2_house_wheel_placement` 'inner' | 'outer', nullable
        - `invert_data2_orientation` boolean, nullable
        - `invert_data2_radial_placement` boolean, nullable
        - `data2_house_ring_scale` number, nullable
        - `data2_house_ring_extra_width_px` number, nullable
        - `data2_house_line_width` number, nullable
        - `data2_house_line_color` string, nullable
        - `data2_house_ring_inner_width` number, nullable
        - `data2_house_ring_inner_color` string, nullable
        - `data2_house_ring_outer_width` number, nullable
        - `data2_house_ring_outer_color` string, nullable
        - `data2_custom_house_color` string, nullable
        - `data2_asc_line_width` number, nullable
        - `data2_asc_line_color` string, nullable
        - `data2_dsc_line_width` number, nullable
        - `data2_dsc_line_color` string, nullable
        - `data2_mc_line_width` number, nullable
        - `data2_mc_line_color` string, nullable
        - `data2_ic_line_width` number, nullable
        - `data2_ic_line_color` string, nullable
        - `data1_vertex_glyph_color` string, nullable
        - `data2_vertex_glyph_color` string, nullable
        - `data1_zone_bg_color` string, nullable
        - `data1_zone_bg_opacity` number, nullable
        - `data2_zone_bg_color` string, nullable
        - `data2_zone_bg_opacity` number, nullable
      - `show_lilith_variants` boolean: Render the localized Lilith pair. lang='en' enables Mean Lilith (M) and True Lilith (T); lang='fr' enables Lune Noire Corrigée (C) and Lune Noire Vraie (V).
      - `png_quality_scale` number
      - `show_metadata` boolean
      - `include_tables_svg` boolean
      - `table_sections` string[], nullable
      - `table_style` 'classic'
    - object
      - `name` string, nullable
      - `year` integer, required: Astronomical year (0-2399; 0 = 1 BCE)
      - `month` integer, required
      - `day` integer, required
      - `hour` integer, nullable
      - `minute` integer, nullable
      - `time_known` boolean
      - `city` string, nullable
      - `lat` number, nullable, required
      - `lng` number, nullable, required
      - `tz_str` string, nullable
      - `dst_policy` 'reject' | 'earlier' | 'later' | 'shift_forward', nullable: Optional DST fold/gap policy. Omit to preserve legacy behavior; use reject for strict integrations.
      - `renderer` 'default'
      - `theme` string, nullable
      - `format` string, nullable
      - `lang` string, nullable
      - `size` integer, nullable
      - `glyphs` boolean, nullable
      - `show_aspects` boolean, nullable
      - `show_houses` boolean, nullable
      - `show_positions_panel` boolean, nullable
      - `show_legend` boolean, nullable
      - `custom_css` string, nullable
      - `house_system` string, nullable
      - `orb_settings` AspectOrbSettings: Per-aspect detection orbs, expressed in degrees.
        - `conjunction` number, nullable
        - `opposition` number, nullable
        - `trine` number, nullable
        - `square` number, nullable
        - `sextile` number, nullable
        - `quincunx` number, nullable
        - `quintile` number, nullable
        - `semi_sextile` number, nullable
        - `semi_square` number, nullable
        - `sesquiquadrate` number, nullable
      - `include_speed` boolean, nullable
      - `lilith` boolean, nullable
      - `mean_lilith` boolean, nullable
      - `true_lilith` boolean, nullable
      - `chiron` boolean, nullable
      - `chiron_invisible_door` boolean, nullable
      - `chiron_visible_door` boolean, nullable
      - `true_node` boolean, nullable
      - `mean_node` boolean, nullable
      - `pholus` boolean, nullable
      - `ceres` boolean, nullable
      - `pallas` boolean, nullable
      - `juno` boolean, nullable
      - `vesta` boolean, nullable
      - `eris` boolean, nullable
      - `eros` boolean, nullable
      - `vertex` boolean, nullable
      - `include_minor_aspects` boolean, nullable
      - `include_declination_aspects` boolean, nullable
      - `declination_orb` number, nullable
      - `include_stelliums` boolean, nullable
      - `stellium_policy` 'legacy' | 'classified', nullable: Optional stellium classification policy. Natal insights defaults omission to 'classified'; other shared-request endpoints retain legacy omission behavior. 'legacy' preserves count-based sign/house groups; 'classified' requires a conjunction cluster and reports loose sign/house occupancy as concentrations.
      - `include_tables` boolean, nullable
      - `include_fixed_stars` boolean, nullable
      - `fixed_stars` string[], nullable
      - `fixed_star_packs` string[], nullable
      - `include_features` string[], nullable
      - `include_dominants` boolean, nullable
      - `dominants_method` 'traditional' | 'modern', nullable: Opt in to detailed planet dominance scores, weighted elements, and a signature sign. Omit this field to keep the default response unchanged.
      - `include_dignity` boolean, nullable
      - `include_rulers` boolean, nullable
      - `include_configurations` boolean, nullable
      - `zodiac_type` string, nullable
      - `sidereal_ayanamsa` string, nullable
      - `view` 'all' | 'grouped-top' | 'grouped-all' | 'grouped-canonical', nullable
      - `separate_signatures_from_facts` boolean, nullable
      - `response_format` 'full' | 'flat', nullable: Use 'flat' to return a shallow no-code-friendly response with a single text field.
      - `interpretation` InterpretationSettings
        - `enable` boolean
        - `template_id` string, nullable
        - `language` string, nullable
        - `style` string, nullable
      - `psychological_report` PsychologicalReportSettings
        - `enabled` boolean
        - `mode` 'async' | 'sync'
        - `style` 'standard' | 'jungian_parental', nullable
        - `tone` string, nullable
        - `depth` string, nullable
        - `audience` string, nullable
        - `focus_areas` string[], nullable
        - `excluded_topics` string[], nullable
        - `custom_instructions` string, nullable
        - `report_structure` object, nullable
        - `markdown` boolean
        - `output_format` 'json' | 'pdf', nullable
        - `include_chart_in_pdf` boolean
        - `include_svg_chart_in_pdf` boolean
        - `include_natal_chart_in_response` boolean
        - `pdf_matrix_position` 'end' | 'after_chart', nullable
        - `chart_config` object, nullable
        - `pdf_footer_label` string, nullable
        - `include_profile_branding_logo` boolean
        - `callback_url` string, nullable
        - `callback_signing_secret` string, nullable
      - `theme_type` 'light' | 'dark' | 'mono'
      - `custom_theme` ExperimentalThemeSettings
        - `fire` string, nullable
        - `earth` string, nullable
        - `air` string, nullable
        - `water` string, nullable
        - `points` string, nullable
        - `asteroids` string, nullable
        - `positive` string, nullable
        - `negative` string, nullable
        - `others` string, nullable
        - `transparency` number, nullable
        - `foreground` string, nullable
        - `background` string, nullable
        - `dim` string, nullable
      - `display_settings` ExperimentalDisplaySettings
        - `sun` boolean
        - `moon` boolean
        - `mercury` boolean
        - `venus` boolean
        - `mars` boolean
        - `jupiter` boolean
        - `saturn` boolean
        - `uranus` boolean
        - `neptune` boolean
        - `pluto` boolean
        - `north_node` boolean
        - `south_node` boolean
        - `chiron` boolean
        - `chiron_invisible_door` boolean
        - `chiron_visible_door` boolean
        - `ceres` boolean
        - `pallas` boolean
        - `juno` boolean
        - `vesta` boolean
        - `asc` boolean
        - `ic` boolean
        - `dsc` boolean
        - `mc` boolean
        - `lilith` boolean
        - `mean_lilith` boolean
        - `true_lilith` boolean
        - `corrected_lilith` boolean
        - `eris` boolean
        - `eros` boolean
        - `vertex` boolean
        - `part_of_fortune` boolean
      - `chart_config` ExperimentalChartConfigSettings
        - `stroke_width` integer
        - `stroke_opacity` number
        - `font` string
        - `font_size_fraction` number
        - `inner_min_degree` number
        - `outer_min_degree` number
        - `margin_factor` number
        - `ring_thickness_fraction` number
        - `sign_ring_thickness_fraction` number, nullable
        - `house_ring_thickness_fraction` number, nullable
        - `center_disk_fraction` number, nullable
        - `planet_symbol_scale` number, nullable
        - `planet_backing_style` 'disk' | 'halo' | 'none': Planet/point backing treatment: filled background disk, glyph-shaped halo, or none.
        - `planet_spacing_scale` number, nullable: Multiplier applied to inner_min_degree/outer_min_degree before planet glyph collision adjustment. If omitted, spacing automatically increases when planet_symbol_scale is above the default.
        - `planet_radius_offset` number, nullable: Move non-angle planet/point glyphs radially; negative moves inward, positive outward.
        - `round_planet_glyphs` boolean: Use rounded stroke caps/joins for planet and point glyphs in the body wheel.
        - `show_planet_connectors` boolean: Show radial connector lines between planet/point glyphs and their source ring positions.
        - `planet_connector_scope` 'all' | 'natal' | 'transit' | 'none': Which wheel should draw planet connector lines: all wheels, natal/primary only, transit/secondary only, or none.
        - `show_synastry_inner_planet_guides` boolean: For synastry inner-wheel planets, draw dashed radial guides from their divider-ring longitude ticks to the inner sign-ring circle.
        - `planet_connector_width` number, nullable: Stroke width for planet/point connector lines.
        - `planet_connector_opacity` number, nullable: Stroke opacity for planet/point connector lines.
        - `planet_connector_color` string, nullable: Optional stroke color override for all planet/point connector lines.
        - `planet_connector_clearance` number, nullable: Distance in SVG pixels from a planet/point glyph center where its connector line stops. If omitted, the renderer uses the visible glyph radius plus half the connector stroke width.
        - `sign_symbol_scale` number, nullable
        - `sign_symbol_stroke_width` number, nullable: Stroke width for the large zodiac sign glyphs in the outer sign wheel.
        - `round_sign_wheel_glyphs` boolean: Use rounded stroke caps/joins for the large zodiac sign glyphs in the outer sign wheel.
        - `house_number_scale` number, nullable
        - `show_house_ring` boolean: Draw the house wheel/ring visuals. When false, house ring sectors, ring circles, non-angle separators, and house numbers are omitted.
        - `show_house_numbers` boolean: Show house numbers in the house ring.
        - `show_house_separators` boolean: Show non-angle house cusp separator lines.
        - `show_house_ring_circles` boolean: Show house ring circle borders/separator circles.
        - `chart_background` string, nullable
        - `planet_color_mode` 'body' | 'sign': Planet/point glyph color source. 'body' uses each body's default palette; 'sign' uses the element color of the sign occupied by each non-angle body. Explicit custom planet colors take precedence.
        - `element_color_scheme` 'western' | 'earth_yellow_air_green': Element palette used by sign glyphs, sign-based planet colors, and element-based ring backgrounds. 'western' keeps Earth green and Air yellow; 'earth_yellow_air_green' swaps those two colors. Explicit custom sign and planet colors take precedence.
        - `custom_planet_color` string, nullable
        - `custom_planet_colors` object, nullable: Per-body planet/point glyph color overrides keyed by body id, e.g. sun, moon, mercury, north_node, asc, mc.
        - `fixed_star_color` string, nullable: Color override for fixed-star markers, labels, and connector/aspect lines in chart SVG output.
        - `custom_sign_color` string, nullable
        - `custom_sign_glyph_colors` union: Per-sign glyph color overrides. Accepts a 12-item Aries-to-Pisces list or a map keyed by sign id, e.g. aries, taurus.
          - string[]
          - object
        - `custom_house_color` string, nullable
        - `degree_label_color` string, nullable: Override planet degree/minute label text color (hex or CSS color).
        - `sign_line_width` number, nullable
        - `sign_line_color` string, nullable
        - `house_line_width` number, nullable
        - `house_line_color` string, nullable
        - `sign_ring_inner_width` number, nullable
        - `sign_ring_inner_color` string, nullable
        - `sign_ring_outer_width` number, nullable
        - `sign_ring_outer_color` string, nullable
        - `house_ring_inner_width` number, nullable
        - `house_ring_inner_color` string, nullable
        - `house_ring_outer_width` number, nullable
        - `house_ring_outer_color` string, nullable
        - `asc_line_width` number, nullable
        - `asc_line_color` string, nullable
        - `dsc_line_width` number, nullable
        - `dsc_line_color` string, nullable
        - `mc_line_width` number, nullable
        - `mc_line_color` string, nullable
        - `ic_line_width` number, nullable
        - `ic_line_color` string, nullable
        - `angle_label_color` string, nullable: Fallback color for all ASC/DSC/MC/IC glyph labels.
        - `asc_label_color` string, nullable: ASC glyph label color.
        - `dsc_label_color` string, nullable: DSC glyph label color.
        - `mc_label_color` string, nullable: MC glyph label color.
        - `ic_label_color` string, nullable: IC glyph label color.
        - `angle_label_scale` number, nullable: Fallback scale multiplier for all ASC/DSC/MC/IC glyph labels.
        - `asc_label_scale` number, nullable: ASC glyph label scale multiplier.
        - `dsc_label_scale` number, nullable: DSC glyph label scale multiplier.
        - `mc_label_scale` number, nullable: MC glyph label scale multiplier.
        - `ic_label_scale` number, nullable: IC glyph label scale multiplier.
        - `angle_label_radius_offset` number: Move all angle labels along their fixed axes; negative moves inward and positive outward.
        - `asc_label_radius_offset` number, nullable: ASC label axis offset.
        - `dsc_label_radius_offset` number, nullable: DSC label axis offset.
        - `mc_label_radius_offset` number, nullable: MC label axis offset.
        - `ic_label_radius_offset` number, nullable: IC label axis offset.
        - `angle_marker_style` 'glyph' | 'french_arrow': Angle marker rendering style. 'glyph' renders ASC/DSC/MC/IC abbreviation glyph paths; 'french_arrow' renders French-style arrow axis markers and keeps enabled angle labels visible by default.
        - `angle_line_span` 'wheel' | 'full': Angle line span: wheel keeps angle axes inside the default wheel area; full extends ASC/DSC and MC/IC axes across the chart to the sign ring edge.
        - `show_angle_labels_with_french_arrows` boolean: When angle_marker_style is french_arrow, also render enabled ASC/DSC/MC/IC glyph labels.
        - `show_sign_ticks` boolean: Show degree graduation ticks on the sign wheel.
        - `sign_tick_width` number, nullable
        - `sign_tick_color` string, nullable
        - `long_sign_tick_width` number, nullable
        - `short_sign_tick_width` number, nullable
        - `long_tick_color` string, nullable
        - `short_tick_color` string, nullable
        - `long_sign_tick_length` number, nullable
        - `short_sign_tick_length` number, nullable
        - `show_decans` boolean: Show an inner ring of three 10-degree decans per zodiac sign.
        - `decan_system` 'chaldean' | 'traditional_chaldean' | 'modern_triplicity': Planetary ruler system for the decan ring. Use chaldean or traditional_chaldean for the seven classical planets, or modern_triplicity to include Uranus, Neptune, and Pluto.
        - `decan_ring_thickness_fraction` number: Decan ring thickness as a fraction of the chart radius. Increase or reduce it to control radial spacing around the ruler glyphs.
        - `decan_symbol_scale` number: Scale of the planetary ruler glyphs inside the decan ring. Set this manually to make them smaller or larger.
        - `decan_symbol_stroke_width` number: Stroke width of decan ruler glyphs.
        - `decan_symbol_color` string, nullable: Optional color override for all decan ruler glyphs. When omitted, a darker theme-aware foreground is used.
        - `decan_line_width` number: Shared fallback stroke width for decan separators and circular borders.
        - `decan_line_color` string, nullable: Shared fallback color for decan separators and circular borders.
        - `decan_ring_line_width` number, nullable: Optional stroke width for the inner and outer circular borders of the decan ring.
        - `decan_ring_line_color` string, nullable: Optional color for the inner and outer circular borders of the decan ring.
        - `decan_separator_width` number, nullable: Optional stroke width for the 10-degree radial decan separators.
        - `decan_separator_color` string, nullable: Optional color for the 10-degree radial decan separators.
        - `decan_background_color` string, nullable: Optional uniform decan ring fill. When omitted, adjacent faces receive a subtle alternating tint.
        - `decan_background_opacity` number: Strength of the alternating decan background tint when no explicit fill is supplied.
        - `show_aspect_lines` boolean: Show all aspect line SVG elements. When false, natal, transit, inter-chart aspect lines and aspect degree ticks are omitted.
        - `show_angle_aspects` boolean: Include aspect lines and aspect degree ticks involving ASC, DSC, MC, or IC. When false, planet-to-planet aspects remain visible and angle axes and labels are unchanged.
        - `aspect_excluded_bodies` string[]: Body ids whose SVG aspects should be hidden, for example ['part_of_fortune', 'chiron']. The bodies remain visible; only aspect lines, midpoint symbols, and aspect degree ticks touching them are omitted. Names are case-insensitive and common angle, node, Lilith, and Part of Fortune aliases are accepted. The filter applies across both rings in bi-wheel charts and does not change the calculated canonical aspect graph. Pattern overlays can opt into this visual filter with pattern_overlay_respects_aspect_exclusions.
        - `aspect_opacity_by_strength` boolean: When true, aspect line and midpoint-symbol opacity follows orb strength. When false, orb-based opacity variation is disabled: conjunction, opposition, trine, square, and sextile use 100% opacity, while minor aspects such as quincunx use 70%. The global stroke_opacity multiplier still applies.
        - `aspect_conjunction_width` number, nullable
        - `aspect_conjunction_color` string, nullable
        - `aspect_opposition_width` number, nullable
        - `aspect_opposition_color` string, nullable
        - `aspect_trine_width` number, nullable
        - `aspect_trine_color` string, nullable
        - `aspect_circle_background` string, nullable: Fill color for the central aspect circle/disk. When omitted, the aspect circle has no fill.
        - `aspect_square_width` number, nullable
        - `aspect_square_color` string, nullable
        - `aspect_sextile_width` number, nullable
        - `aspect_sextile_color` string, nullable
        - `aspect_quincunx_width` number, nullable
        - `aspect_quincunx_color` string, nullable
        - `show_aspect_symbols` boolean, nullable
        - `show_fixed_star_aspects` boolean: Opt-in fixed-star aspect lines. Fixed stars are rendered as body-wheel items by default, but their aspects are omitted unless this is true.
        - `fixed_star_aspect_types` string[], nullable: Aspect types to draw from fixed stars to planets, points, and angles. Defaults to conjunction only.
        - `fixed_star_aspect_orb` number: Orb in degrees for fixed-star aspects. Defaults to a tight 1 degree.
        - `show_degree_labels` boolean: Show planet/point degree labels in generated SVG charts.
        - `show_angle_labels` boolean: Show angle abbreviation labels in generated SVG charts.
        - `avoid_angle_label_collisions` boolean: Keep movable planets and points clear of visible ASC/DSC/MC/IC labels. Set false to ignore angle labels during collision placement while keeping the labels fixed on their axes.
        - `angle_label_style` 'international' | 'french' | 'astrocom': Angle label convention: international renders ASC/DSC/IC/MC; french renders AS/DS/FC/MC; astrocom renders AS/DS/IC/MC.
        - `show_pattern_overlays` boolean: Overlay detected chart structures such as T-squares, grand trines, yods, kites, grand crosses, and stelliums.
        - `pattern_overlay_types` string[], nullable: Optional allow-list of overlay types. Examples: grand_trine, t_square, yod, kite, grand_cross, stellium.
        - `pattern_overlay_style` 'subtle' | 'strong': Visual intensity for pattern overlays.
        - `pattern_overlay_labels` boolean: Show compact pattern labels near the overlay geometry.
        - `pattern_overlay_max_items` integer: Maximum number of detected configuration overlays to draw. Stellium sector highlights are not counted against this limit.
        - `pattern_overlay_respects_aspect_exclusions` boolean: When true, do not select or render a pattern that requires an aspect hidden by aspect_excluded_bodies. False preserves the legacy policy and exposes an embedded metadata warning for an affected selected pattern. Body visibility is always respected.
        - `embed_pattern_metadata` boolean: Embed detected overlay metadata in an SVG metadata element.
        - `show_horoscope_shape` boolean: Detect and render the chart distribution shape in the central aspect disk using only the 10 planets.
        - `horoscope_shape_style` 'subtle' | 'strong': Visual intensity for the horoscope shape overlay.
        - `horoscope_shape_color` string: SVG color used for all horoscope shape overlays.
        - `embed_horoscope_shape_metadata` boolean: Embed detected horoscope shape metadata in an SVG metadata element when show_horoscope_shape is enabled.
        - `horoscope_shape_label` boolean: Show a compact label for the detected horoscope shape in the center disk.
        - `scale_adj_factor` number
        - `pos_adj_factor` number
        - `show_color_background` boolean
        - `show_sign_background` boolean, nullable
        - `show_house_background` boolean, nullable
        - `custom_sign_colors` string[], nullable
        - `custom_house_colors` string[], nullable
        - `sign_background_inner_border_colors` union
          - string[]
          - object
        - `sign_background_inner_border_widths` union
          - number[]
          - object
        - `sign_background_opacity` number, nullable
        - `house_background_opacity` number, nullable
        - `houses_inside_planets` boolean
        - `french_style` boolean
        - `french_planet_radius_offset` number, nullable
        - `french_degree_label_offset` number, nullable
        - `french_transit_planet_radius_offset` number, nullable: Transit French-mode only. Moves transit planet glyphs radially without moving natal house/sign rings.
        - `french_transit_degree_label_offset` number, nullable: Transit French-mode only. Controls radial transit degree label offset; positive moves inward, negative moves outward.
        - `french_transit_natal_planets_inside` boolean, nullable: Transit French-mode variant. Moves the house ring/aspect disk inside, places natal/user glyphs inside the sign ring, and keeps transit/current-sky glyphs outside.
        - `french_transit_natal_inner_radius_offset` number, nullable: Transit French-mode inner-natal variant. Adjusts the inner natal planet lane radius.
        - `french_transit_inner_natal_house_gap` number, nullable: Transit French-mode inner-natal variant. Gap from the sign inner ring to the house outer ring; larger values make the house ring and aspect disk smaller.
        - `french_transit_inner_natal_planet_radius_offset` number, nullable: Transit French-mode inner-natal variant. Overrides the current-sky/transit planet lane offset; null uses the close default for this mode.
        - `degree_label_scale` number, nullable
        - `degree_label_degree_scale` number, nullable: Precise label whole-degree text scale relative to degree_label_scale.
        - `degree_label_minute_scale` number, nullable: Precise label minute text scale relative to degree_label_scale.
        - `degree_label_sign_scale` number, nullable: Precise label zodiac sign glyph scale relative to the base degree label text size.
        - `degree_label_row_gap` number, nullable: Precise label spacing between degree, sign, and minute rows, relative to base degree label text size.
        - `house_highlights` object, nullable: Map primary house numbers 1-12 to SVG background colors. Only listed house sectors are highlighted.
        - `house_highlight_opacity` number: Opacity applied to house_highlights colors before compositing over the chart background.
        - `house_highlight_include_planet_zone` boolean: Extend each house_highlights color through the corresponding primary planet zone.
        - `custom_sign_bg_color` string, nullable
        - `custom_house_bg_color` string, nullable
        - `show_retrograde_markers` boolean, nullable
        - `retrograde_marker_style` 'R' | 'rx', nullable
        - `degree_label_format` 'degree' | 'decimal' | 'minutes', nullable: Planet degree label format. 'degree' shows whole degrees, 'decimal' shows decimal degrees, and 'minutes' shows the stacked degree + sign glyph + minute layout. If omitted, degree_label_precision > 0 preserves the legacy stacked minutes layout.
        - `degree_label_precision` integer, nullable: Decimal places for degree_label_format='decimal'. For backward compatibility, when degree_label_format is omitted, values greater than 0 select the stacked minutes layout.
        - `show_inner_ring_angles` boolean, nullable
        - `show_data2_house_wheel` boolean, nullable
        - `show_data2_house_numbers` boolean, nullable
        - `data2_house_wheel_placement` 'inner' | 'outer', nullable
        - `invert_data2_orientation` boolean, nullable
        - `invert_data2_radial_placement` boolean, nullable
        - `data2_house_ring_scale` number, nullable
        - `data2_house_ring_extra_width_px` number, nullable
        - `data2_house_line_width` number, nullable
        - `data2_house_line_color` string, nullable
        - `data2_house_ring_inner_width` number, nullable
        - `data2_house_ring_inner_color` string, nullable
        - `data2_house_ring_outer_width` number, nullable
        - `data2_house_ring_outer_color` string, nullable
        - `data2_custom_house_color` string, nullable
        - `data2_asc_line_width` number, nullable
        - `data2_asc_line_color` string, nullable
        - `data2_dsc_line_width` number, nullable
        - `data2_dsc_line_color` string, nullable
        - `data2_mc_line_width` number, nullable
        - `data2_mc_line_color` string, nullable
        - `data2_ic_line_width` number, nullable
        - `data2_ic_line_color` string, nullable
        - `data1_vertex_glyph_color` string, nullable
        - `data2_vertex_glyph_color` string, nullable
        - `data1_zone_bg_color` string, nullable
        - `data1_zone_bg_opacity` number, nullable
        - `data2_zone_bg_color` string, nullable
        - `data2_zone_bg_opacity` number, nullable
      - `show_lilith_variants` boolean: Render the localized Lilith pair. lang='en' enables Mean Lilith (M) and True Lilith (T); lang='fr' enables Lune Noire Corrigée (C) and Lune Noire Vraie (V).
      - `png_quality_scale` number
      - `show_metadata` boolean
      - `include_tables_svg` boolean
      - `table_sections` string[], nullable
      - `table_style` 'classic'
  - `progression_date` string, nullable: Real-world date the chart is progressed to: `YYYY-MM-DD` (local midnight at the progression location) or an ISO datetime. Defaults to now (UTC).
  - `progression_lat` number, nullable
  - `progression_lng` number, nullable
  - `progression_city` string, nullable: Location used for the progressed houses/angles and for interpreting a local `progression_date`. Defaults to the natal location when omitted together with the coordinates.
  - `tz_str` string, nullable: Timezone of `progression_date`. `AUTO` resolves it from the progression location.
  - `dst_policy` 'reject' | 'earlier' | 'later' | 'shift_forward', nullable
  - `show_natal_aspects` boolean
  - `show_inter_aspects` boolean
  - `show_progressed_aspects` boolean
  - `orb_deg` number: Maximum orb (degrees) for progressed aspect lines. Default 1.0, matching /api/v1/western/progressions/secondary.
  - `aspect_set` 'major' | 'major_plus': `major` draws conjunction/opposition/trine/square/sextile; `major_plus` also draws the quincunx.
  - `orb_settings` AspectOrbSettings: Per-aspect detection orbs, expressed in degrees.
    - `conjunction` number, nullable
    - `opposition` number, nullable
    - `trine` number, nullable
    - `square` number, nullable
    - `sextile` number, nullable
    - `quincunx` number, nullable
    - `quintile` number, nullable
    - `semi_sextile` number, nullable
    - `semi_square` number, nullable
    - `sesquiquadrate` number, nullable
  - `layout` 'progressed_outside' | 'progressed_inside': `progressed_outside` (default): French layout with natal planets inside the sign ring and progressed planets on the outer ring. `progressed_inside`: the transits-chart layout, with the progressed planets drawn on the inner lane. Explicit `chart_config.french_style` / `french_transit_natal_planets_inside` values always win.
  - `show_progressed_angles` boolean: Draw the progressed ASC/MC glyphs on the outer wheel (requires a known birth time).
  - `show_progressed_houses` boolean: Draw the progressed house cusps as a secondary house wheel (requires a known birth time). In the default `progressed_outside` layout the cusp ring sits beyond the progressed planets; with `progressed_inside` it sits inside the sign ring.
  - `natal_planet_color` string, nullable
  - `progressed_planet_color` string, nullable
  - `chart_config` ExperimentalChartConfigSettings
    - `stroke_width` integer
    - `stroke_opacity` number
    - `font` string
    - `font_size_fraction` number
    - `inner_min_degree` number
    - `outer_min_degree` number
    - `margin_factor` number
    - `ring_thickness_fraction` number
    - `sign_ring_thickness_fraction` number, nullable
    - `house_ring_thickness_fraction` number, nullable
    - `center_disk_fraction` number, nullable
    - `planet_symbol_scale` number, nullable
    - `planet_backing_style` 'disk' | 'halo' | 'none': Planet/point backing treatment: filled background disk, glyph-shaped halo, or none.
    - `planet_spacing_scale` number, nullable: Multiplier applied to inner_min_degree/outer_min_degree before planet glyph collision adjustment. If omitted, spacing automatically increases when planet_symbol_scale is above the default.
    - `planet_radius_offset` number, nullable: Move non-angle planet/point glyphs radially; negative moves inward, positive outward.
    - `round_planet_glyphs` boolean: Use rounded stroke caps/joins for planet and point glyphs in the body wheel.
    - `show_planet_connectors` boolean: Show radial connector lines between planet/point glyphs and their source ring positions.
    - `planet_connector_scope` 'all' | 'natal' | 'transit' | 'none': Which wheel should draw planet connector lines: all wheels, natal/primary only, transit/secondary only, or none.
    - `show_synastry_inner_planet_guides` boolean: For synastry inner-wheel planets, draw dashed radial guides from their divider-ring longitude ticks to the inner sign-ring circle.
    - `planet_connector_width` number, nullable: Stroke width for planet/point connector lines.
    - `planet_connector_opacity` number, nullable: Stroke opacity for planet/point connector lines.
    - `planet_connector_color` string, nullable: Optional stroke color override for all planet/point connector lines.
    - `planet_connector_clearance` number, nullable: Distance in SVG pixels from a planet/point glyph center where its connector line stops. If omitted, the renderer uses the visible glyph radius plus half the connector stroke width.
    - `sign_symbol_scale` number, nullable
    - `sign_symbol_stroke_width` number, nullable: Stroke width for the large zodiac sign glyphs in the outer sign wheel.
    - `round_sign_wheel_glyphs` boolean: Use rounded stroke caps/joins for the large zodiac sign glyphs in the outer sign wheel.
    - `house_number_scale` number, nullable
    - `show_house_ring` boolean: Draw the house wheel/ring visuals. When false, house ring sectors, ring circles, non-angle separators, and house numbers are omitted.
    - `show_house_numbers` boolean: Show house numbers in the house ring.
    - `show_house_separators` boolean: Show non-angle house cusp separator lines.
    - `show_house_ring_circles` boolean: Show house ring circle borders/separator circles.
    - `chart_background` string, nullable
    - `planet_color_mode` 'body' | 'sign': Planet/point glyph color source. 'body' uses each body's default palette; 'sign' uses the element color of the sign occupied by each non-angle body. Explicit custom planet colors take precedence.
    - `element_color_scheme` 'western' | 'earth_yellow_air_green': Element palette used by sign glyphs, sign-based planet colors, and element-based ring backgrounds. 'western' keeps Earth green and Air yellow; 'earth_yellow_air_green' swaps those two colors. Explicit custom sign and planet colors take precedence.
    - `custom_planet_color` string, nullable
    - `custom_planet_colors` object, nullable: Per-body planet/point glyph color overrides keyed by body id, e.g. sun, moon, mercury, north_node, asc, mc.
    - `fixed_star_color` string, nullable: Color override for fixed-star markers, labels, and connector/aspect lines in chart SVG output.
    - `custom_sign_color` string, nullable
    - `custom_sign_glyph_colors` union: Per-sign glyph color overrides. Accepts a 12-item Aries-to-Pisces list or a map keyed by sign id, e.g. aries, taurus.
      - string[]
      - object
    - `custom_house_color` string, nullable
    - `degree_label_color` string, nullable: Override planet degree/minute label text color (hex or CSS color).
    - `sign_line_width` number, nullable
    - `sign_line_color` string, nullable
    - `house_line_width` number, nullable
    - `house_line_color` string, nullable
    - `sign_ring_inner_width` number, nullable
    - `sign_ring_inner_color` string, nullable
    - `sign_ring_outer_width` number, nullable
    - `sign_ring_outer_color` string, nullable
    - `house_ring_inner_width` number, nullable
    - `house_ring_inner_color` string, nullable
    - `house_ring_outer_width` number, nullable
    - `house_ring_outer_color` string, nullable
    - `asc_line_width` number, nullable
    - `asc_line_color` string, nullable
    - `dsc_line_width` number, nullable
    - `dsc_line_color` string, nullable
    - `mc_line_width` number, nullable
    - `mc_line_color` string, nullable
    - `ic_line_width` number, nullable
    - `ic_line_color` string, nullable
    - `angle_label_color` string, nullable: Fallback color for all ASC/DSC/MC/IC glyph labels.
    - `asc_label_color` string, nullable: ASC glyph label color.
    - `dsc_label_color` string, nullable: DSC glyph label color.
    - `mc_label_color` string, nullable: MC glyph label color.
    - `ic_label_color` string, nullable: IC glyph label color.
    - `angle_label_scale` number, nullable: Fallback scale multiplier for all ASC/DSC/MC/IC glyph labels.
    - `asc_label_scale` number, nullable: ASC glyph label scale multiplier.
    - `dsc_label_scale` number, nullable: DSC glyph label scale multiplier.
    - `mc_label_scale` number, nullable: MC glyph label scale multiplier.
    - `ic_label_scale` number, nullable: IC glyph label scale multiplier.
    - `angle_label_radius_offset` number: Move all angle labels along their fixed axes; negative moves inward and positive outward.
    - `asc_label_radius_offset` number, nullable: ASC label axis offset.
    - `dsc_label_radius_offset` number, nullable: DSC label axis offset.
    - `mc_label_radius_offset` number, nullable: MC label axis offset.
    - `ic_label_radius_offset` number, nullable: IC label axis offset.
    - `angle_marker_style` 'glyph' | 'french_arrow': Angle marker rendering style. 'glyph' renders ASC/DSC/MC/IC abbreviation glyph paths; 'french_arrow' renders French-style arrow axis markers and keeps enabled angle labels visible by default.
    - `angle_line_span` 'wheel' | 'full': Angle line span: wheel keeps angle axes inside the default wheel area; full extends ASC/DSC and MC/IC axes across the chart to the sign ring edge.
    - `show_angle_labels_with_french_arrows` boolean: When angle_marker_style is french_arrow, also render enabled ASC/DSC/MC/IC glyph labels.
    - `show_sign_ticks` boolean: Show degree graduation ticks on the sign wheel.
    - `sign_tick_width` number, nullable
    - `sign_tick_color` string, nullable
    - `long_sign_tick_width` number, nullable
    - `short_sign_tick_width` number, nullable
    - `long_tick_color` string, nullable
    - `short_tick_color` string, nullable
    - `long_sign_tick_length` number, nullable
    - `short_sign_tick_length` number, nullable
    - `show_decans` boolean: Show an inner ring of three 10-degree decans per zodiac sign.
    - `decan_system` 'chaldean' | 'traditional_chaldean' | 'modern_triplicity': Planetary ruler system for the decan ring. Use chaldean or traditional_chaldean for the seven classical planets, or modern_triplicity to include Uranus, Neptune, and Pluto.
    - `decan_ring_thickness_fraction` number: Decan ring thickness as a fraction of the chart radius. Increase or reduce it to control radial spacing around the ruler glyphs.
    - `decan_symbol_scale` number: Scale of the planetary ruler glyphs inside the decan ring. Set this manually to make them smaller or larger.
    - `decan_symbol_stroke_width` number: Stroke width of decan ruler glyphs.
    - `decan_symbol_color` string, nullable: Optional color override for all decan ruler glyphs. When omitted, a darker theme-aware foreground is used.
    - `decan_line_width` number: Shared fallback stroke width for decan separators and circular borders.
    - `decan_line_color` string, nullable: Shared fallback color for decan separators and circular borders.
    - `decan_ring_line_width` number, nullable: Optional stroke width for the inner and outer circular borders of the decan ring.
    - `decan_ring_line_color` string, nullable: Optional color for the inner and outer circular borders of the decan ring.
    - `decan_separator_width` number, nullable: Optional stroke width for the 10-degree radial decan separators.
    - `decan_separator_color` string, nullable: Optional color for the 10-degree radial decan separators.
    - `decan_background_color` string, nullable: Optional uniform decan ring fill. When omitted, adjacent faces receive a subtle alternating tint.
    - `decan_background_opacity` number: Strength of the alternating decan background tint when no explicit fill is supplied.
    - `show_aspect_lines` boolean: Show all aspect line SVG elements. When false, natal, transit, inter-chart aspect lines and aspect degree ticks are omitted.
    - `show_angle_aspects` boolean: Include aspect lines and aspect degree ticks involving ASC, DSC, MC, or IC. When false, planet-to-planet aspects remain visible and angle axes and labels are unchanged.
    - `aspect_excluded_bodies` string[]: Body ids whose SVG aspects should be hidden, for example ['part_of_fortune', 'chiron']. The bodies remain visible; only aspect lines, midpoint symbols, and aspect degree ticks touching them are omitted. Names are case-insensitive and common angle, node, Lilith, and Part of Fortune aliases are accepted. The filter applies across both rings in bi-wheel charts and does not change the calculated canonical aspect graph. Pattern overlays can opt into this visual filter with pattern_overlay_respects_aspect_exclusions.
    - `aspect_opacity_by_strength` boolean: When true, aspect line and midpoint-symbol opacity follows orb strength. When false, orb-based opacity variation is disabled: conjunction, opposition, trine, square, and sextile use 100% opacity, while minor aspects such as quincunx use 70%. The global stroke_opacity multiplier still applies.
    - `aspect_conjunction_width` number, nullable
    - `aspect_conjunction_color` string, nullable
    - `aspect_opposition_width` number, nullable
    - `aspect_opposition_color` string, nullable
    - `aspect_trine_width` number, nullable
    - `aspect_trine_color` string, nullable
    - `aspect_circle_background` string, nullable: Fill color for the central aspect circle/disk. When omitted, the aspect circle has no fill.
    - `aspect_square_width` number, nullable
    - `aspect_square_color` string, nullable
    - `aspect_sextile_width` number, nullable
    - `aspect_sextile_color` string, nullable
    - `aspect_quincunx_width` number, nullable
    - `aspect_quincunx_color` string, nullable
    - `show_aspect_symbols` boolean, nullable
    - `show_fixed_star_aspects` boolean: Opt-in fixed-star aspect lines. Fixed stars are rendered as body-wheel items by default, but their aspects are omitted unless this is true.
    - `fixed_star_aspect_types` string[], nullable: Aspect types to draw from fixed stars to planets, points, and angles. Defaults to conjunction only.
    - `fixed_star_aspect_orb` number: Orb in degrees for fixed-star aspects. Defaults to a tight 1 degree.
    - `show_degree_labels` boolean: Show planet/point degree labels in generated SVG charts.
    - `show_angle_labels` boolean: Show angle abbreviation labels in generated SVG charts.
    - `avoid_angle_label_collisions` boolean: Keep movable planets and points clear of visible ASC/DSC/MC/IC labels. Set false to ignore angle labels during collision placement while keeping the labels fixed on their axes.
    - `angle_label_style` 'international' | 'french' | 'astrocom': Angle label convention: international renders ASC/DSC/IC/MC; french renders AS/DS/FC/MC; astrocom renders AS/DS/IC/MC.
    - `show_pattern_overlays` boolean: Overlay detected chart structures such as T-squares, grand trines, yods, kites, grand crosses, and stelliums.
    - `pattern_overlay_types` string[], nullable: Optional allow-list of overlay types. Examples: grand_trine, t_square, yod, kite, grand_cross, stellium.
    - `pattern_overlay_style` 'subtle' | 'strong': Visual intensity for pattern overlays.
    - `pattern_overlay_labels` boolean: Show compact pattern labels near the overlay geometry.
    - `pattern_overlay_max_items` integer: Maximum number of detected configuration overlays to draw. Stellium sector highlights are not counted against this limit.
    - `pattern_overlay_respects_aspect_exclusions` boolean: When true, do not select or render a pattern that requires an aspect hidden by aspect_excluded_bodies. False preserves the legacy policy and exposes an embedded metadata warning for an affected selected pattern. Body visibility is always respected.
    - `embed_pattern_metadata` boolean: Embed detected overlay metadata in an SVG metadata element.
    - `show_horoscope_shape` boolean: Detect and render the chart distribution shape in the central aspect disk using only the 10 planets.
    - `horoscope_shape_style` 'subtle' | 'strong': Visual intensity for the horoscope shape overlay.
    - `horoscope_shape_color` string: SVG color used for all horoscope shape overlays.
    - `embed_horoscope_shape_metadata` boolean: Embed detected horoscope shape metadata in an SVG metadata element when show_horoscope_shape is enabled.
    - `horoscope_shape_label` boolean: Show a compact label for the detected horoscope shape in the center disk.
    - `scale_adj_factor` number
    - `pos_adj_factor` number
    - `show_color_background` boolean
    - `show_sign_background` boolean, nullable
    - `show_house_background` boolean, nullable
    - `custom_sign_colors` string[], nullable
    - `custom_house_colors` string[], nullable
    - `sign_background_inner_border_colors` union
      - string[]
      - object
    - `sign_background_inner_border_widths` union
      - number[]
      - object
    - `sign_background_opacity` number, nullable
    - `house_background_opacity` number, nullable
    - `houses_inside_planets` boolean
    - `french_style` boolean
    - `french_planet_radius_offset` number, nullable
    - `french_degree_label_offset` number, nullable
    - `french_transit_planet_radius_offset` number, nullable: Transit French-mode only. Moves transit planet glyphs radially without moving natal house/sign rings.
    - `french_transit_degree_label_offset` number, nullable: Transit French-mode only. Controls radial transit degree label offset; positive moves inward, negative moves outward.
    - `french_transit_natal_planets_inside` boolean, nullable: Transit French-mode variant. Moves the house ring/aspect disk inside, places natal/user glyphs inside the sign ring, and keeps transit/current-sky glyphs outside.
    - `french_transit_natal_inner_radius_offset` number, nullable: Transit French-mode inner-natal variant. Adjusts the inner natal planet lane radius.
    - `french_transit_inner_natal_house_gap` number, nullable: Transit French-mode inner-natal variant. Gap from the sign inner ring to the house outer ring; larger values make the house ring and aspect disk smaller.
    - `french_transit_inner_natal_planet_radius_offset` number, nullable: Transit French-mode inner-natal variant. Overrides the current-sky/transit planet lane offset; null uses the close default for this mode.
    - `degree_label_scale` number, nullable
    - `degree_label_degree_scale` number, nullable: Precise label whole-degree text scale relative to degree_label_scale.
    - `degree_label_minute_scale` number, nullable: Precise label minute text scale relative to degree_label_scale.
    - `degree_label_sign_scale` number, nullable: Precise label zodiac sign glyph scale relative to the base degree label text size.
    - `degree_label_row_gap` number, nullable: Precise label spacing between degree, sign, and minute rows, relative to base degree label text size.
    - `house_highlights` object, nullable: Map primary house numbers 1-12 to SVG background colors. Only listed house sectors are highlighted.
    - `house_highlight_opacity` number: Opacity applied to house_highlights colors before compositing over the chart background.
    - `house_highlight_include_planet_zone` boolean: Extend each house_highlights color through the corresponding primary planet zone.
    - `custom_sign_bg_color` string, nullable
    - `custom_house_bg_color` string, nullable
    - `show_retrograde_markers` boolean, nullable
    - `retrograde_marker_style` 'R' | 'rx', nullable
    - `degree_label_format` 'degree' | 'decimal' | 'minutes', nullable: Planet degree label format. 'degree' shows whole degrees, 'decimal' shows decimal degrees, and 'minutes' shows the stacked degree + sign glyph + minute layout. If omitted, degree_label_precision > 0 preserves the legacy stacked minutes layout.
    - `degree_label_precision` integer, nullable: Decimal places for degree_label_format='decimal'. For backward compatibility, when degree_label_format is omitted, values greater than 0 select the stacked minutes layout.
    - `show_inner_ring_angles` boolean, nullable
    - `show_data2_house_wheel` boolean, nullable
    - `show_data2_house_numbers` boolean, nullable
    - `data2_house_wheel_placement` 'inner' | 'outer', nullable
    - `invert_data2_orientation` boolean, nullable
    - `invert_data2_radial_placement` boolean, nullable
    - `data2_house_ring_scale` number, nullable
    - `data2_house_ring_extra_width_px` number, nullable
    - `data2_house_line_width` number, nullable
    - `data2_house_line_color` string, nullable
    - `data2_house_ring_inner_width` number, nullable
    - `data2_house_ring_inner_color` string, nullable
    - `data2_house_ring_outer_width` number, nullable
    - `data2_house_ring_outer_color` string, nullable
    - `data2_custom_house_color` string, nullable
    - `data2_asc_line_width` number, nullable
    - `data2_asc_line_color` string, nullable
    - `data2_dsc_line_width` number, nullable
    - `data2_dsc_line_color` string, nullable
    - `data2_mc_line_width` number, nullable
    - `data2_mc_line_color` string, nullable
    - `data2_ic_line_width` number, nullable
    - `data2_ic_line_color` string, nullable
    - `data1_vertex_glyph_color` string, nullable
    - `data2_vertex_glyph_color` string, nullable
    - `data1_zone_bg_color` string, nullable
    - `data1_zone_bg_opacity` number, nullable
    - `data2_zone_bg_color` string, nullable
    - `data2_zone_bg_opacity` number, nullable
  - `custom_planet_color` string, nullable
  - `custom_sign_color` string, nullable
  - `custom_house_color` string, nullable
  - `custom_sign_bg_color` string, nullable
  - `custom_house_bg_color` string, nullable
  - `show_sign_background` boolean, nullable
  - `show_house_background` boolean, nullable
  - `custom_sign_colors` string[], nullable
  - `custom_house_colors` string[], nullable
  - `sign_background_opacity` number, nullable
  - `house_background_opacity` number, nullable
  - `show_retrograde_markers` boolean, nullable
  - `retrograde_marker_style` 'R' | 'rx', nullable

## Response `200`

Successful Response

- unknown

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/freeastroapi/apis/astroservice-api.md) · [All operations](https://skmtc.dev/freeastroapi/apis/astroservice-api/llms.txt) · [OpenAPI document](https://skmtc.dev/freeastroapi/apis/astroservice-api/revisions/0c9b4a759522?raw)
