{
  "openapi": "3.1.0",
  "info": {
    "title": "Grid Maker Pro data",
    "version": "1",
    "summary": "The site's public catalogues, as static JSON.",
    "description": "Grid Maker Pro is a browser-only composition and drawing overlay tool.\n\nThese paths are static files on the same origin as the site. Every one is a\nplain GET: there is no key, no quota, no rate limit and no sign-up, and nothing\nhere accepts a write.\n\nThere is no endpoint that renders a grid onto a picture, and there never will\nbe one: the reference image is read by the browser from the visitor's own\ndevice and never leaves it. To put a grid on a photograph, open the tool —\nhttps://gridmakerpro.com/?overlay={overlayId} — with a person at the keyboard.",
    "license": {
      "name": "CC BY 4.0",
      "url": "https://creativecommons.org/licenses/by/4.0/"
    },
    "contact": {
      "name": "Grid Maker Pro",
      "url": "https://gridmakerpro.com/contact/"
    }
  },
  "servers": [
    {
      "url": "https://gridmakerpro.com"
    }
  ],
  "paths": {
    "/api/overlays.json": {
      "get": {
        "operationId": "getOverlays",
        "summary": "Overlay catalogue",
        "description": "Every composition and drawing overlay Grid Maker Pro draws — 82 of them across 11 families, each with its page URL, its renderer id and a deep link that opens the tool with it on.",
        "responses": {
          "200": {
            "description": "82 records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://gridmakerpro.com/api/overlays.schema.json"
                }
              }
            }
          }
        }
      }
    },
    "/api/glossary.json": {
      "get": {
        "operationId": "getGlossary",
        "summary": "Composition glossary",
        "description": "88 defined terms of composition, perspective and layout vocabulary, as schema.org DefinedTerm nodes.",
        "responses": {
          "200": {
            "description": "88 records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://gridmakerpro.com/api/glossary.schema.json"
                }
              }
            }
          }
        }
      }
    },
    "/api/pillars.json": {
      "get": {
        "operationId": "getPillars",
        "summary": "Long-form guides",
        "description": "39 long-form guides to composition, perspective, proportion and grid method, with their URLs and descriptions.",
        "responses": {
          "200": {
            "description": "39 records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://gridmakerpro.com/api/pillars.schema.json"
                }
              }
            }
          }
        }
      }
    },
    "/api/references.json": {
      "get": {
        "operationId": "getReferences",
        "summary": "Reference photograph catalogue",
        "description": "30 royalty-free reference photographs used to demonstrate the overlays, with their source URLs and licences.",
        "responses": {
          "200": {
            "description": "30 records.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "https://gridmakerpro.com/api/references.schema.json"
                }
              }
            }
          }
        }
      }
    },
    "/api/svg-signatures.json": {
      "get": {
        "operationId": "getSignatures",
        "summary": "Overlay line drawings",
        "description": "One SVG line drawing per overlay — 82 of them, generated from the renderer itself, so each is the grid the tool actually draws.",
        "responses": {
          "200": {
            "description": "82 records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    },
    "/search-index.json": {
      "get": {
        "operationId": "getSearch",
        "summary": "Site index",
        "description": "Every page on the site — 485 of them — as {u, t, d, s}: URL, title, description and section.",
        "responses": {
          "200": {
            "description": "485 records.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array"
                }
              }
            }
          }
        }
      }
    }
  }
}
