Products
Search Products
Fuzzy search the product catalog
GET
/
products
/
search
cURL
curl --request GET \
--url 'https://api.beachdepository.com/v1/products/search?q=1%20oz%20gold%20eagle&limit=25' \
--header 'Authorization: Bearer <token>'
const params = new URLSearchParams({ q: "1 oz gold eagle", limit: "25" })
const response = await fetch(`https://api.beachdepository.com/v1/products/search?${params}`, {
method: "GET",
headers: {
Authorization: "Bearer <token>",
},
})
const data = await response.json()
import requests
response = requests.get(
"https://api.beachdepository.com/v1/products/search",
params={"q": "1 oz gold eagle", "limit": 25},
headers={
"Authorization": "Bearer <token>",
},
)
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
query := url.Values{"q": {"1 oz gold eagle"}, "limit": {"25"}}
req, _ := http.NewRequest("GET", "https://api.beachdepository.com/v1/products/search?"+query.Encode(), 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))
}
{
"data": [
{
"id": "jh7prod456",
"title": "1 oz American Gold Eagle",
"sku": "AGE-1OZ",
"productType": "precious_metal",
"subcategory": "Gold Coins",
"isSerialized": false,
"insuredValueCents": "412350",
"images": [
{
"url": "https://files.beachdepository.com/products/age-1oz-front.jpg",
"label": "primary"
}
],
"createdAt": "2025-04-01T14:00:00Z"
}
],
"pagination": {
"page": 1,
"hasMore": false
}
}
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Product search is temporarily unavailable"
}
}
Returns catalog products ranked by relevance to
Results are ordered by relevance. A
q. Matching tolerates typos and partial SKUs. insuredValueCents is the current insured value of one unit, in cents. Use List Products to browse the catalog without a query.
Authorizations
string
required
Send
Bearer <token> in this header. The key needs inventory:read.Query Parameters
string
required
Search text. Matches title, manufacturer, SKU, and metal. Up to 200 characters.
number
default:"1"
number
default:"25"
cURL
curl --request GET \
--url 'https://api.beachdepository.com/v1/products/search?q=1%20oz%20gold%20eagle&limit=25' \
--header 'Authorization: Bearer <token>'
const params = new URLSearchParams({ q: "1 oz gold eagle", limit: "25" })
const response = await fetch(`https://api.beachdepository.com/v1/products/search?${params}`, {
method: "GET",
headers: {
Authorization: "Bearer <token>",
},
})
const data = await response.json()
import requests
response = requests.get(
"https://api.beachdepository.com/v1/products/search",
params={"q": "1 oz gold eagle", "limit": 25},
headers={
"Authorization": "Bearer <token>",
},
)
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
query := url.Values{"q": {"1 oz gold eagle"}, "limit": {"25"}}
req, _ := http.NewRequest("GET", "https://api.beachdepository.com/v1/products/search?"+query.Encode(), 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))
}
{
"data": [
{
"id": "jh7prod456",
"title": "1 oz American Gold Eagle",
"sku": "AGE-1OZ",
"productType": "precious_metal",
"subcategory": "Gold Coins",
"isSerialized": false,
"insuredValueCents": "412350",
"images": [
{
"url": "https://files.beachdepository.com/products/age-1oz-front.jpg",
"label": "primary"
}
],
"createdAt": "2025-04-01T14:00:00Z"
}
],
"pagination": {
"page": 1,
"hasMore": false
}
}
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Product search is temporarily unavailable"
}
}
503 response means search is down. Retry the request.⌘I
cURL
curl --request GET \
--url 'https://api.beachdepository.com/v1/products/search?q=1%20oz%20gold%20eagle&limit=25' \
--header 'Authorization: Bearer <token>'
const params = new URLSearchParams({ q: "1 oz gold eagle", limit: "25" })
const response = await fetch(`https://api.beachdepository.com/v1/products/search?${params}`, {
method: "GET",
headers: {
Authorization: "Bearer <token>",
},
})
const data = await response.json()
import requests
response = requests.get(
"https://api.beachdepository.com/v1/products/search",
params={"q": "1 oz gold eagle", "limit": 25},
headers={
"Authorization": "Bearer <token>",
},
)
package main
import (
"fmt"
"io"
"net/http"
"net/url"
)
func main() {
query := url.Values{"q": {"1 oz gold eagle"}, "limit": {"25"}}
req, _ := http.NewRequest("GET", "https://api.beachdepository.com/v1/products/search?"+query.Encode(), 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))
}
{
"data": [
{
"id": "jh7prod456",
"title": "1 oz American Gold Eagle",
"sku": "AGE-1OZ",
"productType": "precious_metal",
"subcategory": "Gold Coins",
"isSerialized": false,
"insuredValueCents": "412350",
"images": [
{
"url": "https://files.beachdepository.com/products/age-1oz-front.jpg",
"label": "primary"
}
],
"createdAt": "2025-04-01T14:00:00Z"
}
],
"pagination": {
"page": 1,
"hasMore": false
}
}
{
"error": {
"code": "SERVICE_UNAVAILABLE",
"message": "Product search is temporarily unavailable"
}
}