Node.js
import Shoply from "@shoplygg/node";
const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });
const result = await shoply.resellerAnnouncements.list();<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->resellerAnnouncements->list();
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.resellerAnnouncements.list()
curl --request GET \
--url https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements"
req, _ := http.NewRequest("GET", 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.get("https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements")
.header("Authorization", "Bearer <token>")
.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::Get.new(url)
request["Authorization"] = 'Bearer <token>'
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, UTC.",
"pinned": true,
"createdAt": "2026-11-09 11:32:36.213",
"updatedAt": "2026-11-09 11:32:36.220",
"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": {}
}Resellers
List announcements
What the store tells its resellers, in a bar on every page of the panel, pinned ones first, then the newest. meta.resellers is how many people can read them (everybody on every reseller’s team), and meta.bounds the lengths and how many a panel keeps.
Needs the resellers.read permission (Read Resellers).
GET
/
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.list();<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->resellerAnnouncements->list();
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.resellerAnnouncements.list()
curl --request GET \
--url https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements"
req, _ := http.NewRequest("GET", 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.get("https://api.shoply.gg/v1/stores/{storeId}/resellers/announcements")
.header("Authorization", "Bearer <token>")
.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::Get.new(url)
request["Authorization"] = 'Bearer <token>'
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, UTC.",
"pinned": true,
"createdAt": "2026-11-09 11:32:36.213",
"updatedAt": "2026-11-09 11:32:36.220",
"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": {}
}
