curl --request POST \
--url https://api.mixpeek.com/v1/retrievers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"description": "<string>",
"visibility": "private",
"marketplace_listing_id": "<string>",
"requires_subscription": false,
"collection_identifiers": [
"<string>"
],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"tags": [
"<string>"
],
"metadata": {},
"display_config": {
"components": {
"result_card": {
"card_click_action": "viewDetails",
"field_order": [
"title",
"description",
"price"
],
"layout": "vertical",
"show_find_similar": true,
"show_thumbnail": true
},
"result_layout": "grid",
"show_hero": true,
"show_results_header": true,
"show_search": true
},
"custom_cta": {
"label": "Search Tips",
"markdown_content": "# Search Tips\n\n- Use quotes for exact phrases\n- Try descriptive terms"
},
"description": "Search through our product catalog",
"exposed_fields": [
"title",
"description",
"price",
"image_url"
],
"external_links": [
{
"name": "GitHub Repository",
"url": "https://github.com/mixpeek/product-search"
},
{
"name": "Blog Post",
"url": "https://blog.mixpeek.com/building-product-search"
}
],
"field_config": {
"price": {
"format": "number",
"format_options": {
"decimals": 2,
"label": "Price",
"prefix": "$"
}
},
"title": {
"format": "text",
"format_options": {
"label": "Product Name",
"truncate_chars": 60
}
}
},
"field_mappings": {
"thumbnail": "image_url",
"title": "title"
},
"inputs": [
{
"field_name": "query",
"field_schema": {
"description": "Search query",
"examples": [
"wireless headphones",
"laptop"
],
"type": "string"
},
"input_type": "text",
"label": "Search Products",
"order": 0,
"placeholder": "What are you looking for?",
"required": true
}
],
"layout": {
"columns": 3,
"gap": "16px",
"mode": "grid"
},
"logo_url": "https://example.com/logo.png",
"markdowns": [
{
"content": "# AI-Powered Product Search\n\nOur search uses **machine learning** to understand your queries and find the most relevant products.\n\n## Features\n\n- **Semantic Search**: Understands meaning, not just keywords\n- **Visual Search**: Upload images to find similar products\n- **Smart Filters**: Automatically suggests relevant filters",
"title": "How it Works"
},
{
"content": "## Tips for Better Results\n\n1. Use descriptive terms (e.g., \"wireless noise-canceling headphones\")\n2. Try different keywords if you don't find what you're looking for\n3. Use filters to narrow down results\n\n*Happy searching!*",
"title": "Search Guide"
}
],
"template_type": "media-search",
"theme": {
"border_radius": "12px",
"card_style": "elevated",
"font_family": "Inter, sans-serif",
"primary_color": "#007AFF"
},
"title": "Product Search"
}
}
EOFimport requests
url = "https://api.mixpeek.com/v1/retrievers"
payload = {
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"description": "<string>",
"visibility": "private",
"marketplace_listing_id": "<string>",
"requires_subscription": False,
"collection_identifiers": ["<string>"],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"tags": ["<string>"],
"metadata": {},
"display_config": {
"components": {
"result_card": {
"card_click_action": "viewDetails",
"field_order": ["title", "description", "price"],
"layout": "vertical",
"show_find_similar": True,
"show_thumbnail": True
},
"result_layout": "grid",
"show_hero": True,
"show_results_header": True,
"show_search": True
},
"custom_cta": {
"label": "Search Tips",
"markdown_content": "# Search Tips
- Use quotes for exact phrases
- Try descriptive terms"
},
"description": "Search through our product catalog",
"exposed_fields": ["title", "description", "price", "image_url"],
"external_links": [
{
"name": "GitHub Repository",
"url": "https://github.com/mixpeek/product-search"
},
{
"name": "Blog Post",
"url": "https://blog.mixpeek.com/building-product-search"
}
],
"field_config": {
"price": {
"format": "number",
"format_options": {
"decimals": 2,
"label": "Price",
"prefix": "$"
}
},
"title": {
"format": "text",
"format_options": {
"label": "Product Name",
"truncate_chars": 60
}
}
},
"field_mappings": {
"thumbnail": "image_url",
"title": "title"
},
"inputs": [
{
"field_name": "query",
"field_schema": {
"description": "Search query",
"examples": ["wireless headphones", "laptop"],
"type": "string"
},
"input_type": "text",
"label": "Search Products",
"order": 0,
"placeholder": "What are you looking for?",
"required": True
}
],
"layout": {
"columns": 3,
"gap": "16px",
"mode": "grid"
},
"logo_url": "https://example.com/logo.png",
"markdowns": [
{
"content": "# AI-Powered Product Search
Our search uses **machine learning** to understand your queries and find the most relevant products.
## Features
- **Semantic Search**: Understands meaning, not just keywords
- **Visual Search**: Upload images to find similar products
- **Smart Filters**: Automatically suggests relevant filters",
"title": "How it Works"
},
{
"content": "## Tips for Better Results
1. Use descriptive terms (e.g., \"wireless noise-canceling headphones\")
2. Try different keywords if you don't find what you're looking for
3. Use filters to narrow down results
*Happy searching!*",
"title": "Search Guide"
}
],
"template_type": "media-search",
"theme": {
"border_radius": "12px",
"card_style": "elevated",
"font_family": "Inter, sans-serif",
"primary_color": "#007AFF"
},
"title": "Product Search"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
retriever_name: '<string>',
stages: [
{
stage_name: '<string>',
config: {},
batch_size: '<string>',
description: '<string>',
on_error: '<string>',
output_alias: '<string>'
}
],
description: '<string>',
visibility: 'private',
marketplace_listing_id: '<string>',
requires_subscription: false,
collection_identifiers: ['<string>'],
input_schema: {},
budget_limits: {max_credits: 1, max_time_ms: 1},
tags: ['<string>'],
metadata: {},
display_config: {
components: {
result_card: {
card_click_action: 'viewDetails',
field_order: ['title', 'description', 'price'],
layout: 'vertical',
show_find_similar: true,
show_thumbnail: true
},
result_layout: 'grid',
show_hero: true,
show_results_header: true,
show_search: true
},
custom_cta: {
label: 'Search Tips',
markdown_content: '# Search Tips\n\n- Use quotes for exact phrases\n- Try descriptive terms'
},
description: 'Search through our product catalog',
exposed_fields: ['title', 'description', 'price', 'image_url'],
external_links: [
{name: 'GitHub Repository', url: 'https://github.com/mixpeek/product-search'},
{name: 'Blog Post', url: 'https://blog.mixpeek.com/building-product-search'}
],
field_config: {
price: {format: 'number', format_options: {decimals: 2, label: 'Price', prefix: '$'}},
title: {format: 'text', format_options: {label: 'Product Name', truncate_chars: 60}}
},
field_mappings: {thumbnail: 'image_url', title: 'title'},
inputs: [
{
field_name: 'query',
field_schema: {
description: 'Search query',
examples: ['wireless headphones', 'laptop'],
type: 'string'
},
input_type: 'text',
label: 'Search Products',
order: 0,
placeholder: 'What are you looking for?',
required: true
}
],
layout: {columns: 3, gap: '16px', mode: 'grid'},
logo_url: 'https://example.com/logo.png',
markdowns: [
{
content: '# AI-Powered Product Search\n\nOur search uses **machine learning** to understand your queries and find the most relevant products.\n\n## Features\n\n- **Semantic Search**: Understands meaning, not just keywords\n- **Visual Search**: Upload images to find similar products\n- **Smart Filters**: Automatically suggests relevant filters',
title: 'How it Works'
},
{
content: '## Tips for Better Results\n\n1. Use descriptive terms (e.g., "wireless noise-canceling headphones")\n2. Try different keywords if you don\'t find what you\'re looking for\n3. Use filters to narrow down results\n\n*Happy searching!*',
title: 'Search Guide'
}
],
template_type: 'media-search',
theme: {
border_radius: '12px',
card_style: 'elevated',
font_family: 'Inter, sans-serif',
primary_color: '#007AFF'
},
title: 'Product Search'
}
})
};
fetch('https://api.mixpeek.com/v1/retrievers', 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.mixpeek.com/v1/retrievers",
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([
'retriever_name' => '<string>',
'stages' => [
[
'stage_name' => '<string>',
'config' => [
],
'batch_size' => '<string>',
'description' => '<string>',
'on_error' => '<string>',
'output_alias' => '<string>'
]
],
'description' => '<string>',
'visibility' => 'private',
'marketplace_listing_id' => '<string>',
'requires_subscription' => false,
'collection_identifiers' => [
'<string>'
],
'input_schema' => [
],
'budget_limits' => [
'max_credits' => 1,
'max_time_ms' => 1
],
'tags' => [
'<string>'
],
'metadata' => [
],
'display_config' => [
'components' => [
'result_card' => [
'card_click_action' => 'viewDetails',
'field_order' => [
'title',
'description',
'price'
],
'layout' => 'vertical',
'show_find_similar' => true,
'show_thumbnail' => true
],
'result_layout' => 'grid',
'show_hero' => true,
'show_results_header' => true,
'show_search' => true
],
'custom_cta' => [
'label' => 'Search Tips',
'markdown_content' => '# Search Tips
- Use quotes for exact phrases
- Try descriptive terms'
],
'description' => 'Search through our product catalog',
'exposed_fields' => [
'title',
'description',
'price',
'image_url'
],
'external_links' => [
[
'name' => 'GitHub Repository',
'url' => 'https://github.com/mixpeek/product-search'
],
[
'name' => 'Blog Post',
'url' => 'https://blog.mixpeek.com/building-product-search'
]
],
'field_config' => [
'price' => [
'format' => 'number',
'format_options' => [
'decimals' => 2,
'label' => 'Price',
'prefix' => '$'
]
],
'title' => [
'format' => 'text',
'format_options' => [
'label' => 'Product Name',
'truncate_chars' => 60
]
]
],
'field_mappings' => [
'thumbnail' => 'image_url',
'title' => 'title'
],
'inputs' => [
[
'field_name' => 'query',
'field_schema' => [
'description' => 'Search query',
'examples' => [
'wireless headphones',
'laptop'
],
'type' => 'string'
],
'input_type' => 'text',
'label' => 'Search Products',
'order' => 0,
'placeholder' => 'What are you looking for?',
'required' => true
]
],
'layout' => [
'columns' => 3,
'gap' => '16px',
'mode' => 'grid'
],
'logo_url' => 'https://example.com/logo.png',
'markdowns' => [
[
'content' => '# AI-Powered Product Search
Our search uses **machine learning** to understand your queries and find the most relevant products.
## Features
- **Semantic Search**: Understands meaning, not just keywords
- **Visual Search**: Upload images to find similar products
- **Smart Filters**: Automatically suggests relevant filters',
'title' => 'How it Works'
],
[
'content' => '## Tips for Better Results
1. Use descriptive terms (e.g., "wireless noise-canceling headphones")
2. Try different keywords if you don\'t find what you\'re looking for
3. Use filters to narrow down results
*Happy searching!*',
'title' => 'Search Guide'
]
],
'template_type' => 'media-search',
'theme' => [
'border_radius' => '12px',
'card_style' => 'elevated',
'font_family' => 'Inter, sans-serif',
'primary_color' => '#007AFF'
],
'title' => 'Product Search'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.mixpeek.com/v1/retrievers"
payload := strings.NewReader("{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.mixpeek.com/v1/retrievers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}"
response = http.request(request)
puts response.read_body{
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"fusion": "<string>",
"collection_identifiers": [
"<string>"
],
"retriever_id": "<string>",
"description": "<string>",
"collection_ids": [
"<string>"
],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"feature_dependencies": [
{
"extractor": "<string>",
"version": "<string>",
"scheme": "mixpeek",
"output": "<string>"
}
],
"tags": [
"<string>"
],
"metadata": {},
"display_config": {},
"version": 1,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"updated_by": "<string>"
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}Create Retriever
Create a new retriever.
A retriever executes a series of stages to find and process documents from one or more collections.
curl --request POST \
--url https://api.mixpeek.com/v1/retrievers \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"description": "<string>",
"visibility": "private",
"marketplace_listing_id": "<string>",
"requires_subscription": false,
"collection_identifiers": [
"<string>"
],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"tags": [
"<string>"
],
"metadata": {},
"display_config": {
"components": {
"result_card": {
"card_click_action": "viewDetails",
"field_order": [
"title",
"description",
"price"
],
"layout": "vertical",
"show_find_similar": true,
"show_thumbnail": true
},
"result_layout": "grid",
"show_hero": true,
"show_results_header": true,
"show_search": true
},
"custom_cta": {
"label": "Search Tips",
"markdown_content": "# Search Tips\n\n- Use quotes for exact phrases\n- Try descriptive terms"
},
"description": "Search through our product catalog",
"exposed_fields": [
"title",
"description",
"price",
"image_url"
],
"external_links": [
{
"name": "GitHub Repository",
"url": "https://github.com/mixpeek/product-search"
},
{
"name": "Blog Post",
"url": "https://blog.mixpeek.com/building-product-search"
}
],
"field_config": {
"price": {
"format": "number",
"format_options": {
"decimals": 2,
"label": "Price",
"prefix": "$"
}
},
"title": {
"format": "text",
"format_options": {
"label": "Product Name",
"truncate_chars": 60
}
}
},
"field_mappings": {
"thumbnail": "image_url",
"title": "title"
},
"inputs": [
{
"field_name": "query",
"field_schema": {
"description": "Search query",
"examples": [
"wireless headphones",
"laptop"
],
"type": "string"
},
"input_type": "text",
"label": "Search Products",
"order": 0,
"placeholder": "What are you looking for?",
"required": true
}
],
"layout": {
"columns": 3,
"gap": "16px",
"mode": "grid"
},
"logo_url": "https://example.com/logo.png",
"markdowns": [
{
"content": "# AI-Powered Product Search\n\nOur search uses **machine learning** to understand your queries and find the most relevant products.\n\n## Features\n\n- **Semantic Search**: Understands meaning, not just keywords\n- **Visual Search**: Upload images to find similar products\n- **Smart Filters**: Automatically suggests relevant filters",
"title": "How it Works"
},
{
"content": "## Tips for Better Results\n\n1. Use descriptive terms (e.g., \"wireless noise-canceling headphones\")\n2. Try different keywords if you don't find what you're looking for\n3. Use filters to narrow down results\n\n*Happy searching!*",
"title": "Search Guide"
}
],
"template_type": "media-search",
"theme": {
"border_radius": "12px",
"card_style": "elevated",
"font_family": "Inter, sans-serif",
"primary_color": "#007AFF"
},
"title": "Product Search"
}
}
EOFimport requests
url = "https://api.mixpeek.com/v1/retrievers"
payload = {
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"description": "<string>",
"visibility": "private",
"marketplace_listing_id": "<string>",
"requires_subscription": False,
"collection_identifiers": ["<string>"],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"tags": ["<string>"],
"metadata": {},
"display_config": {
"components": {
"result_card": {
"card_click_action": "viewDetails",
"field_order": ["title", "description", "price"],
"layout": "vertical",
"show_find_similar": True,
"show_thumbnail": True
},
"result_layout": "grid",
"show_hero": True,
"show_results_header": True,
"show_search": True
},
"custom_cta": {
"label": "Search Tips",
"markdown_content": "# Search Tips
- Use quotes for exact phrases
- Try descriptive terms"
},
"description": "Search through our product catalog",
"exposed_fields": ["title", "description", "price", "image_url"],
"external_links": [
{
"name": "GitHub Repository",
"url": "https://github.com/mixpeek/product-search"
},
{
"name": "Blog Post",
"url": "https://blog.mixpeek.com/building-product-search"
}
],
"field_config": {
"price": {
"format": "number",
"format_options": {
"decimals": 2,
"label": "Price",
"prefix": "$"
}
},
"title": {
"format": "text",
"format_options": {
"label": "Product Name",
"truncate_chars": 60
}
}
},
"field_mappings": {
"thumbnail": "image_url",
"title": "title"
},
"inputs": [
{
"field_name": "query",
"field_schema": {
"description": "Search query",
"examples": ["wireless headphones", "laptop"],
"type": "string"
},
"input_type": "text",
"label": "Search Products",
"order": 0,
"placeholder": "What are you looking for?",
"required": True
}
],
"layout": {
"columns": 3,
"gap": "16px",
"mode": "grid"
},
"logo_url": "https://example.com/logo.png",
"markdowns": [
{
"content": "# AI-Powered Product Search
Our search uses **machine learning** to understand your queries and find the most relevant products.
## Features
- **Semantic Search**: Understands meaning, not just keywords
- **Visual Search**: Upload images to find similar products
- **Smart Filters**: Automatically suggests relevant filters",
"title": "How it Works"
},
{
"content": "## Tips for Better Results
1. Use descriptive terms (e.g., \"wireless noise-canceling headphones\")
2. Try different keywords if you don't find what you're looking for
3. Use filters to narrow down results
*Happy searching!*",
"title": "Search Guide"
}
],
"template_type": "media-search",
"theme": {
"border_radius": "12px",
"card_style": "elevated",
"font_family": "Inter, sans-serif",
"primary_color": "#007AFF"
},
"title": "Product Search"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
retriever_name: '<string>',
stages: [
{
stage_name: '<string>',
config: {},
batch_size: '<string>',
description: '<string>',
on_error: '<string>',
output_alias: '<string>'
}
],
description: '<string>',
visibility: 'private',
marketplace_listing_id: '<string>',
requires_subscription: false,
collection_identifiers: ['<string>'],
input_schema: {},
budget_limits: {max_credits: 1, max_time_ms: 1},
tags: ['<string>'],
metadata: {},
display_config: {
components: {
result_card: {
card_click_action: 'viewDetails',
field_order: ['title', 'description', 'price'],
layout: 'vertical',
show_find_similar: true,
show_thumbnail: true
},
result_layout: 'grid',
show_hero: true,
show_results_header: true,
show_search: true
},
custom_cta: {
label: 'Search Tips',
markdown_content: '# Search Tips\n\n- Use quotes for exact phrases\n- Try descriptive terms'
},
description: 'Search through our product catalog',
exposed_fields: ['title', 'description', 'price', 'image_url'],
external_links: [
{name: 'GitHub Repository', url: 'https://github.com/mixpeek/product-search'},
{name: 'Blog Post', url: 'https://blog.mixpeek.com/building-product-search'}
],
field_config: {
price: {format: 'number', format_options: {decimals: 2, label: 'Price', prefix: '$'}},
title: {format: 'text', format_options: {label: 'Product Name', truncate_chars: 60}}
},
field_mappings: {thumbnail: 'image_url', title: 'title'},
inputs: [
{
field_name: 'query',
field_schema: {
description: 'Search query',
examples: ['wireless headphones', 'laptop'],
type: 'string'
},
input_type: 'text',
label: 'Search Products',
order: 0,
placeholder: 'What are you looking for?',
required: true
}
],
layout: {columns: 3, gap: '16px', mode: 'grid'},
logo_url: 'https://example.com/logo.png',
markdowns: [
{
content: '# AI-Powered Product Search\n\nOur search uses **machine learning** to understand your queries and find the most relevant products.\n\n## Features\n\n- **Semantic Search**: Understands meaning, not just keywords\n- **Visual Search**: Upload images to find similar products\n- **Smart Filters**: Automatically suggests relevant filters',
title: 'How it Works'
},
{
content: '## Tips for Better Results\n\n1. Use descriptive terms (e.g., "wireless noise-canceling headphones")\n2. Try different keywords if you don\'t find what you\'re looking for\n3. Use filters to narrow down results\n\n*Happy searching!*',
title: 'Search Guide'
}
],
template_type: 'media-search',
theme: {
border_radius: '12px',
card_style: 'elevated',
font_family: 'Inter, sans-serif',
primary_color: '#007AFF'
},
title: 'Product Search'
}
})
};
fetch('https://api.mixpeek.com/v1/retrievers', 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.mixpeek.com/v1/retrievers",
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([
'retriever_name' => '<string>',
'stages' => [
[
'stage_name' => '<string>',
'config' => [
],
'batch_size' => '<string>',
'description' => '<string>',
'on_error' => '<string>',
'output_alias' => '<string>'
]
],
'description' => '<string>',
'visibility' => 'private',
'marketplace_listing_id' => '<string>',
'requires_subscription' => false,
'collection_identifiers' => [
'<string>'
],
'input_schema' => [
],
'budget_limits' => [
'max_credits' => 1,
'max_time_ms' => 1
],
'tags' => [
'<string>'
],
'metadata' => [
],
'display_config' => [
'components' => [
'result_card' => [
'card_click_action' => 'viewDetails',
'field_order' => [
'title',
'description',
'price'
],
'layout' => 'vertical',
'show_find_similar' => true,
'show_thumbnail' => true
],
'result_layout' => 'grid',
'show_hero' => true,
'show_results_header' => true,
'show_search' => true
],
'custom_cta' => [
'label' => 'Search Tips',
'markdown_content' => '# Search Tips
- Use quotes for exact phrases
- Try descriptive terms'
],
'description' => 'Search through our product catalog',
'exposed_fields' => [
'title',
'description',
'price',
'image_url'
],
'external_links' => [
[
'name' => 'GitHub Repository',
'url' => 'https://github.com/mixpeek/product-search'
],
[
'name' => 'Blog Post',
'url' => 'https://blog.mixpeek.com/building-product-search'
]
],
'field_config' => [
'price' => [
'format' => 'number',
'format_options' => [
'decimals' => 2,
'label' => 'Price',
'prefix' => '$'
]
],
'title' => [
'format' => 'text',
'format_options' => [
'label' => 'Product Name',
'truncate_chars' => 60
]
]
],
'field_mappings' => [
'thumbnail' => 'image_url',
'title' => 'title'
],
'inputs' => [
[
'field_name' => 'query',
'field_schema' => [
'description' => 'Search query',
'examples' => [
'wireless headphones',
'laptop'
],
'type' => 'string'
],
'input_type' => 'text',
'label' => 'Search Products',
'order' => 0,
'placeholder' => 'What are you looking for?',
'required' => true
]
],
'layout' => [
'columns' => 3,
'gap' => '16px',
'mode' => 'grid'
],
'logo_url' => 'https://example.com/logo.png',
'markdowns' => [
[
'content' => '# AI-Powered Product Search
Our search uses **machine learning** to understand your queries and find the most relevant products.
## Features
- **Semantic Search**: Understands meaning, not just keywords
- **Visual Search**: Upload images to find similar products
- **Smart Filters**: Automatically suggests relevant filters',
'title' => 'How it Works'
],
[
'content' => '## Tips for Better Results
1. Use descriptive terms (e.g., "wireless noise-canceling headphones")
2. Try different keywords if you don\'t find what you\'re looking for
3. Use filters to narrow down results
*Happy searching!*',
'title' => 'Search Guide'
]
],
'template_type' => 'media-search',
'theme' => [
'border_radius' => '12px',
'card_style' => 'elevated',
'font_family' => 'Inter, sans-serif',
'primary_color' => '#007AFF'
],
'title' => 'Product Search'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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.mixpeek.com/v1/retrievers"
payload := strings.NewReader("{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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.mixpeek.com/v1/retrievers")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"retriever_name\": \"<string>\",\n \"stages\": [\n {\n \"stage_name\": \"<string>\",\n \"config\": {},\n \"batch_size\": \"<string>\",\n \"description\": \"<string>\",\n \"on_error\": \"<string>\",\n \"output_alias\": \"<string>\"\n }\n ],\n \"description\": \"<string>\",\n \"visibility\": \"private\",\n \"marketplace_listing_id\": \"<string>\",\n \"requires_subscription\": false,\n \"collection_identifiers\": [\n \"<string>\"\n ],\n \"input_schema\": {},\n \"budget_limits\": {\n \"max_credits\": 1,\n \"max_time_ms\": 1\n },\n \"tags\": [\n \"<string>\"\n ],\n \"metadata\": {},\n \"display_config\": {\n \"components\": {\n \"result_card\": {\n \"card_click_action\": \"viewDetails\",\n \"field_order\": [\n \"title\",\n \"description\",\n \"price\"\n ],\n \"layout\": \"vertical\",\n \"show_find_similar\": true,\n \"show_thumbnail\": true\n },\n \"result_layout\": \"grid\",\n \"show_hero\": true,\n \"show_results_header\": true,\n \"show_search\": true\n },\n \"custom_cta\": {\n \"label\": \"Search Tips\",\n \"markdown_content\": \"# Search Tips\\n\\n- Use quotes for exact phrases\\n- Try descriptive terms\"\n },\n \"description\": \"Search through our product catalog\",\n \"exposed_fields\": [\n \"title\",\n \"description\",\n \"price\",\n \"image_url\"\n ],\n \"external_links\": [\n {\n \"name\": \"GitHub Repository\",\n \"url\": \"https://github.com/mixpeek/product-search\"\n },\n {\n \"name\": \"Blog Post\",\n \"url\": \"https://blog.mixpeek.com/building-product-search\"\n }\n ],\n \"field_config\": {\n \"price\": {\n \"format\": \"number\",\n \"format_options\": {\n \"decimals\": 2,\n \"label\": \"Price\",\n \"prefix\": \"$\"\n }\n },\n \"title\": {\n \"format\": \"text\",\n \"format_options\": {\n \"label\": \"Product Name\",\n \"truncate_chars\": 60\n }\n }\n },\n \"field_mappings\": {\n \"thumbnail\": \"image_url\",\n \"title\": \"title\"\n },\n \"inputs\": [\n {\n \"field_name\": \"query\",\n \"field_schema\": {\n \"description\": \"Search query\",\n \"examples\": [\n \"wireless headphones\",\n \"laptop\"\n ],\n \"type\": \"string\"\n },\n \"input_type\": \"text\",\n \"label\": \"Search Products\",\n \"order\": 0,\n \"placeholder\": \"What are you looking for?\",\n \"required\": true\n }\n ],\n \"layout\": {\n \"columns\": 3,\n \"gap\": \"16px\",\n \"mode\": \"grid\"\n },\n \"logo_url\": \"https://example.com/logo.png\",\n \"markdowns\": [\n {\n \"content\": \"# AI-Powered Product Search\\n\\nOur search uses **machine learning** to understand your queries and find the most relevant products.\\n\\n## Features\\n\\n- **Semantic Search**: Understands meaning, not just keywords\\n- **Visual Search**: Upload images to find similar products\\n- **Smart Filters**: Automatically suggests relevant filters\",\n \"title\": \"How it Works\"\n },\n {\n \"content\": \"## Tips for Better Results\\n\\n1. Use descriptive terms (e.g., \\\"wireless noise-canceling headphones\\\")\\n2. Try different keywords if you don't find what you're looking for\\n3. Use filters to narrow down results\\n\\n*Happy searching!*\",\n \"title\": \"Search Guide\"\n }\n ],\n \"template_type\": \"media-search\",\n \"theme\": {\n \"border_radius\": \"12px\",\n \"card_style\": \"elevated\",\n \"font_family\": \"Inter, sans-serif\",\n \"primary_color\": \"#007AFF\"\n },\n \"title\": \"Product Search\"\n }\n}"
response = http.request(request)
puts response.read_body{
"retriever_name": "<string>",
"stages": [
{
"stage_name": "<string>",
"config": {},
"batch_size": "<string>",
"description": "<string>",
"on_error": "<string>",
"output_alias": "<string>"
}
],
"fusion": "<string>",
"collection_identifiers": [
"<string>"
],
"retriever_id": "<string>",
"description": "<string>",
"collection_ids": [
"<string>"
],
"input_schema": {},
"budget_limits": {
"max_credits": 1,
"max_time_ms": 1
},
"feature_dependencies": [
{
"extractor": "<string>",
"version": "<string>",
"scheme": "mixpeek",
"output": "<string>"
}
],
"tags": [
"<string>"
],
"metadata": {},
"display_config": {},
"version": 1,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"created_by": "<string>",
"updated_by": "<string>"
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"status": 123,
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>",
"details": {}
},
"success": false
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
Payload for creating a new retriever.
Unique retriever name (REQUIRED).
1Ordered stage configurations (REQUIRED). Each stage is {"stage_name": , "config": {"stage_id": , "parameters": {...}}}. List available stage types + parameters via GET /v1/retrievers/stages, or POST /v1/templates/scaffolds/default for a ready-made retriever.
1Show child attributes
Show child attributes
[
{
"config": {
"parameters": {
"final_top_k": 50,
"searches": [
{
"feature_uri": "mixpeek://multimodal_extractor@v1/vertex_multimodal_embedding",
"query": {
"input_mode": "text",
"text": "{{INPUT.query}}"
},
"top_k": 100
}
]
},
"stage_id": "feature_search"
},
"stage_name": "search"
}
]
Human readable retriever description (OPTIONAL).
Visibility level: PRIVATE (owner only), PUBLIC (any valid API key), MARKETPLACE (requires subscription). Defaults to PRIVATE.
private, public, marketplace Associated marketplace listing ID when visibility is MARKETPLACE (OPTIONAL).
Whether this retriever requires an active subscription to access (marketplace only).
Collection identifiers (names or IDs) queried by the retriever (OPTIONAL). Identifiers can be collection names (e.g., 'my_collection') or collection IDs (e.g., 'col_abc123'). The system will resolve names to IDs automatically. Can be empty for inference-only pipelines (e.g., LLM query analysis without document retrieval). Also accepts 'collection_ids' as an alias for backward compatibility.
["my_collection", "products"]
["col_abc123", "col_def456"]
[]
Input schema properties keyed by field name (OPTIONAL). Can be empty for static retrievers with hardcoded stage parameters. Each field can include: type, description, required, default, and examples. The 'examples' field (list) provides sample values that will be shown to users when the retriever is published with include_metadata=true.
Show child attributes
Show child attributes
{
"category": {
"description": "Filter by category",
"examples": ["electronics", "clothing"],
"required": false,
"type": "string"
},
"query": {
"description": "Search query text",
"examples": ["red sports car", "sunset over ocean"],
"required": true,
"type": "text"
}
}
Budget limits for execution (OPTIONAL).
Show child attributes
Show child attributes
{ "max_credits": 100, "max_time_ms": 60000 }
{ "max_time_ms": 120000 }
Optional retriever tags for search/filters.
Custom key-value metadata stored on the retriever (OPTIONAL). Round-trips on create/get/list and is updatable via PATCH — useful for automation markers like seed/config versions. Previously this field was silently dropped on create (FRUSTRATIONS silent-drop class).
Display configuration for public retriever UI rendering (OPTIONAL). Defines how the search interface should appear when the retriever is published, including input fields, theme, layout, exposed result fields, and field formatting. This configuration is used as the default when publishing the retriever.
Show child attributes
Show child attributes
{
"components": {
"result_card": {
"card_click_action": "viewDetails",
"field_order": ["title", "description", "price"],
"layout": "vertical",
"show_find_similar": true,
"show_thumbnail": true
},
"result_layout": "grid",
"show_hero": true,
"show_results_header": true,
"show_search": true
},
"custom_cta": {
"label": "Search Tips",
"markdown_content": "# Search Tips\n\n- Use quotes for exact phrases\n- Try descriptive terms"
},
"description": "Search through our product catalog",
"exposed_fields": [
"title",
"description",
"price",
"image_url"
],
"external_links": [
{
"name": "GitHub Repository",
"url": "https://github.com/mixpeek/product-search"
},
{
"name": "Blog Post",
"url": "https://blog.mixpeek.com/building-product-search"
}
],
"field_config": {
"price": {
"format": "number",
"format_options": {
"decimals": 2,
"label": "Price",
"prefix": "$"
}
},
"title": {
"format": "text",
"format_options": {
"label": "Product Name",
"truncate_chars": 60
}
}
},
"field_mappings": {
"thumbnail": "image_url",
"title": "title"
},
"inputs": [
{
"field_name": "query",
"field_schema": {
"description": "Search query",
"examples": ["wireless headphones", "laptop"],
"type": "string"
},
"input_type": "text",
"label": "Search Products",
"order": 0,
"placeholder": "What are you looking for?",
"required": true
}
],
"layout": {
"columns": 3,
"gap": "16px",
"mode": "grid"
},
"logo_url": "https://example.com/logo.png",
"markdowns": [
{
"content": "# AI-Powered Product Search\n\nOur search uses **machine learning** to understand your queries and find the most relevant products.\n\n## Features\n\n- **Semantic Search**: Understands meaning, not just keywords\n- **Visual Search**: Upload images to find similar products\n- **Smart Filters**: Automatically suggests relevant filters",
"title": "How it Works"
},
{
"content": "## Tips for Better Results\n\n1. Use descriptive terms (e.g., \"wireless noise-canceling headphones\")\n2. Try different keywords if you don't find what you're looking for\n3. Use filters to narrow down results\n\n*Happy searching!*",
"title": "Search Guide"
}
],
"template_type": "media-search",
"theme": {
"border_radius": "12px",
"card_style": "elevated",
"font_family": "Inter, sans-serif",
"primary_color": "#007AFF"
},
"title": "Product Search"
}
Response
Successful Response
Full retriever definition persisted in MongoDB.
Unique retriever name within namespace (REQUIRED).
1Ordered list of stage configurations (REQUIRED).
1Show child attributes
Show child attributes
Fusion strategy used by this retriever's feature_search stage (e.g. 'learned', 'rrf', 'dbsf'). Null if no feature_search stage.
Mirror of collection_ids under the field name CREATE accepts (collection_identifiers), so a create → read round-trip reads back the field it wrote. Always equal to collection_ids (FRUSTRATIONS 2026-07-16: SDKs/agents re-reading their own write saw collection_identifiers null and concluded the retriever was unscoped).
Stable retriever identifier (REQUIRED).
Detailed description of retriever behaviour (OPTIONAL).
Collections queried by the retriever. Can be empty for query-only inference mode.
JSON Schema describing expected user inputs (REQUIRED). Properties must use RetrieverInputSchemaField which supports all bucket types plus document_reference.
Show child attributes
Show child attributes
Execution budget limits for the retriever (OPTIONAL).
Show child attributes
Show child attributes
{ "max_credits": 100, "max_time_ms": 60000 }
{ "max_time_ms": 120000 }
Feature addresses required by stages (OPTIONAL, aids validation).
Show child attributes
Show child attributes
Arbitrary tags to help organise retrievers (OPTIONAL).
Custom key-value metadata (OPTIONAL). Round-trips on create/get/list and is updatable via PATCH — useful for automation markers like seed/config versions.
Display configuration for public retriever UI rendering (OPTIONAL). Defines how the search interface should appear when the retriever is published, including input fields, theme, layout, exposed result fields, and field formatting. This configuration is used as the default when publishing the retriever.
Version number that increments on each update (REQUIRED).
x >= 1Creation timestamp in UTC (REQUIRED).
Last update timestamp in UTC (REQUIRED).
Identifier of the user who created the retriever (OPTIONAL).
Identifier of the user who last updated the retriever (OPTIONAL).
Was this page helpful?

