{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"d876c457-98e4-4acf-90b9-81c565a7c3bd","name":"Prostream API","description":"Prostream is a versatile platform that caters to the construction industry, providing solutions for architects, contractors, construction companies, and more. It's designed to address various challenges within the construction process by enabling efficient document management, quality assurance, and collaboration among stakeholders. The software supports the entire construction chain, offering features like viewing BIM models, managing documents, assuring quality, and keeping data secure. It allows users to maintain control over their processes, quality, and costs, facilitating better project outcomes.\n\nThe construction software from Prostream is specifically developed to handle the complexities of modern construction projects. It helps in sharing large files, versioning documents, and ensuring that data is secure and accessible only to authorized personnel.\n\nFor more information on Prostream, visit the links below:\n\n- [Prostream website](https://www.prostream.app/)\n    \n- [Prostream Help Center](https://support.pro4all.nl/prostream)\n    \n\n# Getting started\n\nThe easiest way to get started with this Collection is to click the fork button to fork this Collection to your own Workspace and use Postman to send requests.\n\n## Usage\n\n1. Generate a Prostream API key by following the instructions in the [Prostream Help Center](https://support.pro4all.nl/prostream).\n    \n2. Update the current value for the associated collection variable in this Collection with your Prostream API key.\n    \n\n# Technical details\n\n## Architecture\n\nThe Prostream API is [eventually consistent](https://en.wikipedia.org/wiki/Eventual_consistency). This means that mutations to Prostream data will be validated in the request and then propagated through the system. This means that when performing (non-`GET`) requests:\n\n- The API is not RESTful. Queries are done through `GET`\\-requests, mutations through `POST`\\-requests.\n    \n- A `2xx`\\-response means that the mutation is accepted and will be applied to the resource. The mutation must be treated as applied by the client.\n    \n    - This is a guarantee that it will happen, though immediately performing a `GET`\\-request on the resource might not reflect the mutation.\n        \n- A `4xx`\\-response means that the request was either incorrect or the state of the resource does not allow the mutation. The response will contain a reason for rejecting the request.\n    \n\n## Rate-limiting\n\nTo ensure a consistent developer experience for all API users, the Prostream API is rate limited.\n\nRate-limited requests will return a HTTP `429 Too Many Requests` status code. **The rate limit for incoming requests is an average of 5 requests per second**. This limit is applied in the following scopes and will trigger on the first scope that reaches the limit:\n\n- Per API-key\n    \n- Per User\n    \n    - This counts requests across all API keys issued to a single user\n        \n- Per organization\n    \n    - This counts requests across all API keys issued to all users in a given Prostream organization\n        \n\n## Conventions\n\n**Base URL**\n\nThe base URL to send all API requests can be found in the environment variables. HTTPS is required for all API requests.\n\n**Dates**\n\nAll dates are formatted in [ISO 8601 format](https://www.iso.org/iso-8601-date-and-time-format.html).\n\n**ID's**\n\nAll resources are identifiable by their \"id\" property. The \"id\" property is always a [UUIDv4](https://en.wikipedia.org/wiki/Universally_unique_identifier).\n\n# Application model\n\n## Organizations\n\nOrganizations in Prostream reflect the organizational units in real-life. Organizations are the highest entity in the overall application model, and everything in Prostream eventually belongs to an organization.\n\n**Rules**\n\n- Users belong to a singular organization\n    \n- Projects belong to a singular organization\n    \n- Data from one organization can not be moved to another organization\n    \n\n## Projects\n\nProjects in Prostream are scoped containers of information. A project can be defined as a large infrastructural endeavour to a simple front door replacement of a house. As it is a mere container for data, it can also represent a continuous process.\n\nProjects contain different modules that allow users to store and retreive information. An example is the DMS, where folders and documents are stored for reference and sharing.\n\n**Rules**\n\n- Projects belong to a singular organization\n    \n- Users from different organizations can participate in a project\n    \n\n## Users\n\nUsers represent an account for a specific email address. As stated above, for accountability reasons, users can only belong to a single organization. Users however, can participate in projects of other organizations, allowing for easy collaboration within these projects from a single user account.\n\n**Rules**\n\n- Users belong to a singular organization\n    \n- Users from different organizations can participate in a project\n    \n- Users are unique per email address","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"11908957","collectionId":"d876c457-98e4-4acf-90b9-81c565a7c3bd","publishedId":"UVJZpe7r","public":true,"publicUrl":"https://documenter-api.postman.tech/view/11908957/UVJZpe7r","privateUrl":"https://go.postman.co/documentation/11908957-d876c457-98e4-4acf-90b9-81c565a7c3bd","customColor":{"top-bar":"563FE5","right-sidebar":"303030","highlight":"36CCBA"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"dark","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"563FE5","right-sidebar":"303030","highlight":"36CCBA"}}]}},"version":"8.10.1","publishDate":"2024-03-28T09:28:28.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[{"name":"Example","id":"10494df7-a7ce-46f6-bd07-97c52143459b","owner":"10230317","values":[{"key":"prostream-api-key","value":"<insert your Prostream API key here, get one from https://support.pro4all.nl/prostream>","enabled":true,"type":"default"},{"key":"prostream-base-url","value":"https://api.prostream.app","enabled":true,"type":"default"},{"key":"organization_id","value":"66396afb-7d6a-4fdf-99c1-a613bf4b334e","enabled":true,"type":"default"},{"key":"project_name","value":"API Example project","enabled":true,"type":"default"},{"key":"project_number","value":"001","enabled":true,"type":"default"},{"key":"project_id","value":"4aac51ec-404e-4c94-8a6b-b6d8e7dece82","enabled":true,"type":"default"},{"key":"project_description","value":"Example project description","enabled":true,"type":"default"},{"key":"deadline","value":"2025-01-31T17:00:00+0000","enabled":true,"type":"default"},{"key":"start_date","value":"2024-01-31T17:00:00+0000","enabled":true,"type":"default"},{"key":"object_id","value":"8440d544-15f4-4307-8a33-77a27514083d","enabled":true,"type":"default"}],"published":true}],"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/3fa1148ba96b49dd757cd08b9fe9c197e74f40b8dcbfa7f58dcd802b50498897","favicon":""},"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"},{"label":"Example","value":"10230317-10494df7-a7ce-46f6-bd07-97c52143459b"}],"canonicalUrl":"https://documenter.gw.postman.com/view/metadata/UVJZpe7r"}