curl --request POST \
--url https://api.moonup.gg/v1/offers/gift-cards/{id}/publish \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.moonup.gg/v1/offers/gift-cards/{id}/publish"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.moonup.gg/v1/offers/gift-cards/{id}/publish', 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/gift-cards/{id}/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.moonup.gg/v1/offers/gift-cards/{id}/publish"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/gift-cards/{id}/publish")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonup.gg/v1/offers/gift-cards/{id}/publish")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
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",
"moderation_reason_code": "prohibited_item",
"moderation_note": "<string>",
"price": 123,
"currency": "USD",
"images": [
"<string>"
],
"delivery_method": "<string>"
}{
"error": "unauthorized"
}{
"error": "not_found"
}{
"error": "delivery_instructions_required"
}Publish one of your gift-card draft listings
Puts a draft on the marketplace. Buyers can see and buy it the moment
this returns — nothing reviews it first.
A listing with nothing left to sell is refused with 409: add stock
first.
curl --request POST \
--url https://api.moonup.gg/v1/offers/gift-cards/{id}/publish \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.moonup.gg/v1/offers/gift-cards/{id}/publish"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.moonup.gg/v1/offers/gift-cards/{id}/publish', 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/gift-cards/{id}/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.moonup.gg/v1/offers/gift-cards/{id}/publish"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/gift-cards/{id}/publish")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.moonup.gg/v1/offers/gift-cards/{id}/publish")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
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",
"moderation_reason_code": "prohibited_item",
"moderation_note": "<string>",
"price": 123,
"currency": "USD",
"images": [
"<string>"
],
"delivery_method": "<string>"
}{
"error": "unauthorized"
}{
"error": "not_found"
}{
"error": "delivery_instructions_required"
}Yetkilendirmeler
Your API key, from the cabinet under Seller → API keys.
Yol Parametreleri
Yanıt
OK
What every category's listing carries, whatever it sells.
The category's own fields, keyed by the schema's key.
draft on create, then active once you publish it; unpublish
takes it back to draft. archived is yours too, through DELETE. sold
follows an order: the last unit went to a closed one.
changes_requested is moderation sending a live listing back:
it is off the marketplace, moderation_reason_code says why, and
your next PATCH makes it a draft to publish again.
draft, active, changes_requested, sold, archived When publish put it on the marketplace. null while it is a
draft, and written once — pausing and unpausing leave it alone.
Why moderation asked for changes. Kept through the PATCH that
makes the listing a draft, null once it is published again.
prohibited_item, misleading_description, stolen_images, invalid_price, insufficient_details, other, null What moderation wrote to you along with the reason, if anything.
US cents.
Always USD.
"USD"
The key this listing hands over by.
