API and MCP docs
One API key works for both. The same docs are available as plain text at /llms.txt and /llms-full.txt, and as an OpenAPI spec.
Authentication
Create an account at https://smblistings.ai/sign-in (250 free credits), then create an API key on the dashboard.
Send it as x-api-key: <key> or Authorization: Bearer <key>.
Credits
1 credit = 1 request. Credits never expire. The balance is returned in the x-credits-remaining header.
When credits run out the API returns HTTP 402.
Rate limits
Each account can make 120 requests per minute across REST and MCP. Every response includes RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset (seconds until the window resets). Over the limit, the API returns HTTP 429 with a Retry-After header; wait that many seconds and retry. Repeated requests with invalid keys from one IP address are blocked for a minute.
| Pack | Price (USD) | Credits |
|---|---|---|
| Free | $0 | 250 |
| Starter | $29 | 5,000 |
| Pro | $149 | 50,000 |
| Scale | $799 | 500,000 |
REST endpoints
Base URL: https://smblistings.ai/api/v1. OpenAPI spec: https://smblistings.ai/openapi.json
| Endpoint | Credits | Description |
|---|---|---|
GET /listings/search |
1 | Search listings. Query: q, industry, source, location, minPrice, maxPrice, minCashFlow, limit (1-100), offset |
GET /listings/new?since=<ISO 8601> |
1 | Listings first seen after a timestamp, newest first (max 100) |
GET /listings/{id} |
1 | One listing by id (as returned by search) |
GET /account |
0 | Credit balance |
Example:
curl "https://smblistings.ai/api/v1/listings/search?industry=Health%20and%20Beauty&maxPrice=500000" \
-H "x-api-key: sl_..."
Listing fields
| Field | Type | Notes |
|---|---|---|
id |
string | Stable listing id |
source |
string | Where the listing was found |
url |
string | Original listing; always link users here |
title |
string | Listing headline |
industry |
string | null | Industry label |
location |
string | null | Free text, e.g. "TX, United States" |
askingPrice |
number | null | USD |
revenue |
number | null | USD, annual |
cashFlow |
number | null | USD, annual profit / SDE |
firstSeen, lastSeen |
ISO 8601 | When we first and last saw the listing |
MCP server
Remote MCP server (Streamable HTTP): https://smblistings.ai/api/mcp. Authenticate with Authorization: Bearer <key>.
Listing tools is free; tool calls cost the same as the REST endpoints.
| Tool | Credits | Description |
|---|---|---|
search_listings |
1 | Same filters as /listings/search |
get_listing |
1 | One listing by id |
new_listings |
1 | Listings first seen after a timestamp |
get_credits |
0 | Remaining credits |
Connect your AI tool
Every client needs the same two things: the server URL https://smblistings.ai/api/mcp and the header Authorization: Bearer sl_... with your API key. Replace sl_... with your key, or keep it in an environment variable where the client supports one.
Claude Code
claude mcp add --transport http smblistings https://smblistings.ai/api/mcp --header "Authorization: Bearer sl_..."
Claude Desktop and claude.ai
Open Customize, then Connectors, then Add custom connector. Enter the name smblistings and the URL https://smblistings.ai/api/mcp, and add a request header Authorization with the value Bearer sl_.... On Team and Enterprise plans an owner adds it under Organization settings, then Connectors.
Cursor
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": {
"smblistings": {
"url": "https://smblistings.ai/api/mcp",
"headers": { "Authorization": "Bearer ${env:SMBLISTINGS_API_KEY}" }
}
}
}
VS Code with GitHub Copilot
Add to .mcp.json in your workspace:
{
"mcpServers": {
"smblistings": {
"type": "http",
"url": "https://smblistings.ai/api/mcp",
"headers": { "Authorization": "Bearer ${SMBLISTINGS_API_KEY}" }
}
}
}
Gemini CLI
gemini mcp add --transport http --header "Authorization: Bearer sl_..." SMB Listings https://smblistings.ai/api/mcp
OpenAI Codex CLI
Add to ~/.codex/config.toml, and set SMBLISTINGS_API_KEY in your environment:
[mcp_servers.smblistings]
url = "https://smblistings.ai/api/mcp"
bearer_token_env_var = "SMBLISTINGS_API_KEY"
Zed
Add to context_servers in Zed's settings.json, or use Settings, then AI, then MCP Servers, then Add Remote Server:
{
"context_servers": {
"smblistings": {
"url": "https://smblistings.ai/api/mcp",
"headers": { "Authorization": "Bearer sl_..." }
}
}
}
Cline
cline mcp add smblistings https://smblistings.ai/api/mcp --transport http --header "Authorization: Bearer sl_..." --yes
Or add to cline_mcp_settings.json with "type": "streamableHttp", the URL, and the header.
Other clients
Any client that can add a remote (Streamable HTTP) MCP server with a custom request header works the same way. Some clients, including ChatGPT, only support sign-in (OAuth) for remote servers; OAuth support is on our roadmap.