Search Resources
/api/v1/idap/{resource_type}/searchOverview
Full-text search within a resource type, backed by PostgreSQL tsvector. Results are sorted by relevance.
Search is not supported on media resources. Returns 400 Bad Request.
Path Parameters
resource_typestringrequiredThe resource type to search.
Options: businesses, domains, contacts, emails, phones, company_registry, linkedin_profiles
Query Parameters
qstringrequiredSearch query. 1–500 characters.
Examples: "pizzeria miami", "CEO technology", "info@example.com"
limitintegerdefault: 20Maximum number of results (1–100).
fieldsstringComma-separated field projection.
Example: fields=name,email,phone
formatstringdefault: jsonResponse format.
Options: json, yaml, md
flagsstringFilter results by flags. Prefix with ! to exclude.
Example: flags=qualified,!rejected
Searchable Fields by Resource Type
| Resource Type | Searchable Fields |
|---|---|
businesses | name, address, category |
domains | domain, title |
contacts | name, email, title |
emails | address |
phones | number |
company_registry | name, registration_number |
linkedin_profiles | name, headline, company |
Response
The response uses the same structure as the List / Sync endpoint:
resource_typestringThe resource type searched.
countintegerNumber of matching results.
has_morebooleanAlways false for search results (no cursor pagination).
next_cursorstringAlways null for search results.
itemsarrayArray of matching IDAP resources, sorted by relevance (best match first).
Example Request
- cURL
- Python
curl "https://spideriq.ai/api/v1/idap/businesses/search?q=pizzeria+miami&limit=10&flags=!rejected" \
-H "Authorization: Bearer <your_token>"
import httpx
response = httpx.get(
"https://spideriq.ai/api/v1/idap/businesses/search",
params={
"q": "pizzeria miami",
"limit": 10,
"flags": "!rejected",
"fields": "name,address,google_rating",
},
headers={"Authorization": "Bearer <your_token>"},
)
data = response.json()
for item in data["items"]:
print(f"{item['data']['name']} — {item['data'].get('google_rating', 'N/A')}")
Response Example
{
"resource_type": "businesses",
"count": 2,
"has_more": false,
"next_cursor": null,
"items": [
{
"idap_ref": "idap://businesses/a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"resource_type": "businesses",
"resource_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"tenant_id": "cli_b3q656h2cg8j9o6z",
"created_at": "2026-03-15T10:00:00Z",
"modified_at": "2026-04-11T10:32:00Z",
"flags": ["qualified"],
"data": {
"name": "Mario's Pizzeria",
"address": "123 Brickell Ave, Miami FL",
"google_rating": 4.6
}
},
{
"idap_ref": "idap://businesses/c3d4e5f6-a7b8-9012-cdef-123456789012",
"resource_type": "businesses",
"resource_id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"tenant_id": "cli_b3q656h2cg8j9o6z",
"created_at": "2026-04-05T14:00:00Z",
"modified_at": "2026-04-10T09:15:00Z",
"flags": ["new"],
"data": {
"name": "Miami Pizza Co",
"address": "789 Collins Ave, Miami Beach FL",
"google_rating": 4.3
}
}
]
}
{
"resource_type": "businesses",
"count": 0,
"has_more": false,
"next_cursor": null,
"items": []
}
Notes
- Search results are not paginated — there is no cursor. Use the
limitparameter to control result count (max 100). - Results are sorted by PostgreSQL
ts_rankrelevance, not by date. - The
rejectedflag exclusion still applies by default — rejected resources won't appear in search results unless you explicitly includeflags=rejected.