canonical: https://jentic.com/apis/tmforum.org/tmforum

# Tmforum ProductInventory

**TMF API Reference : TMF 637 - Product Inventory Management** September 2023 The Product Inventory Management API provides standardized mechanism for product inventory management such as creation, update and retrieval of the representation of a product in the inventory. It also allows the notification of events related to product lifecycle **Product resource** A product offering procured by a cus. The API exposes 12 endpoints.

## For AI agents

Programmatically create a subscription (hub) to receive events, remove a subscription (hub) to receive events. Covers 12 operations.

## Scope

Does not handle payments, communications, or crm - use for e-commerce only.

## Capabilities

- Create a subscription (hub) to receive Events
- Remove a subscription (hub) to receive Events
- Client listener for entity ProductAttributeValueChangeEvent
- Query and filter ProductInventory records by parameters
- Monitor ProductInventory operational status and events

## Use cases

### E-Commerce Operations

Use the ProductInventory to perform e commerce operations programmatically. The API provides 12 endpoints covering core functionality including create a subscription (hub) to receive events, remove a subscription (hub) to receive events, client listener for entity productattributevaluechangeevent.

Example prompt: Call POST /hub to create a subscription (hub) to receive events

### Automated product Management

Automate product operations by combining multiple ProductInventory endpoints. Agents can remove a subscription (hub) to receive events and then client listener for entity productattributevaluechangeevent in a single workflow.

Example prompt: Call DELETE `/hub/{id}` to remove a subscription (hub) to receive events, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call ProductInventory endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle none tokens manually.

Example prompt: Search Jentic for 'create a subscription (hub) to receive events', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/hub` | Create a subscription (hub) to receive Events |
| DELETE | `/hub/{id}` | Remove a subscription (hub) to receive Events |
| POST | `/listener/productAttributeValueChangeEvent` | Client listener for entity ProductAttributeValueChangeEvent |
| POST | `/listener/productCreateEvent` | Client listener for entity ProductCreateEvent |
| POST | `/listener/productDeleteEvent` | Client listener for entity ProductDeleteEvent |
| POST | `/listener/productProductBatchEvent` | Client listener for entity ProductProductBatchEvent |
| POST | `/listener/productStateChangeEvent` | Client listener for entity ProductStateChangeEvent |
| POST | `/product` | Creates a Product |

## Key resources

- **product** — Operations for Product Resource
- **notification listener** — Notifications for Resource Lifecycle and event notifications
- **events subscription** — Endpoints to register and terminate an Event Listener

## Why Jentic

- **Setup:** Wiring the TM Forum ProductInventory API by hand means resolving its server root, following the TMF hub and listener conventions, and handling retries yourself. Through Jentic you install once, import ProductInventory from the API Directory, and your agent calls it.
- **Permission scoping:** ProductInventory puts the product id in the URL path (`/product/{id}`), so a rule can pin your agent to one product: it can read and patch that product and nothing else. You choose the operations it may call, so a destructive one like product deletion is not included unless you add it.
- **Credential handling:** This TM Forum spec declares no credential, so there is nothing for Jentic One to store; any credential your deployment requires is held encrypted by your own instance and injected at execution time, never in the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'create a product inventory item' or 'retrieve a product by id', and Jentic returns the matching ProductInventory operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Shopify** — Alternative e commerce API
- **Stripe** — Alternative e commerce API

## FAQ

### What authentication does the ProductInventory use?

The ProductInventory uses no authentication. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I create a subscription (hub) to receive events with the ProductInventory?

Yes. Use the POST /hub endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the ProductInventory?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I create a subscription (hub) to receive events through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'create a subscription (hub) to receive events'. Jentic returns the matching ProductInventory operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the ProductInventory have?

The ProductInventory exposes 12 endpoints covering product, notification listener, events subscription operations.

### Can I limit what my agent is allowed to do with the ProductInventory API?

Yes. You run Jentic One yourself, so your own rules decide which ProductInventory operations and credentials the agent may use. Because the product id sits in the URL path at `/product/{id}`, you can pin the agent to a single product so it only reads and patches that record and touches nothing else. You also pick the exact operations it can call, so a destructive endpoint like product deletion stays out of reach unless you add it, and event operations such as POST /hub or the listener endpoints are only exposed if you allow them.
