{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"6a4c3f08-39e6-4eb4-8c37-b0b79932c890","name":"Dynamic Integration API Reference","description":"# How to integrate your Property Management Software (PMS) with Beyond Pricing?\n\nOur API documentation defines exactly what is needed to make Beyond accessible for our partners who have built an In-house pms. We have eliminated the complex and time consuming elements of connecting your pms and can now provide a seamless solution for you as long as you match our specifications. Not only will our two systems work in harmony, you can also take **advantage** of the following:\n\n- More **timeline control** with reduced dependency on roadmap priorities\n    \n- Solution for a **Pilot** prior to contract\n    \n- **Automated** validation process\n    \n\n**What is ‘Building to Spec’?**\n\nWhen our partners manufacture a ‘product’ (in this case PMS) that meets specific parameters outlined in our documentation regarding how our two systems operate and communicate. **This document describes what data we expect and what your endpoints should look like. The API is organized around REST.\n\n# Definitions\n\n## Account\n\nThe account is what identifies a specific customer on the PMS.\n\n## Property/Listing\n\nEach listing has its own availability, reservations, daily prices, and etc.\n\nA property can have several listings in the case of multi-units properties but each listing must be treated as an independent listing with its own data.\n\nBeyond Pricing works at the listing level and expects to receive the information at the listing level (availability, reservations, etc), not at the Property level.\n\n### **NEW - Multi Unit Support**\n\n**What’s Changing:** The Beyond API now supports multi-unit structure (commonly referred to as parent-child, room type, hotel-style, or unit groups)  \n**Effective Date:** 2025-03-01  \n**Deprecation Date:** Not Applicable, there are no breaking changes  \n**Required Action:** Update your integration if multi-unit support is applicable to your system  \n**What is Multi Unit?** A listing with multiple units in a group ie parent/child that have the same attributes, location and pricing. Think similar apartments in the same building, or identical rooms under the same room type/category. The \"Parent\" listing is the main listing, and the \"Child\" listing is grouped under the Parent. This structure makes it easy to manage multiple similar listings while keeping track of individual reservations and availability.\n\n**Example:**\n\n- Parent: title \"Ocean View 2-Bedroom\"\n    \n    - Child 1: title \"Ocean View 2-Bedroom - Unit 101\"\n        \n    - Child 2: title \"Ocean View 2-Bedroom - Unit 102\"\n        \n\n**Key Points:**\n\n1. The Parent listing (or Room Type) is just an organizational tool to group the child listings\n    \n2. Each child listing has their own calendar availability and assigned reservations (all listings sync to Beyond and group automatically)\n    \n3. Prices are set at the Parent and the Property Management System (PMS) Software has the responsibility to send prices to all Child listings\n    \n\n# Authentication\n\nWe will need an API key for each account.\n\nThe API keys are issued on your end.\n\nWe can pass the key in the header of the request (`x-api-key`) to identify the account.\n\n# Data flow\n\nDuring the initial account sync, we will fetch all listings along with their availability, rates and reservations.\n\nAfter that, we will fetch this data daily to look for updates.\n\nWe will also post rates daily or after a user triggers a manual sync.\n\n# Main API requests\n\n## Account\n\n- fetch account information\n    \n\n## Listing\n\n### Pull\n\n- fetch all listings. Sort by newly created listings. NEW: Beyond now supports multi-unit Parent-Child structure. If you use that organizational tool, you should sort by Parent units IDs first.\n    \n- fetch a listing by ID\n    \n- If we fetch a listing and it doesn't exist for 2 days in a row we will delete it in Beyond\n    \n- fetch the listing's calendar\n    \n    - per day, at least 365 days, more is better\n        \n    - includes: prices, minimum nights, check-in/checkout days, availability\n        \n    - NEW (**Effective Date:** 2025-03-01): Beyond now supports multi-unit Parent-Child structure. Availabilty/calendar should be at the Child listing level, Parent listings should not return any availability or reservations data, ie, should return empty list.\n        \n\nProvide at least one year (more is better) for every piece of data that is per date (availability, prices, etc.)\n\n### Push\n\n- push daily price, minimum nights, check-in and check-out days.\n    \n- NEW (**Effective Date:** 2025-03-01): Beyond now supports multi-unit Parent-Child structure. Beyond push rates at the Parent listing level. _**NOTE: It is the PMS responsibility to send prices to all Child listings of the same Parent.**_\n    \n\n## Reservation\n\n### Pull\n\n- fetch reservations by listing ID. Request should be able to take a param check-out start date to allow filtering reservations with check-out date starting from that date. Check-in start date param can also be passed to allow filtering of reservations with check-in date starting from that date. Preferred to use check-out start date filter param.\n    \n- NEW (**Effective Date:** 2025-03-01): Beyond now supports multi-unit Parent-Child structure. Unique calendars with reservations should be at the Child listing level, Parent listings should not return any reservations or availability data.\n    \n- fetch a reservation by ID","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"10877957","team":238638,"collectionId":"6a4c3f08-39e6-4eb4-8c37-b0b79932c890","publishedId":"2s8YzXvzhW","public":true,"publicUrl":"https://dynamic-api-docs.beyondpricing.com","privateUrl":"https://go.postman.co/documentation/10877957-6a4c3f08-39e6-4eb4-8c37-b0b79932c890","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"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":"EF5B25"}}]}},"version":"8.10.1","publishDate":"2023-10-31T17:19:15.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/47ea56d51c96fbe446297cde40367d3a63108c43e93ee166bf0dbdc93f6dcf21","favicon":"https://beyondpricing.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://dynamic-api-docs.beyondpricing.com/view/metadata/2s8YzXvzhW"}