Node.js
import Shoply from "@shoplygg/node";
const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });
const result = await shoply.resellerAnnouncements.create({
title: "New stock on Friday",
body: "...",
});<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->resellerAnnouncements->create([
'title' => 'New stock on Friday',
'body' => '...',
]);
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.resellerAnnouncements.create(title="New stock on Friday", body="...")
curl --request POST \
--url https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "New stock on Friday",
"body": "<string>",
"pinned": false
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements"
payload := strings.NewReader("{\n \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\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.shoply.gg/v1/stores/{storeId}/resellers/announcements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements")
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 \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": null,
"code": null,
"data": {
"id": "d70740da-3777-4497-89df-9a5c2421a95b",
"title": "New stock on Friday",
"body": "Every option of Northwind Pro is restocked on Friday morning.",
"pinned": true,
"createdAt": "2026-11-09 11:32:36.213",
"updatedAt": "2026-11-09 11:32:36.213",
"closes": 0
},
"meta": {
"resellers": 2,
"bounds": {
"title": 100,
"body": 1000,
"kept": 100
}
}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}Resellers
Post an announcement
Every reseller sees it on the panel from their next page. Nobody is emailed. A panel keeps up to 100: past that, a new one is refused with announcement_limit.
Needs the resellers.write permission (Change Resellers).
POST
/
stores
/
{storeId}
/
resellers
/
announcements
Node.js
import Shoply from "@shoplygg/node";
const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });
const result = await shoply.resellerAnnouncements.create({
title: "New stock on Friday",
body: "...",
});<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->resellerAnnouncements->create([
'title' => 'New stock on Friday',
'body' => '...',
]);
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.resellerAnnouncements.create(title="New stock on Friday", body="...")
curl --request POST \
--url https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"title": "New stock on Friday",
"body": "<string>",
"pinned": false
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements"
payload := strings.NewReader("{\n \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\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.shoply.gg/v1/stores/{storeId}/resellers/announcements")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements")
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 \"title\": \"New stock on Friday\",\n \"body\": \"<string>\",\n \"pinned\": false\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": null,
"code": null,
"data": {
"id": "d70740da-3777-4497-89df-9a5c2421a95b",
"title": "New stock on Friday",
"body": "Every option of Northwind Pro is restocked on Friday morning.",
"pinned": true,
"createdAt": "2026-11-09 11:32:36.213",
"updatedAt": "2026-11-09 11:32:36.213",
"closes": 0
},
"meta": {
"resellers": 2,
"bounds": {
"title": 100,
"body": 1000,
"kept": 100
}
}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}{
"success": false,
"message": "<string>",
"code": "<string>",
"data": null,
"errors": {}
}Authorizations
Headers
Path Parameters
Body
application/json

