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' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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 description: 'The EPC object. For full description see [EPC Schema](/docs/index.html#epc-schema).' status: type: object example: code: 200 message: 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: '' description: '' parameters: - in: header name: X-SSO-API-Key description: '' example: '{{KAMMA_SSO_API_KEY}}' schema: type: string - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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' description: 'Licensing determination result. For full description see [Determination Schema](/docs/index.html#determination-schema).' status: type: object example: code: 200 message: 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' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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' description: 'The licensing object. For full description see [Licensing Schema](/docs/index.html#licensing-schema).' status: type: object example: code: 200 message: 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' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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 description: 'The success state. For full description see [Identifier Schema](/docs/index.html#property-schema).' status: type: object example: code: 200 message: 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' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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 description: 'The success state. For full description see [Identifier Schema](/docs/index.html#property-schema).' status: type: object example: code: 200 message: 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' 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?. Must be one of 0 or 1.' example: 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. Must be one of single, s254, s257, or licenseable.' example: s254 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. Must be one of house or flat.' example: flat notes: type: string description: '' example: '' licence_status: type: string description: 'Must be one of applied, inprogress, or requested.' example: requested licence_type: type: string description: 'This is the result of the Kamma platform''s assessment. Must be one of unknown, mandatory, additional, selective, or none.' example: additional 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: 5 licence_reference: type: string description: 'Optional; licence reference issued by the Local Authority.' example: ref-12345 planning_status: type: string description: 'Must be one of applied, inprogress, or requested.' example: applied planning_reference: type: string description: '' example: ref-12345 required: - address - postcode '/api/properties/sync/{identifier}': put: summary: 'Property Sync' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: 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 description: 'The success state. For full description see [Identifier Schema](/docs/index.html#property-schema).' status: type: object example: code: 200 message: 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' 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?. Must be one of 0 or 1.' example: 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. Must be one of single, s254, s257, or licenseable.' example: s254 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. Must be one of house or flat.' example: flat notes: type: string description: '' example: '' licence_status: type: string description: 'Must be one of applied, inprogress, or requested.' example: applied licence_type: type: string description: 'This is the result of the Kamma platform''s assessment. Must be one of unknown, mandatory, additional, selective, or none.' example: 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: 12 licence_reference: type: string description: 'Optional; licence reference issued by the Local Authority.' example: ref-12345 planning_status: type: string description: 'Must be one of applied, inprogress, or requested.' example: 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' 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 - in: header name: Content-Type description: '' example: application/json schema: type: string - in: header name: Accept description: '' example: application/json 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 example: id: 'kamma:property:ea357bde17331f4217bd7898c50175fa' success: true description: 'The success state' status: type: object example: code: 200 message: 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' 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: '' security: - default: []