{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"8b74bb3d-72d2-4ec5-b013-7e5a588f0e05","name":"MFR OData","description":"<div align=\"center\">\n<img src=\"https://i.ibb.co/bzHNb6T/mfr-api.jpg\" alt=\"mfr-api\" border=\"0\">\n</div>\n<br>\n\n# MFR API\n-----\n\nMFR is a platform created for scheduling and managing the distribution of engineers and workers assigned by the user customer for attending any incoming task that the user could receive.\n\nThe main purpose of the API is to allow customers to use our portal as they data center and work with the API as an interface to their own system if applies. The querying is done by using OData,\nand the data sending process is done by REST.\n\nThe main purpose of the use of OData as the tool for making easy to access to the MFR data is its ease of use. You can get yourself into OData by taking a look to its [documentation](https://www.odata.org/documentation/odata-version-3-0/) where there’s a good explanation of what it is and why it is so easy to use because of its internal caring about request and response data while you can focus entirely in the logic of your intended requested/sent data.\nYou can also have your time to understand OData trying the [basic tutorial](https://www.odata.org/getting-started/basic-tutorial/) which you can also use with [Postman](https://www.getpostman.com/).\n\n# OData tools\n-----\n\nIt is important to know the OData query options in order to use completely the API. In the following list, there will be an\noverview of the query options that OData presents at the moment. For further information, refer to the [query data options description](https://www.odata.org/documentation/odata-version-3-0/url-conventions/#url5)\non the official OData documentation. Currently the OData version used for this documentation is version 3.\n\n* **Filter**: Allows to filter by a condition or a set of conditions given. For more information about the\nlogical or aritmethical conditions that can be given, please refer to the [OData URL conventions](https://www.odata.org/documentation/odata-version-3-0/url-conventions/).\nThe usage is: `https://portal.mobilefieldreport.com/odata/EntityToFilter?$filter=FilterOperationToDo`\n\n* **OrderBy**: Allows to sort the response by a given property. Usage is `https://portal.mobilefieldreport.com/odata/EntityToSort?$orderby=Property`\n\n* **Skip/Top**: Allows to skip/show the given quantity of results. Usage is `https://portal.mobilefieldreport.com/odata/EntityToLimit?$top=Number` for top,\n`https://portal.mobilefieldreport.com/odata/EntityToLimit?$skip=Number` for skipping.\n\n* **Count**: Retrieves the number of results in the response. Usage: `https://portal.mobilefieldreport.com/odata/EntityToCountResponse/$count`\n\n* **Expand**: A Navigation Entity allows to model foreign keys within the data model. Normally a response won't show the navigation entities related to the requested entities, so\nthe expand option allows to include in the request all the contents related to the given Navigation Entity(ies). Usage is: `https://portal.mobilefieldreport.com/odata/EntityToLimit?$expand=EntityOrEntitiesCommaSeparated`.\n\n* **Select**: Allows to project the query over the selected property or set of properties. Usage is: `https://portal.mobilefieldreport.com/odata/EntityToProjectOver?$select=Property1,Property2`\n\n* **Search**: A search will use a given string to retrieve those elements that includes the given pattern. Works much like a Regular Expression search. Usage is:\n`https://portal.mobilefieldreport.com/odata/EntityToSearch?$search=Pattern`\n\n\n# Model\n-----\n\nThe _entities_ that compose our system are based in a [Domain Model](https://en.wikipedia.org/wiki/Domain_model) Design, this means that the model is structured completely based on a Domain approach. Here you can find all the possible entities and how to properly name them:\n\nEntity | Navigation Entities\n-------- | -------------\n**Appointments** | Contacts\n**Companies** | Contacts, ServiceObjects\n**Contacts** | -\n**CostCenters** | -\n**Documents** | -\n**ItemUnits** | -\n**ItemTypes** | ItemUnit\n**Products** | -\n**Reports** | -\n**ServiceObjects** | Contacts, Company (instance of **Companies**), Items, Documents, Tags, Reports\n**ServiceRequests** | Appointments, Contacts, Documents, CostCenter (instance of **CostCenters**), Items, Reports, ServiceObjects, Steps, StepListTemplates, StockMovements, Tags, TimeEvents.\n**StepListTemplates** | -\n**Tags** | -\n**TimeEvents** | -\n**Users** | -\n\nEvery Entity that has Navigation Entities related can be expanded with the previously described `$expand` operator over that related Entity, and can even also be expanded including related Navigation Entities, for example:\n`https://portal.mobilefieldreport.com/odata/ServiceRequests?$expand=Appointments/Contacts` and this will retrieve all the Service Requests with their respective related Appointments expanded, and also the Contacts related to that Appointments expanded.\n\nBy requesting `https://portal.mobilefieldreport.com/odata/`, a list of all the registered entities will be shown.  \n\nFor more information about Domain Model, refer to [this presentation](http://stg-tud.github.io/eise/WS11-EiSE-07-Domain_Modeling.pdf) of Technische Universität Darmstad, and for going deeper in the subject, check [Eric Evans's _Domain Driven Design_](https://www.amazon.de/Domain-Driven-Design-Tackling-Complexity-Software/dp/B001JDYE0O/ref=sr_1_4?s=books&ie=UTF8&qid=1551955919&sr=1-4&keywords=domain+driven+design) book.\n\n# Authentication\n-----\nThe basic auth method is used for the requests in this documentation. The following account is provided for open testing in our demo portal:\n> **Username**: 1demo@simplias.com\\\n**Password**: password\n\nIf using postman, the base 64 encoded password is automatically generated by giving these credentials under the tab \"Authorization\". For normal requests, the following header must be included:\n```\nAuthorization: Basic MWRlbW9Ac2ltcGxpYXMuY29tOnBhc3N3b3Jk // Base64 encoded password from the demo account\n```","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"6932380","team":490280,"collectionId":"8b74bb3d-72d2-4ec5-b013-7e5a588f0e05","publishedId":"2sB3dWsn6U","public":true,"publicUrl":"https://documenter-api.postman.tech/view/6932380/2sB3dWsn6U","privateUrl":"https://go.postman.co/documentation/6932380-8b74bb3d-72d2-4ec5-b013-7e5a588f0e05","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":"2025-12-22T13:26:05.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/a3aed31b3fbf5672973722b5274878189b954ad502c4d94739e8d6944760583e","favicon":"https://res.cloudinary.com/postman/image/upload/v1568033368/team/g6d5o9zgwgcvmpiemidl.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://documenter.gw.postman.com/view/metadata/2sB3dWsn6U"}