curl --request POST \
--url https://api.moonup.gg/v1/offers/currency \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"game": "<string>",
"title": "<string>",
"product_slug": "<string>",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>",
"manual_delivery_value": 123,
"description": "<string>",
"tags": [
"<string>"
],
"attributes": {}
}
'import requests
url = "https://api.moonup.gg/v1/offers/currency"
payload = {
"game": "<string>",
"title": "<string>",
"product_slug": "<string>",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>",
"manual_delivery_value": 123,
"description": "<string>",
"tags": ["<string>"],
"attributes": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
game: '<string>',
title: '<string>',
product_slug: '<string>',
price_per_unit: 123,
stock_quantity: 123,
min_order_quantity: 123,
delivery_method: '<string>',
delivery_instructions: '<string>',
manual_delivery_value: 123,
description: '<string>',
tags: ['<string>'],
attributes: {}
})
};
fetch('https://api.moonup.gg/v1/offers/currency', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moonup.gg/v1/offers/currency",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'game' => '<string>',
'title' => '<string>',
'product_slug' => '<string>',
'price_per_unit' => 123,
'stock_quantity' => 123,
'min_order_quantity' => 123,
'delivery_method' => '<string>',
'delivery_instructions' => '<string>',
'manual_delivery_value' => 123,
'description' => '<string>',
'tags' => [
'<string>'
],
'attributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moonup.gg/v1/offers/currency"
payload := strings.NewReader("{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moonup.gg/v1/offers/currency")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonup.gg/v1/offers/currency")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"attributes": {},
"tags": [
"<string>"
],
"status": "draft",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"manual_delivery_value": 123,
"manual_delivery_unit": "minutes",
"currency": "USD",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>"
}{
"error": "delivery_instructions_required"
}{
"error": "unauthorized"
}{
"error": "delivery_instructions_required"
}{
"error": "rate_limited"
}Create in-game currency listing
Created as a draft — nobody but you can see it until you publish it.
curl --request POST \
--url https://api.moonup.gg/v1/offers/currency \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"game": "<string>",
"title": "<string>",
"product_slug": "<string>",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>",
"manual_delivery_value": 123,
"description": "<string>",
"tags": [
"<string>"
],
"attributes": {}
}
'import requests
url = "https://api.moonup.gg/v1/offers/currency"
payload = {
"game": "<string>",
"title": "<string>",
"product_slug": "<string>",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>",
"manual_delivery_value": 123,
"description": "<string>",
"tags": ["<string>"],
"attributes": {}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
game: '<string>',
title: '<string>',
product_slug: '<string>',
price_per_unit: 123,
stock_quantity: 123,
min_order_quantity: 123,
delivery_method: '<string>',
delivery_instructions: '<string>',
manual_delivery_value: 123,
description: '<string>',
tags: ['<string>'],
attributes: {}
})
};
fetch('https://api.moonup.gg/v1/offers/currency', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.moonup.gg/v1/offers/currency",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'game' => '<string>',
'title' => '<string>',
'product_slug' => '<string>',
'price_per_unit' => 123,
'stock_quantity' => 123,
'min_order_quantity' => 123,
'delivery_method' => '<string>',
'delivery_instructions' => '<string>',
'manual_delivery_value' => 123,
'description' => '<string>',
'tags' => [
'<string>'
],
'attributes' => [
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.moonup.gg/v1/offers/currency"
payload := strings.NewReader("{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.moonup.gg/v1/offers/currency")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonup.gg/v1/offers/currency")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"game\": \"<string>\",\n \"title\": \"<string>\",\n \"product_slug\": \"<string>\",\n \"price_per_unit\": 123,\n \"stock_quantity\": 123,\n \"min_order_quantity\": 123,\n \"delivery_method\": \"<string>\",\n \"delivery_instructions\": \"<string>\",\n \"manual_delivery_value\": 123,\n \"description\": \"<string>\",\n \"tags\": [\n \"<string>\"\n ],\n \"attributes\": {}\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"title": "<string>",
"description": "<string>",
"attributes": {},
"tags": [
"<string>"
],
"status": "draft",
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"published_at": "2023-11-07T05:31:56Z",
"manual_delivery_value": 123,
"manual_delivery_unit": "minutes",
"currency": "USD",
"product_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"price_per_unit": 123,
"stock_quantity": 123,
"min_order_quantity": 123,
"delivery_method": "<string>",
"delivery_instructions": "<string>"
}{
"error": "delivery_instructions_required"
}{
"error": "unauthorized"
}{
"error": "delivery_instructions_required"
}{
"error": "rate_limited"
}Авторизации
Your API key, from the cabinet under Seller → API keys.
Тело
Currency is priced per unit out of a stock you keep, and handed over by
hand — there is no listing price, no unit pool and no gallery. The
three quantities are counted in the product's own scale: for a
product sold by the million, stock_quantity: 500 is 500 million.
The game's slug.
8 - 128One of the game category's products — GET .../products.
US cents per one of the product's scale.
How much you have, counted in the product's scale.
The smallest order you will take.
A key from GET /v1/offers/delivery-methods.
What the buyer is told to do at handover, in your words.
2048The handover time you promise.
What the value counts.
minutes, hours, days 4096Up to 500 characters in all, counted as the tags joined with ", ". No commas inside a tag. Stored trimmed, lower-cased and deduplicated.
The category's own fields — read them from its schema.
Ответ
Created
How a listing sold by hand promises to hand over.
The category's own fields, keyed by the schema's key.
draft on create, then active once you publish it. paused and
archived are yours too, through pause and DELETE. reserved
and sold follow an order. removed is a takedown after
publishing, which no call in this API performs.
draft, active, paused, reserved, sold, removed, archived When publish put it on the marketplace. null while it is a
draft, and written once — pausing and unpausing leave it alone.
The handover time promised, read together with the unit — 2 and hours.
What the value counts. Both are null on a listing delivered instantly.
minutes, hours, days, null Always USD.
"USD"
The product this listing sells, from GET .../products.
US cents per one of the product's scale.
What is left, in that same scale.
The smallest order this listing takes.
The key this listing hands over by.
What the buyer is told to do at handover.
