SpaceAPI Directory API

SpaceAPI directory listing operations

OpenAPI Specification

spaceapi-directory-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: SpaceAPI Collector Directory API
  description: The SpaceAPI Collector is a central directory API that aggregates endpoints from hackerspaces, makerspaces, fablabs, and similar community spaces around the world that implement the SpaceAPI standard. It returns a list of all registered spaces with their status endpoint URLs, validity status, names, and last-seen timestamps.
  version: 0.0.1
  contact:
    email: spaceapi-team@chaospott.de
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  termsOfService: https://spaceapi.io/daemon/terms
servers:
- url: https://collector.spaceapi.io
  description: SpaceAPI Collector production server
tags:
- name: Directory
  description: SpaceAPI directory listing operations
paths:
  /:
    get:
      operationId: listSpaces
      summary: List All Spaces
      description: Returns the full SpaceAPI directory — a list of all registered hackerspaces, makerspaces, and fablabs that implement the SpaceAPI standard. Each entry includes the space endpoint URL, validity status, space name, last-seen timestamp, and any error messages for unreachable endpoints.
      tags:
      - Directory
      responses:
        '200':
          description: Successful operation — returns the full directory of registered spaces
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DirectoryEntry'
              example:
                items:
                - url: https://hackerspace.example.org/spaceapi.json
                  valid: true
                  space: Example Hackerspace
                  lastSeen: 1714652400
                - url: https://makerspace.example.com/status.json
                  valid: false
                  space: Example Makerspace
                  lastSeen: 1714500000
                  errMsg: Connection timeout
        '500':
          description: Internal server error
components:
  schemas:
    DirectoryEntry:
      description: Internal SpaceAPI Directory entry containing all registered spaces
      type: object
      properties:
        items:
          description: List of directory entries for all registered spaces
          type: array
          items:
            $ref: '#/components/schemas/SpaceEntry'
    SpaceEntry:
      description: A single space registered in the SpaceAPI directory
      type: object
      required:
      - url
      - valid
      properties:
        url:
          description: URL to the space's SpaceAPI JSON endpoint
          type: string
          format: uri
          example: https://hackerspace.example.org/spaceapi.json
        valid:
          description: Indicates whether the space's endpoint provides a valid SpaceAPI JSON file
          type: boolean
          example: true
        space:
          description: The name of the hackerspace or makerspace
          type: string
          example: Example Hackerspace
        lastSeen:
          description: Unix timestamp of the last time the endpoint was reachable and provided valid JSON (does not require it to have been valid SpaceAPI)
          type: number
          format: int64
          example: 1714652400
        errMsg:
          description: Error message if an issue was found with the specific endpoint
          type: string
          example: Connection timeout
        data:
          description: Raw JSON from the last successful scraping of the space's endpoint
          type: object
externalDocs:
  description: Find out more about SpaceAPI
  url: https://spaceapi.io