Developers · Docs
API reference
Preview · the API opens with the first release
A read-only API for the public information a store chooses to show. The final paths and field names are published with the first release; this page says what is decided.
Basics
- Host
api.vizzit.studio, under the/api/v1/public/prefix. Read-only: every request is a GET. - Each request is for one store, and returns only what that store chose to show in Website and API.
- JSON with snake_case names. Ids are opaque strings: use them, never read meaning into them.
- Times are in UTC (RFC 3339, ending in Z). Opening hours carry the store’s time zone.
- Lists come a page at a time, with a cursor for the next page.
Authentication
Every request carries a website key made in Website and API. A key is publishable: it reads only public information, so it can sit in your page. It works only from the websites you allow. The examples on this site send it in an X-Vizzit-Key header; the final header is fixed at launch.
Resources
- Store
- The store’s name and its business’s name, address and phone, as customers see them.
- Services and prices
- Each service the store offers: its name, category, duration and price, with GST as the store shows it.
- Running offers
- Offers on sale now: their name, what they apply to, and when they end.
- Opening hours
- The store’s weekly hours, breaks and holidays, in its own time zone.
- Team profiles
- For team members the store shows: name, photo and short bio only.
- Photos and videos
- Pictures of the store and its work that customers approved for use.
- Free times and bookingLater
- Free times and online booking come with the next phase, with webhooks for your site.
Responses
A single item comes as data with meta.request_id; a list adds the cursor for the next page in meta.pagination. Responses are cached for a short time, so a change in Vizzit can take a moment to appear.
Rate limits
Each key has a limit on calls per minute, published with the first release. Over it, the API answers 429 RATE_LIMITED with retry_after_ms: wait that long, then try again.
Errors
An error comes as error, with code, message, details and request_id. Match on the code, never on the message. The codes come from the error list every Vizzit API shares; which one each key problem returns is fixed in the public contract at launch.
- 400 VALIDATION_ERROR
- A parameter is wrong;
details.fieldssays which. Do not retry unchanged. - 400 CURSOR_INVALID
- The cursor is old or was used with other filters. Start again from the first page.
- 401 UNAUTHENTICATED
- The request did not prove who it is for.
- 403 FORBIDDEN
- The request is understood but not allowed.
- 404 RESOURCE_NOT_FOUND
- No such store or item, or one this key cannot see. Both look the same on purpose.
- 429 RATE_LIMITED
- Too many calls. Wait
retry_after_ms, then try again. - 500 INTERNAL_ERROR
- Something went wrong on our side. Quote the
request_idif you write to us.
Still stuck?
Tell us what you are trying to do and we will help, in English or Hindi. Or write to info@hactech.in.