canonical: https://jentic.com/apis/gov.bc.ca/geomark

# Gov Bc Ca GeoMark Web Service REST API

The BC GeoMark Web Service creates and shares small geographic areas of interest as reusable, immutable web resources that can be retrieved in many file formats and coordinate systems. Once a geomark is created with POST /geomarks/new, the same geometry is exposed at /geomarks/{geomarkId} and supporting endpoints in formats such as GeoJSON, KML, and shapefile. This makes it easy to share an area of interest with people who use different mapping software without translating files manually. The service is read-mostly after creation, anonymous, and returns the bounding box, full feature, parts, and a representative point for each geomark.

## For AI agents

Create reusable geographic areas of interest and serve them in multiple file formats and coordinate systems for cross-tool sharing.

## Scope

Does not render maps, geocode addresses, or store large datasets - use for sharing small geographic areas of interest in multiple formats only.

## Capabilities

- Create a geomark from supplied geometry to share an area of interest
- Copy an existing geomark to derive a new shareable resource
- Retrieve a geomark in JSON, GeoJSON, KML, or shapefile format
- Retrieve only the bounding box of a geomark for quick map framing
- Retrieve only the representative point of a geomark for label placement
- Retrieve the parts of a multi-part geomark separately
- Retrieve the full feature geometry of a geomark for spatial analysis

## Use cases

### Cross-Agency Area of Interest Sharing

BC government and partner agencies share a project boundary by uploading geometry to GeoMark and circulating the resulting URL instead of emailing shapefiles. POST /geomarks/new accepts the geometry and assigns a stable geomarkId, and downstream tools fetch the area in their preferred format from /geomarks/{geomarkId}.{fileFormatExtension}. Eliminates format-conversion friction.

Example prompt: Create a geomark from a sample polygon and return the geomark URL plus the GeoJSON download URL.

### Map Framing with Bounding Boxes

Render a map zoomed to a geomark's extent without downloading the full geometry. GET /geomarks/{geomarkId}/boundingBox.{fileFormatExtension} returns just the rectangle that bounds the geomark, which is fast and lightweight for map initialisation. Pair with /geomarks/{geomarkId}/point for a label position.

Example prompt: For an existing geomark ID, retrieve the bounding box as JSON and return its minimum and maximum latitude and longitude.

### Format-Free Distribution to Field Tools

Field crews running different mapping software each request the geomark in their preferred file format from the same shareable URL. The {fileFormatExtension} path parameter selects KML for Google Earth, shapefile for desktop GIS, or GeoJSON for web mapping. This removes the need to ship multiple file copies for a single area of interest.

Example prompt: Retrieve an existing geomark in GeoJSON and return a summary of its feature type and the number of parts.

### AI Agent Boundary Manager

An AI ops agent built on Jentic accepts a polygon from a user, registers a geomark, and returns shareable URLs in GeoJSON, KML, and shapefile in a single response. The agent searches Jentic for 'create a geomark' and loads the POST /geomarks/new operation, so the entire flow happens without the user touching geomark concepts directly.

Example prompt: Use Jentic to search 'create a geomark' and submit a sample polygon, then return the JSON, KML, and shapefile URLs of the resulting geomark.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /geomarks/new | Create a new geomark from supplied geometry |
| POST | /geomarks/copy | Create a geomark by copying existing geomarks |
| GET | /geomarks/{geomarkId}.{fileFormatExtension} | Retrieve a geomark in the requested file format |
| GET | /geomarks/{geomarkId}/boundingBox.{fileFormatExtension} | Retrieve only the geomark's bounding box |
| GET | /geomarks/{geomarkId}/feature.{fileFormatExtension} | Retrieve the full feature geometry |
| GET | /geomarks/{geomarkId}/parts.{fileFormatExtension} | Retrieve the parts of a multi-part geomark |
| GET | /geomarks/{geomarkId}/point.{fileFormatExtension} | Retrieve a representative point for the geomark |

## Key resources

- **create** — Create new geomarks from supplied geometry or by copying an existing geomark
- **info** — Retrieve a geomark's metadata and full geometry in multiple formats
- **boundingBox** — Fetch only the bounding box of a geomark
- **feature** — Fetch the full feature geometry of a geomark
- **parts** — Fetch the individual parts of a multi-part geomark
- **point** — Fetch a representative point for the geomark

## Why Jentic

- **Setup:** Wiring the GeoMark Web Service by hand means choosing among its production, test, and delivery hosts and mapping the geomark creation and retrieval routes with their file-format extensions yourself, even though no credential is required. Through Jentic you install once, import GeoMark from the API Directory, and your agent calls it through one consistent path.
- **Permission scoping:** GeoMark puts the geomark id in the URL path (/geomarks/{geomarkId}), so a rule can pin your agent to one geomark for the read routes such as boundingBox, feature, or point. You choose the operations it may call, so creation routes like /geomarks/new are not included unless you add them.
- **Credential handling:** This service needs no credential, so none is stored, and Jentic still routes each call through your own Jentic One instance so agent activity is logged consistently.
- **Discovery method:** Agents search Jentic by intent such as 'create a geomark' or 'fetch a geomark in geojson', and Jentic returns the matching GeoMark operation with its file-format extension parameter typed so the agent calls the right endpoint without reading the docs.

## Related APIs

- **BC Geocoder REST API** — Use BC Geocoder to find addresses or sites inside a geomark's polygon
- **BC Geographical Names Web Service** — Use bcgnws to list named features inside a geomark's bounding box
- **TomTom Maps API** — TomTom Maps offers global mapping data and tile services rather than BC-specific area sharing

## FAQ

### What authentication does the BC GeoMark Web Service use?

The OpenAPI spec defines no security schemes for this service, so requests are made anonymously over HTTPS. No API key or bearer token is required, and Jentic relays calls as-is without injecting credentials.

### Can I retrieve a geomark in multiple file formats with the BC GeoMark API?

Yes. Each retrieval endpoint accepts a path-level fileFormatExtension such as .json, .geojson, .kml, or .shp. For example, GET /geomarks/{geomarkId}.kml returns the same area in KML for Google Earth and GET /geomarks/{geomarkId}.geojson returns it in GeoJSON for web mapping.

### What are the rate limits for the BC GeoMark Web Service?

The OpenAPI spec does not declare specific rate limits. Because the service is shared public infrastructure, avoid creating geomarks in a tight loop and cache fetched representations on the client when serving them to many users.

### How do I create a geomark through Jentic?

Search Jentic for 'create a geomark', load the POST /geomarks/new operation, and execute with the geometry and source coordinate system. With pip install jentic, the call returns the geomark ID and shareable URLs without requiring credentials.

### Can I copy an existing geomark to make a derived area of interest?

Yes. POST /geomarks/copy creates a new geomark from one or more existing geomark IDs. This is useful when the original geomark needs small edits or when several geomarks need to be combined into a single shareable area.

### Can I limit what my agent is allowed to do with the BC GeoMark API?

Yes. Because you run Jentic One yourself, your own rules decide which GeoMark operations the agent may call. Since the geomark id sits in the URL path, you can pin the agent to one geomark and allow only the read routes such as boundingBox, feature, or point. Creation routes like POST /geomarks/new are excluded unless you explicitly add them, so the agent cannot register new geomarks on its own.
