{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"e1a8562e-89c5-4adb-a5bd-140b0beb2776","name":"iDWELL Public Api","description":"iDWELL is an innovative SaaS software which integrates the entire communication process between a property management company and its stakeholders (tenants, landlords and suppliers) on a multi-channel CRM platform. The integrated tenant app automates routine processes in the damage reporting and reduces theworkload of property managers. To sum it up, iDWELL helps to ease the daily work of property management companies.\n\nIf you have any questions about iDWELL in general or the API feel free to contact us: [support@idwell.com](https://mailto:support@idwell.com)\n\n### Rate limits\n\nThe API is rate-limited:\n\n- Authentication endpoints: **20 requests per minute**\n    \n- Public API endpoints: **40 requests per second**\n    \n\nIf the limit is exceeded, the API returns **429 Too Many Requests**.  \nThe response includes a `Retry-After` header indicating when it is safe to retry the request.\n\n# Authentication\n\nBefore using the API requests in this collection, need to get an access token.\n\n#### Before you start\n\nFor the demo environment, iDWELL provides the required credentials:\n\n- **Client ID (Settings / Advanced / API Applications)**\n    \n- **Client Secret (Settings / Advanced / API Applications)**\n    \n- **User Email**\n    \n- **User Password**\n    \n\nEnter these values in the selected Postman environment.\n\nYou do not need to create an OAuth application yourself.\n\n#### Get an access token\n\n```\nhttps://{host_name}/api/oauth/token/\n\n ```\n\nThe request uses the credentials from your selected environment and sends them to the iDWELL authentication endpoint.\n\nAfter a successful response, the collection automatically saves:\n\n- `access_token` as the `token` environment variable\n    \n- `refresh_token` as the `refresh_token` environment variable\n    \n\nYou do not need to copy the token manually.\n\nThe saved `token` is automatically used by the other requests in this collection.\n\n#### Token lifetime\n\nThe access token is valid for **10 hours**.\n\nAfter the token expires, generate token again.\n\n### Get access token\n\nUse this request to authenticate the demo user and get an access token.\n\nThe request uses:\n\n- `client_id` and `client_secret` from the selected Postman environment\n    \n- the demo user's email and password\n    \n- `grant_type=password`\n    \n\n```\ncurl --location 'https://{host_name}/api/oauth/token/' \\\n--header 'Content-Type: application/x-www-form-urlencoded' \\\n--header 'Authorization: Basic aW9XVjFEcExlVFRClqTA==' \\\n--header 'Cookie: multidb_pin_writes=y' \\\n--data-urlencode 'grant_type=password' \\\n--data-urlencode 'username=test@idwell.com' \\\n--data-urlencode 'password=Qt7V8eT6*'\n\n ```\n\n# Managing users\n\n### Status\n\nStatus is read only. New user is created with INVITED status. Company manager should make an invitation to the user via portal.\n\n### Roles\n\nUse the `landlord` role for a user who owns a flat or many flats. Use `dweller` for a user who lives in a flat, but doesn't own any. `admin` and `manager` roles are for company staff. `admin` is able to setup some company's settings and to change users' roles.\n\nAvailable role transitions:\n\n- `admin` -> `manager`\n    \n- `manager` -> `admin`\n    \n- `dweller` -> `landlord`\n    \n- `landlord` -> `dweller`\n    \n\n### Unique email or phone\n\n`email` or `phone` or both should be provided.\n\nIf `email` is provided and it's unique, the system will use it as user identifier. If `email` is provided and is not unique, error will be raised.\n\nElse if `email` is empty and `phone` is provided, it will be used as user identifier. If it is not unique, error will be raised.\n\n### Phone validation\n\nThe phone validation is built on top of [Google's libphonenumber library](https://github.com/google/libphonenumber) with some modifications.\n\n1. Phone number minimal length is 4 symbols, maximum is 15 symbols after trimming.\n    \n2. All non-digit symbols are trimmed excluding leading `+` symbol if presented.\n    \n3. If the number starts with `+` and is in the length limits and passes [Google's libphonenumber library](https://github.com/google/libphonenumber) it is used as it is.\n    \n4. Else, leading `0` or `00` symbols are dropped and the rest of the string is considered to be a number with a country code. If it is, the system uses it as phone number.\n    \n5. Else if the string does not contain a country code, it is calculated from a company settings. If the string merged with the country code passes the validation, the system uses it as phone number.\n    \n\n### Flats\n\n`dweller` user without flats cannot be created. If existing `dweller` is updated with empty `flats` list, the system archives the user and his or her status becomes BLOCKED.","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"24106832","team":3014409,"collectionId":"e1a8562e-89c5-4adb-a5bd-140b0beb2776","publishedId":"2sB2x5HD65","public":true,"publicUrl":"https://api.docs.idwell.com","privateUrl":"https://go.postman.co/documentation/24106832-e1a8562e-89c5-4adb-a5bd-140b0beb2776","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.12.10","publishDate":"2026-07-29T11:01:24.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/8055fd106042fc56155628506dcc2cd2124a64ee8bd420b98aa1a0ba378bcfdb","favicon":"https://idwell.com/favicon.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://api.docs.idwell.com/view/metadata/2sB2x5HD65"}