Przykład: PDF natal report z custom brandingiem
Dział zatytułowany „Przykład: PDF natal report z custom brandingiem”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 renderuje się z logo w nagłówku, customowym tytułem na okładce, odpowiednimi theme-color akcentami w czarcie-SVG, oraz blokiem kontaktów w stopce.
Wszystkie 15 pól obiektu
Dział zatytułowany „Wszystkie 15 pól obiektu”Wszystkie opcjonalne - pominięte pole bierze wartość z DB-konfiguracji (jeśli klucz API jest przypisany do użytkownika WP) lub z systemowych domyślnych (dla klientów SDK bez WP).
| Pole | Typ | Przeznaczenie |
|---|---|---|
companyName | string | Nazwa brandu w nagłówku PDF |
companyUrl | URL | Klikalne link do strony w stopce |
companyEmail | Kontakt-link w stopce (mailto:) | |
companyMobile | string | Telefon w stopce |
companyBio | string | Jeden akapit opisu firmy na stronie okładki |
logoUrl | URL (.png/.jpg/.svg/.webp) | Logo, https-only, 200×60 zalecany ratio |
frontImage | URL | Obraz hero na stronie okładki |
textPrimaryColor | #RGB/#RRGGBB | Główny tekst |
textSecondaryColor | #RGB/#RRGGBB | Podpisy, metadane |
backgroundColor | #RGB/#RRGGBB | Tło stron |
themeColor | #RGB/#RRGGBB | Akcenty, nagłówki, linie aspektów w chartach |
headingColor | #RGB/#RRGGBB | Nagłówki H1/H2 |
footerText | string | Customowy copyright w stopce |
fontPairing | enum | serif-sans / sans-serif / serif-only / sans-only / system |
reportName | string | Zastępuje domyślną nazwę raportu na okładce |
12 endpointów rodziny /v1/reports/* przyjmuje to pole w ten sam sposób: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.
Wsteczna kompatybilność
Dział zatytułowany „Wsteczna kompatybilność”Tryb booleanowy działa i się nie zmienił:
whitelabel: true: czyta DB-konfigurację dla przypisanego użytkownika WP (jak wcześniej)whitelabel: falselub pole nieobecne: standardowy branding AstroWaywhitelabel: {…}: inline-obiekt, nowe zachowanie
OpenAPI-schemat dla pola stał się boolean | BrandingObject (union type). Żaden istniejący request się nie zepsuje.
Priorytet rozwiązywania
Dział zatytułowany „Priorytet rozwiązywania”Gdy klucz API jest przypisany do użytkownika WP I klient wysyła inline-obiekt - inline ma pierwszeństwo nad DB. Konkretnie:
- Systemowe domyślny (astroway-branding)
- DB-konfiguracja z
whitelabel_configs(jeśli użytkownik WP ma taką) - Inline-obiekt z body requestu
Merge - shallow, key-by-key. Czyli inline.themeColor = "#ff5500" nadpisze wartość z DB, ale inline.logoUrl pominięty zostawi logo z DB. To wygodne dla scenariuszy SaaS gdzie podstawowy branding siedzi w DB, a per-tenant fintuning przychodzi inline.
Wewnętrzne mapowanie: themeColor staje się primaryColor po wywołaniu applyBrandingPreferences, fontPairing mapuje się na CSS font-family stack w szablonie Handlebars (np. serif-sans = font-family: 'Playfair Display', serif dla nagłówków + 'Inter', sans-serif dla treści).
OpenAPI 3.1 + typizacja SDK
Dział zatytułowany „OpenAPI 3.1 + typizacja SDK”BrandingObject to teraz osobny komponent w /v1/openapi.json - to znaczy że następny release SDK (TS / Python / PHP) otrzyma typizowany klas:
// 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-packów - w odpowiednich staging-repo (astroway-typescript-staging/ROADMAP.md, itd.). Cron publikuje minor release co 5-8 dni; typizowany BrandingObject będzie w najbliższym.
Co to rozwiązuje
Dział zatytułowany „Co to rozwiązuje”Wcześniej dla SaaS-konsumenta, który integruje AstroWay-generację PDF w swoim produkcie, ścieżka była:
- Zająć się u siebie tabelą
tenantsz polembranding_json - Przed każdym report-requestem: pobrać konfig swojego użytkownika
- Nie zrozumieć jak przekazać do API bez WP-pluginu (wcześniej: w ogóle, trzeba było prosić nas o zrobienie entry w
whitelabel_configspod SaaS-użytkownika) - Albo robić PDF-postprocessing swoim renderem: to dodatkowa infra
Teraz ścieżka:
- Przechowywać
branding_jsonu siebie - Przekazywać inline w
whitelabeldla każdego requestu
Mniej HTTP-skoków, zero DB-synchronizacji między serwisami, pełna kontrola nad brandingiem per-request.
Dostępność
Dział zatytułowany „Dostępność”Inline-tryb dostępny na wszystkich taryfach gdzie są PDF-repory - od Indie ($19/mies) do Business. Free tier PDF nie daje (to celowe - w Free darmowy JSON, bez renderu). Koszt kredytu requestu się nie zmienia - inline-konfig nie dodaje credit-cost-u na renderze.
Dokumentacja dla wszystkich 12 endpointów zaktualizowana z przykładami inline-trybu. Patrz /docs/api/ → Reports.
Ten sam Swiss Ephemeris, co w Solar Fire - w 4 liniach kodu.
Darmowy klucz bez karty. 5 000 wywołań miesięcznie do pierwszej płatności.