{"info":{"_postman_id":"0b04d1c0-ea17-4408-bddf-f9b353a63d80","name":"API","description":"<html><head></head><body><p>Integrate advanced scheduling features with the our API – a versatile tool designed for seamless appointment booking and calendar management.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"1487056","collectionId":"0b04d1c0-ea17-4408-bddf-f9b353a63d80","publishedId":"2sAY4x9MRe","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-11-01T13:47:27.000Z"},"item":[{"name":"Auth","item":[{"name":"Token","event":[{"listen":"test","script":{"id":"c53cd6e3-84bb-41e4-b874-5d3e723c707a","exec":["var jsonData = JSON.parse(responseBody);","pm.collectionVariables.set(\"accessToken\", jsonData.access_token);","var template = `","<style type=\"text/css\">","    .tftable {font-size:14px;color:#333333;width:100%;border-width: 1px;border-color: #87ceeb;border-collapse: collapse;}","    .tftable th {font-size:18px;background-color:#87ceeb;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;text-align:left;}","    .tftable tr {background-color:#ffffff;}","    .tftable td {font-size:14px;border-width: 1px;padding: 8px;border-style: solid;border-color: #87ceeb;}","    .tftable tr:hover {background-color:#e0ffff;}","</style>","","<table class=\"tftable\" border=\"1\">","    <tr>","        <th>Token Type</th>","        <th>Expires In</th>","        <th>Access Token</th>","    </tr>","    <tr>","        <td>{{response.token_type}}</td>","        <td>{{response.expires_in}}</td>","        <td>{{response.access_token}}</td>","    </tr>","</table>","`;","","function constructVisualizerPayload() {","    return { response: pm.response.json() }","}","","pm.visualizer.set(template, constructVisualizerPayload());"],"type":"text/javascript","packages":{}}}],"id":"b204126b-33ac-4f70-afe2-296ef73d53bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"client_credentials","type":"text"},{"key":"client_id","value":"","type":"text"},{"key":"client_secret","value":"","type":"text"}]},"url":"/api/v2/token","description":"<h3 id=\"post-apiv2token\">POST /api/v2/token</h3>\n<p>This endpoint is used to obtain a token by providing the necessary credentials.</p>\n<h4 id=\"request\">Request</h4>\n<ul>\n<li><p>Method: POST</p>\n</li>\n<li><p>Base URL: </p>\n</li>\n<li><p>Headers:</p>\n<ul>\n<li>Content-Type: application/x-www-form-urlencoded</li>\n</ul>\n</li>\n</ul>\n<h5 id=\"parameters\">Parameters</h5>\n<ul>\n<li><p>grant_type (text, required): The type of grant being requested.</p>\n</li>\n<li><p>client_id (text, required): The ID of the client.</p>\n</li>\n<li><p>client_secret (text, required): The secret key of the client.</p>\n</li>\n</ul>\n<h4 id=\"response\">Response</h4>\n<ul>\n<li><p>Status: 200</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n</ul>\n<h5 id=\"body\">Body</h5>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600,\n  \"access_token\": \"*********\"\n}\n\n</code></pre>\n","urlObject":{"path":["api","v2","token"],"host":[""],"query":[],"variable":[]}},"response":[],"_postman_id":"b204126b-33ac-4f70-afe2-296ef73d53bb"}],"id":"bcfda98c-c919-4054-b83b-87985a7a58d5","description":"<p>Ensure you add the client ID and client secret variables before running this request. You can find these values on the Configure page in the Dashboard.</p>\n","_postman_id":"bcfda98c-c919-4054-b83b-87985a7a58d5"},{"name":"Customer","item":[{"name":"Create Customer","event":[{"listen":"test","script":{"id":"2d9f6cf6-1e92-4a23-9a00-829fc1e5665e","exec":["pm.test(\"Successful POST request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201]);","});",""],"type":"text/javascript","packages":{}}}],"id":"75ed0f2a-fd83-4cfb-8d12-626ee1ed6f0a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"John\",\n\t\"last_name\": \"Doe\",\n\t\"email\": \"john.doe@example.com\",\n\t\"phone\": \"+447855571605\",\n\t\"description\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers","description":"<p>This is a POST request, submitting data to an API via the request body. This request submits JSON data, and the data is reflected in the response.</p>\n<p>A successful POST request typically returns a <code>200 OK</code>.</p>\n","urlObject":{"path":["api","v2","customers"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"4b90a559-2fa7-4134-9713-6387df1ff3d5","name":"Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n\t\"email\": \"john.doe@example.com\",\n    \"phone\": \"+447855571605\"\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx","enabled":true},{"key":"Date","value":"Wed, 30 Oct 2024 12:17:58 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Accept-Encoding","enabled":true},{"key":"X-Powered-By","value":"PHP/8.3.12","enabled":true},{"key":"X-Clockwork-Id","value":"1730290678-3536-463547651","enabled":true},{"key":"X-Clockwork-Version","value":"5.2.2","enabled":true},{"key":"Server-Timing","value":"app; dur=101.6628742218; desc=\"Application\", db; dur=4.8749446868896; desc=\"Database\"","enabled":true},{"key":"X-Content-Type-Options","value":"nosniff","enabled":true},{"key":"X-XSS-Protection","value":"1; mode=block","enabled":true},{"key":"Referrer-Policy","value":"no-referrer, strict-origin-when-cross-origin","enabled":true},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubdomains; preload","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE","enabled":true},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With","enabled":true},{"key":"Access-Control-Allow-Credentials","value":"true","enabled":true},{"key":"Access-Control-Max-Age","value":"3600","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 75\n}"},{"id":"195073a1-58e4-4985-b1d8-acda3d64c20c","name":"Forbidden (Access key not valid)","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"John\",\n    \"last_name\": \"Doe\",\n\t\"email\": \"john.doe1@example.com\",\n    \"phone\": \"+447855571605\"\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers"},"status":"Forbidden","code":403,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx","enabled":true},{"key":"Date","value":"Wed, 30 Oct 2024 14:41:27 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Accept-Encoding","enabled":true},{"key":"X-Powered-By","value":"PHP/8.3.12","enabled":true},{"key":"X-Clockwork-Id","value":"1730299285-5966-1594397174","enabled":true},{"key":"X-Clockwork-Version","value":"5.2.2","enabled":true},{"key":"Server-Timing","value":"app; dur=2225.625038147; desc=\"Application\"","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE","enabled":true},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With","enabled":true},{"key":"Access-Control-Max-Age","value":"3600","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"The resource owner or authorization server denied the request.\"\n}"},{"id":"1e96566c-61f6-487d-a343-2c9bc76c415b","name":"Validation Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"John\",\n    \"last_name\": \"aaaaaaaaaaaaaaaaaaaaaaaa\",\n\t\"email\": \"john.doe1a@example.com\",\n    \"phone\": \"+447855571605\"\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx","enabled":true},{"key":"Date","value":"Fri, 01 Nov 2024 14:13:45 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"X-Powered-By","value":"PHP/8.3.12","enabled":true},{"key":"X-Clockwork-Id","value":"1730470425-6760-773691169","enabled":true},{"key":"X-Clockwork-Version","value":"5.2.2","enabled":true},{"key":"Server-Timing","value":"app; dur=144.15216445923; desc=\"Application\", db; dur=1.8429756164551; desc=\"Database\"","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE","enabled":true},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With","enabled":true},{"key":"Access-Control-Max-Age","value":"3600","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": \"This email is already in use.\",\n    \"phone_number\": \"The phone number \\\"+4478aaa55571605\\\" is not valid.\"\n}"}],"_postman_id":"75ed0f2a-fd83-4cfb-8d12-626ee1ed6f0a"},{"name":"Update Customer","event":[{"listen":"test","script":{"id":"9d00a247-36f1-4f5f-bd61-2112ef287c28","exec":["pm.test(\"Successful PUT request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201, 204]);","});",""],"type":"text/javascript","packages":{}}}],"id":"32e2ebb9-b318-4275-a1e9-b91e28d18da1","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n\t\"first_name\": \"Jane\",\n\t\"last_name\": \"Doe\",\n\t\"email\": \"jane.doe@example.com\",\n\t\"phone\": \"+447855571605\",\n\t\"description\": \"\"\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers/:id","description":"<p>This is a PUT request and it is used to overwrite an existing piece of data. For instance, after you create an entity with a POST request, you may want to modify that later. You can do that using a PUT request. You typically identify the entity being updated by including an identifier in the URL (eg. <code>id=1</code>).</p>\n<p>A successful PUT request typically returns a <code>200 OK</code>, <code>201 Created</code>, or <code>204 No Content</code> response code.</p>\n","urlObject":{"path":["api","v2","customers",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"ID of customer","key":"id"}]}},"response":[],"_postman_id":"32e2ebb9-b318-4275-a1e9-b91e28d18da1"},{"name":"Delete Customer","event":[{"listen":"test","script":{"id":"a4938273-f343-4174-abb3-674986734210","exec":["pm.test(\"Successful DELETE request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 202, 204]);","});",""],"type":"text/javascript","packages":{}}}],"id":"5f375bb2-17fc-45f1-9061-a9f6c1184d07","request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers/:id","description":"<p>This is a DELETE request, and it is used to delete data that was previously created via a POST request. You typically identify the entity being updated by including an identifier in the URL (eg. <code>id=1</code>).</p>\n<p>A successful DELETE request typically returns a <code>200 OK</code>, <code>202 Accepted</code>, or <code>204 No Content</code> response code.</p>\n","urlObject":{"path":["api","v2","customers",":id"],"host":[""],"query":[{"disabled":true,"key":"","value":""}],"variable":[{"description":{"content":"<p>ID of customer</p>\n","type":"text/plain"},"type":"any","value":"","key":"id"}]}},"response":[{"id":"86cac480-6503-426b-b223-8d9762b0e4c7","name":"Customer Not Found","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"/api/v2/customers/{id}"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx","enabled":true},{"key":"Date","value":"Wed, 30 Oct 2024 12:21:09 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Accept-Encoding","enabled":true},{"key":"X-Powered-By","value":"PHP/8.3.12","enabled":true},{"key":"X-Clockwork-Id","value":"1730290869-1576-516683924","enabled":true},{"key":"X-Clockwork-Version","value":"5.2.2","enabled":true},{"key":"Server-Timing","value":"app; dur=85.095882415771; desc=\"Application\", db; dur=0.53000450134277; desc=\"Database\"","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE","enabled":true},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With","enabled":true},{"key":"Access-Control-Max-Age","value":"3600","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Customer not found\"\n}"},{"id":"f1e5e208-9f3e-4454-87ef-dd0dbfdccbc5","name":"Success Response","originalRequest":{"method":"DELETE","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":{"raw":"/api/v2/customers/:id","host":[""],"path":["api","v2","customers",":id"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"id","value":"75","description":"Customer ID"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx","enabled":true},{"key":"Date","value":"Wed, 30 Oct 2024 13:09:53 GMT","enabled":true},{"key":"Content-Type","value":"application/json","enabled":true},{"key":"Transfer-Encoding","value":"chunked","enabled":true},{"key":"Connection","value":"keep-alive","enabled":true},{"key":"Vary","value":"Accept-Encoding","enabled":true},{"key":"X-Powered-By","value":"PHP/8.3.12","enabled":true},{"key":"X-Clockwork-Id","value":"1730293793-4835-488760972","enabled":true},{"key":"X-Clockwork-Version","value":"5.2.2","enabled":true},{"key":"Server-Timing","value":"app; dur=101.19581222534; desc=\"Application\", db; dur=9.7665786743164; desc=\"Database\"","enabled":true},{"key":"X-Content-Type-Options","value":"nosniff","enabled":true},{"key":"X-XSS-Protection","value":"1; mode=block","enabled":true},{"key":"Referrer-Policy","value":"no-referrer, strict-origin-when-cross-origin","enabled":true},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubdomains; preload","enabled":true},{"key":"Access-Control-Allow-Origin","value":"*","enabled":true},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE","enabled":true},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With","enabled":true},{"key":"Access-Control-Allow-Credentials","value":"true","enabled":true},{"key":"Access-Control-Max-Age","value":"3600","enabled":true},{"key":"Content-Encoding","value":"gzip","enabled":true}],"cookie":[],"responseTime":null,"body":"[]"}],"_postman_id":"5f375bb2-17fc-45f1-9061-a9f6c1184d07"},{"name":"List Customers","id":"e6144be0-dd30-4928-b0e3-fa6a6c90c2a9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/customers","description":"<p>Retrieves a list of all customers. Supports filtering by email, first name, last name, and phone.</p>\n<h4 id=\"query-parameters\">Query Parameters:</h4>\n<ul>\n<li><p><code>page</code> (optional) — The page number to retrieve. Defaults to <code>1</code> if not specified.</p>\n</li>\n<li><p><code>limit</code> (optional) — The number of customers to return per page. Defaults to <code>10</code>.</p>\n</li>\n<li><p><code>email</code> (optional) — Filters customers by their exact email address.</p>\n</li>\n<li><p><code>firstName</code> (optional) — Filters customers by their exact first name.</p>\n</li>\n<li><p><code>lastName</code> (optional) — Filters customers by their exact last name.</p>\n</li>\n<li><p><code>phoneNumber</code> (optional) — Filters customers by their exact phone number. Must be URL-encoded.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","customers"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"7c806b5f-bb52-43f1-9fdb-04cd847ebe4e","name":"List Customers","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/customers?limit=5","host":[""],"path":["api","v2","customers"],"query":[{"key":"limit","value":"5"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 3,\n            \"first_name\": \"Jane\",\n            \"last_name\": \"Doe\",\n            \"email\": \"jane.doe@example.com\",\n            \"phone_number\": null,\n            \"phone_country_code\": null\n        },\n        {\n            \"id\": 4,\n            \"first_name\": \"Petar\",\n            \"last_name\": \"Petrovic\",\n            \"email\": \"petar.petrovic@example.com\",\n            \"phone_number\": null,\n            \"phone_country_code\": null\n        },\n        {\n            \"id\": 5,\n            \"first_name\": \"Cole\",\n            \"last_name\": \"Streich\",\n            \"email\": \"cole.streich@example.com\",\n            \"phone_number\": \"+495550981170\",\n            \"phone_country_code\": \"DE\"\n        },\n        {\n            \"id\": 6,\n            \"first_name\": \"Waldo\",\n            \"last_name\": \"Purdy\",\n            \"email\": \"waldo.purdy@example.com\",\n            \"phone_number\": \"+493994891819\",\n            \"phone_country_code\": \"DE\"\n        },\n        {\n            \"id\": 8,\n            \"first_name\": \"Icie\",\n            \"last_name\": \"Halvorson\",\n            \"email\": \"icie.halvorson@example.com\",\n            \"phone_number\": null,\n            \"phone_country_code\": null\n        }\n    ],\n    \"pagination\": {\n        \"total\": 67,\n        \"page\": 1,\n        \"limit\": 5,\n        \"pages\": 14\n    }\n}"}],"_postman_id":"e6144be0-dd30-4928-b0e3-fa6a6c90c2a9"},{"name":"Get Customer Details","id":"02a971e8-4a56-4b7b-8d98-988e39776354","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"/api/v2/customers/:id","urlObject":{"path":["api","v2","customers",":id"],"host":[""],"query":[{"disabled":true,"key":"","value":""}],"variable":[{"type":"any","value":"ID of customer","key":"id"}]}},"response":[{"id":"fe74febe-e3fa-4e9e-ba4d-bd37a6a9f758","name":"Get Customer Details","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":{"raw":"/api/v2/customers/:id","host":[""],"path":["api","v2","customers",":id"],"query":[{"key":"","value":"","type":"text","disabled":true}],"variable":[{"key":"id","value":"ID of customer"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": 3,\n    \"first_name\": \"Jane\",\n    \"last_name\": \"Doe\",\n    \"email\": \"jane.doe@example.com\",\n    \"phone_number\": null,\n    \"phone_country_code\": null,\n    \"birthday\": \"1999-09-29\",\n    \"gender\": \"female\"\n}"}],"_postman_id":"02a971e8-4a56-4b7b-8d98-988e39776354"}],"id":"0c199a78-54c7-4706-a2bb-b14e39376ac2","auth":{"type":"noauth","isInherited":false},"event":[{"listen":"prerequest","script":{"id":"7c4e5e19-7a59-4985-a4e4-bef26e8448f0","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"8749ec1f-2a6c-4f22-92b4-6c8f732c8e31","type":"text/javascript","packages":{},"exec":[""]}}],"_postman_id":"0c199a78-54c7-4706-a2bb-b14e39376ac2","description":""},{"name":"Coupon","item":[{"name":"Create Coupon","id":"782a00a9-31ec-49db-8f67-d340042eafb6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"code\": \"COUPON20\",\n    \"expiration_date\": \"2025-10-08\",\n    \"discount_value\": 20,\n    \"usage_limit\": null,\n    \"limit_per_user\": null,\n    \"booking_limit_amount\": null\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/coupons","description":"<p>This is a <code>POST</code> request that submits coupon data to the API via the request body in JSON format. If the request is successful, the API returns a <code>200 OK</code> response with the newly created coupon's ID.</p>\n<p>Coupons created through this endpoint can be applied to all services.</p>\n<h2 id=\"parameters\"><strong>Parameters</strong></h2>\n<ul>\n<li><strong>code</strong> (string, required)</li>\n</ul>\n<p>Coupon code (max 100 characters).</p>\n<ul>\n<li><strong>expiration_date</strong> (string, optional)</li>\n</ul>\n<p>Coupon expiration date in <code>Y-m-d</code> format.</p>\n<ul>\n<li><strong>discount_type</strong> (string, optional)</li>\n</ul>\n<p>Type of discount applied. Valid values: <code>discount</code> (default) or <code>deduction</code>.</p>\n<ul>\n<li><strong>discount_value</strong> (integer, required)</li>\n</ul>\n<p>Coupon discount amount.</p>\n<ul>\n<li><strong>usage_limit</strong> (integer or null, required)</li>\n</ul>\n<p>Maximum number of times the coupon can be used.</p>\n<p><code>null</code> means no limit.</p>\n<ul>\n<li><strong>limit_per_user</strong> (integer or null, required)</li>\n</ul>\n<p>Maximum number of times a single user can use the coupon.</p>\n<p><code>null</code> means no limit.</p>\n<ul>\n<li><strong>booking_limit_amount</strong> (integer or null, optional)</li>\n</ul>\n<p>Minimum booking amount required to apply the coupon.</p>\n<p><code>null</code> means no minimum amount.</p>\n","urlObject":{"path":["api","v2","coupons"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"b476f0f6-adb1-4431-b6dc-cd7e0bcd79b7","name":"Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"code\": \"COUPON20\",\n    \"expiration_date\": \"2025-10-08\",\n    \"discount_value\": 20,\n    \"usage_limit\": null,\n    \"limit_per_user\": null,\n    \"booking_limit_amount\": null\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/coupons"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 7\n}"},{"id":"fb94fcb1-770b-44f4-8725-01a2ea5ca13f","name":"Validation Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"code\": \"COUPON10\",\n    \"usage_limit\": null,\n    \"limit_per_user\": null,\n    \"booking_limit_amount\": null\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/coupons"},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"discount_value\": \"This value should be greater than or equal to 1.\"\n}"}],"_postman_id":"782a00a9-31ec-49db-8f67-d340042eafb6"},{"name":"Update Coupon","id":"ddbe46ce-675f-440c-88ee-19d73d24d956","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"usage_limit\": 1000,\n    \"limit_per_user\": 10,\n    \"booking_limit_amount\": 100\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/coupons/:id","description":"<p>This is a <code>PATCH</code> request and is used to partially update an existing coupon. In your <code>PATCH</code> request, only the parameters that are being updated need to be sent. If you don't include a parameter, the existing value for that parameter remains unchanged. The coupon to be updated is identified by including its unique identifier (e.g., <code>id=1</code>) in the URL.</p>\n<p>A successful <code>PATCH</code> request typically returns a <code>200 OK</code> or <code>204 No Content</code> response code, indicating that the update was successful. If the coupon does not exist or there is an error with the request, an appropriate error response will be returned.</p>\n","urlObject":{"path":["api","v2","coupons",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"304bd860-92e6-4951-9211-cd3068d97da3","name":"Success Response","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"usage_limit\": 1000,\n    \"limit_per_user\": 10,\n    \"booking_limit_amount\": 100\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"/api/v2/coupons/:id","host":[""],"path":["api","v2","coupons",":id"],"variable":[{"key":"id","value":"7"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"[]"},{"id":"d8a93dea-715f-4e37-8fbf-f33d982c4e83","name":"Coupon Not Found","originalRequest":{"method":"PATCH","header":[],"body":{"mode":"raw","raw":"{\n    \"usage_limit\": 1000,\n    \"limit_per_user\": 10,\n    \"booking_limit_amount\": 100\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"/api/v2/coupons/:id?id=5","host":[""],"path":["api","v2","coupons",":id"],"query":[{"key":"id","value":"5"}],"variable":[{"key":"id","value":""}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Coupon not found\"\n}"}],"_postman_id":"ddbe46ce-675f-440c-88ee-19d73d24d956"},{"name":"Delete Coupon","id":"cbe7257a-8c28-475a-b8be-275e886ba8aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"/api/v2/coupons/:id","description":"<p>This is a <code>DELETE</code> request, and it is used to remove a previously created coupon. You typically identify the coupon to be deleted by including its unique identifier in the URL (e.g., <code>id=1</code>).</p>\n<p>A successful <code>DELETE</code> request typically returns a <code>200 OK</code>, <code>202 Accepted</code>, or <code>204 No Content</code> response code, indicating that the coupon has been successfully deleted. If the coupon does not exist or there is an error with the request, an appropriate error response will be returned.</p>\n","urlObject":{"path":["api","v2","coupons",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"","key":"id"}]}},"response":[{"id":"505b106c-10fe-41f2-8fb4-9ef27684a682","name":"Success Response","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"/api/v2/coupons/:id","host":[""],"path":["api","v2","coupons",":id"],"query":[{"key":"","value":null,"type":"text","disabled":true}],"variable":[{"key":"id","value":"7"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"[]"},{"id":"84b7b342-ed4f-4c9f-8d30-2d4344faeb51","name":"Coupon Not Found","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"/api/v2/coupons/:id","host":[""],"path":["api","v2","coupons",":id"],"query":[{"key":"","value":"","disabled":true}],"variable":[{"key":"id","value":"2"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text","enabled":true}],"cookie":[],"responseTime":null,"body":"{\n    \"error\": \"Coupon not found\"\n}"}],"_postman_id":"cbe7257a-8c28-475a-b8be-275e886ba8aa"}],"id":"dede3c93-ae00-434e-8c52-936c561ea677","_postman_id":"dede3c93-ae00-434e-8c52-936c561ea677","description":""},{"name":"Employees","item":[{"name":"List Employees","id":"01886705-c4da-49bb-8ea4-5251aef3dacf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/employees","description":"<p>Retrieves a list of all employees.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> <em>(optional)</em> — The page number to retrieve. Defaults to <code>1</code> if not specified.</p>\n</li>\n<li><p><code>limit</code> <em>(optional)</em> — The number of locations to return per page. Defaults to <code>10</code> if not specified.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","employees"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"b913f012-867d-467a-8e65-d978d186ba11","name":"List Employees","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/employees?page=2&limit=3","host":[""],"path":["api","v2","employees"],"query":[{"key":"page","value":"2"},{"key":"limit","value":"3"}]}},"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json","description":"","type":"text"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"first_name\": \"Jane\",\n            \"last_name\": \"Doe\",\n            \"email\": \"jane.doe@example.com\",\n            \"phone_number\": \"+79021596518\",\n            \"phone_country_code\": \"RU\",\n            \"timezone\": \"Europe/Belgrade\"\n        },\n        {\n            \"id\": 2,\n            \"first_name\": \"Emma\",\n            \"last_name\": \"Stone\",\n            \"email\": \"emma.stone@example.com\",\n            \"phone_nubmber\": null,\n            \"phone_country_code\": null,\n            \"timezone\": \"Europe/Belgrade\"\n        },\n        {\n            \"id\": 3,\n            \"first_name\": \"Stark\",\n            \"last_name\": \"Towne\",\n            \"email\": \"stark.towne@example.com\",\n            \"phone_nubmber\": null,\n            \"phone_country_code\": null,\n            \"timezone\": null\n        }\n    ],\n    \"pagination\": {\n        \"total\": 9,\n        \"page\": 2,\n        \"limit\": 3,\n        \"pages\": 3\n    }\n}"}],"_postman_id":"01886705-c4da-49bb-8ea4-5251aef3dacf"},{"name":"Get Employee Details","id":"275fc651-67ba-4e55-b117-4bb9bd906af3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/employees/:id","description":"<p>Retrieves detailed information about a specific employee.</p>\n","urlObject":{"path":["api","v2","employees",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"ID of employee","key":"id"}]}},"response":[{"id":"fd3655f5-a81e-43a2-8186-a2a5eaea7159","name":"Get Employee Details","originalRequest":{"method":"GET","header":[{"key":"id","value":"1","type":"text"}],"url":"/api/v2/employees/1"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": 1,\n    \"first_name\": \"Jane\",\n    \"last_name\": \"Doe\",\n    \"email\": \"jane.doe@example.com\",\n    \"phone_number\": \"+79021596518\",\n    \"phone_country_code\": \"RU\",\n    \"timezone\": \"Europe/Belgrade\"\n}"}],"_postman_id":"275fc651-67ba-4e55-b117-4bb9bd906af3"}],"id":"4d74ac45-1c5f-48e4-8b5d-d7ae9a6b9956","_postman_id":"4d74ac45-1c5f-48e4-8b5d-d7ae9a6b9956","description":""},{"name":"Locations","item":[{"name":"List Locations","id":"61fc37a1-5e57-479f-ac69-98794350f370","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/locations","description":"<p>Retrieves a list of all locations.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> <em>(optional)</em> — The page number to retrieve. Defaults to <code>1</code> if not specified.</p>\n</li>\n<li><p><code>limit</code> <em>(optional)</em> — The number of locations to return per page. Defaults to <code>10</code> if not specified.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","locations"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"d9de83dd-4e89-4929-ac0f-6f903d5dbe44","name":"List Locations","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/locations?page=2&limit=1","host":[""],"path":["api","v2","locations"],"query":[{"key":"page","value":"2"},{"key":"limit","value":"1"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"\"data\": [\n    {\n        \"id\": 2,\n        \"name\": \"Central Park\",\n        \"phone_number\": \"+13013021811\",\n        \"phone_country_code\": \"US\",\n        \"address\": \"New York, NY 10024, USA\",\n        \"latitude\": 40.7851,\n        \"longitude\": -73.9683\n    }\n],\n\"pagination\": {\n    \"total\": 3,\n    \"page\": 2,\n    \"limit\": 1,\n    \"pages\": 3\n}"}],"_postman_id":"61fc37a1-5e57-479f-ac69-98794350f370"},{"name":"Get Location Details","id":"d5aa855d-3b4b-4a71-92d4-f5c968b5a8cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/locations/:id","description":"<p>Retrieves detailed information about a specific location.</p>\n","urlObject":{"path":["api","v2","locations",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"ID of location","key":"id"}]}},"response":[{"id":"ee34c3b1-5f87-4c9b-8eb8-546c2bf25020","name":"Get Location Details","originalRequest":{"method":"GET","header":[],"url":"/api/v2/locations/123"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n  \"id\": 123,\n  \"name\": \"Downtown Branch\",\n  \"phone_number\": \"+1234567890\",\n  \"phone_country_code\": \"US\",\n  \"address\": \"123 Main Street, City, Country\",\n  \"latitude\": 40.712776,\n  \"longitude\": -74.005974\n}"}],"_postman_id":"d5aa855d-3b4b-4a71-92d4-f5c968b5a8cc"}],"id":"014e8b7c-c6bc-429e-802b-cd105e429c07","_postman_id":"014e8b7c-c6bc-429e-802b-cd105e429c07","description":""},{"name":"Services","item":[{"name":"List Services","id":"d1a90e23-80b8-4016-991c-e9fc657425f6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/services","description":"<p>Retrieves a list of all services.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code> <em>(optional)</em> — The page number to retrieve. Defaults to <code>1</code> if not specified.</p>\n</li>\n<li><p><code>limit</code> <em>(optional)</em> — The number of locations to return per page. Defaults to <code>10</code> if not specified.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","services"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"ed8457c9-fdf2-4d21-8fff-f08fbddbc977","name":"List Services","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/services?limit=2","host":[""],"path":["api","v2","services"],"query":[{"key":"limit","value":"2"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"Kundalini Yoga\",\n            \"duration\": 5400,\n            \"buffer_time_before\": null,\n            \"buffer_time_after\": null,\n            \"price\": 85\n        },\n        {\n            \"id\": 2,\n            \"name\": \"Meditation\",\n            \"duration\": 3600,\n            \"buffer_time_before\": null,\n            \"buffer_time_after\": 1200,\n            \"price\": 120\n        },\n    ],\n    \"pagination\": {\n        \"total\": 3,\n        \"page\": 1,\n        \"limit\": 2,\n        \"pages\": 2\n    }\n}"}],"_postman_id":"d1a90e23-80b8-4016-991c-e9fc657425f6"},{"name":"Get Service Details","id":"45158e08-ed1a-4530-94ce-004c5495705a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/services/:id","description":"<p>Retrieves detailed information about a specific service.</p>\n","urlObject":{"path":["api","v2","services",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"ID of service","key":"id"}]}},"response":[{"id":"69b3d049-9033-469c-9e48-bda271d65c24","name":"Get Service Details","originalRequest":{"method":"GET","header":[],"url":"/api/v2/services/2"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"id\": 2,\n    \"name\": \"Meditation\",\n    \"duration\": 3600,\n    \"buffer_time_before\": null,\n    \"buffer_time_after\": 1200,\n    \"price\": 120\n}"}],"_postman_id":"45158e08-ed1a-4530-94ce-004c5495705a"}],"id":"a1dcedf0-8e9e-4a76-a242-c6c6593f5149","_postman_id":"a1dcedf0-8e9e-4a76-a242-c6c6593f5149","description":""},{"name":"Appointments","item":[{"name":"List Appointments","id":"7b1d56c9-68c2-498d-98f7-55e6e18df172","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/appointments","description":"<p><strong>Retrieve Appointments</strong></p>\n<p>Returns a paginated list of appointments with optional filters for customer, employee, service, location, and status.</p>\n<h3 id=\"query-parameters\">Query Parameters</h3>\n<ul>\n<li><p><strong>page</strong> <em>(optional)</em> — Page number to retrieve. Defaults to <code>1</code>.</p>\n</li>\n<li><p><strong>limit</strong> <em>(optional)</em> — Number of appointments per page. Defaults to <code>10</code>.</p>\n</li>\n<li><p><strong>customerId</strong> <em>(optional)</em> — Filter by customer ID.</p>\n</li>\n<li><p><strong>employeeId</strong> <em>(optional)</em> — Filter by employee ID.</p>\n</li>\n<li><p><strong>serviceId</strong> <em>(optional)</em> — Filter by service ID.</p>\n</li>\n<li><p><strong>locationId</strong> <em>(optional)</em> — Filter by location ID.</p>\n</li>\n<li><p><strong>status</strong> <em>(optional)</em> — Filter by appointment status. Valid values:</p>\n<ul>\n<li><p><code>approved</code></p>\n</li>\n<li><p><code>pending</code></p>\n</li>\n<li><p><code>canceled</code></p>\n</li>\n<li><p><code>rejected</code></p>\n</li>\n<li><p><code>no_show</code></p>\n</li>\n</ul>\n</li>\n<li><p><strong>sort_by</strong> (optional) - Sort the appointments list. Allowed values:</p>\n<ul>\n<li><p><code>start_time</code> — Sort by the appointment date and time</p>\n</li>\n<li><p><code>created_at</code> — Sort by the appointment creation date and time</p>\n</li>\n</ul>\n</li>\n<li><p><strong>sort_order</strong> (optional) - Sort direction: <code>asc</code> | <code>desc</code>. Default is <code>asc</code>.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","appointments"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"0a8dd003-69d2-45af-aaca-40053061278f","name":"List Appointments","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/appointments?limit=1","host":[""],"path":["api","v2","appointments"],"query":[{"key":"limit","value":"1"}]}},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": 15,\n            \"status\": \"approved\",\n            \"start_date_time\": \"2022-07-31T00:00:00+02:00\",\n            \"end_date_time\": \"2022-07-31T03:00:00+02:00\",\n            \"service\": {\n                \"id\": 16,\n                \"name\": \"Photo Booth Rental\"\n            },\n            \"employees\": [\n                {\n                    \"id\": 4,\n                    \"first_name\": \"John\",\n                    \"last_name\": \"Doe\"\n                }\n            ],\n            \"location\": null,\n            \"bookings\": [\n                {\n                    \"id\": 15,\n                    \"status\": \"approved\",\n                    \"additional_persons\": 0,\n                    \"customer\": {\n                        \"id\": 10,\n                        \"first_name\": \"Morgan\",\n                        \"last_name\": \"Gulliver\",\n                        \"email\": \"morgangulliver@yahoo.com\"\n                    }\n                }\n            ],\n            \"created_at\": \"2022-07-26T15:55:06+00:00\",\n            \"note\": null\n        }\n    ],\n    \"pagination\": {\n        \"total\": 260,\n        \"page\": 1,\n        \"limit\": 1,\n        \"pages\": 260\n    }\n}"}],"_postman_id":"7b1d56c9-68c2-498d-98f7-55e6e18df172"},{"name":"Delete Appointment","id":"9ff43ca9-2430-427e-aae9-066fcd53f52a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"DELETE","header":[],"url":"/api/v2/appointments/:id","description":"<p>This operation permanently removes a specific appointment.</p>\n<h3 id=\"path-parameter\">Path Parameter:</h3>\n<ul>\n<li>id (required) — The unique ID of the appointment to delete.</li>\n</ul>\n","urlObject":{"path":["api","v2","appointments",":id"],"host":[""],"query":[],"variable":[{"type":"any","value":"219","key":"id"}]}},"response":[],"_postman_id":"9ff43ca9-2430-427e-aae9-066fcd53f52a"}],"id":"e49c9d43-1d24-41b4-af75-dc60fd4b10d1","_postman_id":"e49c9d43-1d24-41b4-af75-dc60fd4b10d1","description":""},{"name":"Bookings","item":[{"name":"Available times","id":"7a45417f-75b6-46f3-a45b-cec44cae08c0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"GET","header":[],"url":"/api/v2/available-times","description":"<p>Retrieves a list of available times for params passed.</p>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>calendar_start_date</code> <em>(optional)</em> — Specifies the start date for the returned time slots. If not provided, it defaults to the current date.</p>\n</li>\n<li><p><code>calendar_end_date</code> <em>(optional)</em> — Specifies the end date for the returned time slots. If omitted, it defaults to 7 days after the <code>calendar_start_date</code>. The maximum supported range between start and end dates is 7 days.</p>\n</li>\n<li><p><code>service</code> <em>(optional)</em> — ID of the service for which time slots are being requested.</p>\n</li>\n<li><p><code>employee</code> <em>(optional)</em> — ID of the employee to filter available time slots.</p>\n</li>\n<li><p><code>location</code> <em>(optional)</em> — ID of the location where the service will be provided.</p>\n</li>\n<li><p><code>additional_guest_count</code> <em>(optional)</em> — Number of additional guests for group bookings.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","available-times"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"059987ed-7b35-469e-b196-34f833d98491","name":"Available times","originalRequest":{"method":"GET","header":[],"url":{"raw":"/api/v2/available-times?service=13","host":[""],"path":["api","v2","available-times"],"query":[{"key":"service","value":"13"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx"},{"key":"Date","value":"Wed, 07 May 2025 15:44:09 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.3.12"},{"key":"X-Clockwork-Id","value":"1746632648-8273-255536985"},{"key":"X-Clockwork-Version","value":"5.2.2"},{"key":"Server-Timing","value":"app; dur=686.93089485168; desc=\"Application\", db; dur=36.968469619751; desc=\"Database\""},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"no-referrer, strict-origin-when-cross-origin"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubdomains; preload"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE"},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"3600"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"[\n    {\n        \"date\": \"2025-05-08\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-09\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-10\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-11\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-12\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-13\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    },\n    {\n        \"date\": \"2025-05-14\",\n        \"timeSlots\": [\n            {\n                \"time\": \"09:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"10:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"11:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"12:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"13:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"14:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"15:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            },\n            {\n                \"time\": \"16:00\",\n                \"services\": [\n                    13\n                ],\n                \"employees\": [\n                    117\n                ],\n                \"locations\": [\n                    13\n                ]\n            }\n        ]\n    }\n]"}],"_postman_id":"7a45417f-75b6-46f3-a45b-cec44cae08c0"},{"name":"Create Booking","event":[{"listen":"test","script":{"id":"2d9f6cf6-1e92-4a23-9a00-829fc1e5665e","exec":["pm.test(\"Successful POST request\", function () {","    pm.expect(pm.response.code).to.be.oneOf([200, 201]);","});",""],"type":"text/javascript","packages":{}}}],"id":"e7d0cf15-7672-4f9c-acd9-9e7b6d036464","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":""}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"service\": 16,\n    \"employee\": 1,\n    \"date\": \"2026-04-02\",\n    \"time\": \"20:00\",\n    \"customer\": 93,\n\t  \"status\": 1,\n\t\t\"location\": 16\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/bookings","description":"<p>This is a POST request, submitting data to an API via the request body. This request submits JSON data, and the data is reflected in the response.</p>\n<p>A successful POST request typically returns a <code>200 OK</code>.</p>\n<h2 id=\"parameters\"><strong>Parameters</strong></h2>\n<ul>\n<li><p>service (id, required)</p>\n</li>\n<li><p>employee (id, required)</p>\n</li>\n<li><p>date (required)</p>\n</li>\n<li><p>time (required)</p>\n</li>\n<li><p>customer (id, required)</p>\n</li>\n<li><p>status (number) 1 - approved, 2 - pending</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v2","bookings"],"host":[""],"query":[],"variable":[]}},"response":[{"id":"bde2d0c3-a58c-41e3-a5e9-01eaea2db966","name":"Success Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"service\": 1,\n    \"employee\": 1,\n    \"date\": \"2026-04-02\",\n    \"time\": \"20:00\",\n    \"customer\": 67,\n\t\"status\": 1,\n    \"location\": 14\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/bookings"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx"},{"key":"Date","value":"Fri, 09 May 2025 10:35:27 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.3.12"},{"key":"X-Clockwork-Id","value":"1746786925-7312-1125710459"},{"key":"X-Clockwork-Version","value":"5.2.2"},{"key":"Server-Timing","value":"app; dur=1800.0481128693; desc=\"Application\", db; dur=38.370847702026; desc=\"Database\""},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"X-XSS-Protection","value":"1; mode=block"},{"key":"Referrer-Policy","value":"no-referrer, strict-origin-when-cross-origin"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubdomains; preload"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE"},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With"},{"key":"Access-Control-Allow-Credentials","value":"true"},{"key":"Access-Control-Max-Age","value":"3600"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"id\": 159\n}"},{"id":"19ac0d54-4c8b-4f92-8492-57faeb180bc3","name":"Validation error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"service\": 16,\n    \"employee\": 1,\n    \"date\": \"2026-04-02\",\n    \"time\": \"20:00\",\n\t\"status\": 1\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/bookings"},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx"},{"key":"Date","value":"Thu, 08 May 2025 14:03:47 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"PHP/8.3.12"},{"key":"X-Clockwork-Id","value":"1746713027-0636-1874942964"},{"key":"X-Clockwork-Version","value":"5.2.2"},{"key":"Server-Timing","value":"app; dur=91.456890106201; desc=\"Application\", db; dur=0.43678283691406; desc=\"Database\""},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE"},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With"},{"key":"Access-Control-Max-Age","value":"3600"}],"cookie":[],"responseTime":null,"body":"{\n    \"customer\": \"The customer parameter is required.\"\n}"},{"id":"3df1322c-9ced-4b23-852f-025b273e7f2b","name":"Not Found Error","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"service\": 16,\n    \"employee\": 1,\n    \"date\": \"2026-04-02\",\n    \"time\": \"20:00\",\n    \"customer\": 1011,\n\t\"status\": 1\n}","options":{"raw":{"language":"json"}}},"url":"/api/v2/bookings"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx"},{"key":"Date","value":"Thu, 08 May 2025 14:04:09 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Vary","value":"Accept-Encoding"},{"key":"X-Powered-By","value":"PHP/8.3.12"},{"key":"X-Clockwork-Id","value":"1746713049-8159-2056903911"},{"key":"X-Clockwork-Version","value":"5.2.2"},{"key":"Server-Timing","value":"app; dur=95.838069915771; desc=\"Application\", db; dur=0.87523460388184; desc=\"Database\""},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Access-Control-Allow-Methods","value":"GET, OPTIONS, POST, PUT, PATCH, DELETE"},{"key":"Access-Control-Allow-Headers","value":"Content-Type, Authorization, Access-Control-Allow-Credentials, access-control-allow-origin, Time-Zone, X-Requested-With"},{"key":"Access-Control-Max-Age","value":"3600"},{"key":"Content-Encoding","value":"gzip"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Customer not found.\"\n}"}],"_postman_id":"e7d0cf15-7672-4f9c-acd9-9e7b6d036464"}],"id":"0a12064b-8fe8-4b8b-aecf-dffe378ee45f","_postman_id":"0a12064b-8fe8-4b8b-aecf-dffe378ee45f","description":""}],"event":[{"listen":"prerequest","script":{"id":"a2cb8c0c-c953-4de7-b48e-8f6ba5b2b8f8","type":"text/javascript","requests":{},"exec":[""]}},{"listen":"test","script":{"id":"0c5d8af4-3107-41f1-b072-dbe5f6f59738","type":"text/javascript","requests":{},"exec":[""]}}],"variable":[{"key":"base_url","value":""},{"key":"client_id","value":""},{"key":"client_secret","value":""},{"key":"accessToken","value":""}]}