Node.js
import Shoply from "@shoplygg/node";
const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });
const result = await shoply.requests.show("REQUEST_ID");<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->requests->show('REQUEST_ID');
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.requests.show("REQUEST_ID")
curl --request GET \
--url https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId} \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId}"
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}/api-requests/{requestId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId}")
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": "7d763d2d-1b9b-4f60-a6fd-9ab8848c0e3d",
"method": "GET",
"path": "/v1/stores/743d82fb-6aad-44bb-ab00-d54c4b0eecb7/webhook-deliveries",
"query": "",
"operation": "webhookDeliveries.list",
"status": 200,
"code": null,
"durationMs": 3,
"ip": "127.0.0.1",
"userAgent": "",
"apiKey": {
"id": "a253e656-a027-41b4-8302-786fd85cc6a6",
"name": "Order sync",
"prefix": "shoply_sk_3f9a1c"
},
"createdAt": "2026-10-22T16:20:20.433Z",
"requestBody": null,
"responseBody": "{\"success\":true,\"message\":null,\"code\":null,\"data\":[],\"pages\":1,\"total\":0,\"meta\":{\"keptDays\":30,\"perPageMax\":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": {}
}API requests
Get an API request
One request, with what was sent and what came back. Long bodies are cut short, and values that are secrets or goods (a password, license keys going into stock) are not kept. A request’s ID is the X-Request-Id header of its answer.
Needs the logs.read permission (Read API Requests).
GET
/
stores
/
{storeId}
/
api-requests
/
{requestId}
Node.js
import Shoply from "@shoplygg/node";
const shoply = new Shoply({ apiKey: process.env.SHOPLY_API_KEY });
const result = await shoply.requests.show("REQUEST_ID");<?php
require 'vendor/autoload.php';
$shoply = new Shoply\Client(['apiKey' => getenv('SHOPLY_API_KEY')]);
$result = $shoply->requests->show('REQUEST_ID');
import shoply
client = shoply.Client() # reads SHOPLY_API_KEY
result = client.requests.show("REQUEST_ID")
curl --request GET \
--url https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId} \
--header 'Authorization: Bearer <token>'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId}"
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}/api-requests/{requestId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.shoply.gg/v1/stores/{storeId}/api-requests/{requestId}")
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": "7d763d2d-1b9b-4f60-a6fd-9ab8848c0e3d",
"method": "GET",
"path": "/v1/stores/743d82fb-6aad-44bb-ab00-d54c4b0eecb7/webhook-deliveries",
"query": "",
"operation": "webhookDeliveries.list",
"status": 200,
"code": null,
"durationMs": 3,
"ip": "127.0.0.1",
"userAgent": "",
"apiKey": {
"id": "a253e656-a027-41b4-8302-786fd85cc6a6",
"name": "Order sync",
"prefix": "shoply_sk_3f9a1c"
},
"createdAt": "2026-10-22T16:20:20.433Z",
"requestBody": null,
"responseBody": "{\"success\":true,\"message\":null,\"code\":null,\"data\":[],\"pages\":1,\"total\":0,\"meta\":{\"keptDays\":30,\"perPageMax\":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": {}
}Authorizations
A secret API key, made under Developers in the dashboard: Authorization: Bearer shoply_sk_...
Path Parameters
The store's ID. A key reaches the store it was made in: GET /key answers which.
The request, as its answer's X-Request-Id header named it.

