List Product Keys
curl --request GET \
--url https://api.merchantops.ai/api/products/keysimport requests
url = "https://api.merchantops.ai/api/products/keys"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.merchantops.ai/api/products/keys', 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.merchantops.ai/api/products/keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.merchantops.ai/api/products/keys"
req, _ := http.NewRequest("GET", url, nil)
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.merchantops.ai/api/products/keys")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.merchantops.ai/api/products/keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Products
List Product Keys
Return up to PRODUCT_KEYS_HARD_CAP product keys matching the given filters.
Same filter shape as GET /api/products so the UI can call this with
the existing query state and get back the full key list for bulk
selection. truncated is true if the underlying total exceeds the cap.
GET
/
api
/
products
/
keys
List Product Keys
curl --request GET \
--url https://api.merchantops.ai/api/products/keysimport requests
url = "https://api.merchantops.ai/api/products/keys"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.merchantops.ai/api/products/keys', 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.merchantops.ai/api/products/keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$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.merchantops.ai/api/products/keys"
req, _ := http.NewRequest("GET", url, nil)
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.merchantops.ai/api/products/keys")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.merchantops.ai/api/products/keys")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Query Parameters
Filter to products that have any record (any status) in the given catalog batch.
Repeatable: key:value
Repeatable: restrict to these exact product keys (max 1000; 400 beyond).
Case-insensitive substring match on product name.
Case-insensitive substring match on product key.
Cookies
Response
Successful Response
The response is of type Response List Product Keys Api Products Keys Get · object.