Skip to content
Developers
esc
  • Type an endpoint, an object or a word from a guide.

API v1

Everything your systems can ask Quarters.

Published listings and live availability for your website, reservations for whatever runs your contracts or your books, and signed webhooks so none of them has to poll.

Base URL
https://go.quarters.live/api/v1
Auth
OAuth 2.0 client credentials, then Authorization: Bearer. HTTP Basic for no-code tools. How
Spec
openapi.json, for Postman, Bruno or a generator.

First call

A token from the token endpoint, then every published listing.

Request

curl "https://go.quarters.live/api/v1/listings" \
  -H "Authorization: Bearer $ACCESS_TOKEN"
const res = await fetch("https://go.quarters.live/api/v1/listings", {
  headers: { Authorization: `Bearer ${token}` }
});
const { listings } = await res.json();
import requests

res = requests.get(
    "https://go.quarters.live/api/v1/listings",
    headers={"Authorization": f"Bearer {token}"},
)
res.raise_for_status()
listings = res.json()["listings"]
$ch = curl_init("https://go.quarters.live/api/v1/listings");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_HTTPHEADER => ["Authorization: Bearer $token"],
]);
$res = curl_exec($ch);
curl_close($ch);
$listings = json_decode($res, true)["listings"];
require "net/http"
require "json"

uri = URI("https://go.quarters.live/api/v1/listings")
req = Net::HTTP::Get.new(uri)
req["Authorization"] = "Bearer #{token}"
res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) }
listings = JSON.parse(res.body)["listings"]
package main

import (
	"encoding/json"
	"fmt"
	"net/http"
	"os"
)

func main() {
	token := os.Getenv("ACCESS_TOKEN")
	req, _ := http.NewRequest("GET", "https://go.quarters.live/api/v1/listings", nil)
	req.Header.Set("Authorization", "Bearer "+token)
	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()
	var data map[string]any
	json.NewDecoder(res.Body).Decode(&data)
	fmt.Println(data["listings"])
}