Import From Crawl
curl --request POST \
--url https://api.merchantops.ai/api/products/import-from-crawl \
--header 'Content-Type: application/json' \
--data '
{
"discovery_job_id": "<string>",
"enrich_product": true,
"scrape_brand_site": true,
"search_lakehouse": true,
"selected_urls": [
"<string>"
]
}
'import requests
url = "https://api.merchantops.ai/api/products/import-from-crawl"
payload = {
"discovery_job_id": "<string>",
"enrich_product": True,
"scrape_brand_site": True,
"search_lakehouse": True,
"selected_urls": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
discovery_job_id: '<string>',
enrich_product: true,
scrape_brand_site: true,
search_lakehouse: true,
selected_urls: ['<string>']
})
};
fetch('https://api.merchantops.ai/api/products/import-from-crawl', 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/import-from-crawl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'discovery_job_id' => '<string>',
'enrich_product' => true,
'scrape_brand_site' => true,
'search_lakehouse' => true,
'selected_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.merchantops.ai/api/products/import-from-crawl"
payload := strings.NewReader("{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.merchantops.ai/api/products/import-from-crawl")
.header("Content-Type", "application/json")
.body("{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.merchantops.ai/api/products/import-from-crawl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"discovery_job_id": "<string>",
"import_job_id": "<string>",
"message": "<string>",
"urls_to_import": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Products
Import From Crawl
Import selected URLs from crawl discoveries as products.
Authentication Required: Requires product:write permission.
Creates an enrichment job and queues selected URLs for import.
POST
/
api
/
products
/
import-from-crawl
Import From Crawl
curl --request POST \
--url https://api.merchantops.ai/api/products/import-from-crawl \
--header 'Content-Type: application/json' \
--data '
{
"discovery_job_id": "<string>",
"enrich_product": true,
"scrape_brand_site": true,
"search_lakehouse": true,
"selected_urls": [
"<string>"
]
}
'import requests
url = "https://api.merchantops.ai/api/products/import-from-crawl"
payload = {
"discovery_job_id": "<string>",
"enrich_product": True,
"scrape_brand_site": True,
"search_lakehouse": True,
"selected_urls": ["<string>"]
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
discovery_job_id: '<string>',
enrich_product: true,
scrape_brand_site: true,
search_lakehouse: true,
selected_urls: ['<string>']
})
};
fetch('https://api.merchantops.ai/api/products/import-from-crawl', 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/import-from-crawl",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'discovery_job_id' => '<string>',
'enrich_product' => true,
'scrape_brand_site' => true,
'search_lakehouse' => true,
'selected_urls' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.merchantops.ai/api/products/import-from-crawl"
payload := strings.NewReader("{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.merchantops.ai/api/products/import-from-crawl")
.header("Content-Type", "application/json")
.body("{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.merchantops.ai/api/products/import-from-crawl")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"discovery_job_id\": \"<string>\",\n \"enrich_product\": true,\n \"scrape_brand_site\": true,\n \"search_lakehouse\": true,\n \"selected_urls\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"discovery_job_id": "<string>",
"import_job_id": "<string>",
"message": "<string>",
"urls_to_import": 123
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"ctx": {},
"input": "<unknown>"
}
]
}Cookies
Body
application/json
Request model for importing selected URLs as products.
The discovery job ID
Run AI enrichment after import
Scrape brand site during enrichment
Search lakehouse for existing data
List of URLs to import (if None, uses all selected)