---
title: "Search the vendor catalog"
method: GET
path: "/api/v1/vendors"
---

# Search the vendor catalog

`GET /api/v1/vendors`

## Request

- Base URL: `https://lvlupauto.com`
- URL: `https://lvlupauto.com/api/v1/vendors`
- Auth: HTTP bearer

Canonical vendor search — the resolution chokepoint. Call this FIRST to turn a vendor name/domain into a catalog vendor_id before any stack write. Answers 'who makes X?', 'find me a CRM vendor', 'what vendor is on this domain?'. An empty result is normal. AI filters (ai_capability, min_autonomy) narrow by what the software's AI concretely does and how much it does without a person. Both rest on MODEL-DETECTED, NOT-YET-VERIFIED capability data covering only the vendors we have mapped in detail — an absent vendor means unmapped, not AI-free. min_autonomy 3-4 returns empty by design: those levels assert unsupervised operation, which capability data cannot establish.

## Query parameters

- `q` string
- `category` string
- `domain` string
- `limit` integer
- `cursor` string
- `ai_capability` 'conversation' | 'content-generation' | 'prediction-scoring' | 'document-intelligence' | 'personalization-targeting' | 'workflow-agents' | 'analytics-insights' | 'vision-inspection'
- `min_autonomy` integer

## Response `200`

Success

## Other responses

- `401`: Unauthorized — invalid or missing token
- `403`: Insufficient scope
- `422`: Validation error
- `429`: Rate limited or cap exceeded

---

[API](https://skmtc.dev/lvlupauto/apis/lvl-up-auto-headless-api.md) · [All operations](https://skmtc.dev/lvlupauto/apis/lvl-up-auto-headless-api/llms.txt) · [OpenAPI document](https://skmtc.dev/lvlupauto/apis/lvl-up-auto-headless-api/revisions/805626b3a4ef?raw)
