{"info":{"_postman_id":"d8afa8c0-7d85-4d58-ae3b-0309976e91df","name":"ListAssist REST API Endpoints - DEV","description":"<html><head></head><body><p><strong>Overview</strong></p>\n<p>The ListAssist API gives access to ListAssist's Computer Vision capabilites, allowing developers to deliver better experiences for their customers.</p>\n<p><strong>Inputs</strong></p>\n<p>The API is designed for easy integration with platforms by accepting images as publicly accessible URLs or as a base-64 encoded string. Optimal performance and speed are achieved with 720p images, as higher quality images can increase processing time.</p>\n<p><strong>Standard Output Format</strong></p>\n<p>The API returns data in the format:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  'metadata': {},\n  'data': {},\n  'errors': []\n}\n\n</code></pre>\n<p>The output of any models is contained in the 'data' field and any errors are returned in the 'errors' field</p>\n<p><strong>Response Status Codes</strong></p>\n<p>200 : Request worked correctly</p>\n<p>400: User Error - specific error message in \"errors: field, most commonly caused by incorrect input format, or a broken image url</p>\n<p>500: Internal Server Error</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[],"owner":"25008668","collectionId":"d8afa8c0-7d85-4d58-ae3b-0309976e91df","publishedId":"2s8ZDX32yv","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"084718"},"publishDate":"2024-07-25T23:39:27.000Z"},"item":[{"name":"Image Compliance","id":"39c51aa9-ebce-4a23-8d8f-2ef61b37a06c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"auth":{"type":"noauth","isInherited":false},"method":"POST","header":[{"key":"x-api-key","value":"YOUR API KEY"}],"body":{"mode":"raw","raw":"{\"image_url\": \"https://res302.s3.us-west-2.amazonaws.com/outer201/listingImages/1cc5c262-f6f0-4f2b-9bde-58acc8a315fb/b2616fc1-5a5e-44df-97e2-8b023930d7c6.jpeg\"}","options":{"raw":{"language":"json"}}},"url":"https://dev.cv.listassist.ai/model/imagecompliance","description":"<p><strong>Purpose:</strong><br />For detecting compliance breaches and other relevant items in real estate images.</p>\n<p><strong>Input:</strong></p>\n<p>The request body must be a JSON object containing the following fields:</p>\n<ul>\n<li><p><strong><code>image_url</code></strong> (string, <strong>required</strong>): The publicly accessible URL of the image to be processed.</p>\n</li>\n<li><p><strong><code>threshold</code></strong> (float, <em>optional</em>):</p>\n<ul>\n<li><p>A single confidence score threshold value to apply globally across <em>all</em> detected labels.</p>\n</li>\n<li><p>If provided, only detections with a score strictly greater than this value will be returned.</p>\n</li>\n<li><p>Must be a value greater than or equal to 0.5.</p>\n</li>\n<li><p>This parameter is <strong>mutually exclusive</strong> with <code>threshold_dict</code>. You cannot provide both.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>threshold_dict</code></strong> (object, <em>optional</em>):</p>\n<ul>\n<li><p>A dictionary allowing fine-grained overrides of the default confidence score thresholds based on the detected object's label and its size category.</p>\n</li>\n<li><p>Structure:</p>\n<ul>\n<li><p><strong>Keys:</strong> Label names (strings) corresponding to detectable items (e.g., <code>\"person\"</code>, <code>\"animal\"</code>, <code>\"logo\"</code>, <code>\"text\"</code>). Only labels present in the default configuration are valid keys.</p>\n</li>\n<li><p><strong>Values:</strong> A list (<code>[]</code>) of override objects for that label.</p>\n</li>\n</ul>\n</li>\n<li><p>Override Object Structure: Each object in the list must have the following keys:</p>\n<ul>\n<li><p><code>\"bbox_size\"</code> (string): The size category to override. Can be one of <code>\"tiny\"</code>, <code>\"small\"</code>, <code>\"medium\"</code>, <code>\"large\"</code> (must be a valid size defined for the given label in the defaults) OR the special value <code>\"all\"</code>.</p>\n</li>\n<li><p><code>\"threshold\"</code> (float): The new confidence threshold score to apply for this specific label/size combination. Must be &gt;= 0.5.</p>\n</li>\n</ul>\n</li>\n<li><p><code>\"all\"</code> Behavior: If <code>\"bbox_size\": \"all\"</code> is provided for a label, the specified <code>\"threshold\"</code> will apply to <em>all</em> size categories (\"tiny\", \"small\", \"medium\", \"large\") for that label. If <code>\"all\"</code> is used, it must be the <em>only</em> item in the list for that label (you cannot mix <code>\"all\"</code> with specific sizes like <code>\"tiny\"</code> for the same label).</p>\n</li>\n<li><p>Partial Overrides: You can provide overrides for only a subset of labels, and within a label, only a subset of valid <code>bbox_size</code>s. Any label/size combination not specified in <code>threshold_dict</code> will retain its default threshold value. An empty list for a label (<code>\"label\": []</code>) results in no overrides for that label.</p>\n</li>\n<li><p>This parameter is <strong>mutually exclusive</strong> with <code>threshold</code>. You cannot provide both.</p>\n</li>\n</ul>\n</li>\n</ul>\n<p><strong>Output:</strong></p>\n<p>The response body is a JSON object containing the following fields:</p>\n<ul>\n<li><p><strong><code>issues</code></strong>: A list of detection objects considered known compliance breaches. Each detection includes details like the object label, score, bounding box, determined size category, and potentially extracted text. Known issue labels include:</p>\n<ul>\n<li><p><code>\"person\"</code> - People in the images.</p>\n</li>\n<li><p><code>\"animal\"</code> - Cats, dogs, horses, etc.</p>\n</li>\n<li><p><code>\"logo\"</code> - General overlaid logo or watermark (excluding specific allowed MLS logos).</p>\n</li>\n<li><p><code>\"for sale sign\"</code> - Real estate for sale signs.</p>\n</li>\n<li><p><code>\"website\"</code> - Overlaid website URL text.</p>\n</li>\n<li><p><code>\"phone number\"</code> - Overlaid phone number text.</p>\n</li>\n<li><p><code>\"qrcode\"</code> - QR codes.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>detections</code></strong>: A list of detection objects for things that the model detected but aren't necessarily compliance breaches. Known detection labels include:</p>\n<ul>\n<li><p><code>\"text\"</code> - General text detected in the image (excluding specific types like website/phone).</p>\n</li>\n<li><p><code>\"logo-themls\"</code> - The MLS standard logo.</p>\n</li>\n<li><p><code>\"logo-icaor\"</code> - Imperial County Association of REALTORS logo.</p>\n</li>\n<li><p><code>\"logo-gpsr\"</code> - Great Palm Springs standard logo.</p>\n</li>\n<li><p><code>\"logo-sandiegomls\"</code> - San Diego MLS logo.</p>\n</li>\n<li><p><code>\"logo-parmls\"</code> - Pensacola MLS logo.</p>\n</li>\n<li><p><code>\"logo-simls\"</code> - Staten Island MLS logo.</p>\n</li>\n<li><p><code>\"logo-faor\"</code> - Firelands Association of Realtors logo.</p>\n</li>\n</ul>\n</li>\n<li><p><strong><code>external</code></strong> (boolean): An external flag indicating whether the image is likely of the outside of the property.</p>\n</li>\n</ul>\n<p><em>Each detection object in the</em> <code>issues</code> <em>and</em> <code>detections</code> <em>lists contains:</em></p>\n<ul>\n<li><p><code>label</code> (string): The identified label (e.g., \"person\", \"text\", \"logo-parmls\").</p>\n</li>\n<li><p><code>bbox</code> (list of floats): The bounding rectangle coordinates <code>[x_min, y_min, x_max, y_max]</code>, normalized to the image dimensions (0.0 to 1.0).</p>\n</li>\n<li><p><code>score</code> (float): The model's confidence score for the detection.</p>\n</li>\n<li><p><code>text</code> (string): If the <code>label</code> is \"text\", this field contains the detected text content. For all other labels, this field is an empty string (<code>\"\"</code>).</p>\n</li>\n<li><p><code>size</code> (string): The calculated size category (e.g., \"tiny\", \"small\", \"medium\", \"large\") determined by the bounding box area relative to the image size. This size category is used internally to select the appropriate threshold from the default or overridden configuration.</p>\n</li>\n</ul>\n<p><strong>Threshold Logic:</strong></p>\n<ul>\n<li><p><strong>Default Behavior:</strong> If neither the global <code>threshold</code> nor the specific <code>threshold_dict</code> parameter is provided in the request, the system applies a dynamic default confidence threshold to each detection. This default threshold depends on two factors: the <code>label</code> of the detected object (e.g., \"person\", \"text\") and the <code>size</code> category determined by the detection's bounding box area relative to the total image area.</p>\n</li>\n<li><p><strong>Bounding Box Size Categories:</strong> The system calculates the normalized area of each bounding box (<code>width \\\\\\* height</code>) and classifies it into one of the following size categories. These sizers were evaluated using clustering based on the evaluation dataset characteristics.</p>\n<ul>\n<li><p><strong><code>'tiny'</code></strong>: Area is &gt;= 0.0% and &lt; 0.7324% of the total image area. (Normalized area range: <code>[0.0, 0.007324)</code>)</p>\n</li>\n<li><p><strong><code>'small'</code></strong>: Area is &gt;= 0.7324% and &lt; 2.25% of the total image area. (Normalized area range: <code>[0.007324, 0.0225)</code>)</p>\n</li>\n<li><p><strong><code>'medium'</code></strong>: Area is &gt;= 2.25% and &lt; 15.2588% of the total image area. (Normalized area range: <code>[0.0225, 0.152588)</code>)</p>\n</li>\n<li><p><strong><code>'large'</code></strong>: Area is &gt;= 15.2588% and &lt;= 100.0% of the total image area. (Normalized area range: <code>[0.152588, 1.0]</code>)</p>\n</li>\n</ul>\n</li>\n<li><p><strong>Default Threshold Values:</strong> The specific default threshold applied is determined by the combination of the detected <code>label</code> and its calculated <code>size</code> category, based on the following table:</p>\n</li>\n</ul>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th><strong>Label</strong></th>\n<th>Tiny Threshold</th>\n<th>Small Threshold</th>\n<th>Medium Threshold</th>\n<th>Large Threshold</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>animal</td>\n<td>0.80</td>\n<td>0.80</td>\n<td>0.75</td>\n<td>0.75</td>\n</tr>\n<tr>\n<td>for sale sign</td>\n<td>0.75</td>\n<td>0.80</td>\n<td>0.80</td>\n<td>0.85</td>\n</tr>\n<tr>\n<td>logo</td>\n<td>0.75</td>\n<td>0.70</td>\n<td>0.85</td>\n<td>0.90</td>\n</tr>\n<tr>\n<td>person</td>\n<td>1.00</td>\n<td>0.85</td>\n<td>0.80</td>\n<td>0.70</td>\n</tr>\n<tr>\n<td>qrcode</td>\n<td>0.80</td>\n<td>0.80</td>\n<td>0.70</td>\n<td>0.95</td>\n</tr>\n<tr>\n<td>wesbite</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n</tr>\n<tr>\n<td>phone number</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n</tr>\n<tr>\n<td>text</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n</tr>\n<tr>\n<td>other labels*</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n<td>0.7</td>\n</tr>\n</tbody>\n</table>\n</div><p><em>*Note: Other Labels listed under \"Detections\" in the Output section include all of the specific MLS logos (e.g.,</em> <code>logo-themls</code><em>,</em> <code>logo-parmls</code><em>) and cannot be specifically controlled through the API.</em></p>\n<ul>\n<li><p><strong>Global Override (</strong><code>threshold</code><strong>parameter):</strong> Providing the <code>threshold</code> parameter completely overrides this default logic. A single minimum score requirement is applied across all detections, regardless of label or size.</p>\n</li>\n<li><p><strong>Fine-grained Override (</strong><code>threshold_dict</code> <strong>parameter):</strong> Providing the <code>threshold_dict</code> parameter allows selectively overriding specific default threshold values. You can change the threshold for:</p>\n<ul>\n<li><p>A specific label and specific size(s) (e.g., change only the \"medium\" threshold for \"animal\").</p>\n</li>\n<li><p>All sizes for a specific label by using <code>\"bbox_size\": \"all\"</code> (e.g., set all \"qrcode\" thresholds to 0.95).<br />  Any combination not specified in your <code>threshold_dict</code> will retain the default value shown in the table above.</p>\n</li>\n</ul>\n</li>\n</ul>\n<img src=\"https://content.pstmn.io/677bda60-3fec-4262-a181-45f4127eabd4/aW1hZ2UucG5n\" width=\"1078\" height=\"715\" />","urlObject":{"protocol":"https","path":["model","imagecompliance"],"host":["dev","cv","listassist","ai"],"query":[],"variable":[]}},"response":[{"id":"e6cd9917-1b0b-4814-8433-6e484abe32f8","name":"Image Compliance","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"YOUR API KEY"}],"body":{"mode":"raw","raw":"{\"image_url\": \"https://res302.s3.us-west-2.amazonaws.com/outer201/listingImages/1cc5c262-f6f0-4f2b-9bde-58acc8a315fb/b2616fc1-5a5e-44df-97e2-8b023930d7c6.jpeg\"}","options":{"raw":{"language":"json"}}},"url":"https://cv.listassist.ai/model/imagecompliance"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"932"},{"key":"Connection","value":"keep-alive"},{"key":"Date","value":"Mon, 07 Apr 2025 21:12:54 GMT"},{"key":"X-Amzn-Trace-Id","value":"Root=1-67f43fd0-6d02241a74fd24057b5b120c"},{"key":"x-amzn-RequestId","value":"24add63c-3d53-44df-8354-84e79d6ea404"},{"key":"x-amz-apigw-id","value":"Iq7olHkxvHcEVBQ="},{"key":"X-Cache","value":"Miss from cloudfront"},{"key":"Via","value":"1.1 5e79d089f5701b7938b599fdf4db1b52.cloudfront.net (CloudFront)"},{"key":"X-Amz-Cf-Pop","value":"IAD55-P8"},{"key":"X-Amz-Cf-Id","value":"ghDzL_luvlel1xcGPbsOpTwaTdGRwn9HqnnEaO6sTGAO3M_oDV4QCw=="}],"cookie":[],"responseTime":null,"body":"{\n    \"metadata\": {},\n    \"data\": {\n        \"external\": true,\n        \"issues\": [\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.3413068693131208,\n                    0.5663658004728627,\n                    0.4367313519120216,\n                    0.8072791580748943\n                ],\n                \"score\": 0.9560784101486206,\n                \"text\": \"\",\n                \"size\": \"medium\"\n            },\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.5560257494449615,\n                    0.3919449955094087,\n                    0.6271276533603668,\n                    0.6736599752704011\n                ],\n                \"score\": 0.9526464343070984,\n                \"text\": \"\",\n                \"size\": \"small\"\n            },\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.5837262630462646,\n                    0.6665946420953005,\n                    0.6639932751655578,\n                    0.7922975740705018\n                ],\n                \"score\": 0.910213828086853,\n                \"text\": \"\",\n                \"size\": \"small\"\n            },\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.8109785676002502,\n                    0.7187056184862228,\n                    0.9093805313110351,\n                    0.7965246384349783\n                ],\n                \"score\": 0.8954369425773621,\n                \"text\": \"\",\n                \"size\": \"small\"\n            },\n            {\n                \"label\": \"animal\",\n                \"bbox\": [\n                    0.4787642419338226,\n                    0.6146926865396178,\n                    0.5470786154270172,\n                    0.6960605925208129\n                ],\n                \"score\": 0.9240763783454895,\n                \"text\": \"\",\n                \"size\": \"tiny\"\n            }\n        ],\n        \"detections\": []\n    },\n    \"errors\": []\n}"},{"id":"0bcee52b-f2bd-4f15-a4fc-e818e167ecb7","name":"Image Compliance with Global Threshold","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"YOUR_API_KEY"}],"body":{"mode":"raw","raw":"{\r\n    \"image_url\": \"https://res302.s3.us-west-2.amazonaws.com/outer201/listingImages/1cc5c262-f6f0-4f2b-9bde-58acc8a315fb/b2616fc1-5a5e-44df-97e2-8b023930d7c6.jpeg\",\r\n    \"threshold\": 0.95\r\n}","options":{"raw":{"language":"json"}}},"url":"https://cv.listassist.ai/model/imagecompliance"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"427"},{"key":"Connection","value":"keep-alive"},{"key":"Date","value":"Mon, 07 Apr 2025 21:21:37 GMT"},{"key":"X-Amzn-Trace-Id","value":"Root=1-67f441d4-18e3adf0746b76f46893a6e8"},{"key":"x-amzn-RequestId","value":"1e401af0-fab1-47fb-b3b3-dd32797db827"},{"key":"x-amz-apigw-id","value":"Iq85TEbzvHcEszg="},{"key":"X-Cache","value":"Miss from cloudfront"},{"key":"Via","value":"1.1 4e5ef522edce25e792d546b5e8b93a9a.cloudfront.net (CloudFront)"},{"key":"X-Amz-Cf-Pop","value":"IAD55-P8"},{"key":"X-Amz-Cf-Id","value":"QInrHIG02YdDRakIHzCCQ_dy0b1NDyX4U3GTgzRnU7VkfUEzsc0MeQ=="}],"cookie":[],"responseTime":null,"body":"{\n    \"metadata\": {},\n    \"data\": {\n        \"external\": true,\n        \"issues\": [\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.3413068693131208,\n                    0.5663658004728627,\n                    0.4367313519120216,\n                    0.8072791580748943\n                ],\n                \"score\": 0.9560784101486206,\n                \"text\": \"\",\n                \"size\": \"medium\"\n            },\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.5560257494449615,\n                    0.3919449955094087,\n                    0.6271276533603668,\n                    0.6736599752704011\n                ],\n                \"score\": 0.9526464343070984,\n                \"text\": \"\",\n                \"size\": \"small\"\n            }\n        ],\n        \"detections\": []\n    },\n    \"errors\": []\n}"},{"id":"1d28477e-8f87-4773-8c00-b2f99511c98f","name":"Image Compliance with Custom Thresholds","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"YOUR_API_KEY"}],"body":{"mode":"raw","raw":"{\r\n    \"image_url\": \"https://res302.s3.us-west-2.amazonaws.com/outer201/listingImages/1cc5c262-f6f0-4f2b-9bde-58acc8a315fb/b2616fc1-5a5e-44df-97e2-8b023930d7c6.jpeg\",\r\n    \"threshold_dict\": {\r\n        \"person\": [ {\"bbox_size\": \"small\", \"threshold\": 1} ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://cv.listassist.ai/model/imagecompliance"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/json"},{"key":"Content-Length","value":"426"},{"key":"Connection","value":"keep-alive"},{"key":"Date","value":"Mon, 07 Apr 2025 21:22:51 GMT"},{"key":"X-Amzn-Trace-Id","value":"Root=1-67f44228-6deb1da00137b1ab2364b118"},{"key":"x-amzn-RequestId","value":"7996e3c7-632d-4f5d-93c7-9590f9808e3a"},{"key":"x-amz-apigw-id","value":"Iq9GcEnYvHcEvhw="},{"key":"X-Cache","value":"Miss from cloudfront"},{"key":"Via","value":"1.1 cc5a019539e6efe2b661a72253272ed6.cloudfront.net (CloudFront)"},{"key":"X-Amz-Cf-Pop","value":"IAD55-P8"},{"key":"X-Amz-Cf-Id","value":"_s54iNtRGEN87QpjJK2aZwO-vvVExb96UXLNsWInUKi2IGX4wwXIgQ=="}],"cookie":[],"responseTime":null,"body":"{\n    \"metadata\": {},\n    \"data\": {\n        \"external\": true,\n        \"issues\": [\n            {\n                \"label\": \"person\",\n                \"bbox\": [\n                    0.3413068693131208,\n                    0.5663658004728627,\n                    0.4367313519120216,\n                    0.8072791580748943\n                ],\n                \"score\": 0.9560784101486206,\n                \"text\": \"\",\n                \"size\": \"medium\"\n            },\n            {\n                \"label\": \"animal\",\n                \"bbox\": [\n                    0.4787642419338226,\n                    0.6146926865396178,\n                    0.5470786154270172,\n                    0.6960605925208129\n                ],\n                \"score\": 0.9240763783454895,\n                \"text\": \"\",\n                \"size\": \"tiny\"\n            }\n        ],\n        \"detections\": []\n    },\n    \"errors\": []\n}"},{"id":"9d42ee63-ddfd-4cd4-bfcf-0780b4793044","name":"Image Compliance with custom thresholds","originalRequest":{"method":"POST","header":[{"key":"x-api-key","value":"YOUR_API_KEY","type":"text"}],"body":{"mode":"raw","raw":"{\r\n    \"image_url\": \"https://res302.s3.us-west-2.amazonaws.com/outer201/listingImages/1cc5c262-f6f0-4f2b-9bde-58acc8a315fb/b2616fc1-5a5e-44df-97e2-8b023930d7c6.jpeg\",\r\n    \"threshold_dict\": {\r\n        \"animal\": [ {\"bbox_size\": \"small\", \"threshold\": 0.85} ]\r\n    }\r\n}","options":{"raw":{"language":"json"}}},"url":"https://cv.listassist.ai/model/imagecompliance"},"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"39c51aa9-ebce-4a23-8d8f-2ef61b37a06c"}],"auth":{"type":"apikey","apikey":{"basicConfig":[{"key":"key","value":""}]}},"event":[{"listen":"prerequest","script":{"id":"6bfbb158-46b3-42bd-bd73-b10dd0571991","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"2a0aabbe-7053-42cb-a013-851319810987","type":"text/javascript","exec":[""]}}]}