Перейти до вмісту
AstroWay/api v2.325.2 · docs
усі системи в нормі

Update White-label Config

PATCH
/whitelabel/config
request.sh
curl -X PATCH https://api.astroway.info/v1/whitelabel/config \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{ "primary_color": "#0a0b1e", "footer_text": "© 2026 MyAstroBrand", "custom_domain": "api.myastrobrand.com" }'

Update one or more branding fields. Hex colours validated as #RRGGBB; custom_domain validated as RFC-1035 subdomain. Setting custom_domain resets domain_verified=false; call /whitelabel/domain/verify after pointing your CNAME to api.astroway.info.

fields
string

Comma-separated dotted paths, relative to data, to keep in the response. A path is applied to every element of an array, so planets.name means the name of each planet. Paths that match nothing come back in _fields_unmatched; a list where nothing matches at all is a 400, because an empty object would be a confident wrong answer.

Example
planets.name,planets.longitude
precision
integer
<= 15

Round every non-integer number in the response to this many decimal places. Integers are left alone, because an id is not a measurement. Ecliptic longitudes ship with fourteen decimals by default; 2 is about a tenth of an arcminute.

Example
4
Idempotency-Key
string
>= 1 characters <= 255 characters /^[\x21-\x7E]+$/

Unique per logical operation, kept across retries. For 24 hours from the first request, a repeat with the same key, method, path, body and query string returns the stored response with Idempotent-Replayed: true and costs 0 credits. The same key with a different body or query string is a 409 IDEMPOTENCY_KEY_REUSED; a repeat while the first is still running is a 409 IDEMPOTENCY_IN_PROGRESS. Only 2xx responses are kept. See /idempotency/.

Example
01HXY2A7ZM0ABCDEF
Media type application/json
object
primaryColor
string
/^#[0-9a-fA-F]{6}$/
secondaryColor
string
/^#[0-9a-fA-F]{6}$/
fontFamily
string
>= 1 characters <= 64 characters
footerText
string
nullable <= 500 characters
customDomain
string
nullable <= 255 characters /^([a-z0-9-]+\.)+[a-z]{2,}$/i/
companyName
string
nullable >= 1 characters <= 80 characters
companyUrl
string format: uri
nullable <= 255 characters
companyEmail
string format: email
nullable <= 120 characters
companyMobile
string
nullable <= 40 characters
companyBio
string
nullable <= 500 characters
reportName
string
nullable >= 1 characters <= 80 characters
Example
{
"primary_color": "#0a0b1e",
"footer_text": "© 2026 MyAstroBrand",
"custom_domain": "api.myastrobrand.com"
}

Successful calculation

Media type application/json
object
ok
boolean
data
object
primary_color
string
nullable
secondary_color
string
nullable
font_family
string
nullable
footer_text
string
nullable
custom_domain
string
nullable
domain_verified
boolean
nullable
domain_last_checked_at
nullable
logo_storage_key
nullable
updated_at
string
nullable
Example
{
"ok": true,
"data": {
"primary_color": "#0a0b1e",
"secondary_color": "#7e6bff",
"font_family": "Inter",
"footer_text": "© 2026 MyAstroBrand",
"custom_domain": "api.myastrobrand.com",
"domain_verified": false,
"domain_last_checked_at": null,
"logo_storage_key": null,
"updated_at": "..."
}
}

Validation error

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_INPUT",
"message": "Validation failed: date: Date must be YYYY-MM-DD",
"details": [
{
"path": "date",
"message": "Date must be YYYY-MM-DD"
}
]
}
}

Missing or invalid API key

Media type application/json
Example
{
"ok": false,
"error": {
"code": "INVALID_API_KEY",
"message": "Invalid API key"
}
}