Skip to main content
GET /catalogs returns every catalog your Platform API key is authorized to access. Each item in the response array is a MerchantCatalogSummary object containing the catalog’s key, display name, source URL, current product count, and the timestamp of the most recent index run. Omit catalog from POST /products/search to search all returned catalogs, or pass a catalog key to restrict search to one catalog.

Request

GET https://api.octogen.ai/v1/catalogs
Authorization: Bearer <your-platform-api-key>
This endpoint takes no request body and no query parameters.

Example

curl -sS https://api.octogen.ai/v1/catalogs \
  -H "Authorization: Bearer $OCTOGEN_PLATFORM_API_KEY"

Response

The response is a JSON array of MerchantCatalogSummary objects.
[]
MerchantCatalogSummary[]
Array of catalogs granted to the organization. An empty array means the organization has no active catalog grants — this is not an error.

Example response

[
  {
    "catalog": "warrenlotas",
    "displayName": "Warren Lotas",
    "sourceBaseUrl": "https://warrenlotas.com",
    "productCount": 1248,
    "lastIndexedAt": "2026-05-19T18:04:10Z"
  }
]
An empty array ([]) means the organization has no active catalog grants. It is not an error condition — treat it as a normal response and prompt your users to request catalog access via the partner portal.

SDK equivalents

import asyncio
from octogen_ai_sdk import OctogenClient

async def main() -> None:
    async with OctogenClient() as client:
        catalogs = await client.list_catalogs()
        for c in catalogs:
            print(c.catalog, c.display_name, c.product_count)

asyncio.run(main())
import { OctogenClient } from "@octogen-ai/sdk";

const client = new OctogenClient();
const catalogs = await client.listCatalogs();
for (const c of catalogs) {
  console.log(c.catalog, c.displayName, c.productCount);
}