{"files":{"SKILL.md":"---\nname: geomark-web-service-rest-api\ndescription: \"Geomark Web Service REST API skill. Use when working with Geomark Web Service REST for geomarks. Covers 7 endpoints.\"\nversion: 1.0.0\ngenerator: lapsh\n---\n\n# Geomark Web Service REST API\nAPI version: 4.1.2\n\n## Auth\nNo authentication required.\n\n## Base URL\nhttps://apps.gov.bc.ca/pub/geomark\n\n## Setup\n1. No auth setup needed\n2. GET /geomarks/{geomarkId}/boundingBox.{fileFormatExtension} -- gets the bounding box of the geomark\n3. POST /geomarks/new -- create first new\n\n## Endpoints\n7 endpoints across 1 group. See references/api-spec.lap for full details.\n\n### Geomarks\n| Method | Path | Description |\n|--------|------|-------------|\n| POST | /geomarks/new | Create a new geomark |\n| POST | /geomarks/copy | Create a new geomark by copying the geometries from one or more existing geomarks from the current server. |\n| GET | /geomarks/{geomarkId}/boundingBox.{fileFormatExtension} | Gets the bounding box of the geomark |\n| GET | /geomarks/{geomarkId}/feature.{fileFormatExtension} | Get the feature and attribution of the geomark |\n| GET | /geomarks/{geomarkId}.{fileFormatExtension} | Get information about a particular geomark |\n| GET | /geomarks/{geomarkId}/parts.{fileFormatExtension} | Get the individual geometries within a multi-part geometry |\n| GET | /geomarks/{geomarkId}/point.{fileFormatExtension} | Gets a single spatial point representative of the geomark. |\n\n## Common Questions\nMatch user requests to endpoints in references/api-spec.lap. Key patterns:\n- \"Create a new?\" -> POST /geomarks/new\n- \"Create a copy?\" -> POST /geomarks/copy\n- \"Get boundingBox.{fileFormatExtension} details?\" -> GET /geomarks/{geomarkId}/boundingBox.{fileFormatExtension}\n- \"Get feature.{fileFormatExtension} details?\" -> GET /geomarks/{geomarkId}/feature.{fileFormatExtension}\n- \"Get geomark details?\" -> GET /geomarks/{geomarkId}.{fileFormatExtension}\n- \"Get parts.{fileFormatExtension} details?\" -> GET /geomarks/{geomarkId}/parts.{fileFormatExtension}\n- \"Get point.{fileFormatExtension} details?\" -> GET /geomarks/{geomarkId}/point.{fileFormatExtension}\n\n## Response Tips\n- Check response schemas in references/api-spec.lap for field details\n- Create/update endpoints return the modified resource on success\n- Error responses include status codes and descriptions in the spec\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 Geomark Web Service REST API\n@base https://apps.gov.bc.ca/pub/geomark\n@version 4.1.2\n@endpoints 7\n@toc geomarks(7)\n\n@endpoint POST /geomarks/new\n@desc Create a new geomark\n@returns(200) If the geomark was created via a web service call.\n@errors {302: If the geomark was created and a redirectUrl was specified then the response will redirect to the redirectUrl with the query string parameters geomarkId and geomarkUrl of the created geomark.  Additional reasons for this status code can be found in the [Geomark Web Service Developer Guide](https://apps.gov.bc.ca/pub/geomark/docs/rest-api/), 400: **Couldn't create Geomark.**  Possible reasons:  * No Polygon, Multi-Polygon, or folder(set) of Polygons provided. * A point or line was provided without a buffer width.  Additional reasons for this status code can be found in the [Geomark Web Service Developer Guide](https://apps.gov.bc.ca/pub/geomark/docs/rest-api/), 500: **Internal Server Error**}\n\n@endpoint POST /geomarks/copy\n@desc Create a new geomark by copying the geometries from one or more existing geomarks from the current server.\n@required {geomarkUrl: str # One or more geomark URLs or identifiers to create the new geomark from.}\n@optional {allowOverlap: bool(false/true)=false # Select this option to allow overlapping geometries, bufferMetres: int # The amount to buffer the geometry in metres, must only contain numerical digits (e.g 10). Leave blank and no buffer will be added to input geometries. If blank then any Point, LineString, MultiPoint and MultiLineString geometries will be ignored., bufferSegments: int=8 # If bufferMetres is specified, the number of line segments used in each quadrant to approximate the curve for round end-cap and join styles. Must be > 0., bufferMitreLimit: int=5 # If bufferMetres is specified, the maximum ratio of distance from the original geometry to a mitre buffer point and the buffer amount. If the ratio is greater than this a bevel will be used instead. This prevents infinite distances when the angle between the two lines at a join is small. Must be > 0., bufferCap: str(ROUND/SQUARE/FLAT)=ROUND # If bufferMetres is specified, The style of buffer to use at the ends of a buffered line., bufferJoin: str(ROUND/MITRE/BEVEL)=ROUND # If bufferMetres is specified, The style of buffer to use for joins between the line segments for lines and polygons., callback: str # The callback function a JSON result format would be wrapped in to support Ajax requests., redirectUrl: str # The optional external URL to redirect the user to when the geomark is created rather than showing the geomark info page. The geomarkId and geomarkUrl query string parameters will be added to the redirectUrl so that the target application gets a reference to the geomark., failureRedirectUrl: str # The url to redirect if the geomark could not be created. The URL will include a _Error parameter with the error message for the field that caused the error., resultFormat: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format the geomark info resource should be returned using.}\n@returns(200) If the geomark was created via a web service call.\n@errors {302: If the geomark was created and a redirectUrl was specified then the response will redirect to the redirectUrl with the query string parameters geomarkId and geomarkUrl of the created geomark.  Additional reasons for this status code can be found in the [Geomark Web Service Developer Guide](https://apps.gov.bc.ca/pub/geomark/docs/rest-api/), 400: **Couldn't create Geomark.**  Possible reasons:  * No Polygon, Multi-Polygon, or folder(set) of Polygons provided. * A point or line was provided without a buffer width.  Additional reasons for this status code can be found in the [Geomark Web Service Developer Guide](https://apps.gov.bc.ca/pub/geomark/docs/rest-api/), 500: **Internal Server Error**}\n\n@endpoint GET /geomarks/{geomarkId}/boundingBox.{fileFormatExtension}\n@desc Gets the bounding box of the geomark\n@required {geomarkId: str # The unique identifier for the geomark, fileFormatExtension: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format name extension used to represent the geomark download.}\n@optional {srid: int(4326/3005/3857/26907/26908/26909/26910/26911)=4326 # The srid of the coordinate system the geometry should be converted to.}\n@returns(200) The geomark will be returned in the body of the HTTP response encoded in the requested [file format](https://apps.gov.bc.ca/pub/geomark/docs/fileFormats.html).\n@errors {400: **Coordinate system with srid =  is not supported.**  Check the list of supported [coordinate systems](https://apps.gov.bc.ca/pub/geomark/docs/coordinateSystems.html)., 404: **The geomark  could not be found.**  Check for extra characters on the end of the URL. The geomark may have expired and been deleted., 500: **Internal Server Error**}\n\n@endpoint GET /geomarks/{geomarkId}/feature.{fileFormatExtension}\n@desc Get the feature and attribution of the geomark\n@required {geomarkId: str # The unique identifier for the geomark, fileFormatExtension: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format name extension used to represent the geomark download.}\n@optional {srid: int(4326/3005/3857/26907/26908/26909/26910/26911)=4326 # The srid of the coordinate system the geometry should be converted to.}\n@returns(200) The geomark will be returned in the body of the HTTP response encoded in the requested [file format](https://apps.gov.bc.ca/pub/geomark/docs/fileFormats.html).\n@errors {400: **Coordinate system with srid =  is not supported.**  Check the list of supported [coordinate systems](https://apps.gov.bc.ca/pub/geomark/docs/coordinateSystems.html)., 404: **The geomark  could not be found.**  Check for extra characters on the end of the URL. The geomark may have expired and been deleted., 500: **Internal Server Error**}\n\n@endpoint GET /geomarks/{geomarkId}.{fileFormatExtension}\n@desc Get information about a particular geomark\n@required {geomarkId: str # The unique identifier for the geomark., fileFormatExtension: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format name extension used to represent the geomark download.}\n@optional {srid: int(4326/3005/3857/26907/26908/26909/26910/26911)=4326 # The srid of the coordinate system the geometry should be converted to.}\n@returns(200) The geomark will be returned in the body of the HTTP response encoded in the requested [file format](https://apps.gov.bc.ca/pub/geomark/docs/fileFormats.html).\n@errors {404: **The geomark  could not be found.**  Check for extra characters on the end of the URL. The geomark may have expired and been deleted., 500: **Internal Server Error**}\n\n@endpoint GET /geomarks/{geomarkId}/parts.{fileFormatExtension}\n@desc Get the individual geometries within a multi-part geometry\n@required {geomarkId: str # The unique identifier for the geomark, fileFormatExtension: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format name extension used to represent the geomark download.}\n@optional {srid: int(4326/3005/3857/26907/26908/26909/26910/26911)=4326 # The srid of the coordinate system the geometry should be converted to.}\n@returns(200) The geomark will be returned in the body of the HTTP response encoded in the requested [file format](https://apps.gov.bc.ca/pub/geomark/docs/fileFormats.html).\n@errors {400: **Coordinate system with srid =  is not supported.**  Check the list of supported [coordinate systems](https://apps.gov.bc.ca/pub/geomark/docs/coordinateSystems.html)., 404: **The geomark  could not be found.**  Check for extra characters on the end of the URL. The geomark may have expired and been deleted., 500: **Internal Server Error**}\n\n@endpoint GET /geomarks/{geomarkId}/point.{fileFormatExtension}\n@desc Gets a single spatial point representative of the geomark.\n@required {geomarkId: str # The unique identifier for the geomark., fileFormatExtension: str(json/xml/kml/kmz/shp/shpz/geojson/gml/gpkg/wkt) # The file format name extension used to represent the geomark download.}\n@optional {srid: int(4326/3005/3857/26907/26908/26909/26910/26911)=4326 # The srid of the coordinate system the geometry should be converted to.}\n@returns(200) The geomark will be returned in the body of the HTTP response encoded in the requested [file format](https://apps.gov.bc.ca/pub/geomark/docs/fileFormats.html).\n@errors {400: **Coordinate system with srid =  is not supported.**  Check the list of supported [coordinate systems](https://apps.gov.bc.ca/pub/geomark/docs/coordinateSystems.html)., 404: **The geomark  could not be found.**  Check for extra characters on the end of the URL. The geomark may have expired and been deleted., 500: **Internal Server Error**}\n\n@end\n"}}