const response = await fetch("https://api.sudomock.com/api/v1/photo-mockups", {
method: "GET",
headers: { "x-api-key": "sm_your_api_key" },
});
const data = await response.json();
console.log(data);
<?php
$ch = curl_init("https://api.sudomock.com/api/v1/photo-mockups");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"x-api-key: sm_your_api_key",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.get(
"https://api.sudomock.com/api/v1/photo-mockups",
headers={"x-api-key": "sm_your_api_key"},
)
response.raise_for_status()
print(response.json())
require "net/http"
require "uri"
uri = URI("https://api.sudomock.com/api/v1/photo-mockups")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "sm_your_api_key"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.body
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.sudomock.com/api/v1/photo-mockups", nil)
if err != nil {
panic(err)
}
req.Header.Set("x-api-key", "sm_your_api_key")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sudomock.com/api/v1/photo-mockups"))
.header("x-api-key", "sm_your_api_key")
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
using System.Text;
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.sudomock.com/api/v1/photo-mockups");
request.Headers.Add("x-api-key", "sm_your_api_key");
var client = new HttpClient();
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
curl -X GET "https://api.sudomock.com/api/v1/photo-mockups" \
-H "x-api-key: sm_your_api_key"
{
"data": [
{
"created_at": "2026-09-18T10:24:31.482913Z",
"customizable": true,
"mockup_id": "893ea326-278b-480b-b130-87dd6aee06dc",
"name": "Front view",
"print_areas": [
{
"name": "Front",
"points": [
[
518.0,
646.0
],
[
1534.0,
638.0
],
[
1541.0,
1662.0
],
[
511.0,
1670.0
]
],
"print_area_id": "19be48d4-c810-4420-86e3-7ec2a4d85571",
"sort_order": 0
}
],
"source_height": 2048,
"source_width": 2048,
"status": "ready",
"updated_at": "2026-09-18T10:41:07.118204Z",
"version": 1,
"thumbnail_url": null
},
{
"created_at": "2026-09-16T08:12:55.301764Z",
"customizable": true,
"mockup_id": "5c74b1e0-9f38-4a26-b0d5-6e2a83c94f17",
"name": "Ceramic mug",
"print_areas": [],
"source_height": 1600,
"source_width": 1600,
"status": "ready",
"updated_at": "2026-09-16T08:13:42.669102Z",
"version": 1,
"thumbnail_url": null
}
],
"limit": 20,
"offset": 0,
"success": true,
"total": 2
}
Retrieve a list of photo mockups
Returns a paginated list of the user’s photo mockups with print area summaries. Each mockup includes its status, thumbnail, dimensions, and print area names/bboxes. Ordered by creation date (newest first).
GET
/
api
/
v1
/
photo-mockups
const response = await fetch("https://api.sudomock.com/api/v1/photo-mockups", {
method: "GET",
headers: { "x-api-key": "sm_your_api_key" },
});
const data = await response.json();
console.log(data);
<?php
$ch = curl_init("https://api.sudomock.com/api/v1/photo-mockups");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"x-api-key: sm_your_api_key",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.get(
"https://api.sudomock.com/api/v1/photo-mockups",
headers={"x-api-key": "sm_your_api_key"},
)
response.raise_for_status()
print(response.json())
require "net/http"
require "uri"
uri = URI("https://api.sudomock.com/api/v1/photo-mockups")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "sm_your_api_key"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.body
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.sudomock.com/api/v1/photo-mockups", nil)
if err != nil {
panic(err)
}
req.Header.Set("x-api-key", "sm_your_api_key")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sudomock.com/api/v1/photo-mockups"))
.header("x-api-key", "sm_your_api_key")
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
using System.Text;
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.sudomock.com/api/v1/photo-mockups");
request.Headers.Add("x-api-key", "sm_your_api_key");
var client = new HttpClient();
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
curl -X GET "https://api.sudomock.com/api/v1/photo-mockups" \
-H "x-api-key: sm_your_api_key"
{
"data": [
{
"created_at": "2026-09-18T10:24:31.482913Z",
"customizable": true,
"mockup_id": "893ea326-278b-480b-b130-87dd6aee06dc",
"name": "Front view",
"print_areas": [
{
"name": "Front",
"points": [
[
518.0,
646.0
],
[
1534.0,
638.0
],
[
1541.0,
1662.0
],
[
511.0,
1670.0
]
],
"print_area_id": "19be48d4-c810-4420-86e3-7ec2a4d85571",
"sort_order": 0
}
],
"source_height": 2048,
"source_width": 2048,
"status": "ready",
"updated_at": "2026-09-18T10:41:07.118204Z",
"version": 1,
"thumbnail_url": null
},
{
"created_at": "2026-09-16T08:12:55.301764Z",
"customizable": true,
"mockup_id": "5c74b1e0-9f38-4a26-b0d5-6e2a83c94f17",
"name": "Ceramic mug",
"print_areas": [],
"source_height": 1600,
"source_width": 1600,
"status": "ready",
"updated_at": "2026-09-16T08:13:42.669102Z",
"version": 1,
"thumbnail_url": null
}
],
"limit": 20,
"offset": 0,
"success": true,
"total": 2
}
const response = await fetch("https://api.sudomock.com/api/v1/photo-mockups", {
method: "GET",
headers: { "x-api-key": "sm_your_api_key" },
});
const data = await response.json();
console.log(data);
<?php
$ch = curl_init("https://api.sudomock.com/api/v1/photo-mockups");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"x-api-key: sm_your_api_key",
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
import requests
response = requests.get(
"https://api.sudomock.com/api/v1/photo-mockups",
headers={"x-api-key": "sm_your_api_key"},
)
response.raise_for_status()
print(response.json())
require "net/http"
require "uri"
uri = URI("https://api.sudomock.com/api/v1/photo-mockups")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "sm_your_api_key"
response = Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.body
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, err := http.NewRequest("GET", "https://api.sudomock.com/api/v1/photo-mockups", nil)
if err != nil {
panic(err)
}
req.Header.Set("x-api-key", "sm_your_api_key")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.sudomock.com/api/v1/photo-mockups"))
.header("x-api-key", "sm_your_api_key")
.GET()
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
using System.Net.Http;
using System.Text;
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.sudomock.com/api/v1/photo-mockups");
request.Headers.Add("x-api-key", "sm_your_api_key");
var client = new HttpClient();
var response = await client.SendAsync(request);
Console.WriteLine(await response.Content.ReadAsStringAsync());
curl -X GET "https://api.sudomock.com/api/v1/photo-mockups" \
-H "x-api-key: sm_your_api_key"
{
"data": [
{
"created_at": "2026-09-18T10:24:31.482913Z",
"customizable": true,
"mockup_id": "893ea326-278b-480b-b130-87dd6aee06dc",
"name": "Front view",
"print_areas": [
{
"name": "Front",
"points": [
[
518.0,
646.0
],
[
1534.0,
638.0
],
[
1541.0,
1662.0
],
[
511.0,
1670.0
]
],
"print_area_id": "19be48d4-c810-4420-86e3-7ec2a4d85571",
"sort_order": 0
}
],
"source_height": 2048,
"source_width": 2048,
"status": "ready",
"updated_at": "2026-09-18T10:41:07.118204Z",
"version": 1,
"thumbnail_url": null
},
{
"created_at": "2026-09-16T08:12:55.301764Z",
"customizable": true,
"mockup_id": "5c74b1e0-9f38-4a26-b0d5-6e2a83c94f17",
"name": "Ceramic mug",
"print_areas": [],
"source_height": 1600,
"source_width": 1600,
"status": "ready",
"updated_at": "2026-09-16T08:13:42.669102Z",
"version": 1,
"thumbnail_url": null
}
],
"limit": 20,
"offset": 0,
"success": true,
"total": 2
}
Authorizations
API key with sm_ prefix. Get your key at https://sudomock.com/dashboard/api-keys
Query Parameters
Items per page (max 100)
Required range:
1 <= x <= 100Pagination offset
Required range:
x >= 0Return only mockups ready for customization
Response
200 - application/json
Successful Response
The mockups on this page, newest first.
Show child attributes
Show child attributes
Total number of mockups matching the query.
Results per page.
Number of mockups skipped before this page.
Always true on a successful response.
Was this page helpful?
⌘I