{"info":{"_postman_id":"8e7f8f74-6f78-4597-b774-5ba051fabbba","name":"VedaTrust","description":"<html><head></head><body><h1 id=\"vedatrust-api-documentation\">🏥 VedaTrust API Documentation</h1>\n<h2 id=\"🔹-overview\">🔹 Overview</h2>\n<p>The VedaTrust API provides endpoints for authentication, medicine verification, and pharmacy data.</p>\n<hr>\n<h2 id=\"🌐-base-url\">🌐 Base URL</h2>\n<p><a href=\"http://localhost:5000\">http://localhost:5000</a></p>\n<hr>\n<h2 id=\"🔐-authentication\">🔐 Authentication</h2>\n<p>Most endpoints use JWT:</p>\n<p>Authorization: Bearer</p>\n<hr>\n<h1 id=\"authentication-apis\">👤 Authentication APIs</h1>\n<h2 id=\"🆕-signup\">🆕 Signup</h2>\n<p><strong>POST</strong> /api/auth/signup</p>\n<h3 id=\"headers\">Headers</h3>\n<p>Content-Type: application/json</p>\n<h3 id=\"request-body\">Request Body</h3>\n<p>{<br>\"fullName\": \"Test User\",<br>\"email\": \"<a href=\"https://mailto:test@vedatrust.com\">test@vedatrust.com</a>\",<br>\"password\": \"Password123\"<br>}</p>\n<h3 id=\"success-response\">Success Response</h3>\n<p>{<br>\"message\": \"Signup successful\",<br>\"token\": \"\",<br>\"user\": {<br>\"_id\": \"6653b7...\",<br>\"fullName\": \"Test User\",<br>\"email\": \"<a href=\"https://mailto:test@vedatrust.com\">test@vedatrust.com</a>\"<br>}<br>}</p>\n<hr>\n<h2 id=\"🔑-login\">🔑 Login</h2>\n<p><strong>POST</strong> /api/auth/login</p>\n<h3 id=\"request-body-1\">Request Body</h3>\n<p>{<br>\"email\": \"<a href=\"https://mailto:user@vedatrust.com\">user@vedatrust.com</a>\",<br>\"password\": \"your_password\"<br>}</p>\n<h3 id=\"success-response-1\">Success Response</h3>\n<p>{<br>\"success\": true,<br>\"token\": \"\",<br>\"user\": {<br>\"id\": \"123\",<br>\"email\": \"<a href=\"https://mailto:user@vedatrust.com\">user@vedatrust.com</a>\"<br>}<br>}</p>\n<hr>\n<h1 id=\"medicine-verification\">💊 Medicine Verification</h1>\n<h2 id=\"🔍-verify-medicine\">🔍 Verify Medicine</h2>\n<p><strong>POST</strong> /api/verify/history</p>\n<h3 id=\"request-body-2\">Request Body</h3>\n<p>{<br>\"medicineName\": \"Amoxicillin 500mg\",<br>\"batchId\": \"BATCH-123\",<br>\"manufacturer\": \"Global Pharma\",<br>\"expiryDate\": \"2025-12-31\"<br>}</p>\n<h3 id=\"success-response-2\">Success Response</h3>\n<p>{<br>\"success\": true,<br>\"data\": {<br>\"status\": \"Authentic\",<br>\"safetyScore\": 95<br>}<br>}</p>\n<hr>\n<h2 id=\"🏥-pharmacy-list\">🏥 Pharmacy List</h2>\n<p><strong>GET</strong> /api/verify/history</p>\n<h3 id=\"response\">Response</h3>\n<p>{<br>\"success\": true,<br>\"count\": 3,<br>\"data\": [<br>{<br>\"name\": \"City Health Pharmacy\",<br>\"rating\": 4.8,<br>\"status\": \"Open Now\"<br>}<br>]<br>}</p>\n<hr>\n<h1 id=\"errors\">❌ Errors</h1>\n<p>400 Bad Request<br>401 Unauthorized<br>409 Conflict<br>500 Server Error</p>\n<hr>\n<h1 id=\"best-practices\">⚙️ Best Practices</h1>\n<p>Content-Type: application/json<br>Use {{base_url}}<br>Use HTTPS in production</p>\n<hr>\n<h1 id=\"structure\">🚀 Structure</h1>\n<p>VedaTrust<br>|- Auth<br>| |- Signup<br>| |- Login<br>|- Verification<br>| |- Verify Medicine<br>| |- Pharmacy List</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"🏥 VedaTrust API Documentation","slug":"vedatrust-api-documentation"},{"content":"👤 Authentication APIs","slug":"authentication-apis"},{"content":"💊 Medicine Verification","slug":"medicine-verification"},{"content":"❌ Errors","slug":"errors"},{"content":"⚙️ Best Practices","slug":"best-practices"},{"content":"🚀 Structure","slug":"structure"}],"owner":"50839281","collectionId":"8e7f8f74-6f78-4597-b774-5ba051fabbba","publishedId":"2sBXqKofY6","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-02T19:40:27.000Z"},"item":[{"name":"Signup","id":"369f753b-1592-458c-87aa-26d4be354b7d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"fullName\": \"Test User\",\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/signup","description":"<p>Creates a new VedaTrust user account using an email and password. This endpoint is used for first-time registration/onboarding. The server should validate input, ensure the email is unique, securely hash the password, create the user record, and return a success response. Depending on the auth design, the API may also issue an access token immediately (auto-login) or require a separate login/verification step.</p>\n<p><strong>Endpoint</strong></p>\n<ul>\n<li><p><strong>Method:</strong> <code>POST</code></p>\n</li>\n<li><p><strong>URL:</strong> <code>http://localhost:5000/api/auth/signup</code></p>\n</li>\n</ul>\n<p><strong>Authentication</strong></p>\n<ul>\n<li><p>No auth is typically required for signup.</p>\n</li>\n<li><p>If your API enforces anti-abuse protection, it may require CAPTCHA/OTP/rate limiting (not shown in this request).</p>\n</li>\n</ul>\n<p><strong>Headers</strong></p>\n<ul>\n<li><p><code>Content-Type: application/json</code></p>\n</li>\n<li><p>(Optional) <code>Accept: application/json</code></p>\n</li>\n</ul>\n<p><strong>Request Body (application/json)</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Notes / Validation</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>fullName</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Full name of the user (often 2–100 chars).</td>\n</tr>\n<tr>\n<td><code>email</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Must be a valid email format; should be unique. Usually lowercased/trimmed server-side.</td>\n</tr>\n<tr>\n<td><code>password</code></td>\n<td>string</td>\n<td>Yes</td>\n<td>Should meet password policy (e.g., min length, complexity). Must never be returned in responses.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Example Request Body</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n   \"fullName\": \"Test User\", \n   \"email\": \"test@vedatrust.com\", \n   \"password\": \"Password123\"\n}\n\n</code></pre>\n<p><strong>Success Response (common patterns)</strong> Your API will usually return <strong>one</strong> of these patterns:</p>\n<ol>\n<li><strong>Created user + token (auto-login)</strong></li>\n</ol>\n<ul>\n<li><p><strong>Status:</strong> <code>201 Created</code> (or <code>200 OK</code>)</p>\n</li>\n<li><p><strong>Body may include:</strong></p>\n<ul>\n<li><p><code>message</code>: string</p>\n</li>\n<li><p><code>token</code>: string (JWT/access token)</p>\n</li>\n<li><p><code>user</code>: object (sanitized user details)</p>\n</li>\n</ul>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"message\": \"Signup successful\",    \"token\": \"&lt;jwt&gt;\",    \"user\": {        \"_id\": \"6653b7...\",        \"fullName\": \"Test User\",        \"email\": \"test@vedatrust.com\",        \"createdAt\":             \"2026-05-02T00:00:00.000Z\"    }}\n\n</code></pre><ol>\n<li><strong>Created user only (login required separately)</strong></li>\n</ol>\n<ul>\n<li><p><strong>Status:</strong> <code>201 Created</code></p>\n</li>\n<li><p><strong>Body may include:</strong> <code>message</code>, <code>user</code></p>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{    \"message\": \"User created         successfully\",    \"user\": {        \"_id\": \"6653b7...\",        \"fullName\": \"Test User\",        \"email\": \"test@vedatrust.com\"    }}\n\n</code></pre><ol>\n<li><strong>Verification flow (email/OTP)</strong></li>\n</ol>\n<ul>\n<li><p><strong>Status:</strong> <code>200 OK</code> or <code>201 Created</code></p>\n</li>\n<li><p><strong>Body may include:</strong> <code>message</code>, <code>verificationRequired: true</code></p>\n</li>\n</ul>\n<p>Example:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \n   \"message\": \"Verification code sent         to email\",    \"verificationRequired\": true\n}\n\n</code></pre>\n<p><strong>Error Responses (recommended)</strong></p>\n<ul>\n<li><p><strong><code>400 Bad Request</code></strong> — validation fails (missing fields, invalid email, weak password)</p>\n<ul>\n<li>{ \"message\": \"Email is invalid\"}</li>\n</ul>\n</li>\n<li><p><strong><code>409 Conflict</code></strong> — email already registered (some APIs use <code>400</code> instead)</p>\n<ul>\n<li>{ \"message\": \"Email already exists\"}</li>\n</ul>\n</li>\n<li><p><strong><code>429 Too Many Requests</code></strong> — rate limit / abuse protection (if enabled)</p>\n<ul>\n<li>{ \"message\": \"Too many signup attempts. Try again later. \"}</li>\n</ul>\n</li>\n<li><p><strong><code>500 Internal Server Error</code></strong> — unexpected server failure</p>\n<ul>\n<li>{ \"message\": \"Internal server error\"}</li>\n</ul>\n</li>\n</ul>\n<p><strong>Implementation / Security Notes (why this matters)</strong></p>\n<ul>\n<li><p>Password must be <strong>hashed</strong> (bcrypt/argon2) and never logged or returned.</p>\n</li>\n<li><p>Consider rate limiting + email verification to reduce fake accounts.</p>\n</li>\n<li><p>Normalize email (trim + lowercase) consistently to enforce uniqueness.</p>\n</li>\n</ul>\n","urlObject":{"protocol":"http","port":"5000","path":["api","auth","signup"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"41490aaf-7b36-4812-b0c7-a0d4716fc751","name":"Signup","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"fullName\": \"Test User\",\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/signup"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"308"},{"key":"ETag","value":"W/\"134-RIENZ/clc31+5NpRWXsiyGFUybM\""},{"key":"Date","value":"Sat, 02 May 2026 08:08:00 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZjViMGUwN2M5NDNlNmUyN2EyZTRjNiIsImlhdCI6MTc3NzcwOTI4MCwiZXhwIjoxNzgwMzAxMjgwfQ.gRbZcTIcAc-uF0dChxkpLAZq5D_tw-yY3tseIfb2QvU\",\n    \"user\": {\n        \"id\": \"69f5b0e07c943e6e27a2e4c6\",\n        \"fullName\": \"Test User\",\n        \"email\": \"test@vedatrust.com\",\n        \"role\": \"patient\"\n    }\n}"}],"_postman_id":"369f753b-1592-458c-87aa-26d4be354b7d"},{"name":"Login","id":"43a4c6e9-0001-4214-89a2-2b5bdc7aeb95","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/login","description":"<h3 id=\"vedatrust--inside-login\">VedaTrust — Inside Login</h3>\n<p>Authenticates a VedaTrust “inside” user and returns credentials (typically an access token) that can be used to call protected APIs.</p>\n<p><strong>Method:</strong> POST<br /><strong>URL:</strong> <code>http://localhost:5000/api/auth/login</code></p>\n<hr />\n<h3 id=\"headers\">Headers</h3>\n<ul>\n<li><code>Content-Type: application/json</code></li>\n</ul>\n<hr />\n<h3 id=\"request-body-json\">Request Body (JSON)</h3>\n<p>Send the user’s login credentials.</p>\n<p>Example:</p>\n<p>```json<br />{<br />\"email\": \"<a href=\"https://mailto:user@vedatrust.com\">user@vedatrust.com</a>\",<br />\"password\": \"your_password\"<br />}</p>\n<p>StartFragment</p>\n<p>If your API uses <code>username</code> instead of <code>email</code>, replace accordingly.</p>\n<hr />\n<h3 id=\"success-response\">Success Response</h3>\n<p><strong>200 OK</strong> (common)</p>\n<ul>\n<li>Returns authentication details (often a JWT access token) and user info.</li>\n</ul>\n<p>Example shape (may differ in your backend):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{    \n\"success\": true,  \n  \"token\": \"&lt;jwt-access-token&gt;\", \n   \"user\": \n{\n        \"id\": \"123\",\n        \"name\": \"Aman Kumar\",  \n      \"email\": \"user@vedatrust.com\", \n       \"role\": \"inside\"\n    }}\n\n</code></pre>\n<hr />\n<h3 id=\"error-responses\">Error Responses</h3>\n<p><strong>400 Bad Request</strong></p>\n<ul>\n<li>Missing/invalid fields (email/password)</li>\n</ul>\n<p><strong>401 Unauthorized</strong></p>\n<ul>\n<li>Invalid credentials</li>\n</ul>\n<p><strong>403 Forbidden</strong></p>\n<ul>\n<li>User not allowed to login (disabled / role restriction)</li>\n</ul>\n<p><strong>500 Internal Server Error</strong></p>\n<ul>\n<li>Unexpected server error</li>\n</ul>\n","urlObject":{"protocol":"http","port":"5000","path":["api","auth","login"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"a33657cb-7c9f-4b5b-bc93-d5bd346301a4","name":"Login","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/auth/login"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"308"},{"key":"ETag","value":"W/\"134-+HicxtEwO71n0o6Iuuz82AktN3Y\""},{"key":"Date","value":"Sat, 02 May 2026 08:12:18 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY5ZjViMGUwN2M5NDNlNmUyN2EyZTRjNiIsImlhdCI6MTc3NzcwOTUzOCwiZXhwIjoxNzgwMzAxNTM4fQ.1fzLozA_bsEAD7UKYmMita-6dTWsiUuO7E6PQ4LRcIM\",\n    \"user\": {\n        \"id\": \"69f5b0e07c943e6e27a2e4c6\",\n        \"fullName\": \"Test User\",\n        \"email\": \"test@vedatrust.com\",\n        \"role\": \"patient\"\n    }\n}"}],"_postman_id":"43a4c6e9-0001-4214-89a2-2b5bdc7aeb95"},{"name":"verify","id":"0a113a6c-267e-4e90-a985-cbfae07d321e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"medicineName\": \"Amoxicillin 500mg\",\r\n  \"batchId\": \"BATCH-123\",\r\n  \"manufacturer\": \"Global Pharma\",\r\n  \"expiryDate\": \"2025-12-31\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/verify","description":"<p>StartFragment</p>\n<h1 id=\"📦-verify-medicine-history-api\">📦 Verify Medicine History API</h1>\n<h2 id=\"🔹-endpoint\">🔹 Endpoint</h2>\n<p><strong>POST</strong> <code>/api/verify/history</code></p>\n<p><strong>Base URL</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">http://localhost:5000\n\n</code></pre>\n<hr />\n<h2 id=\"🧾-description\">🧾 Description</h2>\n<p>This API verifies a medicine using its details and returns authenticity status, safety score, manufacturer details, supply chain journey, and audit trail history.</p>\n<hr />\n<h2 id=\"📥-request\">📥 Request</h2>\n<h3 id=\"headers\">Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/json\n\n</code></pre><h3 id=\"body-json\">Body (JSON)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \n\"medicineName\": \"Amoxicillin 500mg\", \n \"batchId\": \"BATCH-123\",\n  \"manufacturer\": \"Global Pharma\",\n  \"expiryDate\": \"2025-12-31\"\n}\n\n</code></pre>\n<h3 id=\"field-details\">Field Details</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>medicineName</td>\n<td>string</td>\n<td>✅</td>\n<td>Name of the medicine</td>\n</tr>\n<tr>\n<td>batchId</td>\n<td>string</td>\n<td>✅</td>\n<td>Unique batch identifier</td>\n</tr>\n<tr>\n<td>manufacturer</td>\n<td>string</td>\n<td>✅</td>\n<td>Manufacturer name</td>\n</tr>\n<tr>\n<td>expiryDate</td>\n<td>string</td>\n<td>✅</td>\n<td>Expiry date (YYYY-MM-DD)</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"📤-response\">📤 Response</h2>\n<h3 id=\"✅-success-response-200-ok\">✅ Success Response (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \"success\": true, \n \"data\": \n{    \"user\": \"69f5b0e07c943e6e27a2e4c6\",\n    \"medicineName\": \"Amoxicillin 500mg\",  \n  \"batchId\": \"BATCH-123\", \n   \"status\": \"Authentic\", \n   \"manufacturer\": \"Global Pharma\",\n    \"expiryDate\": \"2025-12-31T00:00:00.000Z\",\n    \"scanDate\": \"2026-05-02T08:16:59.275Z\",\n    \"safetyScore\": 95, \n   \"manufacturerDetails\": {\n      \"location\": \"Basel, Switzerland\",  \n    \"licenseNo\": \"MFG-22049-GP\",     \n \"manufactureDate\": \"Oct 2023\"    },  \n  \"journey\": \n[      {   \n     \"location\": \"Basel, Switzerland\", \n       \"type\": \"Manufacture\", \n       \"date\": \"Oct 24, 2023\" \n},     \n {   \n     \"location\": \"Frankfurt, DE\",\n        \"type\": \"Distribution\",\n        \"date\": \"Nov 02, 2023\"},\n      {\"location\": \"New York, USA\",\n       \"type\": \"Pharmacy\",\"date\": \"Dec 15, 2023\"    \n  } ],\n    \"auditTrail\": [\n      {\"event\": \"Verified by User\",  \n      \"details\": \"Scanned via VedaTrust App\",  \n      \"date\": \"Today, 04:30 PM EST\", \n       \"status\": \"completed\"},   \n   {        \"event\": \"Received at Pharmacy\",\n        \"details\": \"City Health Pharmacy, NY\",   \n     \"date\": \"15 Oct 2023, 10:15 AM EST\",  \n      \"status\": \"completed\" }    ]  }}\n\n</code></pre>\n<hr />\n<h2 id=\"📊-response-field-explanation\">📊 Response Field Explanation</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>success</td>\n<td>boolean</td>\n<td>Indicates API success</td>\n</tr>\n<tr>\n<td>data</td>\n<td>object</td>\n<td>Main response payload</td>\n</tr>\n<tr>\n<td>status</td>\n<td>string</td>\n<td>Authenticity status (Authentic/Fake)</td>\n</tr>\n<tr>\n<td>safetyScore</td>\n<td>number</td>\n<td>Trust score (0–100)</td>\n</tr>\n<tr>\n<td>scanDate</td>\n<td>string</td>\n<td>Date of verification</td>\n</tr>\n<tr>\n<td>manufacturerDetails</td>\n<td>object</td>\n<td>Manufacturer info</td>\n</tr>\n<tr>\n<td>journey</td>\n<td>array</td>\n<td>Supply chain tracking history</td>\n</tr>\n<tr>\n<td>auditTrail</td>\n<td>array</td>\n<td>Full verification and audit logs</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"❌-error-response\">❌ Error Response</h2>\n<h3 id=\"400--404-example\">400 / 404 Example</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>{  \"success\": false,  \"message\": \"Invalid batch ID\"}\n\n</code></pre><hr />\n<h2 id=\"🔐-authentication\">🔐 Authentication</h2>\n<p><em>No authentication required (update if needed).</em></p>\n<hr />\n<h2 id=\"⚙️-notes\">⚙️ Notes</h2>\n<ul>\n<li><p>Ensure <code>Content-Type</code> is set to <code>application/json</code></p>\n</li>\n<li><p>Date format must be <code>YYYY-MM-DD</code></p>\n</li>\n<li><p>All fields are required</p>\n</li>\n<li><p>{{base_url}}/api/verify/history</p>\n</li>\n</ul>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","verify"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"51154302-8a8d-4d88-b7d1-7322d2d9fe47","name":"verify","originalRequest":{"method":"POST","header":[],"body":{"mode":"raw","raw":"{\r\n  \"medicineName\": \"Amoxicillin 500mg\",\r\n  \"batchId\": \"BATCH-123\",\r\n  \"manufacturer\": \"Global Pharma\",\r\n  \"expiryDate\": \"2025-12-31\"\r\n}\r\n","options":{"raw":{"language":"json"}}},"url":"http://localhost:5000/api/verify"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1328"},{"key":"ETag","value":"W/\"530-czIKx+eKkzaasXrT5LtvimN0uEA\""},{"key":"Date","value":"Sat, 02 May 2026 08:16:59 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"data\": {\n        \"user\": \"69f5b0e07c943e6e27a2e4c6\",\n        \"medicineName\": \"Amoxicillin 500mg\",\n        \"batchId\": \"BATCH-123\",\n        \"status\": \"Authentic\",\n        \"manufacturer\": \"Global Pharma\",\n        \"expiryDate\": \"2025-12-31T00:00:00.000Z\",\n        \"_id\": \"69f5b2fb7c943e6e27a2e4c7\",\n        \"scanDate\": \"2026-05-02T08:16:59.275Z\",\n        \"__v\": 0,\n        \"safetyScore\": 95,\n        \"manufacturerDetails\": {\n            \"location\": \"Basel, Switzerland\",\n            \"licenseNo\": \"MFG-22049-GP\",\n            \"manufactureDate\": \"Oct 2023\"\n        },\n        \"journey\": [\n            {\n                \"location\": \"Basel, Switzerland\",\n                \"type\": \"Manufacture\",\n                \"date\": \"Oct 24, 2023\"\n            },\n            {\n                \"location\": \"Frankfurt, DE\",\n                \"type\": \"Distribution\",\n                \"date\": \"Nov 02, 2023\"\n            },\n            {\n                \"location\": \"New York, USA\",\n                \"type\": \"Pharmacy\",\n                \"date\": \"Dec 15, 2023\"\n            }\n        ],\n        \"auditTrail\": [\n            {\n                \"event\": \"Verified by User\",\n                \"details\": \"Scanned via VedaTrust App\",\n                \"date\": \"Today, 04:30 PM EST\",\n                \"status\": \"completed\"\n            },\n            {\n                \"event\": \"Received at Pharmacy\",\n                \"details\": \"City Health Pharmacy, NY\",\n                \"date\": \"15 Oct 2023, 10:15 AM EST\",\n                \"status\": \"completed\"\n            },\n            {\n                \"event\": \"National Distributor Clearance\",\n                \"details\": \"PharmaLogistics US Hub, NJ\",\n                \"date\": \"22 Oct 2023, 11:45 AM EST\",\n                \"status\": \"completed\"\n            },\n            {\n                \"event\": \"Customs Cleared (Import)\",\n                \"details\": \"JFK International Airport, NY\",\n                \"date\": \"18 Oct 2023, 08:30 AM EST\",\n                \"status\": \"completed\"\n            },\n            {\n                \"event\": \"Manufactured & Packaged\",\n                \"details\": \"Global Pharma Industries, Basel Facility (CH)\",\n                \"date\": \"05 Oct 2023, 03:00 AM CET\",\n                \"status\": \"completed\"\n            }\n        ]\n    }\n}"}],"_postman_id":"0a113a6c-267e-4e90-a985-cbfae07d321e"},{"name":"All-pharmacies-details","id":"06cad476-377b-469c-b08f-f0a2adfb8d31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"bearer","bearer":{"basicConfig":[{"key":"token","value":"<token>"}]},"isInherited":false},"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}"},"url":"http://localhost:5000/api/pharmacies","description":"<p>StartFragment</p>\n<h1 id=\"🔐-user-login-api\">🔐 User Login API</h1>\n<h2 id=\"🔹-endpoint\">🔹 Endpoint</h2>\n<p><strong>POST</strong> <code>/api/login</code> <em>(update if your route is different)</em></p>\n<p><strong>Base URL</strong></p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">http://localhost:5000\n\n</code></pre>\n<hr />\n<h2 id=\"🧾-description\">🧾 Description</h2>\n<p>This API authenticates a user using email and password and returns user details along with an authentication token.</p>\n<hr />\n<h2 id=\"📥-request\">📥 Request</h2>\n<h3 id=\"headers\">Headers</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Content-Type: application/json\n\n</code></pre><h3 id=\"body-raw-→-json\">Body (raw → JSON)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \"email\": \"test@vedatrust.com\",  \"password\": \"Password123\"}\n\n</code></pre>\n<hr />\n<h2 id=\"📊-request-field-details\">📊 Request Field Details</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Type</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>email</td>\n<td>string</td>\n<td>✅</td>\n<td>User email address</td>\n</tr>\n<tr>\n<td>password</td>\n<td>string</td>\n<td>✅</td>\n<td>User password</td>\n</tr>\n</tbody>\n</table>\n</div><hr />\n<h2 id=\"📤-response\">📤 Response</h2>\n<h3 id=\"✅-success-200-ok\">✅ Success (200 OK)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \"success\": true,  \"token\": \"jwt_token_here\",  \"user\": {    \"id\": \"12345\",    \"email\": \"test@vedatrust.com\"  }}\n\n</code></pre>\n<hr />\n<h2 id=\"❌-error-responses\">❌ Error Responses</h2>\n<h3 id=\"401-unauthorized\">401 Unauthorized</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \"success\": false,  \"message\": \"Invalid email or password\"}\n\n</code></pre>\n<h3 id=\"400-bad-request\">400 Bad Request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{  \"success\": false,  \"message\": \"Email and password are required\"}\n\n</code></pre>\n<p>EndFragment</p>\n","urlObject":{"protocol":"http","port":"5000","path":["api","pharmacies"],"host":["localhost"],"query":[],"variable":[]}},"response":[{"id":"3c6b1972-c025-40f1-8c8b-e22f865d505d","name":"All-pharmacies-details","originalRequest":{"method":"GET","header":[],"body":{"mode":"raw","raw":"{\r\n  \"email\": \"test@vedatrust.com\",\r\n  \"password\": \"Password123\"\r\n}"},"url":"http://localhost:5000/api/pharmacies"},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Powered-By","value":"Express"},{"key":"Access-Control-Allow-Origin","value":"*"},{"key":"Content-Type","value":"application/json; charset=utf-8"},{"key":"Content-Length","value":"1032"},{"key":"ETag","value":"W/\"408-rvfoOYj7DXG1rtpYVAVGmQWTA8A\""},{"key":"Date","value":"Sat, 02 May 2026 10:43:48 GMT"},{"key":"Connection","value":"keep-alive"},{"key":"Keep-Alive","value":"timeout=5"}],"cookie":[],"responseTime":null,"body":"{\n    \"success\": true,\n    \"count\": 3,\n    \"data\": [\n        {\n            \"_id\": \"mock1\",\n            \"name\": \"City Health Pharmacy\",\n            \"address\": \"123 Healthcare Ave, Basel, CH\",\n            \"licenseNo\": \"LIC-CH-001\",\n            \"rating\": 4.8,\n            \"isVerified\": true,\n            \"phone\": \"+41 61 123 4567\",\n            \"operatingHours\": \"08:00 AM - 10:00 PM\",\n            \"distance\": \"0.8 km\",\n            \"status\": \"Open Now\",\n            \"vettedStatus\": \"Platinum\",\n            \"inventoryPreview\": [\n                \"Amoxicillin\",\n                \"Paracetamol\",\n                \"Insulin\"\n            ]\n        },\n        {\n            \"_id\": \"mock2\",\n            \"name\": \"Global Wellness Apothecary\",\n            \"address\": \"45 Wellness Blvd, Berlin, DE\",\n            \"licenseNo\": \"LIC-GW-002\",\n            \"rating\": 4.5,\n            \"isVerified\": true,\n            \"phone\": \"+49 30 765 4321\",\n            \"operatingHours\": \"09:00 AM - 09:00 PM\",\n            \"distance\": \"2.4 km\",\n            \"status\": \"Open Now\",\n            \"vettedStatus\": \"Gold\",\n            \"inventoryPreview\": [\n                \"Metformin\",\n                \"Atorvastatin\",\n                \"Aspirin\"\n            ]\n        },\n        {\n            \"_id\": \"mock3\",\n            \"name\": \"St. Mary's Medical Repository\",\n            \"address\": \"89 Chapel St, New York, NY\",\n            \"licenseNo\": \"LIC-SM-003\",\n            \"rating\": 4.2,\n            \"isVerified\": true,\n            \"phone\": \"+1 212 555 0199\",\n            \"operatingHours\": \"24 Hours\",\n            \"distance\": \"3.1 km\",\n            \"status\": \"Open Now\",\n            \"vettedStatus\": \"Silver\",\n            \"inventoryPreview\": [\n                \"Epinephrine\",\n                \"Gabapentin\",\n                \"Lisinopril\"\n            ]\n        }\n    ]\n}"}],"_postman_id":"06cad476-377b-469c-b08f-f0a2adfb8d31"}]}