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”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šech 15 polí objektu
Sekce “Všech 15 polí objektu”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).
| Pole | Typ | Určení |
|---|---|---|
companyName | string | Název značky v záhlaví PDF |
companyUrl | URL | Klikatelný odkaz na web v zápatí |
companyEmail | Kontaktní odkaz v zápatí (mailto:) | |
companyMobile | string | Telefon v zápatí |
companyBio | string | Jeden odstavec popisu společnosti na titulní stránce |
logoUrl | URL (.png/.jpg/.svg/.webp) | Logo, pouze https, doporučený poměr 200×60 |
frontImage | URL | Hero-obrázek na titulní stránce |
textPrimaryColor | #RGB/#RRGGBB | Primární text |
textSecondaryColor | #RGB/#RRGGBB | Popisky, metadata |
backgroundColor | #RGB/#RRGGBB | Pozadí stránek |
themeColor | #RGB/#RRGGBB | Akcenty, nadpisy, aspektové linie v grafech |
headingColor | #RGB/#RRGGBB | H1/H2 nadpisy |
footerText | string | Vlastní copyright v zápatí |
fontPairing | enum | serif-sans / sans-serif / serif-only / sans-only / system |
reportName | string | Nahrazuje 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.
Zpětná kompatibilita
Sekce “Zpětná kompatibilita”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: falsenebo pole chybí: standardní AstroWay-brandingwhitelabel: {…}: inline-objekt, nové chování
OpenAPI-schéma pro pole se stalo boolean | BrandingObject (union type). Žádný existující požadavek se nerozbije.
Priorita rozlišení
Sekce “Priorita rozlišení”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ě:
- Systémové výchozí hodnoty (AstroWay-branding)
- DB-konfigurace z
whitelabel_configs(pokud ji WP-uživatel má) - 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.
Co to odstraňuje
Sekce “Co to odstraňuje”Dříve pro SaaS-spotřebitele, který integruje AstroWay-generování PDF do vlastního produktu, cesta byla:
- U sebe vytvořit tabulku
tenantss polembranding_json - Před každým report-požadavkem: načíst konfiguraci svého uživatele
- 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_configspro SaaS-uživatele) - Nebo provádět PDF-postprocessing vlastním rendererem: to je dodatečná infrastruktura
Nyní cesta:
- Ukládat
branding_jsonu sebe - Předávat inline v
whitelabelpro každý požadavek
Méně HTTP-skoků, nulová DB-synchronizace mezi službami, plná kontrola nad brandingem per-request.
Dostupnost
Sekce “Dostupnost”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.
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.