ナレッジベース

Python SDK (zinn-sdk) の使用

PyPI から zinn-sdk をインストールし、API キーを作成して、Python から Zinn Digital® API を呼び出します — キー不要のパブリックリージョン、次にお客様自身のサイト — さらに zinn_sdk.api 配下の各操作の場所や、同期、非同期、詳細バリアントについても説明します。

zinn-sdk は、PyPI で公開され、zinn_sdk としてインポートされる、Zinn Digital® API 向けの公式 Python クライアントです。API の構築に使用されたものと同じ OpenAPI 仕様から生成されており、すべての操作に synchronous および asyncio バリアントが用意され、仕様が変更されるたびに新しいバージョンが自動的に公開されます。このガイドでは、インストール、認証、および最初の呼び出しの手順を説明します。

インストール

pip install zinn-sdk

Python 3.11以降が必要であり、MIT ライセンスが適用されています。

API キーを作成する

ダッシュボードのAPI キーページ (app.zinndigital.com/api-keys) を開き、キーを作成を押します。キーに名前を付け、コードが必要とする権限のみを付与します (例: サイト一覧を取得するためのsites.view)。キーは一度だけ表示されます。環境変数やシークレットストアに保存し、ソースコードには絶対に保存しないでください。同じページでいつでもキーを失効させることができます。

ホスティングリージョンやプランなどの公開カタログエンドポイントには、キーは一切不要です。

最初の呼び出し

import os

from zinn_sdk import AuthenticatedClient, Client
from zinn_sdk.api.catalog import list_public_hosting_regions
from zinn_sdk.api.hosting import list_sites

# Public catalogue endpoints need no key.
public = Client(base_url="https://api.zinndigital.com")
regions = list_public_hosting_regions.sync(client=public)
print([region.slug for region in regions.data])

# Everything else uses a per-organisation API key.
api = AuthenticatedClient(base_url="https://api.zinndigital.com", token=os.environ["ZINN_API_KEY"])
page = list_sites.sync(client=api, limit=5)
for site in page.data:
    print(site.name, site.status)

オペレーションの検索

オペレーションは zinn_sdk.api の下で API 領域ごとにグループ化され、スネークケースのオペレーション id にちなんで命名されています。サイトの一覧表示は zinn_sdk.api.hosting.list_sites、ドメインと DNS は zinn_sdk.api.domains 配下、請求は zinn_sdk.api.billing 配下にあります。API リファレンスには各オペレーションの id が示されています。

同期、非同期、および完全なレスポンス

各オペレーションモジュールには 4 つの関数があります。

  • sync(...) はパースされたモデルを返します。予期しないステータスの場合は None を返します。
  • sync_detailed(...) は status_code、headers、および parsed を含む Response を返します。
  • asyncio(...) および asyncio_detailed(...) も同様で、await 可能です。
import asyncio

from zinn_sdk.api.hosting import list_sites

async def main() -> None:
    response = await list_sites.asyncio_detailed(client=api, limit=5)
    print(response.status_code, len(response.parsed.data))

asyncio.run(main())

403 (キーに権限がありません) と404を区別する必要がある場合は、_detailedバリアントをご使用ください。

次のステップ

  • 当社ウェブサイトのガイド: zinndigital.com/developers/sdk-python
  • すべてのエンドポイント、そのパラメーター、および権限: zinndigital.com/developers/api
  • PyPI 上のパッケージ: pypi.org/project/zinn-sdk

すべての開発者向けドキュメント →

ブログの最新情報

ホスティング、SEO、大規模サイトの運用について執筆した記事。

ホスティング層からの SEO とリンクビルディング: 2026年のオペレーターの視点

2026年におけるホスティングがインデックス作成とリンクエクイティに与える影響: ページのインデックス維持、構築前のオールドドメインの審査、検索エンジンのフットプリントを残さないリンク構築、そしてインフラが SEO に対してできることとできないことに関する率直な見解。

記事を読む →

WordPress を高速かつ安全にする方法: パフォーマンスとプラグインのチェックリスト

高速で安全な WordPress のための実践的なチェックリスト: サーバーレベルのキャッシュ、サイトごとのオブジェクトキャッシュ、利用する価値のある厳選されたプラグイン、スタックを最新に維持すること、そして決してキャッシュしてはならない WooCommerce ページ。

記事を読む →

2026年におけるマネージドレンタルサーバーの選び方: 購入者向けガイド

コントロールパネル付きの安価なサーバーと、優れたマネージドホスティングを実際に分けるもの (移行、バックアップ、分離、真のキャッシング、そして誠実なスケーリング)、および契約前にそれらを見極める方法。

記事を読む →

ブログを読む →

解決しませんか ?

サポートはすべてのプランに含まれており、対応時間は1日 24 時間、対応言語は 58 ヵ国語の中から自由にお書きいただけます。お客様の言語で回答いたします。

サポートに問い合わせる → すべての記事 →