List Catalog Apps
GET /catalog-apps
Returns a paginated list of catalog apps. Use this endpoint for browsing the application catalog, powering search/filter UIs, and populating dropdowns.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
q | string | - | Search filter against canonical_name (case-insensitive, partial match) |
vendor_id | string (uuid) | - | Filter to apps from a specific vendor |
category_id | string (uuid) | - | Filter to apps in a specific category |
type | string | - | Filter by application type |
sort_by | string | canonical_name | Sort field: canonical_name, created_at, updated_at |
sort_order | string | asc | Sort direction: asc, desc |
page_size | integer | 50 | Items per page. Max: 500 |
cursor | string | - | Pagination cursor from a previous response |
Response
| Field | Type | Description |
|---|---|---|
data | CatalogApp[] | Array of catalog app objects |
total_count | integer | Total number of catalog apps matching the current filters |
next_cursor | string | null | Cursor to pass as cursor for the next page. null when on the last page. |
Example Requests
List all catalog apps
curl -X GET "https://api.example.com/v2/catalog-apps" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Search by name
curl -X GET "https://api.example.com/v2/catalog-apps?q=chrome" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Filter by vendor
curl -X GET "https://api.example.com/v2/catalog-apps?vendor_id=b2c3d4e5-f6a7-8901-bcde-f12345678901" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Filter by category
curl -X GET "https://api.example.com/v2/catalog-apps?category_id=c3d4e5f6-a7b8-9012-cdef-123456789012" \
-H "Authorization: Bearer YOUR_API_TOKEN"
Example Response
{
"data": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"canonical_name": "Google Chrome",
"description": "A cross-platform web browser developed by Google",
"display_colour": "#4285F4",
"logo": "https://cdn.example.com/logos/chrome.png",
"type": "browser",
"vendor": {
"id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"name": "Google LLC",
"url": "https://about.google"
},
"categories": [
{
"id": "c3d4e5f6-a7b8-9012-cdef-123456789012",
"name": "Productivity"
},
{
"id": "d4e5f6a7-b8c9-0123-defa-234567890123",
"name": "Browser"
}
],
"created_at": "2025-06-15T10:00:00.000Z",
"updated_at": "2026-01-20T14:30:00.000Z"
},
{
"id": "e5f6a7b8-c9d0-1234-efab-567890123456",
"canonical_name": "Slack",
"description": "A messaging and collaboration platform for teams",
"display_colour": "#4A154B",
"logo": "https://cdn.example.com/logos/slack.png",
"type": "desktop",
"vendor": {
"id": "f6a7b8c9-d0e1-2345-fabc-678901234567",
"name": "Salesforce, Inc.",
"url": "https://www.salesforce.com"
},
"categories": [
{
"id": "a7b8c9d0-e1f2-3456-abcd-789012345678",
"name": "Communication"
}
],
"created_at": "2025-06-15T10:00:00.000Z",
"updated_at": "2026-02-10T09:15:00.000Z"
}
],
"total_count": 312,
"next_cursor": "eyJsYXN0X2lkIjoiZTVmNmE3YjgifQ"
}
Empty Result
{
"data": [],
"total_count": 0,
"next_cursor": null
}
Pagination
This endpoint uses cursor-based pagination.
- Omit
cursoron the first request - If
next_cursoris notnull, pass its value ascursoron the next request - Repeat until
next_cursorisnull
Error Responses
| Status | Description |
|---|---|
| 400 | Invalid query parameters (e.g. unknown sort_by value) |
| 401 | Authentication required |
| 403 | Insufficient permissions |
| 500 | Server error |
Related Endpoints
- Get Catalog App - Full profile for a specific catalog app
- List Catalog Vendors - Browse all vendors
- List Catalog Categories - Browse all categories