Open API
Connect your systems to Mahjoz.
An open API and webhooks: read orders, customers, services, staff and branches, and create orders and customers from your own systems.
Mahjoz Open API
- Base URL
https://api.mahjoz.io/api/open/v1- Authentication
- OAuth2 Client Credentials
- Events
- Order webhooks, signed with HMAC-SHA256
- Rate limit
- 60 requests per minute per API client
- Availability
- Business plan
What you can build with the API.
Create orders from your system
Check available times, then create the order in Mahjoz from your website or app.
Sync customers
Read customers, search by mobile number, and add new customers from your systems.
Receive order events
Get an instant notification when an order is created, changes status, is invoiced or has its payment accepted.
Show your services and team
Read items, categories, staff and branches to display them in your own interfaces.
Two ways to connect: with code or with chat.
- Business plan
Open API and webhooks
For developers and tech teams: connect Mahjoz to your systems via OAuth, with specific scopes for each API client.
- Growth and Business plans
Connect Claude and ChatGPT
For business owners: run your business by chatting inside Claude or ChatGPT via the MCP protocol, no coding needed.
Get started in three steps.
Authentication uses OAuth2 Client Credentials.
- 1
Create an API client
From the dashboard, go to Settings, then API integration. You'll see your client_id and client_secret. The secret is shown only once, so save it right away.
Open API settings - 2
Get an access token
Send your credentials with the client_credentials grant type to get a Bearer token.
POST /oauth/token - 3
Use the token
Add the token to the header of every request.
Authorization: Bearer <access_token>
Fine-grained scopes for each API client.
An API client gets only the scopes it needs.
| Resource | Scopes | What they allow |
|---|---|---|
| Orders | orders: orders: | Read orders, create them, and check availability |
| Customers | customers: customers: | Read customers, search by mobile number, and add customers |
| Items | items: | Read services and products |
| Staff | staff: | Read staff, their services and their working hours |
| Branches and categories | branches: categories: | Read branches and categories |
| Payment methods | payment_ payment_ | Read and create payment methods |
| Transactions | transactions: transactions: | Read transactions and record order payments |
| Webhooks | webhooks: webhooks: | Manage webhook subscriptions |
The * scope grants all scopes. Full details for every endpoint, with request and response examples, are in the reference.
Limits, events and errors.
All errors share the same shape: an error field and a message field.
Rate limit
60 / minute
Per API client. If you go over, you get a
429code with aRetry-Afterheader.Pagination
25 results per page
By default, and up to 100 with
per_page.Webhooks
3 per account
Signed with HMAC-SHA256 in the
Signatureheader, with 3 retries on failure.Token validity
1 year
expires_in: 31536000seconds.
Order events
order.createdorder.updatedorder.deletedorder.status_changedorder.invoice_createdorder.payment_accepted
Error handling
| Status | Error code | Meaning |
|---|---|---|
| 401 | authentication_ | Missing, invalid, or expired token |
| 403 | insufficient_ | Token lacks the required scope |
| 403 | feature_ | The API is not available on your current plan |
| 422 | validation_ | Invalid request data |
| 422 | timeslot_ | Requested time slot is not available |
| 429 | — | Rate limit exceeded |
| 502 | availability_ | Booking service unreachable |
Developer support.
Need help with your integration?
If you use Mahjoz for your business, contact the support team.
Sell anything.Run everything.Grow every customer.
-
WebsiteFor your customers
-
DashboardFor you
-
Staff appFor your team
-
POSFor your team
-
Customer appFor your customers
Run your whole business on one platform. Talk to our sales team and we'll show you Mahjoz working the way it would in your business.
- Free demo
- No commitment
- No commission on your sales
+966 58 150 4066 · info@mahjoz.io