Catalog

class ab.api.endpoints.catalog.CatalogEndpoint(client)[source]

Operations on catalogs (Catalog API).

Parameters:

client (HttpClient)

create(*, data)[source]

POST /Catalog.

Parameters:

data (AddCatalogRequest | dict) – Catalog creation payload with customer_catalog_id, agent, title, start_date (required datetime), end_date (required datetime), and seller_ids. Accepts an AddCatalogRequest instance or a dict.

Return type:

CatalogWithSellersDto

Request model: AddCatalogRequest

Docs: https://ab-sdk.readthedocs.io/en/latest/api/catalog/create.html Request model: AddCatalogRequest Response model: CatalogWithSellersDto

list(*, id=None, customer_catalog_id=None, agent=None, title=None, start_date=None, end_date=None, is_completed=None, seller_ids=None, page_size=25, page_number=1)[source]

List catalogs with optional filters.

Parameters:
  • id (int | None) – Filter by catalog ID.

  • customer_catalog_id (str | None) – Filter by customer-facing catalog ID.

  • agent (str | None) – Filter by assigned agent name.

  • title (str | None) – Filter by catalog title.

  • start_date (str | None) – Filter by start date (ISO 8601 date-time string).

  • end_date (str | None) – Filter by end date (ISO 8601 date-time string).

  • is_completed (bool | None) – Filter by completion status.

  • seller_ids (list[int] | None) – Filter by seller IDs.

  • page_size (int) – Number of items per page.

  • page_number (int) – Page number (1-based).

Returns:

Paginated catalog results.

Return type:

PaginatedList[CatalogExpandedDto]

get(catalog_id)[source]

Retrieve a single catalog by ID.

Parameters:

catalog_id (int) – Catalog identifier.

Returns:

Catalog details with seller/lot counts.

Return type:

CatalogExpandedDto

Docs: https://ab-sdk.readthedocs.io/en/latest/api/catalog/get.html Response model: CatalogExpandedDto

update(catalog_id, *, data)[source]

PUT /Catalog/{id}.

Parameters:
  • catalog_id (int) – Catalog identifier.

  • data (UpdateCatalogRequest | dict) – Catalog update payload — same shape as AddCatalogRequest, including required start_date and end_date. Accepts an UpdateCatalogRequest instance or a dict.

Return type:

CatalogWithSellersDto

Request model: UpdateCatalogRequest

Docs: https://ab-sdk.readthedocs.io/en/latest/api/catalog/update.html Request model: UpdateCatalogRequest Response model: CatalogWithSellersDto

delete(catalog_id)[source]

Delete a catalog.

Parameters:

catalog_id (int) – Catalog identifier.

Return type:

None

Docs: https://ab-sdk.readthedocs.io/en/latest/api/catalog/delete.html

bulk_insert(*, data)[source]

POST /Bulk/insert.

Parameters:

data (BulkInsertRequest | dict) – Bulk insert payload — a BulkInsertRequest with a single catalogs list. Each entry is a BulkInsertCatalogRequest containing nested lots (BulkInsertLotRequest) and sellers (BulkInsertSellerRequest). The top-level shape is a nested tree, not a flat list. Accepts a BulkInsertRequest instance or a dict.

Return type:

None

Request model: BulkInsertRequest

Docs: https://ab-sdk.readthedocs.io/en/latest/api/catalog/bulk_insert.html Request model: BulkInsertRequest

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.<method>) links to via its Docs: footer. These pages are generated by scripts/generate_endpoint_docs.py and kept current by a CI freshness gate.

Methods

create

POST /Catalog — Create a new catalog.

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: PaginatedList[CatalogExpandedDto]

# 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: CatalogExpandedDto

catalog = api.catalog.get(1)
print(catalog.name)

update

PUT /Catalog/{id} — Update a catalog.

api.catalog.update(1, {"name": "Updated Catalog"})

delete

DELETE /Catalog/{id} — Delete a catalog.

api.catalog.delete(1)

bulk_insert

POST /Catalog/bulkInsert — Bulk insert catalog items.

api.catalog.bulk_insert({"items": [...]})