AstroWay/api v2.204.2 · id
semua sistem normal

White-label PDF tanpa WordPress: inline branding melalui satu bidang

Bidang whitelabel dalam skema semua 12 endpoint /v1/reports/* kini menerima tidak hanya boolean (baca DB-config), tetapi juga inline-objek dengan 15 bidang. Ini menghapus keterikatan pada pengguna WordPress - setiap SaaS-consumer API dapat menandai PDF secara langsung, tanpa admin-page terpisah.

Hingga hari ini, whitelabel: true di endpoint laporan kami memerlukan akun WordPress dengan kunci yang dikonfigurasi di whitelabel_configs. Ini historis - sebelumnya, whitelabel adalah fitur Pro dari plugin WP, dan API hanya membaca tabel DB yang sama.

Bagi pengguna SDK tanpa WP, ini berarti: konfigurasi merek tidak mungkin tanpa lompatan HTTP tambahan (mempertahankan layanan konfigurasi terpisah, menyinkronkannya dengan layanan kami, lalu mengirim whitelabel: true).

Sekarang, bidang ini menerima objek inline dengan semua 15 bidang branding. Satu permintaan = konteks merek lengkap = PDF yang dipersonalisasi.

Contoh: Laporan Natal PDF dengan Branding Kustom

Section titled “Contoh: Laporan Natal PDF dengan Branding Kustom”
Terminal window
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 dirender dengan logo di header, judul kustom di halaman sampul, aksen theme-color yang sesuai di SVG bagan, dan blok kontak di footer.

Semua bidang bersifat opsional - bidang yang dihilangkan akan mengambil nilai dari konfigurasi DB (jika kunci API terikat ke pengguna WP) atau dari default sistem (untuk klien SDK tanpa WP).

BidangTipeTujuan
companyNamestringNama merek di header PDF
companyUrlURLTautan situs web yang dapat diklik di footer
companyEmailemailTautan kontak di footer (mailto:)
companyMobilestringNomor telepon di footer
companyBiostringSatu paragraf deskripsi perusahaan di halaman sampul
logoUrlURL (.png/.jpg/.svg/.webp)Logo, https-only, rasio 200×60 direkomendasikan
frontImageURLGambar hero di halaman sampul
textPrimaryColor#RGB/#RRGGBBTeks utama
textSecondaryColor#RGB/#RRGGBBKeterangan, metadata
backgroundColor#RGB/#RRGGBBLatar belakang halaman
themeColor#RGB/#RRGGBBAksen, judul, garis aspek di bagan
headingColor#RGB/#RRGGBBJudul H1/H2
footerTextstringHak cipta kustom di footer
fontPairingenumserif-sans / sans-serif / serif-only / sans-only / system
reportNamestringMengganti nama laporan default di sampul

12 endpoint dari keluarga /v1/reports/* menerima bidang ini dengan cara yang sama: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli.

Mode boolean masih aktif dan tidak berubah:

  • whitelabel: true: membaca konfigurasi DB untuk pengguna WP yang terikat (seperti sebelumnya)
  • whitelabel: false atau bidang tidak ada: branding AstroWay standar
  • whitelabel: {…}: objek inline, perilaku baru

Skema OpenAPI untuk bidang ini sekarang adalah boolean | BrandingObject (tipe union). Tidak ada permintaan yang ada yang akan rusak.

Ketika kunci API terikat ke pengguna WP DAN klien mengirimkan objek inline - inline akan mengesampingkan DB. Secara spesifik:

  1. Default sistem (branding AstroWay)
  2. Konfigurasi DB dari whitelabel_configs (jika pengguna WP memilikinya)
  3. Objek inline dari body permintaan

Penggabungan bersifat dangkal, kunci-per-kunci. Artinya, inline.themeColor = "#ff5500" akan menimpa nilai DB, tetapi inline.logoUrl yang dihilangkan akan mempertahankan logo DB. Ini nyaman untuk skenario SaaS di mana branding dasar berada di DB, dan penyesuaian per-tenant datang secara inline.

Pemetaan internal: themeColor menjadi primaryColor setelah memanggil applyBrandingPreferences, fontPairing dipetakan ke tumpukan CSS font-family di template Handlebars (misalnya, serif-sans = font-family: 'Playfair Display', serif untuk judul + 'Inter', sans-serif untuk isi).

BrandingObject sekarang menjadi komponen terpisah di /v1/openapi.json - ini berarti rilis SDK berikutnya (TS / Python / PHP) akan mendapatkan kelas yang ditipisasi:

// 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
},
});

Peta jalan paket SDK ada di repositori staging yang sesuai (astroway-typescript-staging/ROADMAP.md, dll.). Cron menerbitkan rilis minor setiap 5-8 hari; BrandingObject yang ditipisasi akan ada di rilis terdekat.

Sebelumnya, untuk konsumen SaaS yang mengintegrasikan pembuatan PDF AstroWay ke dalam produk mereka sendiri, jalannya adalah:

  1. Mengelola tabel tenants dengan bidang branding_json di sisi kamu
  2. Sebelum setiap permintaan laporan: mengambil konfigurasi pengguna kamu
  3. Tidak tahu cara meneruskan ke API tanpa plugin WP (sebelumnya: tidak mungkin, kamu harus meminta kami membuat entri di whitelabel_configs untuk pengguna SaaS)
  4. Atau melakukan post-processing PDF dengan render kamu sendiri: ini adalah infrastruktur tambahan

Sekarang, jalannya adalah:

  1. Menyimpan branding_json di sisi kamu
  2. Meneruskan secara inline di whitelabel untuk setiap permintaan

Lebih sedikit lompatan HTTP, nol sinkronisasi DB antar layanan, kontrol penuh atas branding per permintaan.

Mode inline tersedia di semua paket yang menyertakan laporan PDF - dari Indie ($19/bulan) hingga Business. Tingkat gratis tidak menyediakan PDF (ini disengaja - tingkat gratis menyediakan JSON gratis, tanpa rendering). Biaya kredit permintaan tidak berubah - konfigurasi inline tidak menambah biaya kredit di atas rendering.

Dokumentasi untuk semua 12 endpoint telah diperbarui dengan contoh mode inline. Lihat /docs/api/ → Reports.

MakSeong · AstroWay

Aku membuat AstroWay API: membungkus Swiss Ephemeris ke dalam REST murni dan menulis tentang detail membosankan yang sebenarnya penting.

// bangun di atas ini

Swiss Ephemeris yang sama dengan Solar Fire - dalam 4 baris kode.

Kunci gratis tanpa kartu. 5.000 panggilan per bulan sebelum pembayaran pertama.

Lebih dari blog semua tulisan →

Ephemeris 2026-07-19

Bagaimana Kami Mengawasi Akurasi: CI vs swetest dan NASA

Akurasi dalam API Astro dapat menurun dengan mudah dari satu refaktor ephemeris. Kami memecahkan perlindungan: satu inti Swiss Ephemeris untuk aplikasi dan API, ratusan snapshot beku pada peta standar dan triangulasi setiap PR terhadap swetest CGI, Kerykeion, Prokerala, dan katalog kegelapan NASA.

Engineering 2026-07-15

Tiga resmi SDK: TypeScript, Python, PHP alih-alih curl mentah

HTTP mentah bekerja, tetapi klien yang terjenis menghemat jam: otomatis melengkapi jalur, jenis permintaan dan respons, retry bawaan untuk 408/409/429/5xx dan hierarki kesalahan Stainless-style. Kami jelaskan tiga resmi SDK - @astroway/sdk (npm), astroway (PyPI), astroway/sdk (Packagist) - dan bagaimana mereka dihasilkan dari satu kontrak OpenAPI.

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.