콘텐츠로 건너뛰기

개요

카탈로그 API를 통해 엑솔라 측 인게임 아이템에 대한 카탈로그를 구성하고 스토어 사용자에게 카탈로그를 표시합니다.

API를 통해 다음 카탈로그 엔터티를 관리할 수 있습니다:

  • 가상 아이템 - 무기, 스킨, 부스터와 같은 인게임 아이템.
  • 인게임 재화 - 가상 아이템을 구매하는 데 사용되는 가상 화폐.
  • 인게임 재화 패키지 - 사전 정의된 인게임 재화 번들.
  • 번들 - 가상 아이템, 통화 또는 단일 SKU로 판매되는 게임 키의 결합 패키지.
  • 게임 키 - Steam이나 기타 DRM 제공업체와 같은 플랫폼을 통해 배포되는 게임 및 DLC의 키.
  • 그룹 - 카탈로그 내 아이템을 정리하고 분류하기 위한 로직 그룹.

API 호출

API는 다음 그룹으로 구분됩니다:

  • Admin - 카탈로그 아이템 및 그룹 생성, 업데이트, 삭제 및 구성을 위한 호출. 상품 또는 프로젝트 자격 증명으로 기본 액세스 인증을 통해 인증됩니다. 스토어프런트 용도로 사용되지 않습니다.
  • Catalog - 아이템 검색 및 최종 사용자를 위한 맞춤형 스토어프론트 구축을 위한 호출. 높은 부하 시나리오를 처리하도록 설계되었습니다. 사용자별 한도나 진행 중인 프로모션과 같은 개인화된 데이터를 반환하기 위해 선택적 사용자 JWT 인증을 지원합니다.
OpenAPI 설명 다운로드
언어
서버
https://store.xsolla.com/api/
Mock server
https://xsolla.redocly.app/_mock/ko/api/catalog/
작업
작업
작업
작업

요청

사용 가능한 DRM 목록을 가져옵니다.

경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
curl -i -X GET \
  https://store.xsolla.com/api/v2/project/44056/items/game/drm

응답

DRM 목록을 성공적으로 수신했습니다.

본문application/json
drmArray of objects
예제: [{"drm_id":1,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","link":"https://support.steampowered.com","name":"Steam","redeem_instruction_link":"https://support.steampowered.com","sku":"steam_key_1"},{"drm_id":2,"image":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","link":null,"name":"Playstation","redeem_instruction_link":"https://support.us.playstation.com","sku":"playstation_key_1"}]
응답
application/json
{ "drm": [ {}, {} ] }

지정한 그룹으로 게임 목록 가져오기Client-side

요청

카탈로그 작성을 위해 지정된 그룹에서 게임 목록을 가져옵니다.

주의

모든 프로젝트에는 응답에서 얻을 수 있는 아이템 수에 제한이 있습니다. 기본값과 최대값은 응답당 50개 아이템입니다. 페이지별로 더 많은 데이터 페이지를 가져오려면 제한오프셋 필드를 사용합니다.

참고

일반적으로 아이템 카탈로그 API 호출은 권한이 없어도 사용할 수 있지만 인증 헤더에서 사용자 JWT를 전달한 경우에만 사용자 맞춤형 카탈로그를 가져올 수 있습니다.
보안
XsollaLoginUserJWT
경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
external_idstring필수

그룹 외부 ID입니다.

기본값 "all"
쿼리
limitinteger>= 1

페이지 요소 개수 제한입니다.

예제: limit=50
offsetinteger>= 0

목록이 생성된 요소의 개수입니다(개수는 0부터 시작함).

예제: offset=0
localestring

응답 언어입니다. ISO 639-1에 따른 두 자리 소문자 언어 코드입니다.

기본값 "en"
additional_fields[]Array of strings

추가 필드의 목록입니다. 이러한 필드는 요청에서 보내는 경우 응답에 포함됩니다.

항목 열거형"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

ISO 3166-1 alpha-2에 따른 2자리 대문자 국가 코드입니다. 엑솔라에서 지원하는 국가국가 판별 프로세스에 대한 자세한 정보는 설명서를 확인하십시오.

예제: country=US
promo_codestring[ 1 .. 128 ] characters

고유한 대/소문자 구분 코드입니다. 문자와 숫자를 포함합니다.

예제: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

사용자가 사용할 수 없는 사용기간 제한 아이템을 표시합니다. 해당 아이템의 사용기간이 아직 시작되지 않았거나 이미 만료되었습니다.

기본값 0
예제: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

응답

게임 목록을 성공적으로 수신했습니다.

본문application/json
has_moreboolean(Pagination_has-more)

페이지가 더 있다는 표시로 사용됩니다.

예제: true
itemsArray of objects
예제: [{"attributes":[{"external_id":"genre","name":"Genre","values":[{"external_id":"23fda05111c125608af8f1fa0e99db45a10ea1cc","value":"Horror"}]}],"description":"Game description","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","promotions":[],"sku":"com.xsolla.game_1","type":"unit","unit_items":[{"can_be_bought":true,"drm_name":"Steam","drm_sku":"steam_key_1","has_keys":true,"is_free":false,"is_pre_order":true,"periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"promotions":[],"release_date":"2020-08-11T10:00:00+03:00","sku":"com.xsolla.game_key_01","type":"game_key","virtual_prices":[]},{"can_be_bought":true,"drm_name":"Origin","drm_sku":"origin_key_1","has_keys":false,"is_free":false,"is_pre_order":false,"periods":[],"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"promotions":[],"release_date":null,"sku":"com.xsolla.game_key_02","type":"game_key","virtual_prices":[]}],"unit_type":"game"},{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]}],"description":"Game description","groups":[{"external_id":"all","name":"All games"}],"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","name":"Game name","promotions":[],"sku":"com.xsolla.game_2","type":"unit","unit_items":[{"can_be_bought":true,"drm_name":"Steam","drm_sku":"steam_key_2","has_keys":false,"is_free":false,"is_pre_order":false,"periods":[{"date_from":null,"date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"promotions":[],"release_date":null,"sku":"com.xsolla.game_key_01","type":"game_key","virtual_prices":[]}],"unit_type":"game"}]
응답
application/json
{ "has_more": false, "items": [ {}, {} ] }

지정한 그룹으로 게임 키 목록 가져오기Client-side

요청

카탈로그 작성을 위해 지정된 그룹에서 게임 키를 가져옵니다.

주의

모든 프로젝트에는 응답에서 얻을 수 있는 아이템 수에 제한이 있습니다. 기본값과 최대값은 응답당 50개 아이템입니다. 페이지별로 더 많은 데이터 페이지를 가져오려면 제한오프셋 필드를 사용합니다.

참고

아이템 카탈로그 API 호출은 권한이 없어도 사용할 수 있지만 인증 헤더에서 사용자 JWT를 전달한 경우에만 사용자 맞춤형 카탈로그를 가져올 수 있습니다.
보안
XsollaLoginUserJWT
경로
project_idinteger필수

프로젝트 ID입니다. 이 매개 변수는 관리자 페이지의 프로젝트 이름 옆에서 확인할 수 있습니다.

예제: 44056
external_idstring필수

그룹 외부 ID입니다.

기본값 "all"
쿼리
limitinteger>= 1

페이지 요소 개수 제한입니다.

예제: limit=50
offsetinteger>= 0

목록이 생성된 요소의 개수입니다(개수는 0부터 시작함).

예제: offset=0
localestring

응답 언어입니다. ISO 639-1에 따른 두 자리 소문자 언어 코드입니다.

기본값 "en"
additional_fields[]Array of strings

추가 필드의 목록입니다. 이러한 필드는 요청에서 보내는 경우 응답에 포함됩니다.

항목 열거형"media_list""order""long_description""custom_attributes""item_order_in_group"
countrystring

ISO 3166-1 alpha-2에 따른 2자리 대문자 국가 코드입니다. 엑솔라에서 지원하는 국가국가 판별 프로세스에 대한 자세한 정보는 설명서를 확인하십시오.

예제: country=US
promo_codestring[ 1 .. 128 ] characters

고유한 대/소문자 구분 코드입니다. 문자와 숫자를 포함합니다.

예제: promo_code=WINTER2021
show_inactive_time_limited_itemsinteger

사용자가 사용할 수 없는 사용기간 제한 아이템을 표시합니다. 해당 아이템의 사용기간이 아직 시작되지 않았거나 이미 만료되었습니다.

기본값 0
예제: show_inactive_time_limited_items=1
curl -i -X GET \
  'https://store.xsolla.com/api/v2/project/44056/items/game/key/group/{external_id}?limit=50&offset=0&locale=en&additional_fields%5B%5D=media_list&country=US&promo_code=WINTER2021&show_inactive_time_limited_items=1' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

응답

게임 키 목록을 성공적으로 수신했습니다.

본문application/json
has_moreboolean(Pagination_has-more)

페이지가 더 있다는 표시로 사용됩니다.

예제: true
itemsArray of objects
예제: [{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]},{"external_id":"genre","name":"Genre","values":[{"external_id":"23fda05111c125608af8f1fa0e99db45a10ea1cc","value":"Horror"}]}],"description":"Game description","drm_name":"Steam","drm_sku":"steam_key_1","groups":[{"external_id":"all","name":"All games"},{"external_id":"Xsolla","name":"Xsolla games"}],"has_keys":true,"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","is_free":false,"is_pre_order":true,"name":"Game name","periods":[{"date_from":"2020-08-11T10:00:00+03:00","date_until":"2020-08-11T20:00:00+03:00"}],"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":"2020-08-11T10:00:00+03:00","sku":"com.xsolla.game_1","type":"game_key","virtual_prices":[]},{"attributes":[{"external_id":"OS","name":"OS","values":[{"external_id":"9d5c5efb7c0f00a00fe4e3583f1215b0050bc723","value":"Windows"}]},{"external_id":"genre","name":"Genre","values":[{"external_id":"23fda05111c125608af8f1fa0e99db45a10ea1cc","value":"Horror"}]}],"description":"Game description","drm_name":"Steam","drm_sku":"steam_key_2","groups":[{"external_id":"all","name":"All games"}],"has_keys":true,"image_url":"https://cdn.xsolla.net/img/misc/images/b79342cdf24f0f8557b63c87e8326e62.png","is_free":false,"is_pre_order":false,"name":"Game name","periods":[],"price":{"amount":"30.5","amount_without_discount":"30.5","currency":"USD"},"release_date":null,"sku":"com.xsolla.game_2","type":"game_key","virtual_prices":[]}]
응답
application/json
{ "has_more": true, "items": [ {}, {} ] }
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업
작업

카탈로그

이 API를 사용하면 모든 종류의 판매할 수 있는 아이템 또는 특정 아이템을 가져올 수 있습니다.

작업
작업
작업