Halls API API Reference

Please contact your account manager with any queries, or if in doubt email [email protected].

Request Rate Limiting

To ensure the stability and performance of our API for all users, we have implemented a request rate limit. This rate limit is designed to prevent excessive usage that could impact the service quality for other users.

Rate Limit Details:

  • Request Limit: 60 requests
  • Time Window: 60 seconds (1 minute)

This means that within any given 60-second window, a maximum of 60 requests can be made to the API from a single client (identified by an API key or IP address). If the number of requests exceeds this limit, additional requests will be temporarily blocked until the start of the next time window.

API Endpoint
https://data.studentcrowd.net/api/v1.0
Contact: [email protected]
Schemes: https
Version: 1.0.0

Authentication

APIKeyHeader

in
header
name
X-Api-Key

Halls

List

GET /halls
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query
200 OK

List of Halls

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "hall",
      "id": "string (uuid)",
      "attributes": {
        "name": "Kingsley Lodge",
        "type": "string",
        "landlord": "string",
        "postcode": "string",
        "catering": "string",
        "available": true,
        "availability": "available",
        "minimumPrice": 134.5,
        "pricePersonWeek": 67.25,
        "currency": "gbp",
        "billingCycle": "string",
        "beds": 30,
        "city": "Chester",
        "country": "United Kingdom",
        "features": [
          "Bike Storage",
          "CCTV / Surveillance Cameras",
          "Contents Insurance",
          "Onsite Cafeteria",
          "WiFi In Room (All Free)"
        ],
        "rating": 4.14,
        "criteriaRatings": {
          "value": 5,
          "management": 5,
          "socialSpaces": 1,
          "internetWifi": 4,
          "location": 4,
          "cleaning": 5,
          "socialExperience": 4
        },
        "openingDate": "2020/8",
        "latitude": 53.19,
        "longitude": -2.891,
        "accommodationType": "PBSA",
        "propSet": {
          "quality": "B",
          "price": "2",
          "location": [
            {
              "tag": "Near-Campus",
              "reference": "Nottingham Trent University (NTU)",
              "ukprn": "10004797"
            }
          ],
          "label": "B 2 Near-Campus, City"
        },
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "roomTypes": {
          "links": {
            "related": "/halls/{hallId}/room-types"
          }
        },
        "reviews": {
          "links": {
            "related": "/halls/{hallId}/reviews"
          }
        }
      },
      "links": {
        "self": "/halls/{hallId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Hall

GET /halls/{hallId}
hallId

Hall ID

type
string
in
path
200 OK

Hall Object

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "type": "hall",
  "id": "string (uuid)",
  "attributes": {
    "name": "Kingsley Lodge",
    "type": "string",
    "landlord": "string",
    "postcode": "string",
    "catering": "string",
    "available": true,
    "availability": "available",
    "minimumPrice": 134.5,
    "pricePersonWeek": 67.25,
    "currency": "gbp",
    "billingCycle": "string",
    "beds": 30,
    "city": "Chester",
    "country": "United Kingdom",
    "features": [
      "Bike Storage",
      "CCTV / Surveillance Cameras",
      "Contents Insurance",
      "Onsite Cafeteria",
      "WiFi In Room (All Free)"
    ],
    "rating": 4.14,
    "criteriaRatings": {
      "value": 5,
      "management": 5,
      "socialSpaces": 1,
      "internetWifi": 4,
      "location": 4,
      "cleaning": 5,
      "socialExperience": 4
    },
    "openingDate": "2020/8",
    "latitude": 53.19,
    "longitude": -2.891,
    "accommodationType": "PBSA",
    "propSet": {
      "quality": "B",
      "price": "2",
      "location": [
        {
          "tag": "Near-Campus",
          "reference": "Nottingham Trent University (NTU)",
          "ukprn": "10004797"
        }
      ],
      "label": "B 2 Near-Campus, City"
    },
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "roomTypes": {
      "links": {
        "related": "/halls/{hallId}/room-types"
      }
    },
    "reviews": {
      "links": {
        "related": "/halls/{hallId}/reviews"
      }
    }
  },
  "links": {
    "self": "/halls/{hallId}"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Reviews

GET /halls/{hallId}/reviews
hallId

Hall ID

type
string
in
path
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query
200 OK

List of Reviews by Hall

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "review",
      "id": "string (uuid)",
      "attributes": {
        "text": "I have loved my time at this University",
        "ratings": {
          "value": 5,
          "management": 5,
          "socialSpaces": 1,
          "internetWifi": 4,
          "location": 4,
          "cleaning": 5,
          "socialExperience": 4
        },
        "userType": "CURRENT",
        "studentType": "UK",
        "averageRating": 4.14,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        }
      },
      "links": {
        "self": "/reviews/{hallId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Room Types

GET /halls/{hallId}/room-types
hallId

Hall ID

type
string
in
path
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query
200 OK

List of Room Types by Hall

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "roomType",
      "id": "string (uuid)",
      "attributes": {
        "name": "Deluxe suite",
        "arrangement": "apartment",
        "bedroomOccupancy": 1,
        "priceArrangement": "per_room",
        "price": 134.5,
        "pricePersonWeek": 67.25,
        "squareMeters": {
          "min": 23,
          "max": 27
        },
        "available": true,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        },
        "roomTenancies": {
          "links": {
            "related": "/room-types/{roomTypeId}/room-tenancies"
          }
        }
      },
      "links": {
        "self": "/room-types/{roomTypeId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Room Types

List

GET /room-types
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query
200 OK

List of Room Types

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "roomType",
      "id": "string (uuid)",
      "attributes": {
        "name": "Deluxe suite",
        "arrangement": "apartment",
        "bedroomOccupancy": 1,
        "priceArrangement": "per_room",
        "price": 134.5,
        "pricePersonWeek": 67.25,
        "squareMeters": {
          "min": 23,
          "max": 27
        },
        "available": true,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        },
        "roomTenancies": {
          "links": {
            "related": "/room-types/{roomTypeId}/room-tenancies"
          }
        }
      },
      "links": {
        "self": "/room-types/{roomTypeId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

RoomType

GET /room-types/{roomTypeId}
roomTypeId

RoomType ID

type
string
in
path
200 OK

RoomType Object

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "type": "roomType",
  "id": "string (uuid)",
  "attributes": {
    "name": "Deluxe suite",
    "arrangement": "apartment",
    "bedroomOccupancy": 1,
    "priceArrangement": "per_room",
    "price": 134.5,
    "pricePersonWeek": 67.25,
    "squareMeters": {
      "min": 23,
      "max": 27
    },
    "available": true,
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "hall": {
      "links": {
        "related": "/halls/{hallId}"
      }
    },
    "roomTenancies": {
      "links": {
        "related": "/room-types/{roomTypeId}/room-tenancies"
      }
    }
  },
  "links": {
    "self": "/room-types/{roomTypeId}"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Room Tenancies

List

GET /room-tenancies
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query

List of Room Tenancies

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "roomTenancy",
      "id": "string (uuid)",
      "attributes": {
        "type": "flexible",
        "price": 174.08,
        "pricePersonWeek": 87.04,
        "available": true,
        "startDate": "2021-09-22T00:00:00.000Z",
        "academicYear": "21/22",
        "minimumStay": 180,
        "incentiveText": "£150 cashback for 22/23 bookings",
        "incentiveValue": 150,
        "createdAt": "2021-11-29T10:54:06+00:00",
        "updatedAt": "2021-11-29T10:54:06+00:00"
      },
      "relationships": {
        "roomType": {
          "links": {
            "related": "/room-types/{roomTypeId}"
          }
        }
      },
      "links": {
        "self": "/room-tenancies/{roomTenancyId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

RoomTenancy

GET /room-tenancies/{roomTenancyId}
roomTenancyId

Room Tenancy ID

type
string
in
path
200 OK

RoomTenancy Object

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "type": "roomTenancy",
  "id": "string (uuid)",
  "attributes": {
    "type": "flexible",
    "price": 174.08,
    "pricePersonWeek": 87.04,
    "available": true,
    "startDate": "2021-09-22T00:00:00.000Z",
    "academicYear": "21/22",
    "minimumStay": 180,
    "incentiveText": "£150 cashback for 22/23 bookings",
    "incentiveValue": 150,
    "createdAt": "2021-11-29T10:54:06+00:00",
    "updatedAt": "2021-11-29T10:54:06+00:00"
  },
  "relationships": {
    "roomType": {
      "links": {
        "related": "/room-types/{roomTypeId}"
      }
    }
  },
  "links": {
    "self": "/room-tenancies/{roomTenancyId}"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Reviews

List

GET /reviews
size

Number of results to return

type
integer (int32) , { x ∈ ℤ | x ≤ 500 } 100
in
query
200 OK

List of Reviews

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "data": [
    {
      "type": "review",
      "id": "string (uuid)",
      "attributes": {
        "text": "I have loved my time at this University",
        "ratings": {
          "value": 5,
          "management": 5,
          "socialSpaces": 1,
          "internetWifi": 4,
          "location": 4,
          "cleaning": 5,
          "socialExperience": 4
        },
        "userType": "CURRENT",
        "studentType": "UK",
        "averageRating": 4.14,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        }
      },
      "links": {
        "self": "/reviews/{hallId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Review

GET /reviews/{reviewId}
reviewId

Review ID

type
string
in
path
200 OK

Review Object

429 Too Many Requests

Too Many Requests Error

Response Content-Types: application/json
Response Example (200 OK)
{
  "type": "review",
  "id": "string (uuid)",
  "attributes": {
    "text": "I have loved my time at this University",
    "ratings": {
      "value": 5,
      "management": 5,
      "socialSpaces": 1,
      "internetWifi": 4,
      "location": 4,
      "cleaning": 5,
      "socialExperience": 4
    },
    "userType": "CURRENT",
    "studentType": "UK",
    "averageRating": 4.14,
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "hall": {
      "links": {
        "related": "/halls/{hallId}"
      }
    }
  },
  "links": {
    "self": "/reviews/{hallId}"
  }
}
Response Example (429 Too Many Requests)
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}

Schema Definitions

Hall: object

type: string
id: string (uuid)
attributes: object
relationships: object
links: object
Example
{
  "type": "hall",
  "id": "string (uuid)",
  "attributes": {
    "name": "Kingsley Lodge",
    "type": "string",
    "landlord": "string",
    "postcode": "string",
    "catering": "string",
    "available": true,
    "availability": "available",
    "minimumPrice": 134.5,
    "pricePersonWeek": 67.25,
    "currency": "gbp",
    "billingCycle": "string",
    "beds": 30,
    "city": "Chester",
    "country": "United Kingdom",
    "features": [
      "Bike Storage",
      "CCTV / Surveillance Cameras",
      "Contents Insurance",
      "Onsite Cafeteria",
      "WiFi In Room (All Free)"
    ],
    "rating": 4.14,
    "criteriaRatings": {
      "value": 5,
      "management": 5,
      "socialSpaces": 1,
      "internetWifi": 4,
      "location": 4,
      "cleaning": 5,
      "socialExperience": 4
    },
    "openingDate": "2020/8",
    "latitude": 53.19,
    "longitude": -2.891,
    "accommodationType": "PBSA",
    "propSet": {
      "quality": "B",
      "price": "2",
      "location": [
        {
          "tag": "Near-Campus",
          "reference": "Nottingham Trent University (NTU)",
          "ukprn": "10004797"
        }
      ],
      "label": "B 2 Near-Campus, City"
    },
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "roomTypes": {
      "links": {
        "related": "/halls/{hallId}/room-types"
      }
    },
    "reviews": {
      "links": {
        "related": "/halls/{hallId}/reviews"
      }
    }
  },
  "links": {
    "self": "/halls/{hallId}"
  }
}

HallList: object

data: object[]
links: Links
Example
{
  "data": [
    {
      "type": "hall",
      "id": "string (uuid)",
      "attributes": {
        "name": "Kingsley Lodge",
        "type": "string",
        "landlord": "string",
        "postcode": "string",
        "catering": "string",
        "available": true,
        "availability": "available",
        "minimumPrice": 134.5,
        "pricePersonWeek": 67.25,
        "currency": "gbp",
        "billingCycle": "string",
        "beds": 30,
        "city": "Chester",
        "country": "United Kingdom",
        "features": [
          "Bike Storage",
          "CCTV / Surveillance Cameras",
          "Contents Insurance",
          "Onsite Cafeteria",
          "WiFi In Room (All Free)"
        ],
        "rating": 4.14,
        "criteriaRatings": {
          "value": 5,
          "management": 5,
          "socialSpaces": 1,
          "internetWifi": 4,
          "location": 4,
          "cleaning": 5,
          "socialExperience": 4
        },
        "openingDate": "2020/8",
        "latitude": 53.19,
        "longitude": -2.891,
        "accommodationType": "PBSA",
        "propSet": {
          "quality": "B",
          "price": "2",
          "location": [
            {
              "tag": "Near-Campus",
              "reference": "Nottingham Trent University (NTU)",
              "ukprn": "10004797"
            }
          ],
          "label": "B 2 Near-Campus, City"
        },
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "roomTypes": {
          "links": {
            "related": "/halls/{hallId}/room-types"
          }
        },
        "reviews": {
          "links": {
            "related": "/halls/{hallId}/reviews"
          }
        }
      },
      "links": {
        "self": "/halls/{hallId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}

Review: object

type: string
id: string (uuid)
attributes: object
relationships: object
links: object
Example
{
  "type": "review",
  "id": "string (uuid)",
  "attributes": {
    "text": "I have loved my time at this University",
    "ratings": {
      "value": 5,
      "management": 5,
      "socialSpaces": 1,
      "internetWifi": 4,
      "location": 4,
      "cleaning": 5,
      "socialExperience": 4
    },
    "userType": "CURRENT",
    "studentType": "UK",
    "averageRating": 4.14,
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "hall": {
      "links": {
        "related": "/halls/{hallId}"
      }
    }
  },
  "links": {
    "self": "/reviews/{hallId}"
  }
}

ReviewList: object

data: object[]
links: Links
Example
{
  "data": [
    {
      "type": "review",
      "id": "string (uuid)",
      "attributes": {
        "text": "I have loved my time at this University",
        "ratings": {
          "value": 5,
          "management": 5,
          "socialSpaces": 1,
          "internetWifi": 4,
          "location": 4,
          "cleaning": 5,
          "socialExperience": 4
        },
        "userType": "CURRENT",
        "studentType": "UK",
        "averageRating": 4.14,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        }
      },
      "links": {
        "self": "/reviews/{hallId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}

Rating: object

value: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
management: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
socialSpaces: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
internetWifi: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
location: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
cleaning: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
socialExperience: number (float) , { x ∈ ℝ | 1 ≤ x ≤ 5 }
Example
{
  "value": 5,
  "management": 5,
  "socialSpaces": 1,
  "internetWifi": 4,
  "location": 4,
  "cleaning": 5,
  "socialExperience": 4
}

RoomType: object

type: string
id: string (uuid)
attributes: object
relationships: object
links: object
Example
{
  "type": "roomType",
  "id": "string (uuid)",
  "attributes": {
    "name": "Deluxe suite",
    "arrangement": "apartment",
    "bedroomOccupancy": 1,
    "priceArrangement": "per_room",
    "price": 134.5,
    "pricePersonWeek": 67.25,
    "squareMeters": {
      "min": 23,
      "max": 27
    },
    "available": true,
    "createdAt": "2017-11-29T10:54:06+00:00",
    "updatedAt": "2017-11-29T10:54:06+00:00"
  },
  "relationships": {
    "hall": {
      "links": {
        "related": "/halls/{hallId}"
      }
    },
    "roomTenancies": {
      "links": {
        "related": "/room-types/{roomTypeId}/room-tenancies"
      }
    }
  },
  "links": {
    "self": "/room-types/{roomTypeId}"
  }
}

RoomTypeList: object

data: object[]
links: Links
Example
{
  "data": [
    {
      "type": "roomType",
      "id": "string (uuid)",
      "attributes": {
        "name": "Deluxe suite",
        "arrangement": "apartment",
        "bedroomOccupancy": 1,
        "priceArrangement": "per_room",
        "price": 134.5,
        "pricePersonWeek": 67.25,
        "squareMeters": {
          "min": 23,
          "max": 27
        },
        "available": true,
        "createdAt": "2017-11-29T10:54:06+00:00",
        "updatedAt": "2017-11-29T10:54:06+00:00"
      },
      "relationships": {
        "hall": {
          "links": {
            "related": "/halls/{hallId}"
          }
        },
        "roomTenancies": {
          "links": {
            "related": "/room-types/{roomTypeId}/room-tenancies"
          }
        }
      },
      "links": {
        "self": "/room-types/{roomTypeId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}

RoomTenancy: object

type: string
id: string (uuid)
attributes: object
relationships: object
links: object
Example
{
  "type": "roomTenancy",
  "id": "string (uuid)",
  "attributes": {
    "type": "flexible",
    "price": 174.08,
    "pricePersonWeek": 87.04,
    "available": true,
    "startDate": "2021-09-22T00:00:00.000Z",
    "academicYear": "21/22",
    "minimumStay": 180,
    "incentiveText": "£150 cashback for 22/23 bookings",
    "incentiveValue": 150,
    "createdAt": "2021-11-29T10:54:06+00:00",
    "updatedAt": "2021-11-29T10:54:06+00:00"
  },
  "relationships": {
    "roomType": {
      "links": {
        "related": "/room-types/{roomTypeId}"
      }
    }
  },
  "links": {
    "self": "/room-tenancies/{roomTenancyId}"
  }
}

RoomTenancyList: object

data: object[]
links: Links
Example
{
  "data": [
    {
      "type": "roomTenancy",
      "id": "string (uuid)",
      "attributes": {
        "type": "flexible",
        "price": 174.08,
        "pricePersonWeek": 87.04,
        "available": true,
        "startDate": "2021-09-22T00:00:00.000Z",
        "academicYear": "21/22",
        "minimumStay": 180,
        "incentiveText": "£150 cashback for 22/23 bookings",
        "incentiveValue": 150,
        "createdAt": "2021-11-29T10:54:06+00:00",
        "updatedAt": "2021-11-29T10:54:06+00:00"
      },
      "relationships": {
        "roomType": {
          "links": {
            "related": "/room-types/{roomTypeId}"
          }
        }
      },
      "links": {
        "self": "/room-tenancies/{roomTenancyId}"
      }
    }
  ],
  "links": {
    "self": "/{path}?page=1",
    "first": "/{path}?page=1",
    "prev": "/{path}?page=2",
    "next": "/{path}?page=4",
    "last": "/{path}?page=10"
  }
}

TooManyRequestsError: object

code: number
error: string
message: string
Example
{
  "code": 429,
  "error": "Too Many Requests",
  "message": "You are being rate limited because you exceeded 60 requests for a period of 60 seconds."
}