TM Forum Open API

Product Catalog Management API

Browse the operator's products, offers and prices

The Product Catalog Management API enables businesses to efficiently manage the entire lifecycle of catalog elements, ensuring that products, offers, and services remain well-organized and accessible across various business functions.

  • Product discovery
  • Offer pricing
  • Catalog sync

What you can do with this API

Ready to test? Jump to the sample call and the API reference, where you can try every endpoint. Start testing
Read the full API overview

Product Catalog Management API

The Product Catalog Management API enables businesses to efficiently manage the entire lifecycle of catalog elements, ensuring that products, offers, and services remain well-organized and accessible across various business functions.

Key Capabilities

1. Catalog Creation & Maintenance

  • Allows businesses to define, structure, and update product catalogs dynamically.
  • Supports version control, ensuring catalogs remain up to date with the latest offerings.

2. Product & Offer Management

  • Enables creation, modification, and removal of product listings and associated offerings.
  • Supports configuration of pricing, descriptions, attributes, and availability details.

3. Integration with Business Processes

  • Allows consultation of catalog elements during processes like:
    • Ordering – Ensures customers access relevant products during purchase.
    • Campaign Management – Supports marketing teams in promoting specific products.
    • Sales Management – Helps sales teams offer accurate product details and promotions.

4. Customization & Categorization

  • Enables grouping of products based on categories, attributes, and market segments.
  • Supports custom pricing strategies and region-specific product offerings.

5. Real-Time Updates & Synchronization

  • Ensures that catalog updates are reflected across all integrated systems instantly.
  • Helps businesses synchronize product data across e-commerce platforms, CRM, and ERP systems.

6. Advanced Search & Filtering

  • Provides search functionalities for users to find products quickly based on attributes or keywords.
  • Supports dynamic filtering to refine product selections during browsing.

Use Cases of Product Catalog Management API

  1. E-Commerce & Online Retail – Ensures seamless product catalog updates across digital storefronts.
  2. Enterprise Sales & Marketing – Helps businesses manage product offerings for targeted campaigns.
  3. Subscription-Based Services – Allows customization of subscription models based on catalog items.
  4. Telecom & Digital Services – Enables structured catalog management for service offerings.
  5. Wholesale & Distribution – Supports bulk pricing and product catalog segmentation for different markets.

The Product Catalog Management API plays a key role in ensuring catalog consistency, accessibility, and accuracy, allowing businesses to enhance their product lifecycle management and sales operations.

Questions about the Product Catalog Management API

What can I do with the Product Catalog Management API?

The Product Catalog Management API enables businesses to efficiently manage the entire lifecycle of catalog elements, ensuring that products, offers, and services remain well-organized and accessible across various business functions.

  • List or find Catalog objects (GET /catalog)
  • Creates a Catalog (POST /catalog)
  • Retrieves a Catalog by ID (GET /catalog/{id})
  • Updates partially a Catalog (PATCH /catalog/{id})
  • Deletes a Catalog (DELETE /catalog/{id})
  • List or find Category objects (GET /category)
  • Creates a Category (POST /category)
  • Retrieves a Category by ID (GET /category/{id})
  • Updates partially a Category (PATCH /category/{id})
  • Deletes a Category (DELETE /category/{id})
  • List or find ProductOffering objects (GET /productOffering)
  • Creates a ProductOffering (POST /productOffering)
  • Retrieves a ProductOffering by ID (GET /productOffering/{id})
  • Updates partially a ProductOffering (PATCH /productOffering/{id})
  • Deletes a ProductOffering (DELETE /productOffering/{id})
  • List or find ProductOfferingPrice objects (GET /productOfferingPrice)
  • Creates a ProductOfferingPrice (POST /productOfferingPrice)
  • Retrieves a ProductOfferingPrice by ID (GET /productOfferingPrice/{id})
  • Updates partially a ProductOfferingPrice (PATCH /productOfferingPrice/{id})
  • Deletes a ProductOfferingPrice (DELETE /productOfferingPrice/{id})
  • List or find ProductSpecification objects (GET /productSpecification)
  • Creates a ProductSpecification (POST /productSpecification)
  • Retrieves a ProductSpecification by ID (GET /productSpecification/{id})
  • Updates partially a ProductSpecification (PATCH /productSpecification/{id})
  • Deletes a ProductSpecification (DELETE /productSpecification/{id})
  • List or find ImportJob objects (GET /importJob)
  • Creates a ImportJob (POST /importJob)
  • Retrieves a ImportJob by ID (GET /importJob/{id})
  • Deletes a ImportJob (DELETE /importJob/{id})
  • List or find ExportJob objects (GET /exportJob)
  • Creates a ExportJob (POST /exportJob)
  • Retrieves a ExportJob by ID (GET /exportJob/{id})
  • Deletes a ExportJob (DELETE /exportJob/{id})
  • Register a listener (POST /hub)
  • Unregister a listener (DELETE /hub/{id})
  • Client listener for entity CatalogCreateEvent (POST /listener/catalogCreateEvent)
  • Client listener for entity CatalogAttributeValueChangeEvent (POST /listener/catalogAttributeValueChangeEvent)
  • Client listener for entity CatalogStateChangeEvent (POST /listener/catalogStateChangeEvent)
  • Client listener for entity CatalogDeleteEvent (POST /listener/catalogDeleteEvent)
  • Client listener for entity CatalogBatchEvent (POST /listener/catalogBatchEvent)
  • Client listener for entity CategoryCreateEvent (POST /listener/categoryCreateEvent)
  • Client listener for entity CategoryAttributeValueChangeEvent (POST /listener/categoryAttributeValueChangeEvent)
  • Client listener for entity CategoryStateChangeEvent (POST /listener/categoryStateChangeEvent)
  • Client listener for entity CategoryDeleteEvent (POST /listener/categoryDeleteEvent)
  • Client listener for entity ProductOfferingCreateEvent (POST /listener/productOfferingCreateEvent)
  • Client listener for entity ProductOfferingAttributeValueChangeEvent (POST /listener/productOfferingAttributeValueChangeEvent)
  • Client listener for entity ProductOfferingStateChangeEvent (POST /listener/productOfferingStateChangeEvent)
  • Client listener for entity ProductOfferingDeleteEvent (POST /listener/productOfferingDeleteEvent)
  • Client listener for entity ProductOfferingPriceCreateEvent (POST /listener/productOfferingPriceCreateEvent)
  • Client listener for entity ProductOfferingPriceAttributeValueChangeEvent (POST /listener/productOfferingPriceAttributeValueChangeEvent)
  • Client listener for entity ProductOfferingPriceStateChangeEvent (POST /listener/productOfferingPriceStateChangeEvent)
  • Client listener for entity ProductOfferingPriceDeleteEvent (POST /listener/productOfferingPriceDeleteEvent)
  • Client listener for entity ProductSpecificationCreateEvent (POST /listener/productSpecificationCreateEvent)
  • Client listener for entity ProductSpecificationAttributeValueChangeEvent (POST /listener/productSpecificationAttributeValueChangeEvent)
  • Client listener for entity ProductSpecificationStateChangeEvent (POST /listener/productSpecificationStateChangeEvent)
  • Client listener for entity ProductSpecificationDeleteEvent (POST /listener/productSpecificationDeleteEvent)
Which inputs does each call to the Product Catalog Management API need?
  • GET /catalog/{id}: requires id
  • PATCH /catalog/{id}: requires id
  • DELETE /catalog/{id}: requires id
  • GET /category/{id}: requires id
  • PATCH /category/{id}: requires id
  • DELETE /category/{id}: requires id
  • GET /productOffering/{id}: requires id
  • PATCH /productOffering/{id}: requires id
  • DELETE /productOffering/{id}: requires id
  • GET /productOfferingPrice/{id}: requires id
  • PATCH /productOfferingPrice/{id}: requires id
  • DELETE /productOfferingPrice/{id}: requires id
  • GET /productSpecification/{id}: requires id
  • PATCH /productSpecification/{id}: requires id
  • DELETE /productSpecification/{id}: requires id
  • GET /importJob/{id}: requires id
  • DELETE /importJob/{id}: requires id
  • GET /exportJob/{id}: requires id
  • DELETE /exportJob/{id}: requires id
  • DELETE /hub/{id}: requires id

Every call also needs Authorization: Bearer <access_token>. The API reference on this page shows each field's type and an example request.

Which errors can the Product Catalog Management API return?
  • 400: Bad Request
  • 401: Unauthorized
  • 403: Forbidden
  • 404: Not Found
  • 405: Method Not allowed
  • 409: Conflict
  • 500: Internal Server Error

On 401, request a new access token and retry.

Where is the Product Catalog Management API available?

Product Catalog Management is available in Algeria, Kuwait, Maldives, Oman, Palestine and Tunisia.

Which standard does the Product Catalog Management API follow?

It follows the TM Forum Open API standard used across the telecom industry. See our TM Forum certification page.

Sample call

From the published OpenAPI specification. Replace the placeholders with your app's credentials and real values.

Call the API

curl -X GET https://api.ooredoo.com/tmf-api/productCatalogManagement/v1/catalog \
  -H "Authorization: Bearer $ACCESS_TOKEN"

API reference

Try any endpoint in the sandbox