curl --request POST \
--url https://api.mixpeek.com/v1/onboarding/infer-config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"use_case_description": "I want to search my product catalog by image",
"content_types": [
"video",
"image"
]
}
'import requests
url = "https://api.mixpeek.com/v1/onboarding/infer-config"
payload = {
"use_case_description": "I want to search my product catalog by image",
"content_types": ["video", "image"]
}
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({
use_case_description: 'I want to search my product catalog by image',
content_types: ['video', 'image']
})
};
fetch('https://api.mixpeek.com/v1/onboarding/infer-config', 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/onboarding/infer-config",
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([
'use_case_description' => 'I want to search my product catalog by image',
'content_types' => [
'video',
'image'
]
]),
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/onboarding/infer-config"
payload := strings.NewReader("{\n \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\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/onboarding/infer-config")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/onboarding/infer-config")
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 \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"recommended_scaffold_id": "<string>",
"scaffold_name": "<string>",
"confidence": 0.5,
"reasoning": "<string>",
"extractors": [
{
"name": "<string>",
"reason": "<string>",
"version": "v1"
}
],
"retriever_stages": [
{
"stage_name": "<string>",
"description": "<string>",
"stage_type": "filter"
}
],
"sample_queries": [
{
"query": "<string>",
"description": "<string>"
}
],
"alternate_scaffold_id": "<string>",
"alternate_scaffold_name": "<string>"
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Infer onboarding configuration
Given a free-text use-case description, uses an LLM to recommend the best scaffold template, extractors, retriever stages, and sample queries for the user’s project.
curl --request POST \
--url https://api.mixpeek.com/v1/onboarding/infer-config \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"use_case_description": "I want to search my product catalog by image",
"content_types": [
"video",
"image"
]
}
'import requests
url = "https://api.mixpeek.com/v1/onboarding/infer-config"
payload = {
"use_case_description": "I want to search my product catalog by image",
"content_types": ["video", "image"]
}
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({
use_case_description: 'I want to search my product catalog by image',
content_types: ['video', 'image']
})
};
fetch('https://api.mixpeek.com/v1/onboarding/infer-config', 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/onboarding/infer-config",
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([
'use_case_description' => 'I want to search my product catalog by image',
'content_types' => [
'video',
'image'
]
]),
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/onboarding/infer-config"
payload := strings.NewReader("{\n \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\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/onboarding/infer-config")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixpeek.com/v1/onboarding/infer-config")
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 \"use_case_description\": \"I want to search my product catalog by image\",\n \"content_types\": [\n \"video\",\n \"image\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"recommended_scaffold_id": "<string>",
"scaffold_name": "<string>",
"confidence": 0.5,
"reasoning": "<string>",
"extractors": [
{
"name": "<string>",
"reason": "<string>",
"version": "v1"
}
],
"retriever_stages": [
{
"stage_name": "<string>",
"description": "<string>",
"stage_type": "filter"
}
],
"sample_queries": [
{
"query": "<string>",
"description": "<string>"
}
],
"alternate_scaffold_id": "<string>",
"alternate_scaffold_name": "<string>"
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}{
"error": {
"details": {
"id": "ns_123",
"resource": "namespace"
},
"message": "Namespace not found",
"type": "NotFoundError"
},
"status": 404,
"success": false
}Authorizations
Mixpeek API key, sent as Authorization: Bearer mxp_sk_.... Create one in Studio under Settings → API Keys, or with an admin key via POST /v1/organizations/users/{user_email}/api-keys. A missing header returns 403; an invalid or revoked key returns 401.
Body
Free-text description of what the user wants to build.
5 - 2000"I want to search my product catalog by image"
"I need to moderate user-generated content on my platform"
Optional hint about data types the user has (e.g. 'video', 'pdf', 'image').
["video", "image"]
["pdf", "text"]
Response
Successful Response
Template ID from the scaffold catalog (e.g. 'tmpl_scaffold_video_understanding').
Human-readable template name.
Model confidence in this recommendation.
0 <= x <= 12-3 sentence explanation of why this scaffold was chosen.
Recommended feature extractors.
Show child attributes
Show child attributes
Recommended retriever pipeline stages.
Show child attributes
Show child attributes
Example search queries the user could run.
Show child attributes
Show child attributes
Second-best template if the primary isn't a great fit.
Was this page helpful?

