curl --request POST \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"display_name": "Peptide Evidence Search",
"public_name": "video-search",
"description": "AI-powered video search using semantic understanding",
"icon_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"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"
},
"rate_limit_config": {
"enabled": true,
"tier": "standard",
"requests_per_minute": 2,
"requests_per_hour": 2,
"requests_per_day": 2,
"max_results_per_query": 100,
"enable_ip_limits": false,
"max_requests_per_ip_hour": 2
},
"password_secret_name": "published_retriever_password",
"include_metadata": true,
"tags": [
"<string>"
],
"category": "sandbox"
}
EOFimport requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish"
payload = {
"display_name": "Peptide Evidence Search",
"public_name": "video-search",
"description": "AI-powered video search using semantic understanding",
"icon_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"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"
},
"rate_limit_config": {
"enabled": True,
"tier": "standard",
"requests_per_minute": 2,
"requests_per_hour": 2,
"requests_per_day": 2,
"max_results_per_query": 100,
"enable_ip_limits": False,
"max_requests_per_ip_hour": 2
},
"password_secret_name": "published_retriever_password",
"include_metadata": True,
"tags": ["<string>"],
"category": "sandbox"
}
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({
display_name: 'Peptide Evidence Search',
public_name: 'video-search',
description: 'AI-powered video search using semantic understanding',
icon_base64: 'data:image/png;base64,iVBORw0KGgoAAAANS...',
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'
},
rate_limit_config: {
enabled: true,
tier: 'standard',
requests_per_minute: 2,
requests_per_hour: 2,
requests_per_day: 2,
max_results_per_query: 100,
enable_ip_limits: false,
max_requests_per_ip_hour: 2
},
password_secret_name: 'published_retriever_password',
include_metadata: true,
tags: ['<string>'],
category: 'sandbox'
})
};
fetch('https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish', 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/{retriever_id}/publish",
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([
'display_name' => 'Peptide Evidence Search',
'public_name' => 'video-search',
'description' => 'AI-powered video search using semantic understanding',
'icon_base64' => 'data:image/png;base64,iVBORw0KGgoAAAANS...',
'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'
],
'rate_limit_config' => [
'enabled' => true,
'tier' => 'standard',
'requests_per_minute' => 2,
'requests_per_hour' => 2,
'requests_per_day' => 2,
'max_results_per_query' => 100,
'enable_ip_limits' => false,
'max_requests_per_ip_hour' => 2
],
'password_secret_name' => 'published_retriever_password',
'include_metadata' => true,
'tags' => [
'<string>'
],
'category' => 'sandbox'
]),
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/{retriever_id}/publish"
payload := strings.NewReader("{\n \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\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/{retriever_id}/publish")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish")
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 \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\n}"
response = http.request(request)
puts response.read_body{
"public_id": "<string>",
"retriever_id": "<string>",
"public_url": "<string>",
"short_url": "<string>",
"public_api_key": "<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
}Publish Retriever
Publish a retriever as a public search interface.
Creates a public API endpoint and branded page for the retriever. Returns a public API key that should be stored securely (shown only once).
Limits:
- Maximum 10 published retrievers per organization
- Public name must be globally unique
Security:
- Public API key is required for all requests
- Optional password protection via organization secrets
- Configurable rate limits per retriever
- Field masking ensures only approved fields are exposed
curl --request POST \
--url https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data @- <<EOF
{
"display_name": "Peptide Evidence Search",
"public_name": "video-search",
"description": "AI-powered video search using semantic understanding",
"icon_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"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"
},
"rate_limit_config": {
"enabled": true,
"tier": "standard",
"requests_per_minute": 2,
"requests_per_hour": 2,
"requests_per_day": 2,
"max_results_per_query": 100,
"enable_ip_limits": false,
"max_requests_per_ip_hour": 2
},
"password_secret_name": "published_retriever_password",
"include_metadata": true,
"tags": [
"<string>"
],
"category": "sandbox"
}
EOFimport requests
url = "https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish"
payload = {
"display_name": "Peptide Evidence Search",
"public_name": "video-search",
"description": "AI-powered video search using semantic understanding",
"icon_base64": "data:image/png;base64,iVBORw0KGgoAAAANS...",
"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"
},
"rate_limit_config": {
"enabled": True,
"tier": "standard",
"requests_per_minute": 2,
"requests_per_hour": 2,
"requests_per_day": 2,
"max_results_per_query": 100,
"enable_ip_limits": False,
"max_requests_per_ip_hour": 2
},
"password_secret_name": "published_retriever_password",
"include_metadata": True,
"tags": ["<string>"],
"category": "sandbox"
}
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({
display_name: 'Peptide Evidence Search',
public_name: 'video-search',
description: 'AI-powered video search using semantic understanding',
icon_base64: 'data:image/png;base64,iVBORw0KGgoAAAANS...',
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'
},
rate_limit_config: {
enabled: true,
tier: 'standard',
requests_per_minute: 2,
requests_per_hour: 2,
requests_per_day: 2,
max_results_per_query: 100,
enable_ip_limits: false,
max_requests_per_ip_hour: 2
},
password_secret_name: 'published_retriever_password',
include_metadata: true,
tags: ['<string>'],
category: 'sandbox'
})
};
fetch('https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish', 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/{retriever_id}/publish",
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([
'display_name' => 'Peptide Evidence Search',
'public_name' => 'video-search',
'description' => 'AI-powered video search using semantic understanding',
'icon_base64' => 'data:image/png;base64,iVBORw0KGgoAAAANS...',
'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'
],
'rate_limit_config' => [
'enabled' => true,
'tier' => 'standard',
'requests_per_minute' => 2,
'requests_per_hour' => 2,
'requests_per_day' => 2,
'max_results_per_query' => 100,
'enable_ip_limits' => false,
'max_requests_per_ip_hour' => 2
],
'password_secret_name' => 'published_retriever_password',
'include_metadata' => true,
'tags' => [
'<string>'
],
'category' => 'sandbox'
]),
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/{retriever_id}/publish"
payload := strings.NewReader("{\n \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\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/{retriever_id}/publish")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/retrievers/{retriever_id}/publish")
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 \"display_name\": \"Peptide Evidence Search\",\n \"public_name\": \"video-search\",\n \"description\": \"AI-powered video search using semantic understanding\",\n \"icon_base64\": \"data:image/png;base64,iVBORw0KGgoAAAANS...\",\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 \"rate_limit_config\": {\n \"enabled\": true,\n \"tier\": \"standard\",\n \"requests_per_minute\": 2,\n \"requests_per_hour\": 2,\n \"requests_per_day\": 2,\n \"max_results_per_query\": 100,\n \"enable_ip_limits\": false,\n \"max_requests_per_ip_hour\": 2\n },\n \"password_secret_name\": \"published_retriever_password\",\n \"include_metadata\": true,\n \"tags\": [\n \"<string>\"\n ],\n \"category\": \"sandbox\"\n}"
response = http.request(request)
puts response.read_body{
"public_id": "<string>",
"retriever_id": "<string>",
"public_url": "<string>",
"short_url": "<string>",
"public_api_key": "<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.
Path Parameters
ID of the retriever to publish
Body
Request to publish a retriever.
Either public_name (slug) or display_name (human-readable) is required.
If only display_name is provided, a slug is auto-generated from it.
If display_config is not provided, the retriever's stored display_config will be used.
Human-readable display name for this retriever (free-form text). Example: 'Peptide Evidence Search'. A URL-safe slug is auto-generated from this if public_name is not provided.
100"Peptide Evidence Search"
URL-safe slug (lowercase letters, digits, hyphens only). Must start and end with an alphanumeric character. Example: 'peptide-evidence-search'. Used in the public URL: mxp.co/r/{public_name}. Auto-generated from display_name if not provided.
3 - 50^[a-z0-9][a-z0-9-]*[a-z0-9]$"video-search"
Description of this public retriever. Explains what the retriever does and what it searches. Displayed in public listings and search results.
500"AI-powered video search using semantic understanding"
Base64 encoded icon/favicon for this public retriever. Data URI format recommended. Max size: ~200KB encoded. Displayed in public listings and as the retriever's icon.
300000"data:image/png;base64,iVBORw0KGgoAAAANS..."
Display configuration defining how the public UI should be rendered. Includes input fields, theme, layout, and exposed result fields. If not provided, uses the retriever's stored display_config.
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"
}
Rate limiting configuration for public endpoint. Defaults to STANDARD tier (10/min, 100/hour, 1k/day). Use ELEVATED tier for trusted public apps (30/min, 500/hour, 5k/day). Use ENTERPRISE tier for monitored deployments (100/min, 2k/hour, 20k/day). Custom limits override tier defaults.
Show child attributes
Show child attributes
{
"description": "Standard tier (default) - 10/min, 100/hour, 1k/day",
"enabled": true,
"max_results_per_query": 50,
"tier": "standard"
}
{
"description": "Elevated tier - 30/min, 500/hour, 5k/day",
"enable_ip_limits": true,
"enabled": true,
"max_requests_per_ip_hour": 100,
"max_results_per_query": 100,
"tier": "elevated"
}
{
"description": "Enterprise tier - 100/min, 2k/hour, 20k/day",
"enable_ip_limits": true,
"enabled": true,
"max_requests_per_ip_hour": 500,
"max_results_per_query": 200,
"tier": "enterprise"
}
{
"description": "Custom limits overriding standard tier",
"enabled": true,
"max_results_per_query": 100,
"requests_per_hour": 200,
"requests_per_minute": 20,
"tier": "standard"
}
OPTIONAL. Name of organization secret containing password for access protection. If provided, users must send password via X-Retriever-Password header.
"published_retriever_password"
Whether to capture and store retriever metadata (stages, collections, capabilities). Recommended: True for better developer experience and debugging. Default: True.
Tags for categorizing this retriever. Used for filtering in public listings and gallery views.
["sandbox", "demo", "video"]
["marketplace", "adtech"]
Primary category for this retriever. Examples: 'sandbox', 'marketplace', 'demo', 'production'.
50"sandbox"
Response
Successful Response
Response after successfully publishing a retriever.
Public identifier for this published retriever
ID of the underlying retriever
Full public URL to the retriever page
"https://mxp.co/r/video-search"
Short URL via mxp.co redirect (same as public_url)
"https://mxp.co/r/video-search"
DEPRECATED: API keys are no longer required for public retriever access. For programmatic SDK access, create a ret_sk_ key via the retrievers/{id}/keys endpoint.
Was this page helpful?

