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 glance

Sandbox: 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 the x-api-key header.

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 side

Never 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.

How the API works

Every resource follows the same pattern, so the whole API stays predictable.

ActionMethod and path
List or searchGET /items
Get oneGET /items/{id}
CreatePOST /items
UpdatePUT /items/{id}
DeleteDELETE /items/{id}
Bulk changesPOST /items/batch

A few conventions worth knowing:

  • Search and filter. List endpoints accept search, search_field, sort_col, sort_dir, and resource filters like category_id.
  • Pagination. Use limit (up to 1000, default 20) and offset. Read the total from the x-total-records header.
  • Bulk work. The /batch endpoint 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 first

Point 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.