Documentation

API Reference

Everything you need to integrate Understnd into your application.

Authentication

All API requests require an API key passed in the X-API-Key header.

Header

X-API-Key: your_api_key_here
POST

/v1/search

Search your catalogue using natural language. Returns matching items ranked by semantic relevance.

Request Body

{
  "query": "enterprise CRM for sales teams",
  "explain": true  // optional, returns AI explanations
}

Response

{
  "results": [
    {
      "id": 1,
      "name": "ProCRM Enterprise",
      "category": "software",
      "brand": "AcmeSoft",
      "description": "...",
      "attributes": { ... }
    }
  ],
  "explanations": [
    {
      "product_id": 1,
      "reason": "Matches enterprise CRM for sales..."
    }
  ],
  "parsed_query": {
    "filters": { "category": "software" },
    "semantic_search_query": "enterprise CRM sales teams"
  }
}

Example (curl)

curl -X POST https://api.understnd.dev/v1/search \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key" \
  -d '{"query": "enterprise CRM for sales teams"}'
POST

/v1/ingest/batch

Import items into your catalogue. Items are automatically embedded for semantic search.

Request Body

{
  "items": [
    {
      "name": "ProCRM Enterprise",
      "category": "software",
      "brand": "AcmeSoft",
      "description": "CRM for B2B sales teams"
    }
  ]
}

Example (Python)

import requests

response = requests.post(
    "https://api.understnd.dev/v1/ingest/batch",
    headers={"X-API-Key": "your_api_key"},
    json={"items": products}
)

print(f"Imported {len(response.json()['products'])} items")

SDKs

Use our official SDKs for easier integration.

TypeScript

import { UnderstndClient } from '@understnd/sdk';

const client = new UnderstndClient({
  apiKey: 'your_api_key'
});

const results = await client.search('enterprise CRM');
console.log(results);

Python

from understnd import UnderstndClient

client = UnderstndClient(
    base_url="https://api.understnd.dev",
    api_key="your_api_key"
)

results = client.search("enterprise CRM")
print(results)

Rate Limits

API requests are rate limited to ensure fair usage.

PlanRequests/minItems
Free601,000
Pro600100,000
EnterpriseCustomUnlimited