コンテンツへスキップ

Catalog API (2.0.0)

概要

  • バージョン: 2.0.0
  • サーバーhttps://store.xsolla.com/api
  • メールでお問い合わせ
  • 連絡先URL: https://xsolla.com/
  • 要求されるTLSバージョン: 1.2

カタログAPIを使用すると、ゲーム内アイテムのカタログをエクソーラ側で設定し、そのカタログをストア内でユーザーに表示することができます。

本APIでは、以下のカタログエンティティを管理できます:

  • 仮想アイテム — 武器、スキン、ブースターなどのゲーム内アイテム。
  • 仮想通貨 — 仮想商品の購入に使用される仮想通貨。
  • 仮想通貨パッケージ — 事前定義された仮想通貨のバンドル。
  • バンドル — 仮想アイテム、通貨、またはゲームキーを1つのSKUとしてまとめたパッケージ。
  • ゲームキー — Steamやその他のDRMプロバイダーを通じて配布される、ゲームおよびDLCのキー。
  • グループ — カタログ内のアイテムを整理または並べ替えするための論理的なグループ分け。

APIコール

本APIは、以下のグループに分かれています:

  • Admin — カタログアイテムやグループの作成、更新、削除、および設定を行うためのコール。マーチャントまたはプロジェクトの認証情報による基本アクセス認証で認証されます。ストアフロントでの使用は想定されていません。
  • Catalog — アイテムの取得や、エンドユーザー向けのカスタムストアフロントを構築するためのコール。高負荷なシナリオに対応できるよう設計されています。ユーザー個別の制限事項や実施中のプロモーションなど、パーソナライズされたデータを返すための、ユーザーJWTによる任意認証をサポートしています。
OpenAPI記述をダウンロード
言語
サーバー
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ja/api/catalog/
操作

仮想通貨を更新するServer-sideAdmin

リクエスト

仮想通貨を更新します。

セキュリティ
basicAuth
パス
project_idinteger必須

プロジェクトID。このパラメータは、パブリッシャーアカウントのプロジェクト名の横にあります。

例: 44056
virtual_currency_skustring必須

仮想通貨SKU。

例: crystal
ボディapplication/json
attributesArray of objects(Virtual-Items-Currency_admin-post-put-attributes)<= 20 items

属性のリスト。

注意。アイテムの属性は20個以上指定することはできません。制限を超えようとすると、エラーが発生します。
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

アイテムの属性と値を含むJSONオブジェクト。属性により、アイテムを使用するために必要なプレイヤーのレベルなど、より詳細な情報をアイテムに追加することができます。属性はゲームの内部ロジックを豊かにし、専用の「取得」メソッドやウェブフックからアクセスできます。

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

One of:

アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

groupsArray of objects(Virtual-Items-Currency_admin-groups-response)

アイテムが所属するグループ。

デフォルト []
例: [{"external_id":"horror","name":{"en":"Horror"}}]
image_urlstring(Virtual-Items-Currency_admin-image_url)
is_deletedboolean(Virtual-Items-Currency_is_deleted)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

trueの場合で、アイテムは無料です。

デフォルト false
例: false
is_hardboolean(Virtual-Items-Currency_is_hard)
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

アイテムが、ルートボックスなどのランダムな有料報酬であるかどうか。

デフォルト false
例: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject(Virtual-Currency-item-limit)

アイテム制限。

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント(例:enen-US)が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

Any of:

アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント(例:enen-US)が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

スクリーンショット、ゲームプレイ動画などのアイテム追加アセット。

例: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)必須

アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字の言語コード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

One of:

アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字の言語コード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

name.​arstring or null

アラビア語

name.​bgstring or null

ブルガリア語

name.​cnstring or null

中国語(簡体字)

name.​csstring or null

チェコ語

name.​destring or null

ドイツ語

name.​enstring or null

英語

name.​esstring or null

スペイン語(スペイン)

name.​frstring or null

フランス語

name.​hestring or null

ヘブライ語

name.​idstring or null

インドネシア語

name.​itstring or null

イタリア語

name.​jastring or null

日本語

name.​kmstring or null

クメール語

name.​kostring or null

韓国語

name.​lostring or null

ラオス語

name.​mystring or null

ビルマ語

name.​nestring or null

ネパール語

name.​phstring or null

フィリピン語

name.​plstring or null

ポーランド語

name.​ptstring or null

ポルトガル語

name.​rostring or null

ルーマニア語

name.​rustring or null

ロシア語

name.​thstring or null

タイ語

name.​trstring or null

トルコ語

name.​twstring or null

中国語(繁体字)

name.​vistring or null

ベトナム語

orderinteger(Virtual-Items-Currency_order)

配列順序を定義します。

例: 1
periodsArray of objects or null(item-periods)

アイテム販売期間。

pre_orderobject(Virtual-Items-Currency_admin-pre_order)
pricesArray of objects(Virtual-Items-Currency_admin-prices)
例: [{"amount":10.5,"country_iso":"US","currency":"USD","is_default":true,"is_enabled":true}]
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$必須

一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。

例: "booster_mega_1"
vc_pricesArray of objects(Virtual-Items-Currency_admin-create-vc_prices)
例: [{"amount":10,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]
curl -i -X PUT \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_currency/sku/crystal \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": [
      {
        "external_id": "material",
        "name": {
          "en-US": "Material"
        },
        "values": [
          {
            "external_id": "gold",
            "value": {
              "en-US": "Gold"
            }
          }
        ]
      }
    ],
    "custom_attributes": {
      "attr": "value",
      "purchased": 0
    },
    "description": {
      "de-DE": "Die Hauptwährung deines Königreichs",
      "en-US": "The main currency of your kingdom"
    },
    "groups": [
      "gold"
    ],
    "is_enabled": true,
    "is_free": false,
    "is_paid_randomized_reward": false,
    "limits": {
      "per_item": 10000,
      "per_user": 5
    },
    "name": {
      "de-DE": "Goldmünze",
      "en-US": "Gold coin"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2020-08-11T10:00:00+03:00",
        "date_until": "2020-08-11T20:00:00+03:00"
      }
    ],
    "prices": [
      {
        "amount": 100,
        "currency": "USD",
        "is_default": true,
        "is_enabled": true
      }
    ],
    "sku": "com.xsolla.coin_1"
  }'

レスポンス

仮想通貨は正常に更新されました。

ボディ
レスポンス
コンテンツなし

仮想アイテムのリストを取得するServer-sideAdmin

リクエスト

管理用のプロジェクト内の仮想アイテムリストを取得します。



このエンドポイントは、ストアカタログの構築に使用しないでください。
セキュリティ
basicAuth
パス
project_idinteger必須

プロジェクトID。このパラメータは、パブリッシャーアカウントのプロジェクト名の横にあります。

例: 44056
クエリ
limitinteger>= 1

ページでの要素数の制限。

例: limit=50
offsetinteger>= 0

リストが生成される要素番号(カウントは0から始まります)。

例: offset=0
curl -i -X GET \
  -u <username>:<password> \
  'https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_items?limit=50&offset=0'

レスポンス

仮想アイテムのリストは正常に受信されました。

ボディapplication/json
itemsArray of objects(Virtual-Items-Currency_admin-virtual-item)
レスポンス
application/json
{ "items": [ {}, {}, {}, {}, {} ] }

仮想アイテムを作成Server-sideAdmin

リクエスト

仮想アイテムを作成します。

セキュリティ
basicAuth
パス
project_idinteger必須

プロジェクトID。このパラメータは、パブリッシャーアカウントのプロジェクト名の横にあります。

例: 44056
ボディapplication/json
attributesArray of objects(Virtual-Items-Currency_admin-post-put-attributes)<= 20 items

属性のリスト。

注意。アイテムの属性は20個以上指定することはできません。制限を超えようとすると、エラーが発生します。
custom_attributesobject(json)(item-custom-attributes)<= 500 characters

アイテムの属性と値を含むJSONオブジェクト。属性により、アイテムを使用するために必要なプレイヤーのレベルなど、より詳細な情報をアイテムに追加することができます。属性はゲームの内部ロジックを豊かにし、専用の「取得」メソッドやウェブフックからアクセスできます。

description(two-letter (object or null)) or (five-letter (object or null))(description-localization-object)

アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

One of:

アイテムの説明に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

groupsArray of strings(Virtual-Items-Currency_admin-groups-create)

アイテムが属するグループ。

注。文字列の値はグループ `external_id`を指します。
image_urlstring(Virtual-Items-Currency_schemas-admin-image_url)

画像URL。

例: "https://image.example.com"
is_deletedboolean(Virtual-Items-Currency_is_deleted)
is_enabledboolean(Virtual-Items-Currency_is_enabled)
is_freeboolean(value-is_free)

trueの場合で、アイテムは無料です。

デフォルト false
例: false
is_paid_randomized_rewardboolean(value-is_paid_randomized_reward)

アイテムが、ルートボックスなどのランダムな有料報酬であるかどうか。

デフォルト false
例: false
is_show_in_storeboolean(Virtual-Items-Currency_is_show_in_store)
limitsobject(Virtual-Item-item-limit)

アイテム制限。

long_description(two-letter (object or null)) or (five-letter (object or null))(long-description-localization-object)

アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント(例:enen-US)が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

Any of:

アイテムの長文説明のローカライズを含むオブジェクト。2文字の小文字の言語コード(例:en)または5文字のロケールコード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のバリアント(例:enen-US)が提供された場合、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

media_listArray of objects(Virtual-Items-Currency_admin-media_list)

スクリーンショット、ゲームプレイ動画などのアイテム追加アセット。

例: [{"type":"image","url":"https://cdn3.xsolla.com/img/misc/images/71ab1e12126f2103e1868076f0acb21a.jpg"}]
name(two-letter (object or null)) or (five-letter (object or null))(name-localization-object)

アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字の言語コード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

One of:

アイテム名に関するローカライズ用オブジェクト。2文字の小文字の言語コード(例:en)または5文字の言語コード(例:en-US)のいずれかの形式で値を受け入れます。どちらの形式も入力として受け入れられますが、応答は2文字の小文字の言語コードを返します。同じ言語に対して両方のオプションが提供された場合(例:enen-US)、最後に提供された値が保存されます。サポートされている言語の完全なリストは、ドキュメントで確認できます。

orderinteger(Virtual-Items-Currency_order)

配列順序を定義します。

例: 1
periodsArray of objects or null(item-periods)

アイテム販売期間。

pre_orderobject(Virtual-Items-Currency_admin-pre_order)
pricesArray of objects(Virtual-Items_admin-prices)
例: [{"amount":10.5,"currency":"USD","is_default":true,"is_enabled":true}]
regionsArray of objects(Virtual-Items-Currency_admin-regions)
skustring(Virtual-Items-Currency_sku)[ 1 .. 255 ] characters^[a-zA-Z0-9_\-–.]*$

一意のアイテムID。SKUには、小文字と大文字のラテン英数字、ピリオド、ダッシュ、およびアンダースコアのみが含まれます。

例: "booster_mega_1"
vc_pricesArray of objects(Virtual-Items-Currency_admin-create-vc_prices)
例: [{"amount":10,"is_default":true,"is_enabled":true,"sku":"com.xsolla.gold_1"}]
curl -i -X POST \
  -u <username>:<password> \
  https://store.xsolla.com/api/v2/project/44056/admin/items/virtual_items \
  -H 'Content-Type: application/json' \
  -d '{
    "attributes": [
      {
        "external_id": "craft-materials",
        "name": {
          "en": "Craft materials"
        },
        "values": [
          {
            "external_id": "steel",
            "value": {
              "en-US": "5"
            }
          },
          {
            "external_id": "leather",
            "value": {
              "en-US": "1"
            }
          }
        ]
      }
    ],
    "custom_attributes": {
      "attr": "value",
      "purchased": 0
    },
    "description": {
      "de": "Ein Schwert ist eine Nahkampfwaffe mit Klinge, die zum Schneiden oder Stechen bestimmt ist, länger als ein Messer oder Dolch ist und aus einer langen Klinge besteht, die an einem Griff befestigt ist.",
      "en": "A sword is a bladed melee weapon intended for cutting or thrusting that is longer than a knife or dagger, consisting of a long blade attached to a hilt."
    },
    "groups": [
      "weapons"
    ],
    "is_enabled": true,
    "is_free": false,
    "is_paid_randomized_reward": true,
    "is_show_in_store": true,
    "limits": {
      "per_item": 100,
      "per_user": 5
    },
    "name": {
      "de": "Schwert",
      "en": "Sword"
    },
    "order": 1,
    "periods": [
      {
        "date_from": "2020-08-11T10:00:00+03:00",
        "date_until": "2020-08-11T20:00:00+03:00"
      }
    ],
    "prices": [
      {
        "amount": 100,
        "currency": "USD",
        "is_default": true,
        "is_enabled": true
      },
      {
        "amount": 200,
        "country_iso": "CZ",
        "currency": "CZK",
        "is_default": true,
        "is_enabled": false
      }
    ],
    "sku": "com.xsolla.sword_1",
    "vc_prices": []
  }'

レスポンス

仮想アイテムは正常に作成されました。

ボディapplication/json
skustring
例: "com.xsolla.item_1"
レスポンス
application/json
{ "sku": "com.xsolla.item_1" }
操作
操作
操作
操作
操作
操作
操作

カート(クライアント側)

操作

カート(サーバー側)

操作

決済(クライアント側)

操作

決済(サーバー側)

操作
操作

無料アイテム

操作
操作
操作

ウェブフック

操作
操作

マーチャント

操作

カタログ

このAPIは販売可能なアイテムや特定のアイテムを取得することができます。

操作
操作
操作