{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"a23b65d0-5fa4-44b6-9972-6af4ba4d0a8a","name":"Feng-GUI API Documentation","description":"[Feng-GUI](https://feng-gui.com) Platform API enables integration with Feng-GUI’s visual analytics services.  \nThis allows organizations, data analysts and insights teams to incorporate visual analytics intelligence directly into their existing platforms and workflows.  \nFeng-GUI API clients range from digital marketing agencies and email marketing providers to packaging design and consumer insights vendors.\n\nTo use the API, your account must include the 'api' role.  \nPlease contact [sales@feng-gui.com](https://mailto:sales@feng-gui.com) and request to add the 'api' role to your account.  \nYour account roles may be found at [Settings &gt; Account &gt; Roles](https://app.feng-gui.com/account.aspx)  \nAccount Roles depends on package plans and the Feng-GUI partnership level you have.\n\n## **Authentication**\n\nFeng-GUI services require authentication for all API endpoints. You may authenticate either using HTTP Basic Authentication or by providing an API key.  \nWhen using API key authentication, include your API key in the request header `X-API-Key`, or supply it as the `apikey` query string parameter.  \nAll requests must be made over HTTPS (TLS) to ensure that credentials are transmitted securely.\n\n## **Storage**\n\nFiles uploaded or generated as reports via an API account are retained on Feng-GUI servers for up to 24 hours. API users are responsible for moving these files to their own servers within that time frame and are encouraged to serve the content from their own infrastructure, not directly from Feng-GUI servers.\n\n**Data Retention**: File and report availability depends on your account plan.  \nUploaded files and reports are **automatically deleted** based on your subscription type: after 3 months for monthly subscribers, 1 year for annual subscribers.\n\n**Data Storage**: Each account includes a **Storage quota**. Once this limit is reached, uploading new files will be disabled. To manage your storage, you can **download or delete reports** at any time to free up space.\n\n# **Request Format**\n\nThe Feng-GUI API is implemented using the **JSON-RPC 1.0** specification. It allows developers to programmatically access visual attention analysis tools by sending remote procedure calls over HTTPS. For more information on the protocol standards, refer to the [JSON-RPC 1.0 Specification](https://www.jsonrpc.org/specification_v1)\n\nService Endpoints at [https://service.feng-gui.com/json/api.ashx](https://service.feng-gui.com/json/api.ashx)\n\nThe API supports two methods of communication: standard JSON-RPC via **POST** JSON and a shorthand syntax via **GET** URL.\n\n## **POST Request (JSON)**\n\nA remote method is invoked by sending a POST request with a JSON body containing the following properties:\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| id | String | A unique request identifier (random UUID). Used to correlate the response. |\n| method | String | The name of the specific method to be invoked. |\n| params | Object | A structured object containing the parameters required by the method. |\n\nTo send a request , for example, to ImageAttention, send a request like this:\n\n``` json\n{\n    \"id\": \"1768288661\",\n    \"method\": \"ImageAttention\",\n    \"params\": {\n        \"InputImage\": \"https://service.feng-gui.com/users/USERNAME/files/images/IMAGEID.png\",\n        \"ViewType\": 0,\n        \"ViewDistance\": 0,\n        \"AnalysisOptions\": 0,\n        \"OutputOptions\": 0\n    }\n}\n\n ```\n\nDemo page of POST API methods  \n[FG-JSON-GET-Demo.html](https://feng-gui.com/FG-JSON-POST-Demo.html)\n\n---\n\n## **GET Request (URL)**\n\nFor simplified access or quick testing via a browser, the API also supports requests via the GET method. In this format, the method name is appended to the base URL as a path, and parameters are passed as standard URL query strings.\n\nGET URL Structure:  \n[https://service.feng-gui.com/json/api.ashx/[METHOD]?id=[ID]&amp;[PARAM1]=[VALUE1]&amp;[PARAM2]=[VALUE2]](https://service.feng-gui.com/json/api.ashx/%5C%5BMETHOD%5C%5D?id=%5C%5BID%5C%5D&%5C%5BPARAM1%5C%5D=%5C%5BVALUE1%5C%5D&%5C%5BPARAM2%5C%5D=%5C%5BVALUE2%5C%5D)\n\nExample GET Request:\n\n```\nhttps://service.feng-gui.com/json/api.ashx/ImageAttention?id=1768288661&InputImage=https://service.feng-gui.com/users/USERNAME/files/images/IMAGEID.png&ViewType=0&ViewDistance=0&AnalysisOptions=0&OutputOptions=0\n\n ```\n\nDemo page of GET API methods  \n[FG-JSON-GET-Demo.html](https://feng-gui.com/FG-JSON-GET-Demo.html)\n\n---\n\n# **Response Format**\n\nThe service returns a JSON object with the following properties:\n\n| **Name** | **Type** | **Description** |\n| --- | --- | --- |\n| id | String | The unique identifier matching the original request. |\n| result | Object | The data returned by the method. Returns null if an error occurred. |\n| error | Object | Details regarding any failures. Returns null if successful. |\n\nSuccessful Response Example:\n\n``` json\n{\n    \"id\": \"1768288661\",\n    \"result\": {\n        \"serviceVersion\": \"6.0.0.0\",\n        \"version\": \"6.0.0.0\",\n        \"inputImage\": \"https://service.feng-gui.com/users/USERNAME/files/images/IMAGEID.png\",\n        \"outputImage\": \"https://service.feng-gui.com/users/USERNAME/files/images/IMAGEID_heatmap.png\",\n        \"outputAttentionImage\": \"https://service.feng-gui.com/users/USERNAME/files/images/IMAGEID_raw.png\",\n        \"hotspots\": [\n            {\n                \"x\": 378,\n                \"y\": 168\n            },\n            {\n                \"x\": 251,\n                \"y\": 184\n            },\n            {\n                \"x\": 562,\n                \"y\": 385\n            }\n        ]\n    }\n}\n\n ```\n\nError Response Example:  \nIf a request fails, the error property will contain details about the exception.\n\n``` json\n{\n    \"id\": \"1768324041\",\n    \"error\": {\n        \"name\": \"JSONRPCError\",\n        \"message\": \"Error Message.\",\n        \"errors\": [\n            {\n                \"name\": \"JsonRpcException\",\n                \"message\": \"Error Message.\"\n            }\n        ]\n    }\n}\n\n ```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"51111507","team":12442956,"collectionId":"a23b65d0-5fa4-44b6-9972-6af4ba4d0a8a","publishedId":"2sBXVfirCE","public":true,"publicUrl":"https://docs.api.feng-gui.com","privateUrl":"https://go.postman.co/documentation/51111507-a23b65d0-5fa4-44b6-9972-6af4ba4d0a8a","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.10.1","publishDate":"2026-01-11T19:22:40.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/bf3a500479650cd2e85f590a90703b77a5b5d1caf0690c6889e5c131a59ebd7b","favicon":"https://res.cloudinary.com/postman/image/upload/v1768237707/team/299c8c7a81abaf0132372ef62716089e.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://docs.api.feng-gui.com/view/metadata/2sBXVfirCE"}