This documentation covers the various endpoints and actions available for the Marketplace API. The API allows for operations such as creating, updating, deleting, and buying offers on the marketplace, as well as handling user sessions and royalty calculations.
Base URL
Copy https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/
CreateOffer
Purpose: To create a new offer on the marketplace.
URL:
Copy https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/CreateOffer
Method: POST
Request Parameters (JSON body):
ItemID
(string): The ID of the item.
VirtualCurrencyID
(string): The ID of the virtual currency.
Price
(string): The price of the item.
Responses:
200 OK
: Operation successful. Returns a success message.
400 Bad Request
: Incorrect request parameters. Possible messages: "INVALID_INPUT_DATA", "ITEM_NOT_EXISTS_IN_INVENTORY", "INCORRECT_VIRTUAL_CURRENCY_ID", "FAILED_TO_SAVE_TO_DATABASE", etc.
Example Usage:
Request:
Copy fetch('https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/CreateOffer', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ItemID: 'item-id-example',
VirtualCurrencyID: 'currency-id-example',
Price: '100'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Message": "SUCCESS"
}
DeleteOffer
Purpose: To delete an offer from the marketplace.
URL:
Copy https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/DeleteOffer
Method: POST
Request Parameters (JSON body):
ID
(string): The ID of the offer to delete.
Responses:
200 OK
: Operation successful. Returns a success message.
400 Bad Request
: Incorrect request parameters. Possible messages: "INVALID_INPUT_DATA", "ITEM_NOT_EXISTS_IN_DB", "ITEM_OWNED_BY_ANOTHER_USER", "FAILED_TO_UPDATE_ITEM_IN_DB", etc.
Example Usage:
Request:
Copy fetch('https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/DeleteOffer', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ID: 'offer-id-example'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Message": "SUCCESS"
}
UpdateOffer
Purpose: To update an existing offer on the marketplace.
URL:
Copy https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/UpdateOffer
Method: POST
Request Parameters (JSON body):
ID
(string): The ID of the offer to update.
VirtualCurrencyID
(string): The new virtual currency ID.
Price
(string): The new price for the item.
Responses:
200 OK
: Operation successful. Returns a success message.
400 Bad Request
: Incorrect request parameters. Possible messages: "INVALID_INPUT_DATA", "ITEM_NOT_EXISTS_IN_DB", "ITEM_OWNED_BY_ANOTHER_USER", "NOTHING_TO_UPDATE", "FAILED_TO_UPDATE_ITEM_IN_DB", etc.
Example Usage:
Request:
Copy fetch('https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/UpdateOffer', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ID: 'offer-id-example',
VirtualCurrencyID: 'new-currency-id',
Price: '150'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Message": "SUCCESS"
}
BuyOffer
Purpose: To buy an offer on the marketplace.
URL:
Copy https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/BuyOffer
Method: POST
Request Parameters (JSON body):
ID
(string): The ID of the offer to buy.
Responses:
200 OK
: Successful operation. Returns a success message.
400 Bad Request
: Incorrect request parameters or error in the buying process. Possible messages: "INVALID_INPUT_DATA", "ITEM_NOT_EXISTS_IN_DB", "CANT_BUY_YOUR_ITEM", "NOT_ENOUGH_FUNDS", "FAILED_TO_MODIFY_VIRTUAL_CURRENCY", "FAILED_TO_GRANT_ITEMS", "FAILED_TO_UPDATE_ITEM_IN_DB", etc.
Example Usage:
Request:
Copy fetch('https://api.idosgames.com/api/[titleTemplateId]/[titleId]/Client/Marketplace/BuyOffer', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ID: 'offer-id-example'
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Message": "SUCCESS"
}
GetGroupedActiveOffers
Retrieves grouped active offers for the specified title.
Action : GroupedOffers
Purpose : Retrieves grouped active offers based on ItemID.
Example Usage
Request:
Copy fetch('https://api.example.com/api/1234/5678/Client/MarketplaceData/GroupedOffers', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
WebAppLink: 'https://example.com',
UserID: 'example-user-id',
ClientSessionTicket: 'valid-session-ticket',
EntityToken: 'example-token',
UsageTime: 120
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Items": [
{"ItemID": "item1", "OfferCount": 5},
{"ItemID": "item2", "OfferCount": 3}
]
}
GetActiveOffersByItemID
Retrieves active offers for a specific item ID.
Action : ActiveOffersByItemID
Purpose : Retrieves active offers based on ItemID, with optional filtering and sorting.
Example Usage
Request:
Copy fetch('https://api.example.com/api/1234/5678/Client/MarketplaceData/ActiveOffersByItemID', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
ItemID: 'example-item-id',
VirtualCurrencyID: 'USD',
PriceFrom: '1.00',
PriceTo: '10.00',
SortOrder: 'Ascending',
OrderBy: 'Price',
MaxItemCount: 10
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Items": [
{"ID": "offer1", "ItemID": "example-item-id", "SellerID": "seller1", "CurrencyID": "USD", "Price": 5.00},
{"ID": "offer2", "ItemID": "example-item-id", "SellerID": "seller2", "CurrencyID": "USD", "Price": 8.00}
],
"ContinuationToken": "next-token-id"
}
GetPlayerHistory
Retrieves player transaction history.
Action : PlayerHistory
Purpose : Retrieves the transaction history for a player based on their UserID.
Example Usage
Request:
Copy fetch('https://api.example.com/api/1234/5678/Client/MarketplaceData/PlayerHistory', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
UserID: 'example-user-id',
MaxItemCount: 10
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Items": [
{"ID": "history1", "ItemID": "item1", "SellerID": "seller1", "BuyerID": "example-user-id", "CurrencyID": "USD", "Price": 10.00},
{"ID": "history2", "ItemID": "item2", "SellerID": "seller2", "BuyerID": "example-user-id", "CurrencyID": "USD", "Price": 15.00}
],
"ContinuationToken": "next-token-id"
}
GetPlayerActiveOffers
Retrieves active offers by a player.
Action : PlayerActiveOffers
Purpose : Retrieves the active offers for a player based on their UserID.
Example Usage
Request:
Copy fetch('https://api.example.com/api/1234/5678/Client/MarketplaceData/PlayerActiveOffers', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
UserID: 'example-user-id',
MaxItemCount: 10
})
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
Response:
Copy {
"Items": [
{"ID": "offer1", "ItemID": "item1", "SellerID": "example-user-id", "CurrencyID": "USD", "Price": 10.00},
{"ID": "offer2", "ItemID": "item2", "SellerID": "example-user-id", "CurrencyID": "USD", "Price": 15.00}
],
"ContinuationToken": "next-token-id"
}
Last updated 3 months ago