AstroWay/api v2.204.2 · cs
všechny systémy jsou v pořádku

White-label PDF bez WordPress: inline branding přes jedno pole

Pole whitelabel v schématech všech 12 endpointů /v1/reports/* nyní přijímá nejen boolean (číst DB-konfig), ale i inline-objekt s 15 poli. To odstraňuje vazbu na WordPress‑uživatele – jakýkoli SaaS‑konzument API může brandovat PDF za běhu, bez samostatné admin‑stránky.

Až dosud whitelabel: true v našich report-endpointech vyžadovalo WordPress účet s nastavenými klíči v whitelabel_configs. To je historické – dříve byl white label Pro-funkcí WP-pluginu a API jednoduše četlo stejnou DB-tabulku.

Pro SDK-uživatele bez WP to znamenalo: brand-config není možný bez dodatečného HTTP-skoku (držet samostatný konfigurační servis, synchronizovat s naším a poté posílat whitelabel: true).

Nyní pole přijímá inline-objekt se všemi 15 poli brandingu. Jeden požadavek = kompletní kontext značky = personalizované PDF.

Příklad: PDF natální report s vlastním brandingem

Sekce “Příklad: PDF natální report s vlastním brandingem”
Terminál
curl -X POST https://api.astroway.info/v1/reports/natal \
-H "X-Api-Key: aw_live_..." \
-H "Content-Type: application/json" \
-d '{
"chart": {
"date": "1990-05-15",
"time": "14:30:00",
"timezoneOffset": 3,
"latitude": 50.45,
"longitude": 30.52,
"name": "Maria"
},
"whitelabel": {
"companyName": "Acme Astrology",
"companyUrl": "https://acme-astro.example.com",
"companyEmail": "hello@acme-astro.example.com",
"logoUrl": "https://cdn.example.com/logo.png",
"themeColor": "#ff5500",
"headingColor": "#1a1a2e",
"reportName": "My Personal Cosmic Map",
"footerText": "© 2026 Acme Astrology",
"fontPairing": "serif-sans"
}
}'

PDF se renderuje s logem v záhlaví, vlastním nadpisem na obálce, odpovídajícími akcenty theme-color v SVG grafech a blokem kontaktů v zápatí.

Všechna jsou volitelná – vynechané pole přebírá hodnotu z DB-konfigurace (pokud je API-klíč vázán na WP-uživatele) nebo ze systémových výchozích hodnot (pro SDK-klienty bez WP).

PoleTypUrčení
companyNamestringNázev značky v záhlaví PDF
companyUrlURLKlikatelný odkaz na web v zápatí
companyEmailemailKontaktní odkaz v zápatí (mailto:)
companyMobilestringTelefon v zápatí
companyBiostringJeden odstavec popisu společnosti na titulní stránce
logoUrlURL (.png/.jpg/.svg/.webp)Logo, pouze https, doporučený poměr 200×60
frontImageURLHero-obrázek na titulní stránce
textPrimaryColor#RGB/#RRGGBBPrimární text
textSecondaryColor#RGB/#RRGGBBPopisky, metadata
backgroundColor#RGB/#RRGGBBPozadí stránek
themeColor#RGB/#RRGGBBAkcenty, nadpisy, aspektové linie v grafech
headingColor#RGB/#RRGGBBH1/H2 nadpisy
footerTextstringVlastní copyright v zápatí
fontPairingenumserif-sans / sans-serif / serif-only / sans-only / system
reportNamestringNahrazuje výchozí název reportu na obálce

12 endpointů rodiny /v1/reports/* přijímá toto pole stejně: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.

Boolean-režim je živý a nezměnil se:

  • whitelabel: true: čte DB-konfiguraci pro vázaného WP-uživatele (jako dříve)
  • whitelabel: false nebo pole chybí: standardní AstroWay-branding
  • whitelabel: {…}: inline-objekt, nové chování

OpenAPI-schéma pro pole se stalo boolean | BrandingObject (union type). Žádný existující požadavek se nerozbije.

Když je API-klíč vázán na WP-uživatele A klient posílá inline-objekt – inline převažuje nad DB. Konkrétně:

  1. Systémové výchozí hodnoty (AstroWay-branding)
  2. DB-konfigurace z whitelabel_configs (pokud ji WP-uživatel má)
  3. Inline-objekt z těla požadavku

Sloučení je mělké, klíč po klíči. To znamená, že inline.themeColor = "#ff5500" přepíše DB-hodnotu, ale vynechané inline.logoUrl ponechá DB-logo. To je vhodné pro SaaS-scénáře, kde základní branding sídlí v DB a per-tenant doladění přichází inline.

Interní mapování: themeColor se stává primaryColor po volání applyBrandingPreferences, fontPairing se mapuje na CSS font-family stack v Handlebars-šabloně (například serif-sans = font-family: 'Playfair Display', serif pro nadpisy + 'Inter', sans-serif pro tělo).

OpenAPI 3.1 + SDK typizace

Sekce “OpenAPI 3.1 + SDK typizace”

BrandingObject je nyní samostatná komponenta v /v1/openapi.json – to znamená, že další vydání SDK (TS / Python / PHP) obdrží typizovanou třídu:

// TS SDK - після наступного codegen-релізу
import { Astroway } from "@astroway/sdk";
const client = new Astroway({ apiKey: process.env.ASTROWAY_KEY });
const pdf = await client.reports.natal.create({
chart: { date: "1990-05-15", time: "14:30", /* ... */ },
whitelabel: {
companyName: "Acme Astrology",
themeColor: "#ff5500",
reportName: "My Personal Cosmic Map",
fontPairing: "serif-sans", // typed enum, autocomplete у IDE
},
});

Roadmapy SDK-balíčků jsou v příslušných staging-repozitářích (astroway-typescript-staging/ROADMAP.md, atd.). Cron publikuje minoritní vydání každých 5-8 dní; typizovaný BrandingObject bude v nejbližším.

Dříve pro SaaS-spotřebitele, který integruje AstroWay-generování PDF do vlastního produktu, cesta byla:

  1. U sebe vytvořit tabulku tenants s polem branding_json
  2. Před každým report-požadavkem: načíst konfiguraci svého uživatele
  3. Nerozumět, jak to předat do API bez WP-pluginu (dříve: nijak, museli jste nás požádat o vytvoření záznamu v whitelabel_configs pro SaaS-uživatele)
  4. Nebo provádět PDF-postprocessing vlastním rendererem: to je dodatečná infrastruktura

Nyní cesta:

  1. Ukládat branding_json u sebe
  2. Předávat inline v whitelabel pro každý požadavek

Méně HTTP-skoků, nulová DB-synchronizace mezi službami, plná kontrola nad brandingem per-request.

Inline-režim je dostupný na všech tarifech, kde jsou PDF-reporty – od Indie (19 $/měsíc) po Business. Free tier PDF neposkytuje (to je záměrné – ve Free je zdarma JSON, bez renderování). Kreditní cena požadavku se nemění – inline-konfigurace nepřidává credit-cost nad rámec renderování.

Dokumentace pro všech 12 endpointů je aktualizována s příklady inline-režimu. Podívej se na /docs/api/ → Reports.

MakSeong · AstroWay

Dělám AstroWay API: zabaluju Swiss Ephemeris do čistého REST a píšu o nudných detailech, které jsou ve skutečnosti důležité.

// postav na tom

Stejný Swiss Ephemeris jako v Solar Fire - ve 4 řádcích kódu.

Zdarma klíč bez karty. 5 000 volání za měsíc do první platby.

Více z blogu všechny příspěvky →

Ephemeris 2026-07-19

Jak udržujeme přesnost pod kontrolou: CI proti swetest a NASA

Přesnost v astro-API snadno degraduje jeden refaktor ephemeridy. Rozdělíme ochranu: jedno jádro Swiss Ephemeris pro aplikaci i API, stovky zmražených snapshotů na referenčních mapách a triangulace každého PR proti swetest CGI, Kerykeion, Prokerala a katalogu zatmění NASA.

Engineering 2026-07-15

Tři oficiální SDK: TypeScript, Python, PHP místo surového curl

Surový HTTP funguje, ale typovaný klient šetří hodiny: automatické doplňování cest, typy požadavků a odpovědí, vestavěný retry na 408/409/429/5xx a hierarchie chyb ve stylu Stainless. Rozebíráme tři oficiální SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - a jak jsou generovány z jednoho OpenAPI kontraktu.

Industry 2026-06-05

Free Astrology API: Which One Has the Best Free Tier in 2026?

A side-by-side of free tiers across the major astrology APIs - credits, request caps, card requirements - and how much you can actually build for free.