openapi: 3.0.3
info:
title: KammaAPIv2
description: ''
version: 1.0.0
servers:
-
url: 'https://kamma.api.kammadata.com'
paths:
'/api/properties/epc-check/{identifier}':
get:
summary: 'Current Identifier EPC Status'
operationId: currentIdentifierEPCStatus
description: 'The EPC Checker Methods return information on EPCs for the subject property.'
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
certificate:
uprn: 100011623123
address1: '6, Ashmeade'
address2: 'Hale Barns'
post_town: ALTRINCHAM
postcode: 'WA15 0DB'
building_reference_number: 4251743578
current_energy_rating: C
potential_energy_rating: B
current_energy_efficiency: 74
potential_energy_efficiency: 84
property_type: House
built_form: Detached
inspection_date: '2017-08-15'
lodgement_date: '2017-08-15'
transaction_type: 'marketed sale'
environment_impact_current: 66
environment_impact_potential: 80
energy_consumption_current: 165
energy_consumption_potential: 96
co2_emissions_current: 5.6
co2_emiss_curr_per_floor_area: 30
co2_emissions_potential: 3.3
lighting_cost_current: 156
lighting_cost_potential: 92
heating_cost_current: 1015
heating_cost_potential: 769
hot_water_cost_current: 226
hot_water_cost_potential: 80
total_floor_area: 186
energy_tariff: Single
mains_gas_flag: 'Y'
main_heating_controls: '2104'
multi_glaze_proportion: 90
glazed_type: 'double glazing installed before 2002'
glazed_area: Normal
extension_count: '1'
number_habitable_rooms: 7
number_heated_rooms: 7
low_energy_lighting: 30
number_open_fireplaces: 0
hotwater_description: 'From main system'
hot_water_energy_eff: Good
hot_water_env_eff: Good
floor_description: 'Solid, no insulation (assumed)'
windows_description: 'Mostly double glazing'
windows_energy_eff: Average
windows_env_eff: Average
walls_description: 'Cavity wall, filled cavity'
walls_energy_eff: Good
walls_env_eff: Good
secondheat_description: 'Room heaters, dual fuel (mineral and wood)'
roof_description: 'Pitched, 270 mm loft insulation'
roof_energy_eff: Good
roof_env_eff: Good
mainheat_description: 'Boiler and radiators, mains gas'
mainheat_energy_eff: Good
mainheat_env_eff: Good
mainheatcont_description: 'Programmer and room thermostat'
mainheatc_energy_eff: Average
mainheatc_env_eff: Average
lighting_description: 'Low energy lighting in 30% of fixed outlets'
lighting_energy_eff: Average
lighting_env_eff: Average
main_fuel: 'mains gas (not community)'
wind_turbine_count: 0
solar_water_heating_flag: 'N'
mechanical_ventilation: natural
address: '6, Ashmeade, Hale Barns'
local_authority_label: Trafford
constituency_label: 'Altrincham and Sale West'
construction_age_band: 'England and Wales: 1983-1990'
lodgement_datetime: '2017-08-15T19:03:44+00:00'
tenure: owner-occupied
recommendations:
-
item_text: 'Solid floor insulation'
indicative_cost:
- 4000
- 6000
-
item_text: 'Increase hot water cylinder insulation'
indicative_cost:
- 15
- 30
-
item_text: 'Low energy lighting for all fixed outlets'
indicative_cost:
- 70
-
item_text: 'Upgrading heating controls'
indicative_cost:
- 350
- 450
-
item_text: 'Replace boiler with new condensing boiler'
indicative_cost:
- 2200
- 3000
-
item_text: 'Solar water heating'
indicative_cost:
- 4000
- 6000
-
item_text: 'Replacement glazing units'
indicative_cost:
- 1000
- 1400
status:
code: 200
message: OK
response_id: 1234-1234-1234-1234-1234
properties:
result:
type: object
properties:
certificate:
type: object
properties:
uprn:
type: integer
example: 100011623123
address1:
type: string
example: '6, Ashmeade'
address2:
type: string
example: 'Hale Barns'
post_town:
type: string
example: ALTRINCHAM
postcode:
type: string
example: 'WA15 0DB'
building_reference_number:
type: integer
example: 4251743578
current_energy_rating:
type: string
example: C
potential_energy_rating:
type: string
example: B
current_energy_efficiency:
type: integer
example: 74
potential_energy_efficiency:
type: integer
example: 84
property_type:
type: string
example: House
built_form:
type: string
example: Detached
inspection_date:
type: string
example: '2017-08-15'
lodgement_date:
type: string
example: '2017-08-15'
transaction_type:
type: string
example: 'marketed sale'
environment_impact_current:
type: integer
example: 66
environment_impact_potential:
type: integer
example: 80
energy_consumption_current:
type: integer
example: 165
energy_consumption_potential:
type: integer
example: 96
co2_emissions_current:
type: number
example: 5.6
co2_emiss_curr_per_floor_area:
type: integer
example: 30
co2_emissions_potential:
type: number
example: 3.3
lighting_cost_current:
type: integer
example: 156
lighting_cost_potential:
type: integer
example: 92
heating_cost_current:
type: integer
example: 1015
heating_cost_potential:
type: integer
example: 769
hot_water_cost_current:
type: integer
example: 226
hot_water_cost_potential:
type: integer
example: 80
total_floor_area:
type: integer
example: 186
energy_tariff:
type: string
example: Single
mains_gas_flag:
type: string
example: 'Y'
main_heating_controls:
type: string
example: '2104'
multi_glaze_proportion:
type: integer
example: 90
glazed_type:
type: string
example: 'double glazing installed before 2002'
glazed_area:
type: string
example: Normal
extension_count:
type: string
example: '1'
number_habitable_rooms:
type: integer
example: 7
number_heated_rooms:
type: integer
example: 7
low_energy_lighting:
type: integer
example: 30
number_open_fireplaces:
type: integer
example: 0
hotwater_description:
type: string
example: 'From main system'
hot_water_energy_eff:
type: string
example: Good
hot_water_env_eff:
type: string
example: Good
floor_description:
type: string
example: 'Solid, no insulation (assumed)'
windows_description:
type: string
example: 'Mostly double glazing'
windows_energy_eff:
type: string
example: Average
windows_env_eff:
type: string
example: Average
walls_description:
type: string
example: 'Cavity wall, filled cavity'
walls_energy_eff:
type: string
example: Good
walls_env_eff:
type: string
example: Good
secondheat_description:
type: string
example: 'Room heaters, dual fuel (mineral and wood)'
roof_description:
type: string
example: 'Pitched, 270 mm loft insulation'
roof_energy_eff:
type: string
example: Good
roof_env_eff:
type: string
example: Good
mainheat_description:
type: string
example: 'Boiler and radiators, mains gas'
mainheat_energy_eff:
type: string
example: Good
mainheat_env_eff:
type: string
example: Good
mainheatcont_description:
type: string
example: 'Programmer and room thermostat'
mainheatc_energy_eff:
type: string
example: Average
mainheatc_env_eff:
type: string
example: Average
lighting_description:
type: string
example: 'Low energy lighting in 30% of fixed outlets'
lighting_energy_eff:
type: string
example: Average
lighting_env_eff:
type: string
example: Average
main_fuel:
type: string
example: 'mains gas (not community)'
wind_turbine_count:
type: integer
example: 0
solar_water_heating_flag:
type: string
example: 'N'
mechanical_ventilation:
type: string
example: natural
address:
type: string
example: '6, Ashmeade, Hale Barns'
local_authority_label:
type: string
example: Trafford
constituency_label:
type: string
example: 'Altrincham and Sale West'
construction_age_band:
type: string
example: 'England and Wales: 1983-1990'
lodgement_datetime:
type: string
example: '2017-08-15T19:03:44+00:00'
tenure:
type: string
example: owner-occupied
recommendations:
type: array
example:
-
item_text: 'Solid floor insulation'
indicative_cost:
- 4000
- 6000
-
item_text: 'Increase hot water cylinder insulation'
indicative_cost:
- 15
- 30
-
item_text: 'Low energy lighting for all fixed outlets'
indicative_cost:
- 70
-
item_text: 'Upgrading heating controls'
indicative_cost:
- 350
- 450
-
item_text: 'Replace boiler with new condensing boiler'
indicative_cost:
- 2200
- 3000
-
item_text: 'Solar water heating'
indicative_cost:
- 4000
- 6000
-
item_text: 'Replacement glazing units'
indicative_cost:
- 1000
- 1400
description: 'List of retrofit improvement recommendations from the EPC'
items:
type: object
properties:
item_text:
type: string
example: 'Solid floor insulation'
indicative_cost:
type: array
example:
- 4000
- 6000
items:
type: integer
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of API request'
400:
description: 'Invalid Identifier token'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 101000
description: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 101000
description:
type: string
example: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of API request'
404:
description: 'EPC resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 203001
description: 'The EPC resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 203001
description:
type: string
example: 'The EPC resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of API request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'EPC Checker Methods'
parameters:
-
in: path
name: identifier
description: 'A [property identifier](/docs/index.html#property-identifiers) for the required property; either a Kamma Property Id, a UPRN or an address can be used.'
example: 'geoplace:uprn:100023433011'
required: true
schema:
type: string
'/api/properties/determination-check/{identifier}':
get:
summary: ''
operationId: getApiPropertiesDeterminationCheckIdentifier
description: ''
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
advice:
mandatory: 'A Mandatory HMO scheme covers the whole of Westminster. This scheme is permanent and includes and includes all HMOs with at least 5 people on 1 storey since October 1st 2018.'
additional: 'There are no active Additional licensing schemes at this location right now.'
selective: 'There are no active Additional licensing schemes at this location right now.'
article4: 'There are no active Article 4 directions at this location right now.'
future: 'The next Article 4 direction is planned for October 10th 2018.'
planning:
-
id: 123
name: ''
type: article4
state:
in: false
active: false
future: true
expired: null
consultation: false
criteria:
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
above_commercial: null
property_category: null
restrict_from: C3
restrict_to: C4
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
schemes:
-
id: 123
name: ''
type: mandatory
state:
in: true
active: true
future: false
expired: null
consultation: false
criteria:
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
above_commercial: 0
configurations:
-
households: 2
people: 5
storeys: 1
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
status:
code: 200
message: OK
response_id: 1234-1234-1234-1234-1234
properties:
result:
type: object
properties:
advice:
type: object
properties:
mandatory:
type: string
example: 'A Mandatory HMO scheme covers the whole of Westminster. This scheme is permanent and includes and includes all HMOs with at least 5 people on 1 storey since October 1st 2018.'
additional:
type: string
example: 'There are no active Additional licensing schemes at this location right now.'
selective:
type: string
example: 'There are no active Additional licensing schemes at this location right now.'
article4:
type: string
example: 'There are no active Article 4 directions at this location right now.'
future:
type: string
example: 'The next Article 4 direction is planned for October 10th 2018.'
planning:
type: array
example:
-
id: 123
name: ''
type: article4
state:
in: false
active: false
future: true
expired: null
consultation: false
criteria:
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
above_commercial: null
property_category: null
restrict_from: C3
restrict_to: C4
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
description: 'List of HMO Article 4 Directions that cover the subject property. N.B. this refers to the geographic location of the property, not its HMO status'
items:
type: object
properties:
id:
type: integer
example: 123
name:
type: string
example: ''
type:
type: string
example: article4
state:
type: object
properties:
in:
type: boolean
example: false
active:
type: boolean
example: false
future:
type: boolean
example: true
expired:
type: string
example: null
consultation:
type: boolean
example: false
criteria:
type: object
properties:
date_start:
type: string
example: '2018-10-01T00:00:00.000Z'
date_end:
type: string
example: null
above_commercial:
type: string
example: null
property_category:
type: string
example: null
restrict_from:
type: string
example: C3
restrict_to:
type: string
example: C4
link:
type: string
example: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
schemes:
type: array
example:
-
id: 123
name: ''
type: mandatory
state:
in: true
active: true
future: false
expired: null
consultation: false
criteria:
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
above_commercial: 0
configurations:
-
households: 2
people: 5
storeys: 1
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
description: 'List of licensing schemes that cover the subject property broken into various data fields. N.B. this refers to the geographic location of the property, not its occupancy profile'
items:
type: object
properties:
id:
type: integer
example: 123
name:
type: string
example: ''
type:
type: string
example: mandatory
state:
type: object
properties:
in:
type: boolean
example: true
active:
type: boolean
example: true
future:
type: boolean
example: false
expired:
type: string
example: null
consultation:
type: boolean
example: false
criteria:
type: object
properties:
date_start:
type: string
example: '2006-04-01T00:00:00.000Z'
date_end:
type: string
example: null
above_commercial:
type: integer
example: 0
configurations:
type: array
example:
-
households: 2
people: 5
storeys: 1
items:
type: object
properties:
households: { type: integer, example: 2 }
people: { type: integer, example: 5 }
storeys: { type: integer, example: 1 }
link:
type: string
example: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of this API request'
400:
description: 'Invalid PropertyToken token'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 101000
description: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 101000
description:
type: string
example: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of this API request'
404:
description: 'Licence determination resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 202001
description: 'The licence determination resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 202001
description:
type: string
example: 'The licence determination resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of this API request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Legislation Checker Methods'
parameters:
-
in: path
name: identifier
description: 'A [property identifier](/docs/index.html#property-identifiers) for the required property; either a Kamma Property Id, a UPRN or an address can be used.'
example: 'geoplace:uprn:100023433011'
required: true
schema:
type: string
'/api/properties/licensing-check/{identifier}':
get:
summary: 'Current Identifier Licensing Status'
operationId: currentIdentifierLicensingStatus
description: 'The Licensing Checker Methods return information on applicable licensing schemes to the subject property given its occupancy profile and other relevant property data.'
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
current:
hmo: true
historic:
hmo: true
licences:
-
type: additional
address: '52, Crown Street, London, WC1E 6JP'
licencee: 'Mr John Smith'
people: 0
households: 0
status: approved
date_start: '2018-05-09'
date_end: '2023-05-09'
-
type: additional
address: '52, Crown Street, London, WC1E 6JP'
licencee: 'Mr John Smith'
people: 5
households: 5
status: approved
date_start: '2018-05-09'
date_end: '2023-05-09'
status:
code: 200
message: OK
response_id: 1234-1234-1234-1234-1234
properties:
result:
type: object
properties:
current:
type: object
properties:
hmo:
type: boolean
example: true
historic:
type: object
properties:
hmo:
type: boolean
example: true
licences:
type: array
example:
-
type: additional
address: '52, Crown Street, London, WC1E 6JP'
licencee: 'Mr John Smith'
people: 0
households: 0
status: approved
date_start: '2018-05-09'
date_end: '2023-05-09'
-
type: additional
address: '52, Crown Street, London, WC1E 6JP'
licencee: 'Mr John Smith'
people: 5
households: 5
status: approved
date_start: '2018-05-09'
date_end: '2023-05-09'
description: 'Data and information on licences at the subject property address from council licence registers'
items:
type: object
properties:
type:
type: string
example: additional
address:
type: string
example: '52, Crown Street, London, WC1E 6JP'
licencee:
type: string
example: 'Mr John Smith'
people:
type: integer
example: 0
households:
type: integer
example: 0
status:
type: string
example: approved
date_start:
type: string
example: '2018-05-09'
date_end:
type: string
example: '2023-05-09'
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
400:
description: 'Invalid PropertyToken token'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 101000
description: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 101000
description:
type: string
example: 'The identity token was invalid, must be in the form of geoplace:uprn:1234, kamma:address:123+Street or kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
404:
description: 'Resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 102000
description: 'The api resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 102000
description:
type: string
example: 'The api resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Licence Register Methods'
parameters:
-
in: path
name: identifier
description: 'A [property identifier](/docs/index.html#property-identifiers) for the required property; either a Kamma Property Id, a UPRN or an address can be used.'
example: 'geoplace:uprn:100023433011'
required: true
schema:
type: string
'/api/properties/property-check/{identifier}':
get:
summary: 'Property Check'
operationId: propertyCheck
description: 'When requested with a valid identifier, this resource returns the current property details and the compliance status for the property associated with the token.'
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
id: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
external_reference: TEST_123
address: '1 Tuscan Road, Greenwich, London, SE18 1SY'
postcode: 'SE18 1SY'
council: Greenwich
council_websites:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
advice_text_current: 'Licensing is currently required.'
advice_text_future: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
current:
mandatory: false
additional: true
selective: false
article4: true
future:
mandatory: false
additional: false
selective: true
article4: false
future_start_date:
mandatory: null
additional: null
selective: '2022-10-01T00:00:00.000Z'
article4: null
approved_scheme:
id: null
type: null
date_start: null
date_end: null
metadata:
people: 3
households: 2
storeys:
external: null
internal: null
rooms: null
above_commercial: null
property_category: null
property_class: unknown
notes: ''
analysis:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
actions:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
regulations:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
licence_application:
status: null
application:
type: null
date_start: null
date_end: null
max_people: null
max_households: null
reference: null
planning_application:
status: null
application:
type: null
status:
code: 200
message: OK
response_id: 409228f9-1583-4993-8efe-25a073ba757d
properties:
result:
type: object
properties:
id:
type: string
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
description: 'The property unique identifier'
external_reference:
type: string
example: TEST_123
description: 'The external property reference'
address:
type: string
example: '1 Tuscan Road, Greenwich, London, SE18 1SY'
description: 'The property address'
postcode:
type: string
example: 'SE18 1SY'
description: 'The property postcode'
council:
type: string
example: Greenwich
description: 'The council that the property sits within'
council_websites:
type: array
example:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
description: 'List of council licensing website links'
items:
type: string
advice_text_current:
type: string
example: 'Licensing is currently required.'
advice_text_future:
type: string
example: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
type: object
properties:
current:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: true
selective:
type: boolean
example: false
article4:
type: boolean
example: true
future:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: false
selective:
type: boolean
example: true
article4:
type: boolean
example: false
future_start_date:
type: object
properties:
mandatory:
type: string
example: null
additional:
type: string
example: null
selective:
type: string
example: '2022-10-01T00:00:00.000Z'
article4:
type: string
example: null
approved_scheme:
type: object
properties:
id:
type: string
example: null
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
metadata:
type: object
properties:
people:
type: integer
example: 3
households:
type: integer
example: 2
storeys:
type: object
properties:
external:
type: string
example: null
internal:
type: string
example: null
rooms:
type: string
example: null
above_commercial:
type: string
example: null
property_category:
type: string
example: null
property_class:
type: string
example: unknown
notes:
type: string
example: ''
analysis:
type: array
example:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
description: 'Advice on the type of analysis that should be performed'
items:
type: string
actions:
type: array
example:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
description: 'Advice on the actions that should be performed'
items:
type: string
regulations:
type: array
example:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
description: 'The direct regulatory information of the schemes that apply to the property'
items:
type: object
properties:
id:
type: integer
example: 126
type:
type: string
example: mandatory
confidence:
type: integer
example: 100
date_start:
type: string
example: '2006-04-01T00:00:00.000Z'
date_end:
type: string
example: null
link:
type: string
example: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation:
type: integer
example: 0
licence_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
max_people:
type: string
example: null
max_households:
type: string
example: null
reference:
type: string
example: null
planning_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 409228f9-1583-4993-8efe-25a073ba757d
description: 'The unique id of api request'
400:
description: 'Invalid PropertyToken token'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 101000
description: 'The identity token was invalid, must be in the form of kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 101000
description:
type: string
example: 'The identity token was invalid, must be in the form of kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
404:
description: 'Property resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 205001
description: 'The property resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 205001
description:
type: string
example: 'The property resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Property Methods'
parameters:
-
in: path
name: identifier
description: 'A Kamma Property Id.'
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
required: true
schema:
type: string
/api/properties/create:
post:
summary: 'Property Create'
operationId: propertyCreate
description: "This endpoint creates a new property in the Kamma Platform and returns licensing compliance determination that is able to be calculated based on the tenancy information supplied. If all information is provided on creation an accurate determination can be made, otherwise this endpoint can be used to create a placeholder property and the tenancy information can be refined at a later stage by the Property Sync endpoint.\n\nA full street level address, including postcode, or a UPRN, must be provided for this endpoint in the **`address`** field of the request body. If an address is provided that does not contain the postcode or a UPRN is provided, the postcode must also be provided in the **`postcode`** field of the request body."
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
id: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
external_reference: TEST_123
address: '1 Tuscan Road, Greenwich, London, SE18 1SY'
postcode: 'SE18 1SY'
council: Greenwich
council_websites:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
advice_text_current: 'Licensing is currently required.'
advice_text_future: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
current:
mandatory: false
additional: true
selective: false
article4: true
future:
mandatory: false
additional: false
selective: true
article4: false
future_start_date:
mandatory: null
additional: null
selective: '2022-10-01T00:00:00.000Z'
article4: null
approved_scheme:
id: null
type: null
date_start: null
date_end: null
metadata:
people: 3
households: 2
storeys:
external: null
internal: null
rooms: null
above_commercial: null
property_category: null
property_class: unknown
notes: ''
analysis:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
actions:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
regulations:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
licence_application:
status: null
application:
type: null
date_start: null
date_end: null
max_people: null
max_households: null
reference: null
planning_application:
status: null
application:
type: null
status:
code: 200
message: OK
response_id: 409228f9-1583-4993-8efe-25a073ba757d
properties:
result:
type: object
properties:
id:
type: string
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
description: 'The Kamma Property Id'
external_reference:
type: string
example: TEST_123
description: 'The external property reference'
address:
type: string
example: '1 Tuscan Road, Greenwich, London, SE18 1SY'
description: 'The property address'
postcode:
type: string
example: 'SE18 1SY'
description: 'The property postcode'
council:
type: string
example: Greenwich
description: 'The council that the property sits within'
council_websites:
type: array
example:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
description: 'List of council licensing website links'
items:
type: string
advice_text_current:
type: string
example: 'Licensing is currently required.'
advice_text_future:
type: string
example: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
type: object
properties:
current:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: true
selective:
type: boolean
example: false
article4:
type: boolean
example: true
future:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: false
selective:
type: boolean
example: true
article4:
type: boolean
example: false
future_start_date:
type: object
properties:
mandatory:
type: string
example: null
additional:
type: string
example: null
selective:
type: string
example: '2022-10-01T00:00:00.000Z'
article4:
type: string
example: null
approved_scheme:
type: object
properties:
id:
type: string
example: null
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
metadata:
type: object
properties:
people:
type: integer
example: 3
households:
type: integer
example: 2
storeys:
type: object
properties:
external:
type: string
example: null
internal:
type: string
example: null
rooms:
type: string
example: null
above_commercial:
type: string
example: null
property_category:
type: string
example: null
property_class:
type: string
example: unknown
notes:
type: string
example: ''
analysis:
type: array
example:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
description: 'Advice on the type of analysis that should be performed'
items:
type: string
actions:
type: array
example:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
description: 'Advice on the actions that should be performed'
items:
type: string
regulations:
type: array
example:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
description: 'The direct regulatory information of the schemes that apply to the property'
items:
type: object
properties:
id:
type: integer
example: 126
type:
type: string
example: mandatory
confidence:
type: integer
example: 100
date_start:
type: string
example: '2006-04-01T00:00:00.000Z'
date_end:
type: string
example: null
link:
type: string
example: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation:
type: integer
example: 0
licence_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
max_people:
type: string
example: null
max_households:
type: string
example: null
reference:
type: string
example: null
planning_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 409228f9-1583-4993-8efe-25a073ba757d
description: 'The unique id of api request'
400:
description: 'Request body validation failed'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 103000
description: 'Validation error: The address field is required.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 103000
description:
type: string
example: 'Validation error: The address field is required.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
409:
description: 'Resource Conflict'
content:
application/json:
schema:
type: object
example:
status: 409
message: 'Resource Conflict'
code: 700001
description: 'Request cannot complete due to conflicting operation.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 409
message:
type: string
example: 'Resource Conflict'
code:
type: integer
example: 700001
description:
type: string
example: 'Request cannot complete due to conflicting operation.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Property Methods'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
address:
type: string
description: 'A full street level address or UPRN.'
example: '52 Crown Street, London, WC1E 6JP'
postcode:
type: string
description: 'The property’s postcode.'
example: 'WC1E 6JP'
external_reference:
type: string
description: 'Your own external reference.'
example: ref-12345
people:
type: integer
description: 'Number of people living in the property.'
example: 5
households:
type: integer
description: 'Number of households living in the property.'
example: 3
storeys_internal:
type: integer
description: 'Number of internal storeys of the building, e.g. a flat above a shop = 2 storeys.'
example: 2
storeys_external:
type: integer
description: 'Number of external storeys of the building, e.g. a flat above a shop = 2 storeys.'
example: 2
above_commercial:
type: integer
description: 'Is the property above commercial premises?.'
example: 1
enum:
- '0'
- '1'
rooms:
type: integer
description: 'Number of bedrooms in the property.'
example: 3
rent:
type: integer
description: 'Amount of rent paid, weekly in pence.'
example: 360000
property_category:
type: string
description: 'This is the category of the property under the Housing Act 2004. In most cases this field can be left as null.'
example: s257
enum:
- single
- s254
- s257
- licenseable
property_class:
type: string
description: 'Knowing the type of property will allow us to assess compliance in terms of residential planning permission required across the UK.'
example: flat
enum:
- house
- flat
notes:
type: string
description: ''
example: ''
licence_status:
type: string
description: ''
example: applied
enum:
- applied
- inprogress
- requested
licence_type:
type: string
description: "This is the result of the Kamma platform's assessment."
example: selective
enum:
- unknown
- mandatory
- additional
- selective
- none
licence_date_start:
type: string
description: 'Licence start date. Must be a valid date in the format Y-m-d
.'
example: '2020-01-25'
licence_date_end:
type: string
description: 'Licence end date. Must be a valid date in the format Y-m-d
.'
example: '2025-01-25'
licence_max_people:
type: integer
description: 'Both Mandatory and Additional licensing will impose a limit on the number of occupants.'
example: 5
licence_max_households:
type: integer
description: ''
example: 20
licence_reference:
type: string
description: 'Optional; licence reference issued by the Local Authority.'
example: ref-12345
planning_status:
type: string
description: ''
example: requested
enum:
- applied
- inprogress
- requested
planning_reference:
type: string
description: ''
example: ref-12345
required:
- address
- postcode
'/api/properties/sync/{identifier}':
put:
summary: 'Property Sync'
operationId: propertySync
description: 'When requested with a valid identifier and payload, the property associated with the token is updated in the KammaData system.'
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
id: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
external_reference: TEST_123
address: '1 Tuscan Road, Greenwich, London, SE18 1SY'
postcode: 'SE18 1SY'
council: Greenwich
council_websites:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
advice_text_current: 'Licensing is currently required.'
advice_text_future: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
current:
mandatory: false
additional: true
selective: false
article4: true
future:
mandatory: false
additional: false
selective: true
article4: false
future_start_date:
mandatory: null
additional: null
selective: '2022-10-01T00:00:00.000Z'
article4: null
approved_scheme:
id: null
type: null
date_start: null
date_end: null
metadata:
people: 3
households: 2
storeys:
external: null
internal: null
rooms: null
above_commercial: null
property_category: null
property_class: unknown
notes: ''
analysis:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
actions:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
regulations:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
licence_application:
status: null
application:
type: null
date_start: null
date_end: null
max_people: null
max_households: null
reference: null
planning_application:
status: null
application:
type: null
status:
code: 200
message: OK
response_id: 409228f9-1583-4993-8efe-25a073ba757d
properties:
result:
type: object
properties:
id:
type: string
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
description: 'The property unique identifier'
external_reference:
type: string
example: TEST_123
description: 'The external property reference'
address:
type: string
example: '1 Tuscan Road, Greenwich, London, SE18 1SY'
description: 'The property address'
postcode:
type: string
example: 'SE18 1SY'
description: 'The property postcode'
council:
type: string
example: Greenwich
description: 'The property council'
council_websites:
type: array
example:
- 'https://www.royalgreenwich.gov.uk'
- 'https://committees.royalgreenwich.gov.uk'
description: 'List of council websites'
items:
type: string
advice_text_current:
type: string
example: 'Licensing is currently required.'
advice_text_future:
type: string
example: 'Licensing will be required for a scheme or direction that starts in the future.'
requires:
type: object
properties:
current:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: true
selective:
type: boolean
example: false
article4:
type: boolean
example: true
future:
type: object
properties:
mandatory:
type: boolean
example: false
additional:
type: boolean
example: false
selective:
type: boolean
example: true
article4:
type: boolean
example: false
future_start_date:
type: object
properties:
mandatory:
type: string
example: null
additional:
type: string
example: null
selective:
type: string
example: '2022-10-01T00:00:00.000Z'
article4:
type: string
example: null
approved_scheme:
type: object
properties:
id:
type: string
example: null
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
metadata:
type: object
properties:
people:
type: integer
example: 3
households:
type: integer
example: 2
storeys:
type: object
properties:
external:
type: string
example: null
internal:
type: string
example: null
rooms:
type: string
example: null
above_commercial:
type: string
example: null
property_category:
type: string
example: null
property_class:
type: string
example: unknown
notes:
type: string
example: ''
analysis:
type: array
example:
- 'Additional scheme requirements met'
- 'Selective Scheme upcoming'
- 'Use Class: C4'
description: 'Advice on the type of analysis that should be performed'
items:
type: string
actions:
type: array
example:
- 'This selective scheme is due to start, early bird discounts for applications may apply.'
- 'Apply for Additional licence'
- 'Planning permission required'
description: 'Advice on the actions that should be performed'
items:
type: string
regulations:
type: array
example:
-
id: 126
type: mandatory
confidence: 100
date_start: '2006-04-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 127
type: additional
confidence: 100
date_start: '2017-10-01T00:00:00.000Z'
date_end: '2022-09-30T23:59:59.000Z'
link: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation: 0
-
id: 806
type: selective
confidence: 100
date_start: '2022-10-01T00:00:00.000Z'
date_end: '2027-09-30T23:59:59.000Z'
link: 'https://committees.royalgreenwich.gov.uk/CalendarofMeetings/tabid/70/ctl/ViewMeetingPublic/mid/397/Meeting/2320/Committee/72/SelectedTab/Documents/Default.aspx'
consultation: 0
-
id: 10
type: article4
confidence: null
date_start: '2018-10-01T00:00:00.000Z'
date_end: null
link: 'https://www.royalgreenwich.gov.uk/info/200191/planning_policy_and_strategy/1793/article_4_direction_areas/2'
consultation: 0
description: 'The direct regulatory information of the schemes that apply to the property'
items:
type: object
properties:
id:
type: integer
example: 126
type:
type: string
example: mandatory
confidence:
type: integer
example: 100
date_start:
type: string
example: '2006-04-01T00:00:00.000Z'
date_end:
type: string
example: null
link:
type: string
example: 'https://www.royalgreenwich.gov.uk/info/200290/multiple_occupancy_homes/937/apply_for_a_hmo_licence'
consultation:
type: integer
example: 0
licence_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
date_start:
type: string
example: null
date_end:
type: string
example: null
max_people:
type: string
example: null
max_households:
type: string
example: null
reference:
type: string
example: null
planning_application:
type: object
properties:
status:
type: string
example: null
application:
type: object
properties:
type:
type: string
example: null
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 409228f9-1583-4993-8efe-25a073ba757d
description: 'The unique id of api request'
400:
description: 'Request body validation failed'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 103000
description: 'Validation error: The address field is required.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 103000
description:
type: string
example: 'Validation error: The address field is required.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
404:
description: 'Property resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 205001
description: 'The property resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 205001
description:
type: string
example: 'The property resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
409:
description: 'Resource Conflict'
content:
application/json:
schema:
type: object
example:
status: 409
message: 'Resource Conflict'
code: 700001
description: 'Request cannot complete due to conflicting operation.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 409
message:
type: string
example: 'Resource Conflict'
code:
type: integer
example: 700001
description:
type: string
example: 'Request cannot complete due to conflicting operation.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Property Methods'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
address:
type: string
description: 'A full street level address or UPRN.'
example: '52 Crown Street, London, WC1E 6JP'
postcode:
type: string
description: 'The property’s postcode.'
example: 'WC1E 6JP'
external_reference:
type: string
description: 'Your own external reference.'
example: ref-12345
people:
type: integer
description: 'Number of people living in the property.'
example: 5
households:
type: integer
description: 'Number of households living in the property.'
example: 3
storeys_internal:
type: integer
description: 'Number of internal storeys of the building, e.g. a flat above a shop = 2 storeys.'
example: 2
storeys_external:
type: integer
description: 'Number of external storeys of the building, e.g. a flat above a shop = 2 storeys.'
example: 2
above_commercial:
type: integer
description: 'Is the property above commercial premises?.'
example: 1
enum:
- '0'
- '1'
rooms:
type: integer
description: 'Number of bedrooms in the property.'
example: 3
rent:
type: integer
description: 'Amount of rent paid, weekly in pence.'
example: 360000
property_category:
type: string
description: 'This is the category of the property under the Housing Act 2004. In most cases this field can be left as null.'
example: licenseable
enum:
- single
- s254
- s257
- licenseable
property_class:
type: string
description: 'Knowing the type of property will allow us to assess compliance in terms of residential planning permission required across the UK.'
example: house
enum:
- house
- flat
notes:
type: string
description: ''
example: ''
licence_status:
type: string
description: ''
example: requested
enum:
- applied
- inprogress
- requested
licence_type:
type: string
description: "This is the result of the Kamma platform's assessment."
example: additional
enum:
- unknown
- mandatory
- additional
- selective
- none
licence_date_start:
type: string
description: 'Licence start date. Must be a valid date in the format Y-m-d
.'
example: '2020-01-25'
licence_date_end:
type: string
description: 'Licence end date. Must be a valid date in the format Y-m-d
.'
example: '2025-01-25'
licence_max_people:
type: integer
description: 'Both Mandatory and Additional licensing will impose a limit on the number of occupants.'
example: 5
licence_max_households:
type: integer
description: ''
example: 7
licence_reference:
type: string
description: 'Optional; licence reference issued by the Local Authority.'
example: ref-12345
planning_status:
type: string
description: ''
example: inprogress
enum:
- applied
- inprogress
- requested
planning_reference:
type: string
description: ''
example: ref-12345
required:
- address
- postcode
parameters:
-
in: path
name: identifier
description: 'A Kamma Property Id.'
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
required: true
schema:
type: string
'/api/properties/archive/{identifier}':
delete:
summary: 'Property Archive'
operationId: propertyArchive
description: 'When requested with a valid identifier, the property associated with the token is deleted from the KammaData system'
parameters:
-
in: header
name: X-SSO-API-Key
description: ''
example: '{{KAMMA_SSO_API_KEY}}'
schema:
type: string
responses:
200:
description: Success
content:
application/json:
schema:
type: object
example:
result:
id: 'kamma:property:ea357bde17331f4217bd7898c50175fa'
success: true
status:
code: 200
message: OK
response_id: 1234-1234-1234-1234-1234
properties:
result:
type: object
properties:
id:
type: string
example: 'kamma:property:ea357bde17331f4217bd7898c50175fa'
description: 'The property unique identifier'
success:
type: boolean
example: true
description: 'Success state of the archive request'
status:
type: object
properties:
code:
type: integer
example: 200
message:
type: string
example: OK
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
400:
description: 'Invalid PropertyToken token'
content:
application/json:
schema:
type: object
example:
status: 400
message: 'Bad Request'
code: 101000
description: 'The identity token was invalid, must be in the form of kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 400
message:
type: string
example: 'Bad Request'
code:
type: integer
example: 101000
description:
type: string
example: 'The identity token was invalid, must be in the form of kamma:property:ea357bde17331f4217bd7898c50175fa. Please refer to docs for more information.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
404:
description: 'Property resource not found'
content:
application/json:
schema:
type: object
example:
status: 404
message: 'Not Found'
code: 205001
description: 'The property resource was not found'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 404
message:
type: string
example: 'Not Found'
code:
type: integer
example: 205001
description:
type: string
example: 'The property resource was not found'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
409:
description: 'Resource Conflict'
content:
application/json:
schema:
type: object
example:
status: 409
message: 'Resource Conflict'
code: 700001
description: 'Request cannot complete due to conflicting operation.'
response_id: 1234-1234-1234-1234-1234
properties:
status:
type: integer
example: 409
message:
type: string
example: 'Resource Conflict'
code:
type: integer
example: 700001
description:
type: string
example: 'Request cannot complete due to conflicting operation.'
response_id:
type: string
example: 1234-1234-1234-1234-1234
description: 'The unique id of api request'
500:
description: 'System error'
content:
application/json:
schema:
type: object
example:
status: 500
message: 'Internal Server error'
code: 201002
description: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
properties:
status:
type: integer
example: 500
message:
type: string
example: 'Internal Server error'
code:
type: integer
example: 201002
description:
type: string
example: 'The server encountered an unexpected condition that prevented it from fulfilling the request'
tags:
- 'Property Methods'
parameters:
-
in: path
name: identifier
description: 'A Kamma Property Id.'
example: 'kamma:property:d293bfc0e2fc69b2a411ecc1dcdff3e0'
required: true
schema:
type: string
tags:
-
name: 'EPC Checker Methods'
description: ''
-
name: 'Legislation Checker Methods'
description: "\nThe Determination Checker Methods return information on the licensing schemes and consultations that the subject property geographically sits within. This will not give you the exact licence needed (see “Property Methods” for that) as that is dependent on the occupancy profile of the property (i.e. how many people are occupying it).\n\nThis also includes the same information on HMO (C3 -> C4) Article 4 Directions."
-
name: 'Licence Register Methods'
description: ''
-
name: 'Property Methods'
description: "\nThe Property Methods return information on the licensing determination and requirement for the subject property given its occupancy profile and other relevant property data. These are the most commonly used Methods in the Kamma API."
components:
securitySchemes:
default:
type: apiKey
name: X-SSO-API-Key
in: header
description: "```bash\nX-SSO-API-KEY: [example-api-key]\nAccept: application/json\nContent-Type: application/json\nAccept: application/json\n```\n\nIf an invalid API key is specified or the API key is missing, \nan HTTP status of 401 Unauthorized will be returned in the response headers."
security:
-
default: []