Back to Docs

Vedic Visual Chart

Vedic Visual Chart

POST/api/v2/vedic/visual/chart

Render calibrated V2 Vedic divisional charts as raw SVG or PNG images. A single request can draw D1, D9, or any supported division set into one image canvas using North Indian, South Indian, or East Indian Kundli layouts.

Full URL

https://api.freeastroapi.com/api/v2/vedic/visual/chart
Safe retries with Idempotency-Key

Authenticated, billable astrology POST requests accept the optional header Idempotency-Key: <client-generated unique operation key>. Reuse the same key only when retrying the exact same method, path, query string, and JSON body after a timeout or network failure.

A completed replay returns the first response with Idempotency-Replayed: true, does not rerun the calculation, and does not consume extra quota. Keys are retained for about 24 hours.

Reusing a key with a changed request returns 409 idempotency_key_reused. A duplicate while the first request is still running returns 409 request_in_progress with Retry-After.

What It Returns

The response body is image data, not JSON. Use format: "svg" for editable SVG with stable element IDs, or format: "png" for raster output generated through CairoSVG.

Real Visual Examples

These are generated SVG outputs from the endpoint using the same renderer, label placement, body stacking, and theme controls available through the API.

North Indian D1 + D9 Vedic visual chart SVG example
North Indian D1 + D9
north_indian

Fixed-house diamond layout with all body groups enabled.

South Indian D1 + D9 Vedic visual chart SVG example
South Indian D1 + D9
south_indian

Fixed-sign perimeter layout tuned for crowded houses.

East Indian Mono D1 + D9 Vedic visual chart SVG example
East Indian Mono D1 + D9
east_indian

Fixed-sign square layout using the mono theme.

Example Request

curl -X POST "https://api.freeastroapi.com/api/v2/vedic/visual/chart" \
 -H "Content-Type: application/json" \
 -H "x-api-key: YOUR_API_KEY" \
 -d '{
  "year": 1985,
  "month": 8,
  "day": 22,
  "hour": 6,
  "minute": 45,
  "city": "Mumbai",
  "lat": 19.076,
  "lng": 72.8777,
  "tz_str": "Asia/Kolkata",
  "ayanamsha": "lahiri",
  "house_system": "whole_sign",
  "node_type": "mean",
  "divisions": [
    1,
    9
  ],
  "chart_style": "north_indian",
  "format": "svg",
  "size": 700,
  "theme_type": "light",
  "body_types": [
    "ascendant",
    "classical_grahas",
    "nodes",
    "outer_planets"
  ],
  "ascendant_text_color": "#0B7285",
  "display_settings": {
    "ascendant": true,
    "rahu": true,
    "ketu": true,
    "uranus": true,
    "neptune": true,
    "pluto": true,
    "sign_labels": true
  }
}' \
 --output vedic-d1-d9.svg

Request Body

Field
year
Type
integer
Required
Yes
Description
Birth year.
Field
month
Type
integer
Required
Yes
Description
Birth month (1-12).
Field
day
Type
integer
Required
Yes
Description
Birth day.
Field
hour
Type
integer
Required
Yes
Description
Birth hour (0-23).
Field
minute
Type
integer
Required
Yes
Description
Birth minute (0-59).
Field
city
Type
string
Required
No
Description
Birth city. Optional when lat/lng are provided.
Field
lat
Type
float
Required
No
Description
Birth latitude. Recommended for production.
Field
lng
Type
float
Required
No
Description
Birth longitude. Recommended for production.
Field
tz_str
Type
string
Required
No
Description
Optional timezone override such as Asia/Kolkata, Europe/London, AUTO, or LMT. Defaults to AUTO when omitted.
Field
ayanamsha
Type
string
Required
No
Description
Vedic ayanamsha. Default is lahiri.
Field
house_system
Type
string
Required
No
Description
House system. Default is whole_sign.
Field
node_type
Type
string
Required
No
Description
Lunar node type: mean or true.
Field
divisions
Type
array[number]
Required
Yes
Description
Divisional charts to render into one image, for example [1] or [1, 9]. Supported values: 1, 2, 3, 7, 9, 10, 12, 30, 60.
Field
chart_style
Type
string
Required
No
Description
Visual layout: north_indian, south_indian, or east_indian. Defaults to north_indian.
Field
format
Type
string
Required
No
Description
Output image format: svg or png. Defaults to svg.
Field
size
Type
integer
Required
No
Description
Per-chart square size in pixels. Defaults to 700.
Field
png_quality_scale
Type
float
Required
No
Description
PNG conversion scale used by CairoSVG. Defaults to 2.0.
Field
theme_type
Type
string
Required
No
Description
Built-in visual theme: light, dark, or mono. Defaults to light.
Field
body_types
Type
array[string]
Required
No
Description
Body groups to render: ascendant, classical_grahas, nodes, and outer_planets. Defaults to ascendant, classical_grahas, and nodes.
Field
custom_theme
Type
object
Required
No
Description
Optional color overrides for background, panel_background, panel_border, grid, outer_line, sign_text, house_text, body_text, ascendant_text, brand_text, title_text, subtitle_text, and badge_background.
Field
ascendant_text_color
Type
string
Required
No
Description
Convenience color override for the Asc label text. Equivalent to custom_theme.ascendant_text.
Field
display_settings
Type
object
Required
No
Description
Visibility toggles for chart_only, titles, subtitles, division_badge, sign_labels, house_labels, ascendant, grahas, body_visuals, and individual bodies such as sun, moon, rahu, ketu, uranus, neptune, or pluto.
Field
chart_config
Type
object
Required
No
Description
Layout, typography, spacing, border, line, label, and panel overrides, including sign_label_mode, sign_label_position, sign_label_offsets, body_label_mode, body_visual_size, sign_font_size, body_font_size, body_font_weight, grid_line_width, outer_line_width, panel_padding, and columns.
Field
chart_config.sign_label_mode
Type
string
Required
No
Description
Sign label style. Use number_abbr for the default labels, number, abbr, astrofont, glyph, or astrofont_number.
Field
chart_config.sign_label_position
Type
string
Required
No
Description
Sign label placement. Use center for the default placement or corners to place North Indian sign glyphs near chart corners/intersections.
Field
chart_config.sign_label_offsets
Type
object
Required
No
Description
Per-sign manual label offsets in pixels, keyed by sign id or lowercase sign name, for example { aries: { x: -4, y: 3 } }.
Field
chart_config.sign_glyph_scale
Type
float
Required
No
Description
Scale applied to AstroFont sign glyph labels. Defaults to 0.72 for smaller, lighter corner signs.
Field
chart_config.sign_glyph_weight
Type
string
Required
No
Description
Font weight for AstroFont sign glyph labels. Defaults to 400.
Field
chart_config.body_label_mode
Type
string
Required
No
Description
Planet/body label style. Use abbr for text labels, glyph or astrofont for AstroFont body glyphs, or visual for detailed SVG planet markers with a small text label.
Field
chart_config.body_visual_size
Type
float
Required
No
Description
Manual diameter in pixels for body_label_mode visual markers. Use this to override the default marker size.
Field
chart_config.body_visual_scale
Type
float
Required
No
Description
Optional multiplier applied to the resolved body_visual_size.
Field
custom_css
Type
string
Required
No
Description
Optional CSS appended to the generated SVG style block.

Response

Field
Content-Type
Type
header
Required
n/a
Description
image/svg+xml when format is svg, or image/png when format is png.
Field
body
Type
image bytes
Required
n/a
Description
Raw rendered image bytes. SVG responses include stable element ids and embedded metadata for downstream styling and testing.
Field
Content-Disposition
Type
header
Required
n/a
Description
Inline filename hint, vedic-chart.svg or vedic-chart.png.

PNG Request Variant

{
  "year": 1985,
  "month": 8,
  "day": 22,
  "hour": 6,
  "minute": 45,
  "city": "Mumbai",
  "lat": 19.076,
  "lng": 72.8777,
  "tz_str": "Asia/Kolkata",
  "ayanamsha": "lahiri",
  "house_system": "whole_sign",
  "node_type": "mean",
  "divisions": [
    1,
    9
  ],
  "chart_style": "north_indian",
  "format": "png",
  "size": 700,
  "theme_type": "light",
  "body_types": [
    "ascendant",
    "classical_grahas",
    "nodes",
    "outer_planets"
  ],
  "ascendant_text_color": "#0B7285",
  "display_settings": {
    "ascendant": true,
    "rahu": true,
    "ketu": true,
    "uranus": true,
    "neptune": true,
    "pluto": true,
    "sign_labels": true
  },
  "png_quality_scale": 2
}

Customization Example

Use display_settings.chart_only to remove titles/subtitles, custom_theme for line and label colors, and chart_config for label size and line weight.

{
  "year": 1985,
  "month": 8,
  "day": 22,
  "hour": 6,
  "minute": 45,
  "city": "Mumbai",
  "lat": 19.076,
  "lng": 72.8777,
  "tz_str": "Asia/Kolkata",
  "ayanamsha": "lahiri",
  "house_system": "whole_sign",
  "node_type": "mean",
  "divisions": [
    1
  ],
  "chart_style": "north_indian",
  "format": "svg",
  "size": 700,
  "theme_type": "light",
  "body_types": [
    "ascendant",
    "classical_grahas",
    "nodes",
    "outer_planets"
  ],
  "ascendant_text_color": "#0B7285",
  "display_settings": {
    "chart_only": true,
    "sign_labels": true,
    "house_labels": false,
    "division_badge": false
  },
  "custom_theme": {
    "background": "#FFFFFF",
    "panel_background": "#FFF9F0",
    "grid": "#B8791D",
    "outer_line": "#7A1717",
    "sign_text": "#7A1717",
    "body_text": "#111111",
    "ascendant_text": "#0B7285"
  },
  "chart_config": {
    "sign_font_size": 26,
    "body_font_size": 19,
    "body_font_weight": "500",
    "grid_line_width": 3,
    "outer_line_width": 4,
    "panel_padding": 18
  }
}

Body Groups

ascendant

Asc label and ascendant placement.

classical_grahas

Sun through Saturn.

nodes

Rahu and Ketu.

outer_planets

Uranus, Neptune, and Pluto.

Supported Layouts

north_indian

Fixed-house diamond layout with signs rotating from the lagna.

south_indian

Fixed-sign 4x4 perimeter layout with houses rotating from the lagna.

east_indian

Fixed-sign square/diagonal layout with houses rotating from the lagna.

Related Docs