Items are reusable products and services that can be selected when building invoices and quotes. Maintaining a catalog speeds up document creation and keeps your pricing consistent.
List items
GET /item
curl https://api.rebill.co.za/item \ -H "Authorization: Bearer sk_your_secret_key"
Response:
{
"items": [
{
"id": "itm001",
"name": "Web design",
"description": "Custom website design",
"price": 500000,
"vat_type": "standard"
}
]
}Get an item
GET /item/:id
Returns a single item by ID.
Item object
| Field | Type | Description |
|---|---|---|
| id | string | Unique identifier |
| name | string | Item name |
| description | string | Item description |
| price | integer | Default unit price in cents |
| vat_type | string | none · standard · zero_rated · exempt |
Create an item
POST /item
| Field | Required | Type | Description |
|---|---|---|---|
| name | Yes | string | Item name |
| price | Yes | integer | Default unit price in cents, must be greater than 0 |
| description | No | string | Item description |
| vat_type | No | string | none (default) · standard · zero_rated · exempt |
curl -X POST https://api.rebill.co.za/item \
-H "Authorization: Bearer sk_your_secret_key" \
-H "Content-Type: application/json" \
-d '{
"name": "Web design",
"description": "Custom website design and development",
"price": 500000,
"vat_type": "standard"
}'Response (201 Created):
{
"id": "itm001"
}Free plan accounts are limited to 4 catalog items. Attempting to create more returns 402 Payment Required.
Update an item
PUT /item/:id
Updates an item. Accepts the same fields as create. Send all fields; omitted fields will be cleared.
Delete an item
DELETE /item/:id
Permanently deletes an item from your catalog. Existing invoices and quotes that reference this item are unaffected. Returns 200 OK on success.
Item price history
GET /item/:id/price-history
Scans your non-draft quotes for line items that reference this item and returns each match (newest first) plus a summary. Useful for seeing how a catalog item's price has moved across quotes over time.
curl https://api.rebill.co.za/item/itm001/price-history \ -H "Authorization: Bearer sk_your_secret_key"
Response:
{
"item_name": "Web design",
"summary": {
"count": 3,
"last_price": 550000,
"average_price": 520000,
"min_price": 500000,
"max_price": 550000
},
"rows": [
{
"quote_id": "q001",
"quote_number": "Q0001",
"client_id": "xyz789",
"client_name": "Acme Corp",
"status": "accepted",
"unit_price": 550000,
"quantity": 1,
"quote_date": "2026-03-01T00:00:00Z"
}
]
}Prices are summed and compared across currencies as a simplification; if you sell this item in multiple currencies the summary mixes them.