{"info":{"_postman_id":"ce2162fb-5f72-41f1-9f06-925dfe492d43","name":"Property Hive API","description":"<html><head></head><body><h1 id=\"property-hive-api-introduction\">Property Hive API Introduction</h1>\n<h2 id=\"overview\">Overview</h2>\n<p>The Property Hive API is a robust, RESTful web service designed to power real estate management applications. It provides a comprehensive set of endpoints that facilitate various operations essential to property management, user authentication, and financial tracking within the real estate industry.</p>\n<h2 id=\"key-features\">Key Features</h2>\n<ol>\n<li><p><strong>Authentication and User Management</strong></p>\n<ul>\n<li><p>Company registration</p>\n</li>\n<li><p>User login and logout</p>\n</li>\n<li><p>Password management (including forgot and reset password functionalities)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Profile Management</strong></p>\n<ul>\n<li><p>Company profile creation and updates</p>\n</li>\n<li><p>User profile retrieval and management</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Property Management</strong></p>\n<ul>\n<li><p>Property listing and information retrieval</p>\n</li>\n<li><p>(Potential future features for property creation, updating, and deletion)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Financial Operations</strong></p>\n<ul>\n<li><p>Invoice generation and retrieval</p>\n</li>\n<li><p>Transaction tracking</p>\n</li>\n</ul>\n</li>\n</ol>\n<h2 id=\"base-url\">Base URL</h2>\n<p>The Base Urls are:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>https://api.propertyhive.com.ng/\nhttps://express-api.propertyhive.com.ng/\n\n</code></pre><h2 id=\"api-versioning\">API Versioning</h2>\n<p>The current version of the API is v1, which is reflected in the endpoint URLs (e.g., <code>/api/v1/login/</code>).</p>\n<h2 id=\"authentication\">Authentication</h2>\n<p>The API uses Bearer Token authentication. After a successful login, clients receive an access token which must be included in the Authorization header of subsequent requests:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Authorization: Bearer &lt;access_token&gt;\n\n</code></pre><h2 id=\"data-format\">Data Format</h2>\n<p>The API accepts and returns data in JSON format. Ensure that requests with a body have the <code>Content-Type: application/json</code> header set.</p>\n<h2 id=\"error-handling\">Error Handling</h2>\n<p>The API uses standard HTTP status codes to indicate the success or failure of requests. Common status codes include:</p>\n<ul>\n<li><p>200 OK: Successful request</p>\n</li>\n<li><p>201 Created: Successful creation of a resource</p>\n</li>\n<li><p>400 Bad Request: Invalid input or parameters</p>\n</li>\n<li><p>401 Unauthorized: Missing or invalid authentication</p>\n</li>\n<li><p>403 Forbidden: Authenticated but lacking necessary permissions</p>\n</li>\n<li><p>404 Not Found: Requested resource doesn't exist</p>\n</li>\n<li><p>429 Too Many Requests: Rate limit exceeded</p>\n</li>\n<li><p>500 Internal Server Error: Server-side issues</p>\n</li>\n</ul>\n<h2 id=\"rate-limiting\">Rate Limiting</h2>\n<p>The API implements rate limiting to prevent abuse and ensure fair usage. Clients should handle 429 Too Many Requests responses gracefully, potentially implementing exponential backoff strategies.</p>\n<h2 id=\"pagination\">Pagination</h2>\n<p>For endpoints that may return large datasets (e.g., listing properties or transactions), pagination details should be implemented. Clients should be prepared to handle paginated responses and navigate through result sets accordingly.</p>\n<h2 id=\"security\">Security</h2>\n<p>The API employs HTTPS for all requests, ensuring data encryption in transit. The use of bearer tokens for authentication adds an additional layer of security, protecting against unauthorized access to sensitive operations and data.</p>\n<h2 id=\"api-sections\">API Sections</h2>\n<ol>\n<li><p><strong>Authentication</strong>: Handles user registration, login, logout, and password management.</p>\n</li>\n<li><p><strong>Profile Management</strong>: Allows retrieval and updates of company and user profiles.</p>\n</li>\n<li><p><strong>Property Management</strong>: Facilitates property-related operations.</p>\n</li>\n<li><p><strong>Financial Operations</strong>: Manages invoices and tracks transactions.</p>\n</li>\n</ol>\n<p>This API provides a robust foundation for building comprehensive real estate management applications, offering essential features for user account management, property listings, and financial operations within the Property Hive ecosystem.</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Property Hive API Introduction","slug":"property-hive-api-introduction"}],"owner":"34635068","collectionId":"ce2162fb-5f72-41f1-9f06-925dfe492d43","publishedId":"2sAXqzVxVn","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2024-10-04T15:38:31.000Z"},"item":[{"name":"Version 1","item":[{"name":"Authentication","item":[{"name":"Register Company","id":"70fa8c62-383b-49ce-87a4-c11c96ecee91","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"property2\",\n     \"fname\": \" john \",\n    \"lname\": \"boss\",\n    \"business_name\": \" property hive \",\n    \"profile_picture\": null,\n    \"phone_number\": \"080123456\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng/api/v1/register/company/","description":"<p><strong>POST</strong> <code>Register Company</code>: Registers a new company on the platform</p>\n","urlObject":{"path":["v1","register","company",""],"host":["https://api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[{"id":"02ee0f63-179f-43ec-8a98-e87342eddee1","name":"201 Successful Response","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"property2\",\n     \"fname\": \" john \",\n    \"lname\": \"boss\",\n    \"business_name\": \" property limited\",\n    \"profile_picture\": null,\n    \"phone_number\": \"080123453\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}api/v1/register/company/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:13:10 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"163"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": \"property@gmail.com\",\n    \"fname\": \"john\",\n    \"lname\": \"boss\",\n    \"business_name\": \"property limited\",\n    \"profile_picture\": null,\n    \"phone_number\": \"080123453\",\n    \"is_company\": true\n}"},{"id":"604af36a-2d4e-4e00-8b9a-cc6074ac7fee","name":"400 Bad Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"property2\",\n     \"fname\": \" john \",\n    \"lname\": \"boss\",\n    \"business_name\": \" property hive \",\n    \"profile_picture\": null,\n    \"phone_number\": \"080123456\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}api/v1/register/company/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:13:57 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"178"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"email\": [\n        \"User with this email already exists.\"\n    ],\n    \"business_name\": [\n        \"User with this business name already exists.\"\n    ],\n    \"phone_number\": [\n        \"User with this phone number already exists.\"\n    ]\n}"}],"_postman_id":"70fa8c62-383b-49ce-87a4-c11c96ecee91"},{"name":"Forgot Password","id":"47574348-2dc4-4eaf-8823-095a800a6dda","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"propertyeas@gmail.com\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/forgot-password/","description":"<p><strong>POST</strong> <code>Forgot Password</code>: Initiates the password recovery process for a company account.</p>\n","urlObject":{"path":["api","v1","forgot-password",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[{"id":"a03af618-835c-4c88-a004-40c21627a619","name":"Too Many Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\": \"propertyhive@gmail.com\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v1/forgot-password/"},"status":"Too Many Requests","code":429,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:23:20 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"56"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"Too many requests. Try again in 49 minutes.\"\n}"}],"_postman_id":"47574348-2dc4-4eaf-8823-095a800a6dda"},{"name":"Login Company","id":"1a5702d6-1b32-4beb-8d2c-880acce62ca4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"property2\"\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/login/","description":"<p><strong>POST</strong> <code>Login Company</code>: Authenticates the company using credentials to log in.</p>\n","urlObject":{"path":["api","v1","login",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[{"id":"bee297dd-ee36-4a3a-8dd8-26b4ff5e0b89","name":"Successful Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"property2\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v1/login/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:15:14 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"483"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"refresh\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoicmVmxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\",\n    \"access\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0b2tlbl90eXBlIjoiYWNxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\"\n}"},{"id":"45a0984f-048c-45bc-b314-8a97fb7e9c6b","name":"No account found","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"email\":\"property@gmail.com\",\n    \"password\":\"propertys2\"\n}","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v1/login/"},"status":"Unauthorized","code":401,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:17:06 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"63"},{"key":"Connection","value":"keep-alive"},{"key":"WWW-Authenticate","value":"Bearer realm=\"api\""},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"No active account found with the given credentials\"\n}"}],"_postman_id":"1a5702d6-1b32-4beb-8d2c-880acce62ca4"},{"name":"Logout","id":"6aa3a897-2c06-4ced-94af-71a77824bf69","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/log-out/","description":"<p><strong>POST</strong> <code>Logout</code>: Logs out the authenticated company from the platform</p>\n","urlObject":{"path":["api","v1","log-out",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[],"_postman_id":"6aa3a897-2c06-4ced-94af-71a77824bf69"},{"name":"Reset Password","id":"dc9c547b-593d-41e7-b4ce-21669702e27d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\n    \"token\": \"\",\n    \"newPassword\":\"123admin\"\n\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/reset-password/","description":"<p><strong>POST</strong> <code>Reset Password</code>: Resets the password for a company account after verification.</p>\n","urlObject":{"path":["api","v1","reset-password",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[],"_postman_id":"dc9c547b-593d-41e7-b4ce-21669702e27d"},{"name":"Verify Email","id":"9446057f-df95-4cb3-a9a1-7cc3fd9293b4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"kisstek27@gmail.com\",\r\n    \"code\": \"21425\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/verify-email/","description":"<h3 id=\"verify-email\">Verify Email</h3>\n<p>This endpoint is used to verify an email address.</p>\n<p><strong>Request Body</strong></p>\n<ul>\n<li><p><code>email</code> (string, required): The email address to be verified.</p>\n</li>\n<li><p><code>code</code> (string, required): The verification code.</p>\n</li>\n</ul>\n<p><strong>Response</strong></p>\n<ul>\n<li><p>Status: 400</p>\n</li>\n<li><p>Content-Type: application/json</p>\n</li>\n<li><p><code>message</code> (string): A message indicating the result of the verification process.</p>\n</li>\n</ul>\n","urlObject":{"path":["api","v1","verify-email",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[{"id":"c2f49c30-3d12-4215-a295-81f84d418098","name":"Already Verified Email","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"email\": \"kisstek27@gmail.com\",\r\n    \"code\": \"21425\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/verify-email/"},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Fri, 04 Oct 2024 15:32:02 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"39"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"POST, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"origin, Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"message\": \"Email is already verified\"\n}"}],"_postman_id":"9446057f-df95-4cb3-a9a1-7cc3fd9293b4"}],"id":"ce6f7509-3a48-4c3c-aa63-74e6d9352a37","description":"<h2 id=\"1-authentication\">1. Authentication</h2>\n<p>The Authentication section handles user registration, login, logout, and password management functionalities.</p>\n<h3 id=\"11-register-company\">1.1 Register Company</h3>\n<p><strong>Endpoint:</strong> <code>POST /api/v1/register/company/</code></p>\n<p>This endpoint allows new companies to register on the Property Hive platform.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"propertyhive@gmail.com\",\n  \"password\": \"property\",\n  \"fname\": \"john\",\n  \"lname\": \"boss\",\n  \"business_name\": \"property hive\",\n  \"profile_picture\": null,\n  \"phone_number\": \"080123456\"\n}\n\n</code></pre>\n<p><strong>Fields:</strong></p>\n<ul>\n<li><p><code>email</code>: (string, required) The company's email address.</p>\n</li>\n<li><p><code>password</code>: (string, required) The chosen password for the account.</p>\n</li>\n<li><p><code>fname</code>: (string, required) First name of the company representative.</p>\n</li>\n<li><p><code>lname</code>: (string, required) Last name of the company representative.</p>\n</li>\n<li><p><code>business_name</code>: (string, required) The official name of the company.</p>\n</li>\n<li><p><code>profile_picture</code>: (string, nullable) URL or reference to a profile picture.</p>\n</li>\n<li><p><code>phone_number</code>: (string, required) Contact number for the company.</p>\n</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>201 Created: Registration successful</p>\n</li>\n<li><p>400 Bad Request: Invalid input data</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Ensure all required fields are provided.</p>\n</li>\n<li><p>The email and business name should be unique in the system.</p>\n</li>\n<li><p>Password should meet the platform's security requirements (if any).</p>\n</li>\n</ul>\n<h3 id=\"12-login-company\">1.2 Login Company</h3>\n<p><strong>Endpoint:</strong> <code>POST /api/v1/login/</code></p>\n<p>This endpoint authenticates a company and provides access tokens for subsequent API calls.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"property@gmail.com\",\n  \"password\": \"property2\"\n}\n\n</code></pre>\n<p><strong>Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"refresh\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"access\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\"\n}\n\n</code></pre>\n<p><strong>Fields:</strong></p>\n<ul>\n<li><p><code>refresh</code>: JWT refresh token for obtaining new access tokens.</p>\n</li>\n<li><p><code>access</code>: JWT access token for authenticating API requests.</p>\n</li>\n</ul>\n<p><strong>Response Codes:</strong></p>\n<ul>\n<li><p>200 OK: Successful login</p>\n</li>\n<li><p>401 Unauthorized: Invalid credentials</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>The access token should be included in the Authorization header of subsequent requests.</p>\n</li>\n<li><p>The refresh token can be used to obtain a new access token when it expires.</p>\n</li>\n</ul>\n<h3 id=\"13-logout\">1.3 Logout</h3>\n<p><strong>Endpoint:</strong> <code>POST /api/v1/log-out/</code></p>\n<p>This endpoint logs out the currently authenticated user, invalidating their access token.</p>\n<p><strong>Request Body:</strong> Empty</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successful logout</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>After logout, the access token becomes invalid and should not be used for further requests.</p>\n</li>\n<li><p>The client should discard the stored tokens after a successful logout.</p>\n</li>\n</ul>\n<h3 id=\"14-forgot-password\">1.4 Forgot Password</h3>\n<p><strong>Endpoint:</strong> <code>POST /api/v1/forgot-password/</code></p>\n<p>This endpoint initiates the password reset process for a user who has forgotten their password.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"email\": \"propertyhive@gmail.com\"\n}\n\n</code></pre>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Password reset email sent</p>\n</li>\n<li><p>400 Bad Request: Invalid email or user not found</p>\n</li>\n<li><p>429 Too Many Requests: Rate limit exceeded</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>This endpoint is rate-limited to prevent abuse.</p>\n</li>\n<li><p>A password reset link or token will typically be sent to the provided email address.</p>\n</li>\n</ul>\n<h3 id=\"15-reset-password\">1.5 Reset Password</h3>\n<p><strong>Endpoint:</strong> <code>POST /api/v1/reset-password/</code></p>\n<p>This endpoint allows users to set a new password using a reset token.</p>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"token\": \"&lt;reset_token&gt;\",\n  \"newPassword\": \"123admin\"\n}\n\n</code></pre>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Password successfully reset</p>\n</li>\n<li><p>400 Bad Request: Invalid token or password</p>\n</li>\n<li><p>404 Not Found: Token not found or expired</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>The <code>token</code> is typically provided via email after initiating the forgot password process.</p>\n</li>\n<li><p>Ensure the new password meets any required security criteria.</p>\n</li>\n</ul>\n","_postman_id":"ce6f7509-3a48-4c3c-aa63-74e6d9352a37"},{"name":"Profile Management","item":[{"name":"Update Company Profile","id":"e924ad57-b0c9-4a9e-b727-80b4f68f5971","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"PUT","header":[],"body":{"mode":"raw","raw":"    {\n        \"data\": {\n        \"phone_number\": \"080123456\",\n        \"company_address\": \"lagos\",\n        \"company_logo\": null,\n        \"company_banner\": null,\n        \"title\": \"best in lagos\",\n        \"description\": \"we are aimed at being the best\",\n        \"instagram\": \"property_hive\",\n        \"linkedin\": null,\n        \"facebook\": null,\n        \"twitter\": null\n        }}","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng/api/v1/company-profile/","urlObject":{"path":["v1","company-profile",""],"host":["https://api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"e924ad57-b0c9-4a9e-b727-80b4f68f5971"},{"name":"User Profile","id":"1a72d97e-b8a1-45b2-9e46-e29b8027d689","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://api.propertyhive.com.ng/api/v1/profile/","urlObject":{"path":["v1","profile",""],"host":["https://api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"1a72d97e-b8a1-45b2-9e46-e29b8027d689"},{"name":"Get Company Profile","id":"f30651d8-4a6f-4840-9165-831e9a62b201","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/company-profile/","description":"<p>GET Get Company Profile: Retrieves the profile details of a company</p>\n","urlObject":{"path":["api","v1","company-profile",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[],"_postman_id":"f30651d8-4a6f-4840-9165-831e9a62b201"},{"name":"Generate Company Url","id":"e2d7da2d-f8b3-4210-ba3f-ac4d2bafeeac","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"url":"https://api.propertyhive.com.ng//api/v1/company/generate-url/","urlObject":{"path":["api","v1","company","generate-url",""],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[],"_postman_id":"e2d7da2d-f8b3-4210-ba3f-ac4d2bafeeac"}],"id":"7ea0d7a4-1186-4202-b0dd-456cec50d4a8","description":"<h2 id=\"2-profile-management\">2. Profile Management</h2>\n<p>The Profile Management section handles operations related to company and user profiles.</p>\n<h3 id=\"21-update-company-profile\">2.1 Update Company Profile</h3>\n<p><strong>Endpoint:</strong> <code>PUT /api/v1/company-profile/</code></p>\n<p>This endpoint allows companies to update their profile information.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Request Body:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": {\n    \"phone_number\": \"080123456\",\n    \"company_address\": \"lagos\",\n    \"company_logo\": null,\n    \"company_banner\": null,\n    \"title\": \"best in lagos\",\n    \"description\": \"we are aimed at being the best\",\n    \"instagram\": \"property_hive\",\n    \"linkedin\": null,\n    \"facebook\": null,\n    \"twitter\": null\n  }\n}\n\n</code></pre>\n<p><strong>Fields:</strong></p>\n<ul>\n<li><p>All fields are optional and represent updatable company information.</p>\n</li>\n<li><p>Social media fields (<code>instagram</code>, <code>linkedin</code>, <code>facebook</code>, <code>twitter</code>) can be null if not applicable.</p>\n</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Profile successfully updated</p>\n</li>\n<li><p>400 Bad Request: Invalid input data</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Only authenticated companies can update their own profile.</p>\n</li>\n<li><p>Fields not included in the request body will remain unchanged.</p>\n</li>\n</ul>\n<h3 id=\"22-get-company-profile\">2.2 Get Company Profile</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/company-profile/</code></p>\n<p>This endpoint retrieves the profile information of the authenticated company.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved company profile</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li>The response will include all available profile information for the authenticated company.</li>\n</ul>\n<h3 id=\"23-user-profile\">2.3 User Profile</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/profile/</code></p>\n<p>This endpoint retrieves the profile information of the authenticated user.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved user profile</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>This endpoint may return different information compared to the company profile endpoint.</p>\n</li>\n<li><p>It's designed for individual user accounts within a company, if applicable.</p>\n</li>\n</ul>\n","_postman_id":"7ea0d7a4-1186-4202-b0dd-456cec50d4a8"},{"name":"Property Management","item":[{"name":"Listing","item":[{"name":"Add Property","id":"3507cb7e-5e07-4d80-89ed-f7a458b6b279","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Lagos","type":"text"},{"key":"state","value":"Lagos","type":"text"},{"key":"city","value":"Lagos","type":"text"},{"key":"address","value":"Main Street 123","type":"text"},{"key":"description","value":"5 Bedrooms and 3 Bathrooms","type":"text"},{"key":"squaremeters","value":"200","type":"text"},{"key":"propertyType","value":"Apartment","type":"text"},{"key":"numberOfBathrooms","value":"3","type":"text"},{"key":"numberOfBedrooms","value":"5","type":"text"},{"key":"installment_duration","value":"8","type":"text"},{"key":"payment_frequency","value":"4","type":"text"},{"key":"down_payment","value":"200000","type":"text"},{"key":"installment_payment_price","value":"1000","type":"text"},{"key":"keywords","value":"Apartment Lagos","type":"text"},{"key":"price","value":"5000000","type":"text"},{"key":"propertyImage","type":"file","src":["postman-cloud:///1ef7fec4-a9fa-42c0-8948-02b3d6c5d52f","postman-cloud:///1ef7fec4-b2c0-4440-8f54-e720175c100a"]},{"key":"propertyDocument","type":"file","src":"postman-cloud:///1ef7fec4-b27b-4e80-a7ce-709e3b75ca16"},{"key":"sellerId","value":"1","type":"text"}]},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/","urlObject":{"path":["v1","properties",""],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[{"id":"95b01a67-2dfa-4fee-be0b-dcd6a9ab13f9","name":"Add Properties","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"name","value":"Lagos","type":"text"},{"key":"state","value":"Lagos","type":"text"},{"key":"city","value":"Lagos","type":"text"},{"key":"address","value":"Main Street 123","type":"text"},{"key":"description","value":"5 Bedrooms and 3 Bathrooms","type":"text"},{"key":"squaremeters","value":"200","type":"text"},{"key":"propertyType","value":"Apartment","type":"text"},{"key":"numberOfBathrooms","value":"3","type":"text"},{"key":"numberOfBedrooms","value":"5","type":"text"},{"key":"installment_duration","value":"8","type":"text"},{"key":"payment_frequency","value":"4","type":"text"},{"key":"down_payment","value":"200000","type":"text"},{"key":"installment_payment_price","value":"1000","type":"text"},{"key":"keywords","value":"Apartment Lagos","type":"text"},{"key":"price","value":"5000000","type":"text"},{"key":"propertyImage","type":"file","src":["postman-cloud:///1ef7fec4-a9fa-42c0-8948-02b3d6c5d52f","postman-cloud:///1ef7fec4-b2c0-4440-8f54-e720175c100a"]},{"key":"propertyDocument","type":"file","src":"postman-cloud:///1ef7fec4-b27b-4e80-a7ce-709e3b75ca16"},{"key":"sellerId","value":"1","type":"text"}]},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Tue, 01 Oct 2024 12:00:32 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"574"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"23e-N/i2vSA989pTeHWxb1PzrafhgQU\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Property added successfully\",\n    \"data\": {\n        \"id\": 51,\n        \"name\": \"Lagos\",\n        \"state\": \"Lagos\",\n        \"city\": \"Lagos\",\n        \"address\": \"Main Street 123\",\n        \"description\": \"5 Bedrooms and 3 Bathrooms\",\n        \"squaremeters\": \"200\",\n        \"property_type\": \"Apartment\",\n        \"number_of_bathrooms\": 3,\n        \"number_of_bedrooms\": 5,\n        \"installment_duration\": \"8\",\n        \"payment_frequency\": \"4\",\n        \"down_payment\": \"200000\",\n        \"installment_payment_price\": 1000,\n        \"keywords\": [\n            \"Apartment\",\n            \"Lagos\"\n        ],\n        \"price\": 5000000,\n        \"is_sold\": false,\n        \"date_sold\": null,\n        \"created_at\": \"2024-10-01T12:00:32.252Z\",\n        \"updated_at\": \"2024-10-01T12:00:32.252Z\",\n        \"sellerid_id\": 1\n    }\n}"}],"_postman_id":"3507cb7e-5e07-4d80-89ed-f7a458b6b279"},{"name":"Retrieve Properties","id":"0689ea04-fd24-4a91-87d4-a5814db0c74d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/","description":"<p>GET Retrieve Properties: Retrieves a list of all available properties.</p>\n","urlObject":{"path":["v1","properties",""],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[{"id":"4c48cfd5-1bbd-485e-87da-73edd4bf0a9a","name":"Retrieve Properties","originalRequest":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Tue, 01 Oct 2024 12:00:14 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"2174"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"87e-a1/IvX1T7COHaLffP0oNlOnuKUM\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"totalCount\": 3,\n    \"page\": 1,\n    \"limit\": 10,\n    \"properties\": [\n        {\n            \"id\": 48,\n            \"name\": \"Wisdom Fred Apartments\",\n            \"state\": \"San Francisco\",\n            \"city\": \"Ohio\",\n            \"address\": \"20 main street\",\n            \"description\": \"A Nice Landed Property\",\n            \"squaremeters\": \"450ft\",\n            \"property_type\": \"apartment\",\n            \"number_of_bathrooms\": null,\n            \"number_of_bedrooms\": null,\n            \"installment_duration\": \"7\",\n            \"payment_frequency\": \"20000\",\n            \"down_payment\": \"1000\",\n            \"installment_payment_price\": 1000,\n            \"keywords\": [\n                \"Apartment\",\n                \"Lagos\"\n            ],\n            \"price\": 2000,\n            \"is_sold\": false,\n            \"date_sold\": null,\n            \"created_at\": \"2024-10-01T11:27:17.601Z\",\n            \"updated_at\": \"2024-10-01T11:27:17.601Z\",\n            \"sellerid_id\": 1,\n            \"common_user\": {\n                \"id\": 1,\n                \"email\": \"test@gmail.com\",\n                \"fname\": \"test\",\n                \"lname\": \"test\",\n                \"business_name\": null\n            },\n            \"common_propertyimages\": []\n        },\n        {\n            \"id\": 49,\n            \"name\": \"Lagos\",\n            \"state\": \"Lagos\",\n            \"city\": \"Lagos\",\n            \"address\": \"Main Street 123\",\n            \"description\": \"5 Bedrooms and 3 Bathrooms\",\n            \"squaremeters\": \"200\",\n            \"property_type\": \"Apartment\",\n            \"number_of_bathrooms\": 3,\n            \"number_of_bedrooms\": 5,\n            \"installment_duration\": \"8\",\n            \"payment_frequency\": \"4\",\n            \"down_payment\": \"200000\",\n            \"installment_payment_price\": 1000,\n            \"keywords\": [\n                \"Apartment\",\n                \"Lagos\"\n            ],\n            \"price\": 5000000,\n            \"is_sold\": false,\n            \"date_sold\": null,\n            \"created_at\": \"2024-10-01T11:57:49.903Z\",\n            \"updated_at\": \"2024-10-01T11:57:49.903Z\",\n            \"sellerid_id\": 1,\n            \"common_user\": {\n                \"id\": 1,\n                \"email\": \"test@gmail.com\",\n                \"fname\": \"test\",\n                \"lname\": \"test\",\n                \"business_name\": null\n            },\n            \"common_propertyimages\": [\n                {\n                    \"id\": 3,\n                    \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869745.png\"\n                },\n                {\n                    \"id\": 4,\n                    \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869746.png\"\n                }\n            ]\n        },\n        {\n            \"id\": 50,\n            \"name\": \"Lagos\",\n            \"state\": \"Lagos\",\n            \"city\": \"Lagos\",\n            \"address\": \"Main Street 123\",\n            \"description\": \"3 bathrooms and 5 bedrooms\",\n            \"squaremeters\": \"200\",\n            \"property_type\": \"Apartment\",\n            \"number_of_bathrooms\": 3,\n            \"number_of_bedrooms\": 5,\n            \"installment_duration\": \"7\",\n            \"payment_frequency\": \"20000\",\n            \"down_payment\": \"1000\",\n            \"installment_payment_price\": 1000,\n            \"keywords\": [\n                \"Apartment\",\n                \"Lagos\"\n            ],\n            \"price\": 20000,\n            \"is_sold\": false,\n            \"date_sold\": null,\n            \"created_at\": \"2024-10-01T11:58:58.682Z\",\n            \"updated_at\": \"2024-10-01T11:58:58.682Z\",\n            \"sellerid_id\": 1,\n            \"common_user\": {\n                \"id\": 1,\n                \"email\": \"test@gmail.com\",\n                \"fname\": \"test\",\n                \"lname\": \"test\",\n                \"business_name\": null\n            },\n            \"common_propertyimages\": []\n        }\n    ]\n}"}],"_postman_id":"0689ea04-fd24-4a91-87d4-a5814db0c74d"},{"name":"Search Properties","id":"4756a330-ef16-4249-9055-5ccdcee28d10","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/search/?query=\"\"","description":"<ul>\n<li><strong>GET</strong> <code>Search Properties</code>: Searches properties based on specified criteria.</li>\n</ul>\n","urlObject":{"path":["v1","properties","search",""],"host":["https://express-api.propertyhive.com.ng/api"],"query":[{"key":"query","value":"\"\""}],"variable":[]}},"response":[],"_postman_id":"4756a330-ef16-4249-9055-5ccdcee28d10"},{"name":"Add Property Document","id":"86b61e09-d106-4949-8dd1-883914149c01","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"documentType","value":"PDF File","type":"text"},{"key":"documentFile","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/Mohamed/Downloads/فاتورة 3000.pdf"],"src":"/C:/Users/Mohamed/Downloads/فاتورة 3000.pdf"}]},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/documents","urlObject":{"path":["v1","properties",":propertyId","documents"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[],"_postman_id":"86b61e09-d106-4949-8dd1-883914149c01"},{"name":"Add Property Image","id":"e00d8bd6-a463-47fc-8efa-e4daba5b3a31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"imageFile","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/Mohamed/Pictures/Screenshots/Screenshot (82).png"],"src":"postman-cloud:///1ef80b87-b576-4e80-b5a1-58557b163698"}]},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/images","urlObject":{"path":["v1","properties",":propertyId","images"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[{"id":"3a440598-1115-4e61-aee7-fb040cee8b94","name":"Add Property Image","originalRequest":{"method":"POST","header":[],"body":{"mode":"formdata","formdata":[{"key":"imageFile","type":"file","fileNotInWorkingDirectoryWarning":"This file isn't in your working directory. Teammates you share this request with won't be able to use this file. To make collaboration easier you can setup your working directory in Settings.","filesNotInWorkingDirectory":["/C:/Users/Mohamed/Pictures/Screenshots/Screenshot (82).png"],"src":"postman-cloud:///1ef80b87-b576-4e80-b5a1-58557b163698"}]},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/51/images"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sun, 06 Oct 2024 17:52:41 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"180"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"b4-W7XFy2j3FZj6y4+Yx1XnKQSx7cc\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 201,\n    \"message\": \"Property Image added successfully\",\n    \"data\": {\n        \"id\": 13,\n        \"img\": \"https://express-api.propertyhive.com.ng/static/images/1728237161403.png\",\n        \"propertyid_id\": 51\n    }\n}"}],"_postman_id":"e00d8bd6-a463-47fc-8efa-e4daba5b3a31"}],"id":"8d38db25-b96a-4185-90f8-ca4fc6d8d8e6","_postman_id":"8d38db25-b96a-4185-90f8-ca4fc6d8d8e6","description":""},{"name":"Details","item":[{"name":"Retrieve Property","id":"25ec964b-b687-4049-8429-d349e7d3b8cd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId","urlObject":{"path":["v1","properties",":propertyId"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[{"id":"fb809139-0fca-4d98-9da7-1107a6f91890","name":"Retrieve Property","originalRequest":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/49"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Tue, 01 Oct 2024 11:59:50 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"899"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"383-TaaSweMA0bvi6kkFAN4VzPZuOvQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Property retrieved successfully\",\n    \"data\": {\n        \"id\": 49,\n        \"name\": \"Lagos\",\n        \"state\": \"Lagos\",\n        \"city\": \"Lagos\",\n        \"address\": \"Main Street 123\",\n        \"description\": \"5 Bedrooms and 3 Bathrooms\",\n        \"squaremeters\": \"200\",\n        \"property_type\": \"Apartment\",\n        \"number_of_bathrooms\": 3,\n        \"number_of_bedrooms\": 5,\n        \"installment_duration\": \"8\",\n        \"payment_frequency\": \"4\",\n        \"down_payment\": \"200000\",\n        \"installment_payment_price\": 1000,\n        \"keywords\": [\n            \"Apartment\",\n            \"Lagos\"\n        ],\n        \"price\": 5000000,\n        \"is_sold\": false,\n        \"date_sold\": null,\n        \"created_at\": \"2024-10-01T11:57:49.903Z\",\n        \"updated_at\": \"2024-10-01T11:57:49.903Z\",\n        \"sellerid_id\": 1,\n        \"common_user\": {\n            \"id\": 1,\n            \"email\": \"test@gmail.com\",\n            \"fname\": \"test\",\n            \"lname\": \"test\",\n            \"business_name\": null\n        },\n        \"common_ratings\": [],\n        \"common_propertyimages\": [\n            {\n                \"id\": 3,\n                \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869745.png\"\n            },\n            {\n                \"id\": 4,\n                \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869746.png\"\n            }\n        ]\n    }\n}"}],"_postman_id":"25ec964b-b687-4049-8429-d349e7d3b8cd"},{"name":"Remove a Property","id":"d74305a8-85a3-4975-8b15-f18c412e39ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId","urlObject":{"path":["v1","properties",":propertyId"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[{"id":"2dfeeb93-4419-46bb-92a1-1469c6d6a038","name":"Remove a Property","originalRequest":{"method":"DELETE","header":[],"url":{"raw":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId","host":["https://express-api.propertyhive.com.ng/api"],"path":["v1","properties",":propertyId"],"variable":[{"key":"propertyId","value":""}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Tue, 01 Oct 2024 12:01:00 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1104"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"450-OB4H5dqVLe142GcL2oZCckluwGA\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Property and its related data deleted successfully\",\n    \"deletedProperty\": {\n        \"id\": 49,\n        \"name\": \"Lagos\",\n        \"state\": \"Lagos\",\n        \"city\": \"Lagos\",\n        \"address\": \"Main Street 123\",\n        \"description\": \"5 Bedrooms and 3 Bathrooms\",\n        \"squaremeters\": \"200\",\n        \"property_type\": \"Apartment\",\n        \"number_of_bathrooms\": 3,\n        \"number_of_bedrooms\": 5,\n        \"installment_duration\": \"8\",\n        \"payment_frequency\": \"4\",\n        \"down_payment\": \"200000\",\n        \"installment_payment_price\": 1000,\n        \"keywords\": [\n            \"Apartment\",\n            \"Lagos\"\n        ],\n        \"price\": 5000000,\n        \"is_sold\": false,\n        \"date_sold\": null,\n        \"created_at\": \"2024-10-01T11:57:49.903Z\",\n        \"updated_at\": \"2024-10-01T11:57:49.903Z\",\n        \"sellerid_id\": 1,\n        \"common_propertyimages\": [\n            {\n                \"id\": 3,\n                \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869745.png\",\n                \"propertyid_id\": 49\n            },\n            {\n                \"id\": 4,\n                \"img\": \"http://express-api.propertyhive.com.ng/static/images/1727783869746.png\",\n                \"propertyid_id\": 49\n            }\n        ],\n        \"common_propertydocuments\": [\n            {\n                \"id\": 2,\n                \"document_type\": null,\n                \"img\": null,\n                \"file_path\": \"http://express-api.propertyhive.com.ng/static/documents/1727783869754.js\",\n                \"created_at\": \"2024-10-01T11:57:50.308Z\",\n                \"updated_at\": \"2024-10-01T11:57:50.308Z\",\n                \"propertyid_id\": 49\n            }\n        ]\n    }\n}"}],"_postman_id":"d74305a8-85a3-4975-8b15-f18c412e39ca"},{"name":"Update Property","id":"7a961e05-4692-44a2-ba32-614783769684","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"sellerId\": \"12\",\r\n    \"name\":\"Wisdom Fred\",\r\n    \"state\":\"San Francisco\",\r\n    \"city\":\"Ohio\",\r\n    \"address\":\"20 main street\",\r\n    \"price\":\"2000\",\r\n    \"description\":\"A Nice Landed Property\",\r\n    \"squaremeters\":\"450ft\",\r\n    \"propertyType\":\"Land\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId","urlObject":{"path":["v1","properties",":propertyId"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[],"_postman_id":"7a961e05-4692-44a2-ba32-614783769684"},{"name":"Delete Property Document","id":"48d65258-8a9c-4e87-b29f-8452a2f70418","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/documents","urlObject":{"path":["v1","properties",":propertyId","documents"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[{"id":"e57dd1b5-a72f-4743-87b2-fdce5e650cd1","name":"Delete Property Document","originalRequest":{"method":"DELETE","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/51/documents"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Wed, 02 Oct 2024 12:35:47 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"73"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"49-DRo3oJ7gn7OuX97l/RATDE7U1JQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Document(s) deleted successfully\",\n    \"data\": []\n}"}],"_postman_id":"48d65258-8a9c-4e87-b29f-8452a2f70418"},{"name":"Get Property Document","id":"2f326079-8200-4e21-ae41-8d45c86f666a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/documents","urlObject":{"path":["v1","properties",":propertyId","documents"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[],"_postman_id":"2f326079-8200-4e21-ae41-8d45c86f666a"},{"name":"Delete Property Image","id":"8e48d572-3ae4-462d-8842-1f55e31e479d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/images/:imageId","urlObject":{"path":["v1","properties",":propertyId","images",":imageId"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"},{"type":"any","value":"","key":"imageId"}]}},"response":[],"_postman_id":"8e48d572-3ae4-462d-8842-1f55e31e479d"}],"id":"c4c97854-2d91-4525-a14e-f22ee8c3813d","_postman_id":"c4c97854-2d91-4525-a14e-f22ee8c3813d","description":""},{"name":"Ratings","item":[{"name":"Rate Property","id":"41e73c25-42f4-4ea9-914b-c8c295167eca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"    {\r\n         \"rate\": 4,\r\n        \"comment\": \"Amazing Property!\",\r\n         \"userId\": \"1\"\r\n    }","options":{"raw":{"language":"json"}}},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/rate","urlObject":{"path":["v1","properties",":propertyId","rate"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[],"_postman_id":"41e73c25-42f4-4ea9-914b-c8c295167eca"},{"name":"Get Property Rating","id":"6ede0fe3-0089-4ff6-ae71-3594806895bb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/rate","urlObject":{"path":["v1","properties",":propertyId","rate"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"}]}},"response":[],"_postman_id":"6ede0fe3-0089-4ff6-ae71-3594806895bb"},{"name":"Update Property Rating","id":"8b99cb57-ed64-40df-9768-2e1d6162b9f3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[],"body":{"mode":"raw","raw":"{\r\n    \"rate\": 5,\r\n    \"comment\": \"Excellent Property!\"\r\n}","options":{"raw":{"language":"json"}}},"url":"https://express-api.propertyhive.com.ng/api/v1/properties/:propertyId/rate/:rateId","urlObject":{"path":["v1","properties",":propertyId","rate",":rateId"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"propertyId"},{"type":"any","value":"","key":"rateId"}]}},"response":[],"_postman_id":"8b99cb57-ed64-40df-9768-2e1d6162b9f3"}],"id":"cf115ef4-f50d-40cd-ae0b-fb85fa855fb0","_postman_id":"cf115ef4-f50d-40cd-ae0b-fb85fa855fb0","description":""}],"id":"6a150ae7-aaec-46b1-87a0-bd75ffa69b39","description":"<h2 id=\"3-property-management\">3. Property Management</h2>\n<p>The Property Management section handles operations related to property listings and associated documents.</p>\n<h3 id=\"31-get-property-document\">3.1 Get Property Document</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/property-document/</code></p>\n<p>This endpoint retrieves a specific document associated with a property.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><code>document_id</code>: The unique identifier of the property document.</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved the document</p>\n</li>\n<li><p>404 Not Found: Document not found</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>The exact structure of the response may vary based on the type of document.</p>\n</li>\n<li><p>Access to certain documents may be restricted based on user roles or permissions.</p>\n</li>\n</ul>\n<h2 id=\"4-financial-operations\">4. Financial Operations</h2>\n<p>The Financial Operations section handles invoices and transactions.</p>\n<h3 id=\"41-get-invoice\">4.1 Get Invoice</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/invoice/</code></p>\n<p>This endpoint retrieves details of a specific invoice.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><code>invoice_id</code>: The unique identifier of the invoice.</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved invoice details</p>\n</li>\n<li><p>404 Not Found: Invoice not found</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoice_id\": \"INV-001\",\n  \"amount\": 1000.00,\n  \"status\": \"paid\",\n  \"issue_date\": \"2024-09-28\",\n  \"due_date\": \"2024-10-28\",\n  \"items\": [\n    {\n      \"description\": \"Property listing fee\",\n      \"quantity\": 1,\n      \"unit_price\": 1000.00\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>The structure of the invoice may vary based on the specific requirements of Property Hive.</p>\n</li>\n<li><p>Access to invoice details may be restricted to authorized personnel only.</p>\n</li>\n</ul>\n<h3 id=\"42-get-transactions\">4.2 Get Transactions</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/transactions/</code></p>\n<p>This endpoint retrieves a list of transactions associated with the authenticated company.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code>: (optional) Page number for pagination</p>\n</li>\n<li><p><code>limit</code>: (optional) Number of transactions per page</p>\n</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved transactions</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transactions\": [\n    {\n      \"transaction_id\": \"TRX-001\",\n      \"amount\": 1000.00,\n      \"type\": \"credit\",\n      \"description\": \"Payment for Invoice INV-001\",\n      \"date\": \"2024-09-28T14:30:00Z\"\n    },\n    {\n      \"transaction_id\": \"TRX-002\",\n      \"amount\": 500.00,\n      \"type\": \"debit\",\n      \"description\": \"Refund for cancelled listing\",\n      \"date\": \"2024-09-27T10:15:00Z\"\n    }\n  ],\n  \"total_count\": 50,\n  \"page\": 1,\n  \"limit\": 10\n}\n\n</code></pre>\n","_postman_id":"6a150ae7-aaec-46b1-87a0-bd75ffa69b39"},{"name":"Transactions","item":[{"name":"Listing","item":[{"name":"Get Transactions","id":"eb9fe439-a867-47df-861b-ad57bbfc6caf","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng/api/v1/transactions/","urlObject":{"path":["v1","transactions",""],"host":["https://api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[],"_postman_id":"eb9fe439-a867-47df-861b-ad57bbfc6caf"}],"id":"cd8a37a4-037b-40e5-acf6-ca08dc8ad77e","description":"<p>StartFragment</p>\n<h4 id=\"ng\"><strong>ng</strong></h4>\n<ol>\n<li><strong>GET</strong> <code>Get Transactions</code>: Retrieves a list of transactions related to properties.</li>\n</ol>\n<p>EndFragment</p>\n","_postman_id":"cd8a37a4-037b-40e5-acf6-ca08dc8ad77e"},{"name":"Details","item":[{"name":"Get Invoice","id":"aa77b753-70eb-4167-82de-44c6bf1c57be","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"https://api.propertyhive.com.ng//api/v1/invoice/1","description":"<p>GET Get Invoice: Retrieves an invoice for a specific transaction.</p>\n","urlObject":{"path":["api","v1","invoice","1"],"host":["https://api.propertyhive.com.ng/"],"query":[],"variable":[]}},"response":[{"id":"a784e2c1-5408-4831-af48-48b02949402c","name":"Invalid Invoice","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"","options":{"raw":{"language":"json"}}},"url":"{{base_url}}/api/v1/invoice/1"},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Sat, 28 Sep 2024 15:20:32 GMT"},{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"48"},{"key":"Connection","value":"keep-alive"},{"key":"Allow","value":"GET, HEAD, OPTIONS"},{"key":"X-Frame-Options","value":"DENY"},{"key":"Vary","value":"Cookie"},{"key":"X-Content-Type-Options","value":"nosniff"},{"key":"Referrer-Policy","value":"same-origin"},{"key":"Cross-Origin-Opener-Policy","value":"same-origin"}],"cookie":[],"responseTime":null,"body":"{\n    \"detail\": \"No Invoice matches the given query.\"\n}"}],"_postman_id":"aa77b753-70eb-4167-82de-44c6bf1c57be"},{"name":"Get Transaction","id":"c60c1238-5a4c-481d-9822-bade2bf93e3c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"url":"https://api.propertyhive.com.ng/api/v1/transactions/:transactionId/","description":"<p>GET Get Transaction: Retrieves the details of a specific transaction.</p>\n","urlObject":{"path":["v1","transactions",":transactionId",""],"host":["https://api.propertyhive.com.ng/api"],"query":[],"variable":[{"type":"any","value":"","key":"transactionId"}]}},"response":[],"_postman_id":"c60c1238-5a4c-481d-9822-bade2bf93e3c"},{"name":"Purchase Property","id":"be84793c-d242-4aad-a6f6-a3223b5aa175","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": 1,\r\n    \"propertyId\": 86,\r\n    \"paymentMethod\": \"Paystack\",\r\n    \"totalAmount\": 1000000\r\n}","options":{"raw":{"language":"json"}}},"url":"https://express-api.propertyhive.com.ng/api/v1/purchase","urlObject":{"path":["v1","purchase"],"host":["https://express-api.propertyhive.com.ng/api"],"query":[],"variable":[]}},"response":[{"id":"c373b1d0-3049-4649-8ad0-43809cd2b020","name":"New Request","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n    \"userId\": 1,\r\n    \"propertyId\": 86,\r\n    \"paymentMethod\": \"Paystack\",\r\n    \"totalAmount\": 1000000\r\n}","options":{"raw":{"language":"json"}}},"url":"https://express-api.propertyhive.com.ng/api/v1/purchase"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Server","value":"nginx/1.24.0 (Ubuntu)"},{"key":"Date","value":"Wed, 09 Oct 2024 11:16:44 GMT"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"255"},{"key":"Connection","value":"keep-alive"},{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"ETag","value":"W/\"ff-yMCOGN+73G+/lWUM4aBNQQ1FkwQ\""}],"cookie":[],"responseTime":null,"body":"{\n    \"statusCode\": 200,\n    \"message\": \"Property purchased successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"status\": \"P\",\n        \"payment_method\": \"Paystack\",\n        \"total_amount\": 1000000,\n        \"created_at\": \"2024-10-09T11:16:44.680Z\",\n        \"updated_at\": \"2024-10-09T11:16:44.680Z\",\n        \"propertyid_id\": 86,\n        \"userid_id\": 1\n    }\n}"}],"_postman_id":"be84793c-d242-4aad-a6f6-a3223b5aa175"}],"id":"0240a03f-a3a0-4289-bf20-38fe1fed88a9","_postman_id":"0240a03f-a3a0-4289-bf20-38fe1fed88a9","description":""}],"id":"4d4d1b84-6c5d-4bb5-aa26-8263f529d131","description":"<h2 id=\"4-financial-operations\">4. Financial Operations</h2>\n<p>The Financial Operations section handles invoices and transactions.</p>\n<h3 id=\"41-get-invoice\">4.1 Get Invoice</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/invoice/</code></p>\n<p>This endpoint retrieves details of a specific invoice.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Parameters:</strong></p>\n<ul>\n<li><code>invoice_id</code>: The unique identifier of the invoice.</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved invoice details</p>\n</li>\n<li><p>404 Not Found: Invoice not found</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"invoice_id\": \"INV-001\",\n  \"amount\": 1000.00,\n  \"status\": \"paid\",\n  \"issue_date\": \"2024-09-28\",\n  \"due_date\": \"2024-10-28\",\n  \"items\": [\n    {\n      \"description\": \"Property listing fee\",\n      \"quantity\": 1,\n      \"unit_price\": 1000.00\n    }\n  ]\n}\n\n</code></pre>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>The structure of the invoice may vary based on the specific requirements of Property Hive.</p>\n</li>\n<li><p>Access to invoice details may be restricted to authorized personnel only.</p>\n</li>\n</ul>\n<h3 id=\"42-get-transactions\">4.2 Get Transactions</h3>\n<p><strong>Endpoint:</strong> <code>GET /api/v1/transactions/</code></p>\n<p>This endpoint retrieves a list of transactions associated with the authenticated company.</p>\n<p><strong>Headers:</strong></p>\n<ul>\n<li><code>Authorization: Bearer</code></li>\n</ul>\n<p><strong>Query Parameters:</strong></p>\n<ul>\n<li><p><code>page</code>: (optional) Page number for pagination</p>\n</li>\n<li><p><code>limit</code>: (optional) Number of transactions per page</p>\n</li>\n</ul>\n<p><strong>Response:</strong></p>\n<ul>\n<li><p>200 OK: Successfully retrieved transactions</p>\n</li>\n<li><p>401 Unauthorized: Invalid or missing token</p>\n</li>\n</ul>\n<p><strong>Example Response:</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"transactions\": [\n    {\n      \"transaction_id\": \"TRX-001\",\n      \"amount\": 1000.00,\n      \"type\": \"credit\",\n      \"description\": \"Payment for Invoice INV-001\",\n      \"date\": \"2024-09-28T14:30:00Z\"\n    },\n    {\n      \"transaction_id\": \"TRX-002\",\n      \"amount\": 500.00,\n      \"type\": \"debit\",\n      \"description\": \"Refund for cancelled listing\",\n      \"date\": \"2024-09-27T10:15:00Z\"\n    }\n  ],\n  \"total_count\": 50,\n  \"page\": 1,\n  \"limit\": 10\n}\n\n</code></pre>\n","_postman_id":"4d4d1b84-6c5d-4bb5-aa26-8263f529d131"}],"id":"68f326f3-1b37-4260-bfa8-0611ba9debb7","description":"<h1 id=\"index\"><em><strong>Index</strong></em></h1>\n<ol>\n<li><p><strong>Authentication and User Management</strong></p>\n<ul>\n<li><p>Company registration</p>\n</li>\n<li><p>User login and logout</p>\n</li>\n<li><p>Password management (including forgot and reset password functionalities)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Profile Management</strong></p>\n<ul>\n<li><p>Company profile creation and updates</p>\n</li>\n<li><p>User profile retrieval and management</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Property Management</strong></p>\n<ul>\n<li><p>Property listing and information retrieval</p>\n</li>\n<li><p>(Potential future features for property creation, updating, and deletion)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Financial Operations</strong></p>\n<ul>\n<li><p>Invoice generation and retrieval</p>\n</li>\n<li><p>Transaction tracking</p>\n</li>\n</ul>\n</li>\n</ol>\n<p><strong>Notes:</strong></p>\n<ul>\n<li><p>Transactions are typically paginated to manage large datasets efficiently.</p>\n</li>\n<li><p>The response includes metadata about pagination to help navigate through the results.</p>\n</li>\n</ul>\n<h2 id=\"general-considerations\">General Considerations</h2>\n<ol>\n<li><p><strong>Rate Limiting:</strong> Many endpoints, especially those dealing with authentication and password reset, may have rate limiting to prevent abuse. Clients should be prepared to handle 429 Too Many Requests responses.</p>\n</li>\n<li><p><strong>Error Handling:</strong> All endpoints should return appropriate HTTP status codes and error messages. Clients should be prepared to handle and present these errors meaningfully to the end-user.</p>\n</li>\n<li><p><strong>Data Validation:</strong> Server-side validation is crucial, but client-side validation can improve user experience by catching obvious errors before submission.</p>\n</li>\n<li><p><strong>Security:</strong> All endpoints require authentication via Bearer token, except for registration, login, and password reset initiation. Ensure tokens are stored securely and transmitted only over HTTPS.</p>\n</li>\n<li><p><strong>Pagination:</strong> For endpoints that return lists (e.g., transactions), implement pagination to manage large datasets efficiently.</p>\n</li>\n<li><p><strong>Timezone Handling:</strong> Ensure all date-time fields are in a consistent format, preferably UTC, and clients handle timezone conversions appropriately.</p>\n</li>\n<li><p><strong>CORS (Cross-Origin Resource Sharing):</strong> If the API is to be accessed from web browsers, ensure proper CORS headers are set up to allow requests from authorized domains.</p>\n</li>\n<li><p><strong>Versioning:</strong> The current version (v1) is specified in the URL. Future updates should consider backward compatibility or clear migration paths for clients.</p>\n</li>\n</ol>\n<p>This extensive breakdown of the Property Hive API Version 1 provides a comprehensive guide for developers integrating with the platform. It covers authentication flows, profile management, property-related operations, and financial tracking, offering insights into request/response structures, authentication requirements, and best practices for each endpoint.</p>\n","_postman_id":"68f326f3-1b37-4260-bfa8-0611ba9debb7"}],"event":[{"listen":"prerequest","script":{"id":"ff5a7ef1-96c3-4fe5-b7a3-77d0d3c35835","type":"text/javascript","packages":{},"exec":[""]}},{"listen":"test","script":{"id":"c09f942b-3e78-4bab-8bbb-aeb037b13167","type":"text/javascript","packages":{},"exec":[""]}}],"variable":[{"key":"base_url_1","value":"https://api.propertyhive.com.ng/","type":"string"},{"key":"base_url_2","value":"https://express-api.propertyhive.com.ng/","type":"string"}]}