Spacefinder Campus Space Data

The data layer behind the University of Leeds Libraries wayfinding application, published as two unauthenticated static JSON documents. spaces.json returned 68 campus and library spaces on 2026-08-30 (137,649 bytes) with geolocation, per-weekday opening hours, facility and atmosphere vocabularies, noise level, accessibility and access restriction; filters.json returns the six facet groups the application uses. No key, no quota, no registration, and no version field — validate every fetch against the derived JSON Schema. Built with the University of Cambridge's Spacefinder Rails application as its starting point and released by Leeds as a Jekyll theme other institutions can reuse.

Operations 2

GET /spaces.json List every published campus study space #
GET /filters.json List the facet groups and options used to filter spaces #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/spacefinder"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

university-of-leeds-spacefinder-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: University of Leeds Spacefinder Data
  version: '1.0.0'
  summary: Machine-readable study-space and campus-space data published by University of Leeds Libraries.
  description: >-
    Spacefinder is the University of Leeds Libraries wayfinding application. It publishes the
    underlying campus study-space dataset as two static JSON documents on the institution's own
    domain, with no key, no quota and no registration: `spaces.json` (one object per space, with
    geolocation, opening hours, facilities, noise level, accessibility and access restriction) and
    `filters.json` (the faceting vocabulary the application uses over that dataset).

    This description was DERIVED by API Evangelist from live responses probed on 2026-08-30. The
    University of Leeds does not publish an OpenAPI description of this surface; the endpoints, the
    payload shapes and the enumerations below were read from the actual responses. The application
    and its data are the University of Leeds Libraries' own work (source: github.com/uol-library),
    published under the institution's registrable domain. The site is served from GitHub Pages;
    a code host is not an operator.
  contact:
    name: University of Leeds Libraries
    url: https://library.leeds.ac.uk/
  license:
    name: See repository licence
    url: https://github.com/uol-library/spacefinder.leeds.ac.uk/blob/main/LICENSE
  x-operator: institution
  x-operator-evidence: >-
    Host spacefinder.leeds.ac.uk is under the University of Leeds registrable domain leeds.ac.uk.
    Application and data authored by github.com/uol-library (University of Leeds Libraries).
  x-provenance:
    generated: '2026-08-30'
    method: derived
    source: >-
      Derived from live responses to GET https://spacefinder.leeds.ac.uk/spaces.json (HTTP 200,
      application/json, 137,649 bytes, 68 objects) and GET https://spacefinder.leeds.ac.uk/filters.json
      (HTTP 200, 6 facet groups), probed 2026-08-30.
servers:
  - url: https://spacefinder.leeds.ac.uk
    description: Production (institution-operated, GitHub Pages hosted)
tags:
  - name: Spaces
    description: Campus and library study spaces.
  - name: Facets
    description: Filtering vocabulary over the space dataset.
paths:
  /spaces.json:
    get:
      operationId: listSpaces
      summary: List every published campus study space
      description: >-
        Returns the complete Spacefinder dataset as a JSON array. No pagination, no parameters, no
        authentication. Observed 68 spaces on 2026-08-30.
      tags: [Spaces]
      security: []
      responses:
        '200':
          description: The complete space collection.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Space'
              examples:
                brackets:
                  summary: First space in the live response (2026-08-30)
                  externalValue: ../examples/university-of-leeds-spacefinder-spaces-example.json
        '404':
          description: Not found.
  /filters.json:
    get:
      operationId: listFilters
      summary: List the facet groups and options used to filter spaces
      tags: [Facets]
      security: []
      responses:
        '200':
          description: The facet vocabulary.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/FilterGroup'
        '404':
          description: Not found.
components:
  securitySchemes: {}
  schemas:
    Space:
      type: object
      description: One campus or library space. Field set read from the live 2026-08-30 response.
      required: [id, title, slug, building]
      properties:
        id:
          type: integer
          description: Numeric identifier, stable within the dataset.
        title:
          type: string
        slug:
          type: string
        description:
          type: string
        building:
          type: string
        floor:
          type: string
        address:
          type: string
        lat:
          type: number
        lng:
          type: number
        location:
          type: string
          description: >-
            A GeoJSON Point serialised as a JSON STRING, not as a nested object. Consumers must
            JSON.parse this value. Observed form; not a defect we introduced.
        what3words:
          type: string
        space_type:
          type: string
          enum: [Cafe, Communal, Computer cluster, Library, Study space]
          description: Observed values on 2026-08-30; the publisher may add more.
        noise:
          type: string
          enum: [Background chatter, Quiet, Silent, Some talking]
        access:
          type: string
          enum: ['Anyone (public)', 'Staff and students', 'Students only']
        restricted:
          type: boolean
        restriction:
          type: string
        disabled_access:
          type: boolean
        published:
          type: boolean
        facilities:
          type: array
          items: { type: string }
          description: Facility tokens; see vocabulary/university-of-leeds-spacefinder-vocabulary.yml.
        atmosphere:
          type: array
          items: { type: string }
        work:
          type: array
          items: { type: string }
          description: Suitable working modes, e.g. private, close, friends, group, silent.
        tags:
          type: array
          items: { type: string }
        opening_hours:
          $ref: '#/components/schemas/OpeningHours'
        images:
          type: array
          items: { type: object }
        links:
          type: array
          items: { type: object }
        contacts:
          type: array
          items: { type: object }
        facebook_url:
          type: string
        twitter_screen_name:
          type: string
    OpeningHours:
      type: object
      description: Per-weekday opening window. Keys are lowercase English weekday names.
      additionalProperties:
        type: object
        properties:
          open: { type: boolean }
          from: { type: string, description: 'H:MM or HH:MM local time; empty string when closed.' }
          to: { type: string }
    FilterGroup:
      type: object
      required: [key, label, options]
      properties:
        key: { type: string }
        label: { type: string }
        message: { type: string }
        exclusive: { type: boolean }
        additive: { type: boolean }
        open: { type: boolean }
        options:
          type: array
          items:
            type: object
            properties:
              key: { type: string }
              label: { type: string }
security: []