公開印刷ファイルAPI

ベースURL:https://app.customix.io/api

認証:CustomixのAPIキーを取得する方法

Authorization: Bearer {your-api-token}

レート制限:1分あたり100リクエスト(ユーザーごと)

概要

商品のカスタマイズ内容を複数行のプレーンテキストで送信すると、その送信に対応する
印刷ファイルのURLの一覧が返されます。

印刷ファイルを作成する

POST /print-files

リクエストボディ

フィールド型必須説明
shop_namestringはいショップ名(例:my-etsy-shop)
namestringはいこのショップにあるご自身のテンプレートの名前。名前が一致する最初のテンプレートが使用されます。
contentstringはい複数行のカスタマイズ内容。各行は<option name>: <value>の形式です。行頭の-は省略できます。

コンテンツの形式

各行が、テンプレート上のカスタマイズ可能な1つのオプションと、その値を対応づけます。

  • オプション名は、大文字と小文字を区別せず、前後の空白を無視して照合されます。
  • テキスト/カラー/日付のオプションには、値をそのまま指定します。例:

Harry、#ffffff、2026-12-25。

  • スウォッチのオプション(フォント、画像、カラー、レイアウトなど)には、

利用可能なスウォッチの値のいずれかを選ぶ整数を指定します。デフォルトでは、1が最初の値、2が2番目の値、というように選択されます。

例:

- Enter your name: Harry
- Text color: #ffffff
- Font: 1

レスポンス201

{
  "id": "01jyz5kqxz2hrcwqzdq4jdv7r9",
  "print_file_urls": [
    "https://.../1.png",
    "https://.../2.png"
  ]
}
フィールド型説明
idstring送信を識別するID
print_file_urlsstring[]テンプレート上の印刷ファイルごとに1つのURL(テンプレートの順序どおり)

印刷ファイルは、生成が完了すると、返されたURLで利用できるようになります
(通常はレスポンスから数秒後)。

エラーレスポンス

ステータスボディ原因
401{"message": "Unauthenticated."}Bearerトークンがない、または無効です
403{"message": "Unauthenticated"}トークンは有効ですが、呼び出し元にshop_nameへのアクセス権がありません
404{"message": "Template not found: …"}このショップに、そのnameのテンプレートが存在しません
422{"errors": {"shop_name": […], "name": […], "content": […]}}必須フィールドが指定されていません
422{"message": "Unknown option: <name>"}テンプレートに存在しないオプションを参照している行があります
422{"message": "Swatch index N is out of range for option '…' …"}スウォッチのインデックスが、利用可能な範囲外です
422{"message": "Option '…' expects an integer swatch index, got …"}スウォッチのオプションに、整数以外の値が渡されました

リクエストのサンプル

curl -X POST 'https://app.customix.io/api/print-files' \
  -H 'Authorization: Bearer 01jyz0z…|abc…' \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json' \
  -d '{
    "shop_name": "my-etsy-shop",
    "name": "My Template",
    "content": "- Enter your name: Harry\n- Text color: #ffffff\n- Font: 1"
  }'

更新日:2026/05/20