# Catalog ```{eval-rst} .. autoclass:: ab.api.endpoints.catalog.CatalogEndpoint :members: :undoc-members: ``` ## Per-endpoint reference Each route-backed method has its own page rendering the HTTP route, the Python and CLI call signatures, and the request/response model field tables. This is the page `help(api.catalog.)` links to via its `Docs:` footer. These pages are generated by `scripts/generate_endpoint_docs.py` and kept current by a CI freshness gate. ```{toctree} :maxdepth: 1 :glob: catalog/* ``` ## Methods ### create `POST /Catalog` — Create a new catalog. ```python from ab import ABConnectAPI api = ABConnectAPI(env="staging") result = api.catalog.create({"name": "New Catalog"}) ``` ### list `GET /Catalog` — List catalogs with optional filters (paginated). **Returns:** {class}`~ab.api.models.shared.PaginatedList`\[{class}`~ab.api.models.catalog.CatalogExpandedDto`\] ```python # List all catalogs catalogs = api.catalog.list(page_number=1, page_size=25) # Filter by agent and completion status catalogs = api.catalog.list(agent="Smith", is_completed=False) # Filter by seller IDs catalogs = api.catalog.list(seller_ids=[1103]) ``` ### get `GET /Catalog/{id}` — Get a catalog by ID. **Returns:** {class}`~ab.api.models.catalog.CatalogExpandedDto` ```python catalog = api.catalog.get(1) print(catalog.name) ``` ### update `PUT /Catalog/{id}` — Update a catalog. ```python api.catalog.update(1, {"name": "Updated Catalog"}) ``` ### delete `DELETE /Catalog/{id}` — Delete a catalog. ```python api.catalog.delete(1) ``` ### bulk_insert `POST /Catalog/bulkInsert` — Bulk insert catalog items. ```python api.catalog.bulk_insert({"items": [...]}) ```