Welcome To Vibe Retail!
Build on the same engine that runs the Vibe point of sale. The Vibe API gives you full read and write access to a store's catalog, sales, customers, and inventory, so you can connect Vibe to anything you run.
Point of sale, powerful and simple. Now programmable.
Base URL and auth at a glanceSandbox:
https://demo.app.viberetail.com/index.php/api/v1
Production:https://YOUR-STORE.app.viberetail.com/index.php/api/v1
Every request needs your API key in thex-api-keyheader.
Authenticate
The Vibe API uses API key authentication. Pass your key in the x-api-key header on every request.
x-api-key: YOUR_API_KEY
To generate a key, open your Vibe dashboard and go to Settings > API keys. Create a key, copy it, and store it somewhere safe. Treat it like a password. Anyone with your key can read and change your store data.
Keep your key server sideNever expose your API key in a browser, mobile app, or public repo. Make your calls from your own backend.
Make your first request
This call lists the items in your store. Swap in your own base URL and key.
curl https://demo.app.viberetail.com/index.php/api/v1/items \
-H "x-api-key: YOUR_API_KEY"const res = await fetch(
"https://demo.app.viberetail.com/index.php/api/v1/items",
{ headers: { "x-api-key": "YOUR_API_KEY" } }
);
const items = await res.json();
console.log(items);A successful call returns 200 with a JSON array of items. The total number of matching records comes back in the x-total-records response header, which you use for pagination.
Create an item
Send a POST to the same endpoint with a JSON body.
curl -X POST https://demo.app.viberetail.com/index.php/api/v1/items \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Penn Tennis Can",
"unit_price": 3.25,
"cost_price": 1.25,
"category_id": 2
}'What you can build
The API covers the full store. Every resource supports the same set of actions, so once you learn one, you know them all.
Items, item kits, categories, attributes, modifiers, manufacturers, tags, and price rules.
Sales, gift cards, vouchers, customer and supplier invoices, and invoice payments.
Customers, employees, and suppliers.
Registers, locations, deliveries, receivings, expenses, appointments, and permissions.
How the API works
Every resource follows the same pattern, so the whole API stays predictable.
| Action | Method and path |
|---|---|
| List or search | GET /items |
| Get one | GET /items/{id} |
| Create | POST /items |
| Update | PUT /items/{id} |
| Delete | DELETE /items/{id} |
| Bulk changes | POST /items/batch |
A few conventions worth knowing:
- Search and filter. List endpoints accept
search,search_field,sort_col,sort_dir, and resource filters likecategory_id. - Pagination. Use
limit(up to 1000, default 20) andoffset. Read the total from thex-total-recordsheader. - Bulk work. The
/batchendpoint on each resource creates, updates, and deletes many records in one call. Use it for imports and syncs. - Formats. Responses are JSON by default. XML is available if you need it.
- IDs. Records are referenced by integer IDs returned when you create them.
Sandbox firstPoint at the demo base URL while you build and test. Switch to your store domain when you go live. The endpoints and payloads are identical.
Need a hand
Questions about the API or your integration? Reach the Vibe team at [email protected] or visit https://support.app.viberetail.com.