AstroWay/api v2.204.2 · ja
すべてのシステムが正常です

WordPress不要のホワイトラベルPDF:1つのフィールドによるインラインブランディング

すべての12エンドポイント/v1/reports/*のスキーマ内のwhitelabelフィールドは、ブール値(DB設定を読み取る)だけでなく、15フィールドを持つインラインオブジェクトも受け入れるようになりました。これによりWordPressユーザーへの依存が解除され、どのSaaS APIコンシューマーも、別途管理ページを設けることなくPDFをリアルタイムにブランド化できます。

До сьогодні whitelabel: true у наших report-ендпоінтах вимагало WordPress-акаунту з налаштованими ключами в whitelabel_configs. Це історично - раніше білий лейбл був Pro-фічею WP-плагіна, і API просто читав ту саму DB-таблицю。

Для SDK-користувачів без WP це означало: brand-config неможливий без додаткового HTTP-стрибка (тримати окремий конфіг-сервіс, синхронізувати з нашим, та потім посилати whitelabel: true)。

Тепер поле приймає inline-об’єкт з усіма 15 полями брендингу。 Один запит = повний контекст бренду = персоналізована PDF。

例: カスタムブランディング付き PDF ネイタルレポート

Section titled “例: カスタムブランディング付き PDF ネイタルレポート”
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 はヘッダーにロゴ、カバーにカスタムヘッダー、チャート SVG のテーマカラーアクセント、フッターに連絡先ブロックが描画されるんだ。

オブジェクトのすべて 15 フィールド

Section titled “オブジェクトのすべて 15 フィールド”

すべて オプション で、未指定のフィールドは DB コンフィグ(API キーが WP ユーザーに紐付いている場合)またはシステムデフォルト(WP なしの SDK クライアント向け)から値を取得するんだ。

フィールド型目的
companyNamestringPDF ヘッダーに表示されるブランド名
companyUrlURLフッターに表示されるクリック可能なサイトリンク
companyEmailemailフッターのコンタクトリンク (mailto:)
companyMobilestringフッターに表示される電話番号
companyBiostringカバー ページに表示される会社説明の段落 1 つ
logoUrlURL (.png/.jpg/.svg/.webp)ロゴ、https のみ、推奨比率 200×60
frontImageURLカバー ページのヒーロー画像
textPrimaryColor#RGB/#RRGGBBメインテキストの色
textSecondaryColor#RGB/#RRGGBBサブテキスト、メタデータの色
backgroundColor#RGB/#RRGGBBページの背景色
themeColor#RGB/#RRGGBBアクセント、ヘッダー、チャートのアスペクトラインの色
headingColor#RGB/#RRGGBBH1/H2 見出しの色
footerTextstringフッターのカスタムコピーライト
fontPairingenumserif-sans / sans-serif / serif-only / sans-only / system
reportNamestringカバーのデフォルトレポート名を置き換える

/v1/reports/* ファミリーの 12 のエンドポイントはすべてこのフィールドを同様に受け取る: natal, transit-yearly, synastry, business, career, love, money, child, lal-kitab, human-design, tarot, vedic-kundli。

Boolean-режим живий і не змінився:

  • whitelabel: true: 紐付けられた WP ユーザー用の DB コンフィグを読む(以前と同じ)
  • whitelabel: false またはフィールドが無い場合: 標準の AstroWay ブランディング
  • whitelabel: {…}: inline オブジェクト、新しい挙動

このフィールドの OpenAPI スキーマは boolean | BrandingObject(ユニオン型)になった。既存のリクエストが壊れることはない。

API キーが WP ユーザーに紐付いていて、かつクライアントが inline オブジェクトを送信した場合、inline が DB を上書きする。具体的には:

  1. システムデフォルト(AstroWay ブランディング)
  2. whitelabel_configs の DB コンフィグ(WP ユーザーが持っている場合)
  3. リクエストボディの inline オブジェクト

マージは浅く、キーごとに上書きする。つまり inline.themeColor = "#ff5500" は DB の値を上書きするが、inline.logoUrl が未指定なら DB のロゴが残る。これは、基本のブランディングが DB にあり、テナントごとの微調整が inline で来る SaaS シナリオに便利だ。

内部マッピング: themeColor は applyBrandingPreferences 呼び出し後に primaryColor になる。fontPairing は Handlebars テンプレートの CSS font-family スタックにマップされる(例: serif-sans = ヘッダー用 font-family: 'Playfair Display', serif + 本文用 'Inter', sans-serif)。

BrandingObject は現在、/v1/openapi.json の別コンポーネントになった。つまり次の SDK リリース(TS / Python / PHP)で型付けされたクラスが手に入るんだ。

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

SDK パッケージのロードマップは各ステージングリポジトリにある(astroway-typescript-staging/ROADMAP.md など)。Cron が 5〜8 日ごとにマイナーレリースを公開するので、型付けされた BrandingObject はすぐに登場するだろう。

以前、AstroWay の PDF 生成を自社製品に統合する SaaS コンシューマーの流れは:

  1. tenants テーブルに branding_json カラムを用意する
  2. 各レポートリクエストの前に自分のユーザー設定を取得する
  3. WP プラグインなしで API に渡す方法が分からなかった(以前は方法がなく、SaaS ユーザー用に whitelabel_configs にエントリを作るよう依頼する必要があった)
  4. あるいは自前のレンダラで PDF 後処理を行う:追加のインフラが必要

今はこうなる:

  1. 自分で branding_json を保存する
  2. 各リクエストで whitelabel に inline で渡す

HTTP 呼び出しが減り、サービス間の DB 同期がゼロになり、リクエストごとにブランディングを完全にコントロールできるんだ。

Inline モードは PDF レポートが利用できるすべてのプランで利用可能だ - Indie($19/月)から Business まで。Free tier では PDF が提供されない(意図的に、Free では無料の JSON のみでレンダリングはなし)。リクエストのクレジットコストは変わらず、inline 設定が追加でクレジットコストを増やすことはない。

すべての 12 エンドポイントのドキュメントは inline モードの例と共に更新された。/docs/api/ → Reports を参照してください。

MakSeong · AstroWay

AstroWay API を作っている: Swiss Ephemeris を純粋な REST にラップし、実際に重要な退屈な詳細を書いています。

// この上に構築

Solar Fireと同じSwiss Ephemeris - 4行のコードで。

無料のキー(カード不要)。最初の支払いまでに月5,000回の呼び出し。

より多くのブログ →

Ephemeris 2026-07-19

精度をどう守っているか:swetest と NASA に対する CI

天文暦のリファクタリング一つで、占星術 API の精度は簡単に落ちます。その防ぎ方を解説します。アプリと API で共有する一つの Swiss Ephemeris コア、基準チャートに対する数百の固定スナップショット、そして各 PR を swetest CGI、Kerykeion、Prokerala、NASA の日食・月食カタログと照合する三角測量。

Engineering 2026-07-15

3つの公式SDK: TypeScript、Python、PHP - 生のcurlの代わりに

生のHTTPは動作しますが、型付けされたクライアントは時間を節約します: パスの自動補完、リクエストとレスポンスの型、408/409/429/5xx用の組み込みリトライ、Stainlessスタイルのエラーヒエラルキー。3つの公式SDK - @astroway/sdk (npm)、astroway (PyPI)、astroway/sdk (Packagist) - と、それらが1つの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.