{"info":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","description":"<html><head></head><body><h3 id=\"📦-container-inquiry-public-api-v20\">📦 Container Inquiry Public API v2.0</h3>\n<p>This public API allows transporters to request terminal VBS \"Container inquiry\" with enhanced features.</p>\n<h4 id=\"🎯-parameters\">🎯 Parameters</h4>\n<p>You can query using multiple methods:</p>\n<p><strong>Traditional Parameters:</strong></p>\n<ul>\n<li><p><code>container_number</code>: Container ID for imports (e.g., GLDU3221243)</p>\n</li>\n<li><p><code>booking_number</code>: Booking reference for exports (e.g., 57001536)</p>\n</li>\n</ul>\n<p><strong>Smart Search:</strong></p>\n<ul>\n<li><code>q</code>: Intelligent parameter that auto-detects container vs booking<ul>\n<li><p>Pattern /^[A-Z]{4}[0-9]{7}$/ → Container search</p>\n</li>\n<li><p>Other patterns → Booking search</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Storage Integration:</strong></p>\n<ul>\n<li><code>planned_pickup_date</code>: YYYY-MM-DD format<ul>\n<li><p>Triggers storage API when date &gt; Last Free Day</p>\n</li>\n<li><p>Returns storage charges, location, and guarantee info</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>v2.0 Optional Parameters:</strong></p>\n<ul>\n<li><p><code>include_customs</code>: Include customs hold tracking (default: true)</p>\n</li>\n<li><p><code>include_export</code>: Include export tracking details (default: true)</p>\n</li>\n<li><p><code>include_history</code>: Include gate event history (default: true)</p>\n</li>\n</ul>\n<h4 id=\"🌐-urls\">🌐 URLs</h4>\n<p><strong>Staging (for testing):</strong></p>\n<ul>\n<li><p>Base: <code>https://termont-staging.rdv-terminal.com/api/v1/</code></p>\n</li>\n<li><p>Purpose: Development, QA, integration testing</p>\n</li>\n<li><p>Data: Test/demo data</p>\n</li>\n</ul>\n<p><strong>Production (live operations):</strong></p>\n<ul>\n<li><p>Base: <code>https://termont.rdv-terminal.com/api/v1/</code></p>\n</li>\n<li><p>Purpose: Production workflows</p>\n</li>\n<li><p>Data: Real operational data</p>\n</li>\n</ul>\n<p><strong>Note:</strong> API keys are environment-specific and NOT interchangeable.</p>\n<p><strong>Terminal-specific endpoints:</strong></p>\n<ul>\n<li><p>Termont: <code>https://termont.rdv-terminal.com/api/v1/</code></p>\n</li>\n<li><p>Penn: <code>https://penn.booking-terminal.com/api/v1/</code></p>\n</li>\n</ul>\n<h4 id=\"📊-response-structure-v20\">📊 Response Structure (v2.0)</h4>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"success\": true,\n  \"data\": {\n    \"container_info\": {...},\n    \"vessel_info\": {...},\n    \"customs_hold\": {\n      \"hold_status\": \"released|hold|unknown\",\n      \"hold_type\": null,\n      \"hold_reason\": null,\n      \"released_at\": \"2025-09-04 12:39:17\",\n      \"available\": true\n    },\n    \"export_tracking\": {\n      \"vessel_name\": \"MAERSK ESSEX\",\n      \"voyage_number\": \"123N\",\n      \"erd\": \"2025-09-27\",\n      \"cutoff_dates\": {\n        \"documentation\": \"2025-09-26 12:00:00\",\n        \"vgm\": \"2025-09-26 18:00:00\",\n        \"gate\": \"2025-09-27 06:00:00\"\n      }\n    },\n    \"storage_info\": {...}\n  },\n  \"meta\": {\n    \"quota\": {\n      \"limit\": 1000000,\n      \"used\": 153,\n      \"remaining\": 999847,\n      \"reset_at\": \"2025-11-01 00:00:00\",\n      \"period\": \"monthly\"\n    },\n    \"api_version\": \"2.1\",\n    \"timestamp\": \"2025-12-08T06:00:00Z\",\n    \"processing_time_ms\": 245.67\n  }\n}\n\n</code></pre>\n<h4 id=\"🔒-security--limits\">🔒 Security &amp; Limits</h4>\n<p><strong>🔐 RFC 7230 Compliance: Case-Insensitive Headers</strong></p>\n<p>Per RFC 7230 Section 3.2, our API accepts X-API-KEY header in ANY case variation:</p>\n<ul>\n<li><p>✅ <code>X-API-KEY</code> (all caps)</p>\n</li>\n<li><p>✅ <code>x-api-key</code> (all lowercase)</p>\n</li>\n<li><p>✅ <code>X-Api-Key</code> (mixed case)</p>\n</li>\n<li><p>✅ <code>x-ApI-keY</code> (random mixed)</p>\n</li>\n</ul>\n<p><strong>Example:</strong><br>```bash</p>\n<h1 id=\"all-these-work-identically\">All these work identically</h1>\n<p>curl -H \"X-API-KEY: YOUR_KEY\" ...<br>curl -H \"x-api-key: YOUR_KEY\" ...<br>curl -H \"X-Api-Key: YOUR_KEY\" ...<br>```</p>\n<p><strong>Why This Matters:</strong></p>\n<ul>\n<li><p>Maximum client compatibility</p>\n</li>\n<li><p>Follows HTTP/1.1 standards</p>\n</li>\n<li><p>Works with all HTTP libraries</p>\n</li>\n<li><p>Tested: 10/10 case variations ✅</p>\n</li>\n</ul>\n<p><strong>Security Features:</strong></p>\n<ul>\n<li><p>API Key required (X-API-KEY header)</p>\n</li>\n<li><p>Environment-specific keys (staging vs production)</p>\n</li>\n<li><p>Rate limits: Contact <a href=\"https://mailto:api.support@dmslog.io\">api.support@dmslog.io</a> if limits reached</p>\n</li>\n<li><p>Quota tracking: Monthly limits with metadata in response</p>\n</li>\n<li><p>Location data: Only exposed after pregate pass (security measure)</p>\n</li>\n</ul>\n<h4 id=\"📅-last-updated\">📅 Last Updated</h4>\n<ul>\n<li><p><strong>2025-12-08</strong> - v2.1: RFC 7230 header compliance, enhanced environment documentation</p>\n</li>\n<li><p><strong>2025-10-06</strong> - v2.0: Added customs tracking, export details, quota metadata</p>\n</li>\n</ul>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"All these work identically","slug":"all-these-work-identically"}],"owner":"15107629","collectionId":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","publishedId":"2sB3HkpKrG","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2025-09-04T17:25:13.000Z"},"item":[{"name":"Container inquiry - Import","id":"50f2219c-c401-4f80-90cc-9e45e63be8f4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{url}}/container-inquiry/?container_number=MSMU1679464","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"container_number","value":"MSMU1679464"}],"variable":[]}},"response":[],"_postman_id":"50f2219c-c401-4f80-90cc-9e45e63be8f4"},{"name":"Container inquiry - Export","id":"8bef43ed-63a4-4680-99a3-a9cfd5631bf7","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[],"body":{"mode":"raw","raw":""},"url":"{{url}}/container-inquiry/?booking_number=57001536","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"booking_number","value":"57001536"}],"variable":[]}},"response":[],"_postman_id":"8bef43ed-63a4-4680-99a3-a9cfd5631bf7"},{"name":"Container inquiry - Smart Search (Container)","id":"0bc8b47c-a781-4146-882d-0df321b7ffae","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?q=GLDU3221243","description":"<p>Uses the smart \"q\" parameter to automatically detect that GLDU3221243 is a container number (matches pattern /^[A-Z]{4}[0-9]{7}$/)</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"description":{"content":"<p>Smart parameter that auto-detects container (4 letters + 7 digits) or booking number</p>\n","type":"text/plain"},"key":"q","value":"GLDU3221243"}],"variable":[]}},"response":[],"_postman_id":"0bc8b47c-a781-4146-882d-0df321b7ffae"},{"name":"Container inquiry - Smart Search (Booking)","id":"6e7cd2fe-ad16-4184-b477-c1a461742dfe","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?q=57001536","description":"<p>Uses the smart \"q\" parameter with a non-container pattern, which defaults to booking number search</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"description":{"content":"<p>Smart parameter - non-container pattern defaults to booking number search</p>\n","type":"text/plain"},"key":"q","value":"57001536"}],"variable":[]}},"response":[],"_postman_id":"6e7cd2fe-ad16-4184-b477-c1a461742dfe"},{"name":"Container inquiry - With Planned Pickup Date","id":"1cc21d9d-0858-4d02-81c5-3685640bb2b8","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?container_number=GLDU3221243&planned_pickup_date=2025-01-15","description":"<p>Queries container with planned pickup date. If the date exceeds the Last Free Day (LFD), the API calls TOS Storage service to get storage charges, location, and guarantee information.</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"container_number","value":"GLDU3221243"},{"description":{"content":"<p>YYYY-MM-DD format - triggers storage API if date &gt; last_free_day to calculate charges</p>\n","type":"text/plain"},"key":"planned_pickup_date","value":"2025-01-15"}],"variable":[]}},"response":[],"_postman_id":"1cc21d9d-0858-4d02-81c5-3685640bb2b8"},{"name":"Container inquiry - Combined Parameters","id":"bf104cbf-403a-4c38-8fae-fa8137d97c91","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?q=GLDU3221243&planned_pickup_date=2025-01-20","description":"<p>Combines smart search with planned pickup date to get comprehensive container information including potential storage charges</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"description":{"content":"<p>Smart search parameter</p>\n","type":"text/plain"},"key":"q","value":"GLDU3221243"},{"description":{"content":"<p>Check storage charges for future pickup date</p>\n","type":"text/plain"},"key":"planned_pickup_date","value":"2025-01-20"}],"variable":[]}},"response":[],"_postman_id":"bf104cbf-403a-4c38-8fae-fa8137d97c91"},{"name":"Container inquiry - Error Case (Invalid Container)","id":"3634260b-02ea-4b17-b8d2-5d69804d3a8e","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?container_number=INVALID123","description":"<p>Example of invalid container number format - should return appropriate error message</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"container_number","value":"INVALID123"}],"variable":[]}},"response":[],"_postman_id":"3634260b-02ea-4b17-b8d2-5d69804d3a8e"},{"name":"Container inquiry - Error Case (No Parameters)","id":"fad778b9-b928-4c1d-8b9d-faef1c451c9b","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/","description":"<p>API call without required parameters - should return error indicating missing parameters</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[],"variable":[]}},"response":[],"_postman_id":"fad778b9-b928-4c1d-8b9d-faef1c451c9b"},{"name":"Container inquiry - v2.0 - With Customs Tracking","id":"712b212f-388e-4e90-beb3-e14f8307aef9","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?container_number=GLDU3221243&include_customs=true","description":"<p>API v2.0 - Includes customs hold tracking with hold_status, hold_type, hold_reason, and released_at timestamps</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"container_number","value":"GLDU3221243"},{"description":{"content":"<p>Include customs hold tracking information (default: true)</p>\n","type":"text/plain"},"key":"include_customs","value":"true"}],"variable":[]}},"response":[],"_postman_id":"712b212f-388e-4e90-beb3-e14f8307aef9"},{"name":"Container inquiry - v2.0 - With Export Tracking","id":"eb6e5863-6c6e-4e99-9cbf-daaa13b5292f","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?booking_number=57001536&include_export=true","description":"<p>API v2.0 - Includes export tracking with vessel details, ERD, documentation/VGM/gate cutoff dates, and urgency indicators</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"booking_number","value":"57001536"},{"description":{"content":"<p>Include export tracking details with vessel info, ERD, and cutoff dates (default: true)</p>\n","type":"text/plain"},"key":"include_export","value":"true"}],"variable":[]}},"response":[],"_postman_id":"eb6e5863-6c6e-4e99-9cbf-daaa13b5292f"},{"name":"Container inquiry - v2.0 - Minimal Response","id":"2ad3083f-c2e5-4b62-b08a-85ea2594cde1","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?container_number=GLDU3221243&include_customs=false&include_export=false&include_history=false","description":"<p>API v2.0 - Minimal response with optional features disabled for lighter payload</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"key":"container_number","value":"GLDU3221243"},{"description":{"content":"<p>Exclude customs hold information</p>\n","type":"text/plain"},"key":"include_customs","value":"false"},{"description":{"content":"<p>Exclude export tracking details</p>\n","type":"text/plain"},"key":"include_export","value":"false"},{"description":{"content":"<p>Exclude historical gate events</p>\n","type":"text/plain"},"key":"include_history","value":"false"}],"variable":[]}},"response":[],"_postman_id":"2ad3083f-c2e5-4b62-b08a-85ea2594cde1"},{"name":"Container inquiry - v2.0 - Full Enhanced Response","id":"1d66c066-6295-45be-966f-3287390a1945","request":{"method":"GET","header":[],"url":"{{url}}/container-inquiry/?q=GLDU3221243&include_customs=true&include_export=true&include_history=true","description":"<p>API v2.0 - Full response with all v2.0 enhancements: customs tracking, export details, quota metadata, and processing metrics</p>\n","auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]},"isInherited":true,"source":{"_postman_id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","id":"b5cbd444-afcc-4e10-80f3-38f8848eea7c","name":"DOC DMSLOG.Ai API - PUBLIC /container-inquiry","type":"collection"}},"urlObject":{"path":["container-inquiry",""],"host":["{{url}}"],"query":[{"description":{"content":"<p>Smart search parameter</p>\n","type":"text/plain"},"key":"q","value":"GLDU3221243"},{"description":{"content":"<p>Include customs hold tracking</p>\n","type":"text/plain"},"key":"include_customs","value":"true"},{"description":{"content":"<p>Include export tracking details</p>\n","type":"text/plain"},"key":"include_export","value":"true"},{"description":{"content":"<p>Include gate event history</p>\n","type":"text/plain"},"key":"include_history","value":"true"}],"variable":[]}},"response":[],"_postman_id":"1d66c066-6295-45be-966f-3287390a1945"}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":"x-api-key"},{"key":"value","value":"{{tmsApiKey}}"}]}},"event":[{"listen":"prerequest","script":{"id":"7bf44e92-47c8-4127-b722-7069e0ec8d05","type":"text/javascript","packages":{},"requests":{},"exec":[""]}},{"listen":"test","script":{"id":"43f75728-cd0c-47dc-a464-5566098698d3","type":"text/javascript","packages":{},"requests":{},"exec":[""]}}]}