Skip to content
ProductBlogOpen console
API

List active bots scoped to an app (discovery feed)

GET
/bots
curl --request GET \
--url 'https://mw.omazy.ai/api/v1/bots?app_id=example&per_page=25' \
--header 'Authorization: <Authorization>'
app_id
required
string

App UUID

search
string

Case-insensitive ILIKE on name/tagline/description

category
string

Filter by category

featured_only
boolean

Restrict to is_featured=true

country
string

ISO-3166 alpha-2 country filter (#166)

city
string

City filter, exact match against agents.city (#166)

kind
string

Bot kind filter: nobot|bot (#166)

presence
string

Presence filter: online|away|rsvp|offline (#166)

cursor
string

Pagination cursor

per_page
integer
default: 25

Items per page (max 100)

OK

Media typeapplication/json
object
data
error
object
code
string
message
string
meta
object
next_cursor
string
page
integer
per_page
integer
total
integer
success
boolean
data
Array<object>
object
accent_color
string
app_id
string
brand_color
string
category
string
city
string
contact_email

Contact / social — for the bot profile page.

string
contact_phone
string
contact_website
string
country

Region — surfaced on Discover for region-aware filtering.

string
cover_url
string
created_at
string
description
string
icon_url
string
id
string
is_active
boolean
is_featured
boolean
kind

Lifecycle (#165). Defaults from the migration keep existing rows safe: kind=‘nobot’, status=‘draft’ (back-filled to ‘published’ for rows where is_active=true at migration time), presence=‘offline’.

string
name
string
presence
string
rating
number
region
string
slug
string
social_links
Array<integer>
status
string
tagline
string
updated_at
string
meta
object
next_cursor
string
per_page
integer
Examplegenerated
{
"data": [
{
"accent_color": "example",
"app_id": "example",
"brand_color": "example",
"category": "example",
"city": "example",
"contact_email": "example",
"contact_phone": "example",
"contact_website": "example",
"country": "example",
"cover_url": "example",
"created_at": "example",
"description": "example",
"icon_url": "example",
"id": "example",
"is_active": true,
"is_featured": true,
"kind": "example",
"name": "example",
"presence": "example",
"rating": 1,
"region": "example",
"slug": "example",
"social_links": [
1
],
"status": "example",
"tagline": "example",
"updated_at": "example"
}
],
"error": {
"code": "example",
"message": "example"
},
"meta": {
"next_cursor": "example",
"per_page": 1
},
"success": true
}

Bad Request

Media typeapplication/json
object
data
error
object
code
string
message
string
meta
object
next_cursor
string
page
integer
per_page
integer
total
integer
success
boolean
error
object
code
string
message
string
Examplegenerated
{
"data": "example",
"error": {
"code": "example",
"message": "example"
},
"meta": {
"next_cursor": "example",
"page": 1,
"per_page": 1,
"total": 1
},
"success": true
}

Unauthorized

Media typeapplication/json
object
data
error
object
code
string
message
string
meta
object
next_cursor
string
page
integer
per_page
integer
total
integer
success
boolean
error
object
code
string
message
string
Examplegenerated
{
"data": "example",
"error": {
"code": "example",
"message": "example"
},
"meta": {
"next_cursor": "example",
"page": 1,
"per_page": 1,
"total": 1
},
"success": true
}