Astraluno Sun Sign API
The Sun Sign API from Astraluno — 1 operation(s) for sun sign.
The Sun Sign API from Astraluno — 1 operation(s) for sun sign.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/astraluno-com:astraluno-com-sun-sign-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Astraluno public Sun Sign API
version: 1.0.0
description: Read-only astrology computations. No birth data is stored or logged. 60 compute requests/min/IP; 120 light requests/min/IP. No keys. Free corpus.
servers:
- url: https://astraluno.com
tags:
- name: Sun Sign
paths:
/api/v1/sun-sign:
get:
operationId: sun_sign
summary: sun-sign
description: Read-only, free, no API key. Tropical, geocentric, Whole Sign. No birth data is stored or logged; request bodies and queries never enter logs or stats. Angular numbers also have D°MM′ strings in degree_strings (JSON pointers). Respect uncertainty windows and all sign possibilities. Dates include the IANA timezone used.
parameters:
- name: lang
in: query
required: false
schema:
default: en
description: 'Language code. Published: en, it. Other codes fall back to English with a language.note.'
type: string
maxLength: 35
- name: date
in: query
required: true
schema:
type: string
format: date
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))$
example: '1990-05-17'
- name: time
in: query
required: false
schema:
type: string
pattern: ^([01]\d|2[0-3]):[0-5]\d(:[0-5]\d)?$
- name: timezone
in: query
required: false
schema:
type: string
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9_+-]+(?:\/[A-Za-z0-9_+-]+)*$
example: Europe/Rome
responses:
'200':
description: Computed result with source and citation URL
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
language:
type: object
properties:
requested:
type: string
effective:
type: string
enum:
- en
- es
- fr
- it
note:
type:
- string
- 'null'
required:
- requested
- effective
- note
additionalProperties: false
source:
type: string
const: Astraluno
url:
type: string
format: uri
timezone:
anyOf:
- type: string
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9_+-]+(?:\/[A-Za-z0-9_+-]+)*$
- type: 'null'
degree_strings:
type: object
propertyNames:
type: string
additionalProperties:
type: string
description: D°MM′ strings keyed by JSON pointer to every angular number in this response, including ranges. The engine snapshot is unchanged.
status:
type: string
enum:
- certain
- cusp
sign:
anyOf:
- type: string
enum:
- aries
- taurus
- gemini
- cancer
- leo
- virgo
- libra
- scorpio
- sagittarius
- capricorn
- aquarius
- pisces
- type: 'null'
possibilities:
type: array
items:
type: string
enum:
- aries
- taurus
- gemini
- cancer
- leo
- virgo
- libra
- scorpio
- sagittarius
- capricorn
- aquarius
- pisces
position:
anyOf:
- type: object
properties:
body:
type: string
enum:
- sun
- moon
- mercury
- venus
- mars
- jupiter
- saturn
- uranus
- neptune
- pluto
longitude:
type: number
latitude:
type: number
speed:
type: number
retrograde:
type: boolean
sign:
type: string
enum:
- aries
- taurus
- gemini
- cancer
- leo
- virgo
- libra
- scorpio
- sagittarius
- capricorn
- aquarius
- pisces
degreeInSign:
type: number
toleranceDegrees:
type: number
required:
- body
- longitude
- latitude
- speed
- retrograde
- sign
- degreeInSign
- toleranceDegrees
additionalProperties: false
- type: 'null'
ingresses:
type: array
items:
type: object
properties:
body:
type: string
enum:
- sun
- moon
- mercury
- venus
- mars
- jupiter
- saturn
- uranus
- neptune
- pluto
at:
type: object
properties:
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
uncertaintyMinutes:
anyOf:
- type: number
minimum: 0
- type: 'null'
precisionHint:
type: string
enum:
- time
- date
- window
uncertaintyMethod:
type: string
enum:
- angular-over-speed
- station-curvature
- unbounded
windowFromUtc:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: 'null'
windowToUtc:
anyOf:
- type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
- type: 'null'
local:
type: object
properties:
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
local:
type: string
timezone:
type: string
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9_+-]+(?:\/[A-Za-z0-9_+-]+)*$
offsetSec:
type: number
required:
- utc
- local
- timezone
- offsetSec
additionalProperties: false
windowFromLocal:
anyOf:
- type: object
properties:
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
local:
type: string
timezone:
type: string
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9_+-]+(?:\/[A-Za-z0-9_+-]+)*$
offsetSec:
type: number
required:
- utc
- local
- timezone
- offsetSec
additionalProperties: false
- type: 'null'
windowToLocal:
anyOf:
- type: object
properties:
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
local:
type: string
timezone:
type: string
minLength: 1
maxLength: 100
pattern: ^[A-Za-z0-9_+-]+(?:\/[A-Za-z0-9_+-]+)*$
offsetSec:
type: number
required:
- utc
- local
- timezone
- offsetSec
additionalProperties: false
- type: 'null'
required:
- utc
- uncertaintyMinutes
- precisionHint
- uncertaintyMethod
- windowFromUtc
- windowToUtc
- local
- windowFromLocal
- windowToLocal
additionalProperties: false
fromSign:
type: string
enum:
- aries
- taurus
- gemini
- cancer
- leo
- virgo
- libra
- scorpio
- sagittarius
- capricorn
- aquarius
- pisces
toSign:
type: string
enum:
- aries
- taurus
- gemini
- cancer
- leo
- virgo
- libra
- scorpio
- sagittarius
- capricorn
- aquarius
- pisces
longitude:
type: number
retrograde:
type: boolean
required:
- body
- at
- fromSign
- toSign
- longitude
- retrograde
additionalProperties: false
timeResolution:
oneOf:
- type: object
properties:
kind:
type: string
const: instant
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
offsetSec:
type: number
isDst:
type: boolean
abbr:
type: string
offsetSource:
type: string
enum:
- tzdb
- lmt-birthplace
- manual
required:
- kind
- utc
- offsetSec
- isDst
- abbr
- offsetSource
additionalProperties: false
- type: object
properties:
kind:
type: string
const: interval
fromUtc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
toUtc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
fromLocal:
type: object
properties:
y:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
m:
type: integer
minimum: 1
maximum: 12
d:
type: integer
minimum: 1
maximum: 31
h:
type: integer
minimum: 0
maximum: 23
min:
type: integer
minimum: 0
maximum: 59
s:
type: integer
minimum: 0
maximum: 59
required:
- y
- m
- d
- h
- min
- s
additionalProperties: false
toLocal:
type: object
properties:
y:
type: integer
minimum: -9007199254740991
maximum: 9007199254740991
m:
type: integer
minimum: 1
maximum: 12
d:
type: integer
minimum: 1
maximum: 31
h:
type: integer
minimum: 0
maximum: 23
min:
type: integer
minimum: 0
maximum: 59
s:
type: integer
minimum: 0
maximum: 59
required:
- y
- m
- d
- h
- min
- s
additionalProperties: false
utcSegments:
type: array
items:
type: object
properties:
fromUtc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
toUtc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
offsetSec:
type: number
isDst:
type: boolean
abbr:
type: string
offsetSource:
type: string
enum:
- tzdb
- lmt-birthplace
- manual
required:
- fromUtc
- toUtc
- offsetSec
- isDst
- abbr
- offsetSource
additionalProperties: false
technicalReference:
type: object
properties:
utc:
type: string
format: date-time
pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z))$
isBirthTime:
type: boolean
const: false
purpose:
type: string
const: internal-only
required:
- utc
- isBirthTime
- purpose
additionalProperties: false
required:
- kind
- fromUtc
- toUtc
- fromLocal
- toLocal
- utcSegments
- technicalReference
additionalProperties: false
notes:
type: array
items:
type: string
required:
- language
- source
- url
- timezone
- degree_strings
- status
- sign
- possibilities
- position
- ingresses
- timeResolution
- notes
additionalProperties: false
'400':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
'404':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
'413':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
'415':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
'429':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
'500':
description: Structured validation, engine or rate-limit error. Birth data is never stored or logged.
headers:
Retry-After:
description: Seconds until retry (429)
schema:
type: integer
content:
application/json:
schema:
$schema: https://json-schema.org/draft/2020-12/schema
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
details:
anyOf:
- {}
- type: 'null'
required:
- code
- message
- details
additionalProperties: false
required:
- error
additionalProperties: false
tags:
- Sun Sign