Search Products
curl --request GET \
--url https://api.launchmystore.io/search/suggest.json \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.launchmystore.io/search/suggest.json"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.launchmystore.io/search/suggest.json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.launchmystore.io/search/suggest.json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.launchmystore.io/search/suggest.json"
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.launchmystore.io/search/suggest.json")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/search/suggest.json")
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_bodySearch
Search Products
Search for products by keyword
GET
/
search
/
suggest.json
Search Products
curl --request GET \
--url https://api.launchmystore.io/search/suggest.json \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.launchmystore.io/search/suggest.json"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.launchmystore.io/search/suggest.json', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.launchmystore.io/search/suggest.json",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.launchmystore.io/search/suggest.json"
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.launchmystore.io/search/suggest.json")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.launchmystore.io/search/suggest.json")
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_bodySearch Products
There is no dedicated/search/products.json endpoint with faceted
aggregations. Product search is available in two real forms, depending on
whether you are building a storefront experience or calling the OAuth App
API.
Option 1 — Storefront predictive search
GET /search/suggest.json runs against your store’s storefront origin (no
OAuth token required) and returns predictive-search results
across products, collections, articles and pages.
curl -X GET "https://your-store.launchmystore.io/search/suggest.json?q=t-shirt&resources[type]=product&resources[limit]=10"
Parameters
string
required
Search query string. (Alias:
query.)string
default:"product,collection,article,page"
Comma-separated resource types to search. Allowed values:
product,
collection, article, page. (Alias: type.)integer
default:"10"
Maximum results per resource type (capped at 50). (Alias:
limit.)Example Response
The response matches the predictive-search shape: aresources.results
object keyed by resource type. There are no filters/facet aggregations.
{
"resources": {
"results": {
"products": [
{
"id": "prod_abc123",
"title": "Classic Cotton T-Shirt",
"handle": "classic-cotton-t-shirt",
"description": "A comfortable everyday t-shirt...",
"published_at": "2024-01-15T10:00:00Z",
"vendor": "MyBrand",
"product_type": "Apparel",
"tags": ["cotton", "casual", "summer"],
"price": "25.00",
"price_min": "25.00",
"price_max": "25.00",
"available": true,
"image": "https://cdn.launchmystore.io/images/tshirt-1.jpg",
"featured_image": "https://cdn.launchmystore.io/images/tshirt-1.jpg",
"url": "/products/classic-cotton-t-shirt"
}
],
"collections": [],
"articles": [],
"pages": []
}
}
}
Option 2 — App API product listing with title filter
The OAuth App API does not expose a search route. Instead, useGET /api/v1/products.json with the title query parameter, which performs a
case-insensitive substring match on the product name. This requires the
read_products scope.
curl -X GET "https://api.launchmystore.io/api/v1/products.json?title=t-shirt&page=1&limit=50" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Parameters
string
Case-insensitive substring match on the product name.
integer
default:"1"
Page number for pagination.
integer
default:"50"
Number of results per page.
string
Filter by product status.
string
Filter by exact handle.
string
Filter by a comma-separated list of product IDs.
There are no
sort, vendor, product_type, tag, collection_id,
price_min, price_max, available, or fields filters on this endpoint,
and no faceted filters aggregation block. Unrecognized query parameters are
ignored.Example Response
The App API returns the platform response envelope (status, state,
message, data). The data object carries the matching products plus paging
counters. See List Products for the full field
list.
{
"status": 200,
"state": "success",
"message": null,
"data": {
"products": [
{
"id": "prod_abc123",
"name": "Classic Cotton T-Shirt",
"handle": "classic-cotton-t-shirt",
"status": "active",
"variants": []
}
],
"total": 1,
"page": 1,
"limit": 50
},
"count": null,
"pagination": null
}