Search API
Referencia preview de la API de búsqueda semántica de Polimake para encontrar activos creativos con lenguaje natural.
En esta página
La Search API permite encontrar recursos creativos con lenguaje natural. Esta pensada para DAMs internos, CRMs, CMS, intranets, copilotos y agentes que necesitan recuperar el recurso correcto sin navegar carpetas.
Estado: contrato preview. Los nombres finales de endpoint y campos pueden cambiar antes de disponibilidad general.
Endpoint
POST /v1/media/search
Request
{
"project_id": "brand-assets",
"query": "presentacion para cliente de energia renovable",
"top_k": 10,
"mime_types": ["application/pdf", "application/vnd.ms-powerpoint"],
"filters": {
"has_logo": true
}
}
Parametros
| Campo | Tipo | Requerido | Descripcion |
|---|---|---|---|
project_id | string | Si | Proyecto donde buscar. |
query | string | Si | Consulta en lenguaje natural. |
top_k | number | No | Numero maximo de resultados. Por defecto, 10. |
mime_types | string[] | No | Limita resultados por tipo MIME. |
filters | object | No | Filtros estructurados disponibles segun proyecto. |
Ejemplo con curl
curl https://api.polimake.com/v1/media/search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"project_id": "brand-assets",
"query": "presentacion para cliente de energia renovable",
"top_k": 10,
"mime_types": ["application/pdf", "application/vnd.ms-powerpoint"]
}'
Ejemplo con JavaScript
async function searchPolimakeMedia(query) {
const response = await fetch("https://api.polimake.com/v1/media/search", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.POLIMAKE_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
project_id: "brand-assets",
query,
top_k: 10,
}),
});
if (!response.ok) {
const error = await response.json().catch(() => null);
throw new Error(error?.error?.message || `Polimake API error: ${response.status}`);
}
return response.json();
}
Ejemplo con Python
import os
import requests
def search_polimake_media(query: str):
response = requests.post(
"https://api.polimake.com/v1/media/search",
headers={
"Authorization": f"Bearer {os.environ['POLIMAKE_API_KEY']}",
"Content-Type": "application/json",
},
json={
"project_id": "brand-assets",
"query": query,
"top_k": 10,
},
timeout=30,
)
response.raise_for_status()
return response.json()
Response
{
"object": "search_result",
"query": "presentacion para cliente de energia renovable",
"items": [
{
"id": "media_01HX9R8K4Q2Z4T",
"object": "media_object",
"score": 0.92,
"project_id": "brand-assets",
"filename": "deck-renovables-q2.pdf",
"mime_type": "application/pdf",
"urls": {
"preview": "https://cdn.polimake.com/previews/media_01HX9R8K4Q2Z4T.webp"
},
"ai": {
"description": "Presentacion comercial sobre energia renovable con graficos trimestrales.",
"tags": ["energia renovable", "presentacion", "ventas", "graficos"]
}
}
]
}
Buenas practicas
- Envia consultas completas, no solo keywords.
- Usa
mime_typescuando sepas que buscas documentos, imagenes o videos. - Usa
top_kbajo para interfaces rapidas y subelo para procesos offline. - Muestra
ai.descriptional usuario para explicar por que aparece un resultado. - Guarda el
iddel media object, no la URL temporal de preview.
Para continuar, consulta Build: integrar Polimake.