{"files":{"SKILL.md":"---\nname: groundwater-wells-aquifers-and-registry-api\ndescription: \"Groundwater Wells, Aquifers and Registry API skill. Use when working with Groundwater Wells, Aquifers and Registry for aquifer-codes, aquifers, cities. Covers 24 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Groundwater Wells, Aquifers and Registry API\nAPI version: v1\n\n## Auth\nApiKey JWT in header\n\n## Base URL\nhttps://apps.nrs.gov.bc.ca/gwells/api/v1/\n\n## Setup\n1. Set your API key in the appropriate header\n2. GET /aquifer-codes/demand/ -- return a list of aquifer demand codes\n3. Explore available endpoints below\n\n## Endpoints\n24 endpoints across 9 groups. See references/api-spec.lap for full details.\n\n### Aquifer-codes\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /aquifer-codes/demand/ | return a list of aquifer demand codes |\n| GET | /aquifer-codes/materials/ | return a list of aquifer material codes |\n| GET | /aquifer-codes/productivity/ | return a list of aquifer productivity codes |\n| GET | /aquifer-codes/quality-concerns/ | return a list of quality concern codes |\n| GET | /aquifer-codes/subtypes/ | return a list of aquifer subtype codes |\n| GET | /aquifer-codes/vulnerability/ | return a list of aquifer vulnerability codes |\n| GET | /aquifer-codes/water-use/ | return a list of water use codes |\n\n### Aquifers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /aquifers/ | return a list of aquifers |\n| GET | /aquifers/names/ | List all aquifers in a simplified format |\n| GET | /aquifers/{aquifer_id}/ | return details of aquifers |\n| GET | /aquifers/{aquifer_id}/files | list files found for the aquifer identified in the uri |\n\n### Cities\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /cities/drillers/ | returns a list of cities with a qualified, registered operator (driller or installer) |\n| GET | /cities/installers/ | returns a list of cities with a qualified, registered operator (driller or installer) |\n\n### Config\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /config | serves general configuration |\n\n### Drillers\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /drillers/ | Returns a list of all person records |\n| GET | /drillers/names/ | Search for a person in the Register |\n| GET | /drillers/{person_guid}/files/ | list files found for the aquifer identified in the uri |\n\n### Keycloak\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /keycloak | serves keycloak config |\n\n### Submissions\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /submissions/options/ | Options required for submitting activity report forms |\n\n### Surveys\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /surveys/ | returns a list of active surveys |\n\n### Wells\n| Method | Path | Description |\n|--------|------|-------------|\n| GET | /wells/ | returns a list of wells |\n| GET | /wells/tags/ | seach for wells by tag or owner |\n| GET | /wells/{tag}/files | list files found for the well identified in the uri |\n| GET | /wells/{well_tag_number} | Return well detail. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"List all demand?\" -> GET /aquifer-codes/demand/\n- \"List all materials?\" -> GET /aquifer-codes/materials/\n- \"List all productivity?\" -> GET /aquifer-codes/productivity/\n- \"List all quality-concerns?\" -> GET /aquifer-codes/quality-concerns/\n- \"List all subtypes?\" -> GET /aquifer-codes/subtypes/\n- \"List all vulnerability?\" -> GET /aquifer-codes/vulnerability/\n- \"List all water-use?\" -> GET /aquifer-codes/water-use/\n- \"Search aquifers?\" -> GET /aquifers/\n- \"Search names?\" -> GET /aquifers/names/\n- \"Get aquifer details?\" -> GET /aquifers/{aquifer_id}/\n- \"List all files?\" -> GET /aquifers/{aquifer_id}/files\n- \"List all drillers?\" -> GET /cities/drillers/\n- \"List all installers?\" -> GET /cities/installers/\n- \"List all config?\" -> GET /config\n- \"Search drillers?\" -> GET /drillers/\n- \"List all keycloak?\" -> GET /keycloak\n- \"List all options?\" -> GET /submissions/options/\n- \"List all surveys?\" -> GET /surveys/\n- \"List all wells?\" -> GET /wells/\n- \"Search tags?\" -> GET /wells/tags/\n- \"Get well details?\" -> GET /wells/{well_tag_number}\n- \"How to authenticate?\" -> See Auth section above\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Paginated endpoints accept limit/offset or cursor parameters\n\n## References\n- Full spec: See references/api-spec.lap for complete endpoint details, parameter tables, and response schemas\n\n> Generated from the official API spec by [LAP](https://lap.sh)\n","references/api-spec.lap":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api Groundwater Wells, Aquifers and Registry API\n@base https://apps.nrs.gov.bc.ca/gwells/api/v1/\n@version v1\n@auth ApiKey JWT in header\n@endpoints 24\n@hint download_for_search\n@toc aquifer-codes(7), aquifers(4), cities(2), config(1), drillers(3), keycloak(1), submissions(1), surveys(1), wells(4)\n\n@group aquifer-codes\n@endpoint GET /aquifer-codes/demand/\n@desc return a list of aquifer demand codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/materials/\n@desc return a list of aquifer material codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/productivity/\n@desc return a list of aquifer productivity codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/quality-concerns/\n@desc return a list of quality concern codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/subtypes/\n@desc return a list of aquifer subtype codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/vulnerability/\n@desc return a list of aquifer vulnerability codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifer-codes/water-use/\n@desc return a list of water use codes\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endgroup\n\n@group aquifers\n@endpoint GET /aquifers/\n@desc return a list of aquifers\n@optional {aquifer_id: num, ordering: str # Which field to use when ordering the results., search: str # A search term., limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /aquifers/names/\n@desc List all aquifers in a simplified format\n@optional {search: str # A search term.}\n@returns(200)\n\n@endpoint GET /aquifers/{aquifer_id}/\n@desc return details of aquifers\n@returns(200) {aquifer_id: int, aquifer_name: str, area: str(decimal), demand_description: str, demand: str, known_water_use_description: str, known_water_use: str, litho_stratographic_unit: str, location_description: str, mapping_year: int, material_description: str, material: str, notes: str, productivity_description: str, productivity: str, quality_concern_description: str, quality_concern: str, subtype_description: str, subtype: str, vulnerability_description: str, vulnerability: str}\n\n@endpoint GET /aquifers/{aquifer_id}/files\n@desc list files found for the aquifer identified in the uri\n@returns(200) {public: [map], private: [map]} # OK\n\n@endgroup\n\n@group cities\n@endpoint GET /cities/drillers/\n@desc returns a list of cities with a qualified, registered operator (driller or installer)\n@returns(200)\n\n@endpoint GET /cities/installers/\n@desc returns a list of cities with a qualified, registered operator (driller or installer)\n@returns(200)\n\n@endgroup\n\n@group config\n@endpoint GET /config\n@desc serves general configuration\n@returns(200)\n\n@endgroup\n\n@group drillers\n@endpoint GET /drillers/\n@desc Returns a list of all person records\n@optional {search: str # A search term., ordering: str # Which field to use when ordering the results., limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200)\n\n@endpoint GET /drillers/names/\n@desc Search for a person in the Register\n@optional {search: str # A search term.}\n@returns(200)\n\n@endpoint GET /drillers/{person_guid}/files/\n@desc list files found for the aquifer identified in the uri\n@returns(200) {public: [map], private: [map]} # OK\n\n@endgroup\n\n@group keycloak\n@endpoint GET /keycloak\n@desc serves keycloak config\n@returns(200)\n\n@endgroup\n\n@group submissions\n@endpoint GET /submissions/options/\n@desc Options required for submitting activity report forms\n@returns(200)\n\n@endgroup\n\n@group surveys\n@endpoint GET /surveys/\n@desc returns a list of active surveys\n@returns(200)\n\n@endgroup\n\n@group wells\n@endpoint GET /wells/\n@desc returns a list of wells\n@optional {limit: int # Number of results to return per page., offset: int # The initial index from which to return the results.}\n@returns(200) {count: int, next: str(uri), previous: str(uri), results: [map]}\n\n@endpoint GET /wells/tags/\n@desc seach for wells by tag or owner\n@optional {search: str # A search term., ordering: str # Which field to use when ordering the results.}\n@returns(200)\n\n@endpoint GET /wells/{tag}/files\n@desc list files found for the well identified in the uri\n@returns(200) {public: [map], private: [map]} # OK\n\n@endpoint GET /wells/{well_tag_number}\n@desc Return well detail.\n@returns(200) {well_guid: str(uuid), well: int, well_tag_number: int, identification_plate_number: int, owner_full_name: str, well_class: str, well_subclass: str(uuid), intended_water_use: str, well_status: str, licenced_status: str, street_address: str, city: str, legal_lot: str, legal_plan: str, legal_district_lot: str, legal_block: str, legal_section: str, legal_township: str, legal_range: str, land_district: str, legal_pid: int, well_location_description: str, construction_start_date: str(date), construction_end_date: str(date), alteration_end_date: str(date), decommission_start_date: str(date), decommission_end_date: str(date), person_responsible: map{person_guid: str(uuid), name: str}, company_of_person_responsible: map{org_guid: str(uuid), name: str, org_verbose_name: str}, drilling_company: str(uuid), well_identification_plate_attached: str, id_plate_attached_by: str, water_supply_system_name: str, water_supply_system_well_name: str, latitude: str(decimal), longitude: str(decimal), coordinate_acquisition_code: str, ground_elevation: str(decimal), ground_elevation_method: str, drilling_method: str, other_drilling_method: str, well_orientation: bool, surface_seal_material: str, surface_seal_length: str(decimal), surface_seal_thickness: str(decimal), surface_seal_method: str, surface_seal_depth: str(decimal), backfill_type: str, backfill_depth: str(decimal), liner_material: str, liner_diameter: str(decimal), liner_thickness: str(decimal), liner_from: str(decimal), liner_to: str(decimal), screen_intake_method: str, screen_type: str, screen_material: str, other_screen_material: str, screen_opening: str, screen_bottom: str, other_screen_bottom: str, screen_information: str, filter_pack_from: str(decimal), filter_pack_to: str(decimal), filter_pack_thickness: str(decimal), filter_pack_material: str, filter_pack_material_size: str, development_method: str, development_hours: str(decimal), development_notes: str, water_quality_characteristics: [str], water_quality_colour: str, water_quality_odour: str, total_depth_drilled: str(decimal), finished_well_depth: str(decimal), final_casing_stick_up: str(decimal), bedrock_depth: str(decimal), static_water_level: str(decimal), well_yield: str(decimal), artesian_flow: str(decimal), artesian_pressure: str(decimal), well_cap_type: str, well_disinfected: bool, comments: str, alternative_specs_submitted: bool, well_yield_unit: str, diameter: str, observation_well_number: str, observation_well_status: str, ems: str, aquifer: int, utm_zone_code: str, utm_northing: int, utm_easting: int, bcgs_id: int, decommission_reason: str, decommission_method: str, sealant_material: str, backfill_material: str, decommission_details: str, aquifer_vulnerability_index: str(decimal), storativity: str(decimal), transmissivity: str(decimal), hydraulic_conductivity: str, specific_storage: str, specific_yield: str(decimal), testing_method: str, testing_duration: int, analytic_solution_type: str(decimal), boundary_effect: str(decimal), yield_estimation_method: str, yield_estimation_rate: str(decimal), yield_estimation_duration: str(decimal), static_level_before_test: str(decimal), drawdown: str(decimal), hydro_fracturing_performed: bool, hydro_fracturing_yield_increase: str(decimal), recommended_pump_depth: str(decimal), recommended_pump_rate: str(decimal), casing_set: [map], screen_set: [map], linerperforation_set: [map], decommission_description_set: [map], lithologydescription_set: [map]}\n\n@endgroup\n\n@end\n"}}