City Context icon

City Context

City Context provides a straightforward API to access UK Open Data: crime statistics, schools, demographics and more

COMMUNITYAPI KEY0 INSTALLS
OpenAPI Specificationv3.0
{
  "swagger": "2.0",
  "schemes": [
    "http"
  ],
  "host": "api.citycontext.com",
  "basePath": "/v1",
  "info": {
    "description": "City Context provides a straightforward API to access UK Open Data: crime statistics, schools, demographics and more.",
    "title": "City Context",
    "version": "1.0.0",
    "x-apisguru-categories": [
      "open_data"
    ],
    "x-logo": {
      "url": "https://api.apis.guru/v2/cache/logo/https_twitter.com_citycontext_profile_image.jpeg"
    },
    "x-origin": [
      {
        "converter": {
          "url": "https://github.com/lucybot/api-spec-converter",
          "version": "2.6.0"
        },
        "format": "swagger",
        "url": "https://www.citycontext.com/swagger/spec.json",
        "version": "1.2"
      }
    ],
    "x-providerName": "citycontext.com"
  },
  "produces": [
    "application/json"
  ],
  "securityDefinitions": {
    "user_key": {
      "description": "City context user key",
      "in": "query",
      "name": "user_key",
      "type": "apiKey"
    }
  },
  "security": [
    {
      "user_key": []
    }
  ],
  "tags": [
    {
      "description": "Core City Context API",
      "name": "citycontext"
    }
  ],
  "paths": {
    "/@{lat},{lon}": {
      "get": {
        "operationId": "byPoint",
        "parameters": [
          {
            "description": "Latitude",
            "format": "float",
            "in": "path",
            "name": "lat",
            "required": true,
            "type": "number"
          },
          {
            "description": "Longitude",
            "format": "float",
            "in": "path",
            "name": "lon",
            "required": true,
            "type": "number"
          },
          {
            "description": "Search radius for schools, in metres, between 100 and 4000",
            "in": "query",
            "name": "school_search_radius",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Search radius for parks, in metres, between 100 and 2000",
            "in": "query",
            "name": "park_search_radius",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PointInfo"
            }
          }
        },
        "summary": "Query by coordinates (SRID 4326 - decimal degrees)",
        "tags": [
          "citycontext"
        ]
      }
    },
    "/postcodes/{postcode}": {
      "get": {
        "operationId": "byPostcode",
        "parameters": [
          {
            "description": "Postcode",
            "in": "path",
            "name": "postcode",
            "required": true,
            "type": "string"
          },
          {
            "description": "Search radius for schools, in metres, between 100 and 4000",
            "in": "query",
            "name": "school_search_radius",
            "required": false,
            "type": "integer"
          },
          {
            "description": "Search radius for parks, in metres, between 100 and 2000",
            "in": "query",
            "name": "park_search_radius",
            "required": false,
            "type": "integer"
          }
        ],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/PointInfo"
            }
          }
        },
        "summary": "Query by postcode",
        "tags": [
          "citycontext"
        ]
      }
    },
    "/usage": {
      "get": {
        "operationId": "usage",
        "parameters": [],
        "responses": {
          "200": {
            "description": "No response was specified",
            "schema": {
              "$ref": "#/definitions/Usage"
            }
          }
        },
        "summary": "Get usage in current month",
        "tags": [
          "citycontext"
        ]
      }
    }
  },
  "definitions": {
    "Latlon": {},
    "Location": {
      "description": "Latitude, Longitude and other info related to the given point",
      "properties": {
        "lat": {
          "format": "float",
          "maximum": 85,
          "minimum": -85,
          "type": "number"
        },
        "lon": {
          "format": "float",
          "maximum": 180,
          "minimum": -180,
          "type": "number"
        },
        "withinLondonCCZ": {
          "description": "Boolean flag indicating whether this point is located within London's Congestion Charge zone",
          "type": "boolean"
        }
      },
      "required": [
        "lat",
        "lon"
      ],
      "type": "object"
    },
    "PointInfo": {
      "description": "Contextual information around a given point",
      "properties": {
        "location": {
          "$ref": "#/definitions/Location"
        },
        "lsoa": {
          "description": "Statistics for lower layer super output areas (LSOA)",
          "properties": {
            "crimes": {
              "type": "object"
            },
            "name": {
              "type": "string"
            },
            "population": {
              "properties": {
                "allUsualResidents": {
                  "type": "integer"
                },
                "communalEstablishmentResidents": {
                  "type": "integer"
                },
                "householdResidents": {
                  "type": "integer"
                },
                "households": {
                  "type": "integer"
                },
                "personsPerHectare": {
                  "type": "integer"
                },
                "personsPerHousehold": {
                  "type": "integer"
                }
              },
              "required": [
                "allUsualResidents",
                "householdResidents",
                "communalEstablishmentResidents",
                "households",
                "personsPerHousehold",
                "personsPerHectare"
              ],
              "type": "object"
            }
          },
          "required": [
            "name"
          ],
          "type": "object"
        },
        "parks": {
          "description": "Parks within 1km of the point of interest, sorted by descending area",
          "items": {
            "properties": {
              "areaSqm": {
                "type": "integer"
              },
              "centroid": {
                "$ref": "#/definitions/Latlon"
              },
              "distanceMeters": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              }
            },
            "required": [
              "distanceMeters",
              "areaSqm",
              "centroid"
            ],
            "type": "object"
          },
          "type": "array"
        },
        "schools": {
          "description": "Schools within 1km of the point of interest, sorted by ascending distance from the POI",
          "items": {
            "properties": {
              "distanceMeters": {
                "type": "integer"
              },
              "lastInpectionUrl": {
                "description": "URL to the last inspection report",
                "type": "string"
              },
              "lastInspectionDate": {
                "description": "Date of the last Ofsted inspection",
                "format": "date-time",
                "type": "string"
              },
              "leadershipAndManagement": {
                "description": "Leadership and management grade in the last Ofsted report, from 1 (outstanding) to 4 (inadequate)",
                "maximum": 4,
                "minimum": 1,
                "type": "integer"
              },
              "location": {
                "$ref": "#/definitions/Latlon"
              },
              "overallEffectiveness": {
                "description": "Overall effectiveness grade in the last Ofsted report, from 1 (outstanding) to 4 (inadequate)",
                "maximum": 4,
                "minimum": 1,
                "type": "integer"
              },
              "phase": {
                "type": "string"
              },
              "qualityOfTeaching": {
                "description": "Quality of teaching grade in the last Ofsted report, from 1 (outstanding) to 4 (inadequate)",
                "maximum": 4,
                "minimum": 1,
                "type": "integer"
              },
              "schoolName": {
                "type": "string"
              },
              "typeOfEstablishment": {
                "type": "string"
              },
              "urn": {
                "description": "Unique school identifier",
                "type": "integer"
              }
            },
            "required": [
              "urn",
              "schoolName",
              "typeOfEstablishment",
              "location",
              "lastInspectionDate",
              "lastInpectionUrl",
              "overallEffectiveness",
              "leadershipAndManagement",
              "qualityOfTeaching",
              "phase",
              "distanceMeters"
            ],
            "type": "object"
          },
          "type": "array"
        }
      },
      "required": [
        "location",
        "parks",
        "schools"
      ]
    },
    "Usage": {
      "description": "User plan monthly API quota and usage",
      "properties": {
        "allowance": {
          "type": "integer"
        },
        "period": {
          "type": "string"
        },
        "periodEnd": {
          "format": "date-time",
          "type": "string"
        },
        "periodStart": {
          "format": "date-time",
          "type": "string"
        },
        "plan": {
          "type": "string"
        },
        "usage": {
          "type": "integer"
        }
      },
      "required": [
        "usage",
        "period",
        "plan",
        "periodStart",
        "periodEnd"
      ]
    }
  }
}