Precisely-complete-mcp is a well-curated geolocation and property data platform with 68 focused tools. The tool definitions are comprehensive, with clear descriptions that explain when and why to use each tool. Most tools follow a consistent pattern with typed parameters and detailed input schemas. However, truncated descriptions in the raw output prevent full assessment of edge-case tools. The server shows strong domain expertise (geocoding, risk assessment, property data, demographics) with logical tool organization. Tools include helpful negative guidance ("Do NOT use for...") that aids agent routing. Minor schema consistency issues exist around nested objects and some overly complex input structures. Tool count (68) falls within the productive range (3-40 preferred, up to 100 acceptable) but slightly exceeds optimal curation threshold.
Return ranked address autocomplete suggestions for a partial address string. Returns up to maxResults matching addresses. Suitable for full street address completion (house number + street + city). Do NOT use for postal code-only or city-only completion — use autocomplete_postal_city instead. Do NOT use for one-time full address resolution — use geocode or verify_address instead. For lower-latency consider autocomplete_v2 instead. Output: Array of address suggestion strings with structured address components (addressLine, city, state, postal code, country).
Return autocomplete suggestions for postal codes and city names — not full street addresses. Use when a user is typing a ZIP code, postal code, or city name and you want to offer matching city/postal combinations. Do NOT use for full street address completion — use autocomplete or autocomplete_v2 instead. Output: Array of postal/city suggestion objects with postal code, city name, state, and country.
Return ranked address autocomplete suggestions using the V2 (express) engine, which is faster and optimized for lower latency. Use when latency is critical and the user is providing a full street address. Do NOT use for postal code or city-only completion — use autocomplete_postal_city instead. Output: Array of address suggestion objects with structured components (street, city, state, postal code, country).
Returns nearest locations or points of interest within specified distance from input geometry/address, by default ordered closest first. Input can also be an address, no need to geocode it. Use list_spatial_tables tool to find available spatial tables/data, get_table_metadata tool for available columns and their metadata, and get_spatial_products tool to discover recommended summary attributes, label columns, and data vintage, layer extents, and other metadata. Returns: GeoJSON FeatureCollection with features. Includes distance values, recordsMatched, recordsReturned, and metadata. Example 1 Request (Geometry): {'tableName': '/risks/wildfire_risk_fire_perimeter', 'attributes': ['incremental_s_no', 'state', 'wr_id'], 'location': {'format': 'wkt', 'value': 'LINESTRING (-122.769499 38.005947, -122.773625 37.999047)'}, 'withinDistance': '10 mi', 'distanceAttributeName': 'dist', 'maxFeatures': '5', 'inputPointAttributeName': 'inputPoint', 'targetPointAttributeName': 'targetPoint', 'bearingAttributeName': 'bearing'} Example 2 Request (Address): {'tableName': '/risks/wildfire_risk_fire_perimeter', 'attributes': ['incremental_s_no', 'state', 'wr_id'], 'location': {'format': 'address', 'value': 'POINT REYES STATION CA', 'country': 'United States'}, 'withinDistance': '10 mi', 'distanceAttributeName': 'dist', 'maxFeatures': '5', 'inputPointAttributeName': 'inputPoint', 'targetPointAttributeName': 'targetPoint', 'bearingAttributeName': 'bearing'}
Tool count at 68 exceeds optimal curation threshold of 40; suggests incremental feature bloat or incomplete consolidation of overlapping functionality
Truncated descriptions in raw output indicate incomplete documentation; tools like 'autocomplete', 'search_at_location', and others have cut-off descriptions ending mid-sentence
Complex nested object schemas for spatial queries (find_nearest_candidates, search_at_location, overlap) require agent to understand multi-level input structures with conditional format handling
Redundant tool variants (autocomplete vs autocomplete_v2, timezone_addresses vs timezone_locations, PSAP tools with 4 combinations) increase cognitive load for agent tool selection
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-04-24 | D | 55 | 2025-11-25 | v1 |
Resolve the approximate geographic location (city-level) of a device or network from its public IP address. Returns country, region, city, postal code, and approximate latitude/longitude. Use this tool when you have a public IPv4 or IPv6 address and need to infer its physical location. Do NOT use for precise location — IP geolocation is approximate (city-level accuracy at best) and should not be used as a substitute for GPS or address-based geocoding. Do NOT use with private/reserved IP addresses (e.g., 192.168.x.x, 10.x.x.x, 127.0.0.1) — those will not resolve to a meaningful location. For WiFi-based location, use geo_locate_wifi_access_point instead. Output: Object with country, region/state, city, postal code, approximate latitude/longitude, and ISP information for the given IP address.
Resolve the geographic location of a device from nearby WiFi access point signal data. Returns latitude, longitude, and accuracy radius based on the MAC address, optionally signal strength of the observed WiFi access point(s). Use this tool when you have WiFi scanning data (MAC address, signal strength) and need to determine physical location without GPS. Do NOT use if you have an IP address — use geo_locate_ip_address instead. Do NOT use if you have a street address — use geocode instead. Output: Object with latitude, longitude, and accuracy radius (in meters) for the resolved location of the WiFi access point.
Convert a free-text street address into geographic coordinates (latitude/longitude) and a structured address record including PB_KEY/PreciselyID. Use this tool when you need lat/lon from a human-readable address string. Do NOT use for reverse lookup (coordinates → address) — use reverse_geocode instead. Do NOT use when you already have a Precisely key like PB_KEY — use lookup instead. Do NOT use when address validation and standardization is the goal — use verify_address instead Output: Object with latitude, longitude, standardized address components (street number, street name, city, state, postal code), and confidence/match quality indicators, other details.
Retrieve all addresses associated with the same property or parcel as a given PreciselyID, via a custom GraphQL query. Address families include all delivery points sharing a parent location (e.g., all units in a multi-unit building). Use this tool when you have a PreciselyID and need to enumerate all related addresses at that property. Requires queryType = 'PRECISELY_ID'. Do NOT use with ADDRESS or LOCATION query types — this tool only supports PRECISELY_ID. Safe fields for the 'addressFamily { data { ... } }' section: preciselyID, addressNumber, streetName, city, admin1ShortName, postalCode Always include the metadata section: pageNumber, pageCount, totalPages, count, vintage Example request: {'data': { 'query': 'query GetAddressFamily($id: String!, $queryType: QueryType!) { getById(id: $id, queryType: $queryType) { addresses { data { preciselyID addressFamily(pageNumber: 1, pageSize: 20) { metadata { pageNumber pageCount totalPages count vintage } data { preciselyID addressNumber streetName city admin1ShortName postalCode } } } } } }', 'variables': {'id': 'P0000GL41OME', 'queryType': 'PRECISELY_ID'} }} Output: GraphQL response with paginated list of related address records sharing the same parent property, with pagination metadata.
Retrieve detailed address record(s) from the Precisely address database using a custom GraphQL query. Allows fine-grained control over which address fields to request. Use this tool when the standard geocode or lookup tools do not return sufficient detail and you need to construct a custom GraphQL query. Do NOT use if a simpler tool (geocode, lookup, verify_address) already covers your need. Only use the safe, tested fields listed below — other fields may cause 400 errors. Safe fields for the 'addresses { data { ... } }' section: preciselyID, addressNumber, streetName, city, admin1ShortName, postalCode Example request: {'data': { 'query': 'query GetAddressDetailed($address: String!, $country: String) { getByAddress(address: $address, country: $country) { addresses { data { preciselyID addressNumber streetName city admin1ShortName postalCode } } } }', 'variables': {'address': '42 Valley Of The Sun Dr, Fairplay, CO 80440', 'country': 'US'} }} Output: GraphQL response with address data matching the requested fields. Structure depends on the query provided.
Retrieve building data for a US address, including building type, area, elevation, longitude, latitude, and geography ID. Use this tool when you need building-level data (type, area, elevation) rather than property ownership or valuation data. Do NOT use if you need full property data (ownership, valuation) — use get_property_data instead. Do NOT use for parcel/land data — use get_parcels_by_address instead. Only works for US addresses. Output: Object with building ID, UBID (universal building ID), building type (e.g., Residential, Commercial), FIPS code, geography ID, coordinates, elevation, and building area.
Retrieve coastal wind and hurricane risk data for a US address, including proximity to coastline, wind pool territory, and hurricane wind speed/debris classifications. Use this tool for properties near coastlines where hurricane or coastal wind risk is relevant. Do NOT use if you need flood zone (FEMA) risk — use get_flood_risk_by_address instead. Do NOT use if you need wildfire, earthquake, structural fire, or weather risk. Only works for US addresses. Output: Object with distance to nearest coastline, nearest waterbody, adjacent waterbody, wind pool description, and hurricane wind speeds, and wind-borne debris zone classifications.
Retrieve national crime index values for a US address, including overall composite, violent crime and property crime, and their respective level and descriptions. Use this tool when you need to assess crime risk for a location. Do NOT use for weather, flood, fire, earthquake, wildfire, or coastal risk — use the specific risk tools. Do NOT use for demographic segmentation — use get_demographics or the specific PSYTE/Ground View tools. Only works for US addresses. Output: Object with composite, violent crime, and property crime national index values, and categories, descriptions for each.
Retrieve a combined demographic profile for a US address, including both PSYTE geodemographic segmentation and Ground View census demographics. Returns lifestyle segment classification and key census block group statistics. Use this tool when you need a broad demographic overview combining both PSYTE and Ground View datasets. Do NOT use if you only need PSYTE segmentation — use get_psyte_geodemographics_by_address instead. Do NOT use if you only need Ground View statistics — use get_ground_view_by_address instead. Do NOT use for crime index, neighborhood names, school data, building, or parcel data. Only works for US addresses. Output: Object with PSYTE segment code and description, household income, property value, adult age, household composition variables from PSYTE, census block group statistics like average household income, education percentages, average home value, rent.
Retrieve earthquake risk data for a US address, including historical earthquake event counts, nearest fault details, and seismic site classification. Use this tool when you need to assess earthquake/seismic exposure for a property. Do NOT use if you need flood, wildfire, fire (structural), coastal, or weather risk — use the corresponding specific risk tool instead. Only works for US addresses. Output: Object with historical earthquake event counts by magnitude level, nearest fault distance, type, age etc., and NEHRP site classification and code.
Retrieve flood risk assessment data for a US address, including FEMA flood zone classification, map effective and revision dates, and other risk indicators. Use this tool when you need to assess flood exposure for a property. Do NOT use if you need wildfire, fire, earthquake, coastal, or weather risk — use the corresponding specific risk tool instead. Only works for US addresses. Output: Object with FEMA flood zone code and other risk indicators like address elevation, distances to 100-year and 500-year flood zones, elevation profile to nearest waterbody, distance to nearest waterbody.
Retrieve Ground View census block group demographic statistics for a US address. Ground View is a Precisely dataset providing census-derived population, housing, education, employment, and economic statistics at the census block group level. Use this tool when you specifically need Ground View demographic statistics. Do NOT use if you also need PSYTE segment data — use get_demographics instead (returns both PSYTE and Ground View in one call). Do NOT use for crime, risk, building, parcel, or school data. Only works for US addresses. Output: Object with census block group demographic statistics including population age distribution percentages, marital status percentages, education percentages, unemployment rate, owner/renter occupied percentages), average vehicles per household, average rent, average home value, and average household income.
Retrieve historical weather risk data for a US address, including exposure to severe weather events such as hail, wind, tornado, and hurricane. Use this tool when you need historical weather hazard information for insurance, underwriting, or risk profiling. Do NOT use for flood, wildfire, earthquake, fire protection class, or coastal risk — use the corresponding specific risk tools instead. Only works for US addresses. Output: Object with risk level classifications for hail, tornado, wind, and hurricane event count and range.
Retrieve neighborhood profile data for a US address, including neighborhood name, walkability/mobility scores, and real estate market characteristics. Use this tool when you need neighborhood-level data including mobility scores, property prices, sales trends, or property type breakdown. Do NOT use for demographic data — use get_demographics or PSYTE/Ground View tools instead. Do NOT use for school, building, parcel, or crime data. Only works for US addresses. Output: Object with neighborhood name and ID, walkability/bike/transit/drive scores, average single-family residence price and sales trend direction, average property year built, bedrooms, bathrooms, living square footage, lot size, pool percentage, single-family residence percentage, and counts of commercial, single-family, condo, duplex, and apartment properties.
Retrieve parcel records by owner via a custom GraphQL query. Supports two query modes: 1. By ID: provide 'id' and 'queryType' (one of: PRECISELY_ID, PARCEL_ID, BUILDING_ID, PLACE_ID, DUNS_ID) 2. By address: provide 'address' string only — do NOT pass queryType or id variables This tool does NOT support coordinate-based lookups. Use this tool when you need parcel ownership data and require custom field selection. Do NOT use if get_parcels_by_address already meets your need (simpler interface). Only use the safe, tested fields listed below. Safe fields for the 'parcels { data { ... } }' section: parcelID, fips, geographyID, apn, parcelArea, longitude, latitude, elevation Always include the metadata section: pageNumber, pageCount, totalPages, count, vintage Example 1 — By PreciselyID (uses queryType + id): {'data': { 'query': 'query GetParcelByOwner($id: String, $queryType: QueryType, $address: String, $distance: Float, $limit: Int) { getParcelByOwner(id: $id, queryType: $queryType, address: $address, distance: $distance, limit: $limit) { parcels { metadata { pageNumber pageCount totalPages count vintage } data { parcelID fips geographyID apn parcelArea longitude latitude elevation } } } }', 'variables': {'id': 'P0000GL41OME', 'queryType': 'PRECISELY_ID', 'address': 'Boston, MA', 'distance': 1000.0, 'limit': 50} }} Example 2 — By address (NO queryType, NO id — omit both): {'data': { 'query': 'query GetParcelByOwner($address: String, $distance: Float, $limit: Int) { getParcelByOwner(address: $address, distance: $distance, limit: $limit) { parcels { metadata { pageNumber pageCount totalPages count vintage } data { parcelID fips geographyID apn parcelArea longitude latitude elevation } } } }', 'variables': {'address': '123 Main St, Boston, MA', 'distance': 1000.0, 'limit': 50} }} Output: GraphQL response with paginated parcel records matching the query. Includes metadata (pageNumber, totalPages, count, vintage) and parcel data fields.
Retrieve land parcel (lot) data for a US address, including parcel area, APN (Assessor's Parcel Number), FIPS code, longitude, latitude, and geography ID. Use this tool when you need parcel/lot identifiers and area rather than building structure or property ownership information. Do NOT use if you need full property data (ownership, valuation) — use get_property_data instead. Do NOT use for building structure data — use get_buildings_by_address instead. Only works for US addresses. Output: Object with parcel ID, FIPS code, geography ID, APN, parcel area, coordinates, and elevation for the parcel at the input address.
Retrieve points of interest (POI) / businesses at or near a US address using a custom GraphQL query. Returns business names, industry codes, contact information, and location data for places associated with the address. Use this tool when you need business/POI data at a given address. Do NOT use for property, parcel, building, or risk data — use the appropriate property/risk tools instead. Available fields in the 'places { data { ... } }' section: Identity: PBID, pointOfInterestID, preciselyID, parentPreciselyID Business: businessName, brandName, tradeName, franchiseName Location: countryIsoAlpha3Code, localityName, city, admin2, admin1, admin1ShortName Address: addressNumber, streetName, postalCode, formattedAddress, addressLine1, addressLine2 Coordinates: longitude, latitude Georesult: georesult { value description }, georesultConfidence { value description } Contact: countryCallingCode, phone, fax, email, web Hours: open24Hours { value description } Industry: lineOfBusiness, sic1, sic2, sic8, sic8Description, altIndustryCode { value description }, miCode, tradeDivision, groupName, mainClass, subClass Always include the metadata section: pageNumber, pageCount, totalPages, count, vintage Example request: {'data': { 'query': 'query GetPlacesByAddress($address: String!, $country: String) { getByAddress(address: $address, country: $country) { places(pageNumber: 1, pageSize: 20) { metadata { pageNumber pageCount totalPages count vintage } data { PBID pointOfInterestID preciselyID parentPreciselyID businessName brandName tradeName franchiseName countryIsoAlpha3Code localityName city admin2 admin1 admin1ShortName addressNumber streetName postalCode formattedAddress addressLine1 addressLine2 longitude latitude georesult { value description } georesultConfidence { value description } countryCallingCode phone fax email web open24Hours { value description } lineOfBusiness sic1 sic2 sic8 sic8Description altIndustryCode { value description } miCode tradeDivision groupName mainClass subClass } } } }', 'variables': {'address': '123 Main St, Boston, MA 02101', 'country': 'US'} }} Output: GraphQL response with paginated place/POI records matching the address, with business details and pagination metadata.
Retrieve physical property attributes for a US address: bedrooms, bathrooms, square footage, lot size, year built. Use this tool when you specifically need physical/structural property attributes. Do NOT use if you need a full property overview — use get_property_data instead. Do NOT use for valuation data — use get_replacement_cost_by_address instead. Do NOT use for risk assessments — use the specific risk tools (get_flood_risk_by_address, etc.). Only works for US addresses. Output: Object with physical property attributes including bedroom/bathroom counts, square footage, lot size, year built.
Retrieve a comprehensive consolidated property record for a US address, including property attributes (size, year built, bedrooms, bathrooms), assessed/market value, building characteristics. Use this tool when you need a broad property overview in a single call. Do NOT use if you only need specific attribute categories — use get_property_attributes_by_address (physical attributes only), get_replacement_cost_by_address (replacement cost only), get_buildings_by_address (building footprint/structure only), or get_parcels_by_address (parcel/land data only) for narrower, faster responses. Only works for US addresses. Output: Comprehensive property record with attributes, valuation, building characteristics.
Retrieve fire station proximity data for a US address, including response time and distance data for the three nearest fire stations. This tool covers fire department proximity and response times — not wildfire risk. Use this tool when you need to assess fire station coverage for a property. Do NOT use if you need wildfire risk — use get_wildfire_risk_by_address instead. Do NOT use if you need flood, earthquake, coastal, or weather risk. Only works for US addresses. Output: Object with ID, type, drive times, and drive distance for each of the three nearest fire stations. Also includes distance to nearest water body in feet.
Retrieve PSYTE geodemographic segment classification for a US address. PSYTE (a Precisely proprietary segmentation system) classifies neighborhoods into lifestyle and demographic segments based on income, age, household composition, and lifestyle factors. Use this tool when you specifically need PSYTE segment data for targeting, analysis, or profiling. Do NOT use if you also need Ground View market segment data — use get_demographics instead (returns both PSYTE and Ground View in one call). Do NOT use for crime, risk, building, parcel, or school data. Only works for US addresses. Output: Object with PSYTE segment code, segment name, segment group, and demographic characteristics for the neighborhood of the input address.
Retrieve the estimated replacement cost (cost to rebuild) for a property at a US address, including a confidence code. Do NOT use if you need general property attributes — use get_property_attributes_by_address instead. Do NOT use if you need market/assessed value — replacement cost only reflects reconstruction cost. Only works for US addresses. Output: Object with estimated replacement cost value and confidence code.
Retrieve school district, attendance zone, and nearby college information for a US address. Use this tool when you need to identify which schools and districts serve an address. Do NOT use for demographic, crime, risk, building, or parcel data. Only works for US addresses. Output: Object with three sections: nearby college/university (ID and name), schoolDistrict (district ID and name), and schoolAttendanceZone (ID and name, where names identify the assigned K-12 schools). Note: individual school type, enrollment count, grade range, and distance to school are not returned.
Retrieve broadband and utility serviceability information for a US address using a custom GraphQL query. Returns whether broadband or utility services are available at the address and the associated service provider records. Use this tool when you need to check broadband/utility service availability at a property. Only use the safe, tested fields listed below. Safe fields for the 'serviceability { data { ... } }' section: serviceabilityID, preciselyID, serviceableAddress Always include the metadata section: pageNumber, pageCount, totalPages, count, vintage Example request: {'data': { 'query': 'query GetServiceability($address: String!, $country: String) { getByAddress(address: $address, country: $country) { addresses(pageNumber: 1, pageSize: 1) { data { preciselyID serviceability { metadata { pageNumber pageCount totalPages count vintage } data { serviceabilityID preciselyID serviceableAddress } } } } } }', 'variables': {'address': '2755 Milwaukee St, Denver, 80238 CO', 'country': 'US'} }} Output: GraphQL response with serviceability records containing serviceabilityID, preciselyID, and a serviceableAddress flag ('YES'/'NO') indicating whether the address is serviceable.
Discovery tool: list all available Enrich Data products with metadata needed to make informed spatial queries. Call this before querying spatial data when you need to discover: product family, geography coverage, data vintage, recommended zoom levels, recommended styles, summary attributes, label column names, and layer extents. Returns: List of product metadata objects with productId, productName, productFamily, vintage, geography, and layers (including layerId, displayName, featureTable, recommendedStyle). Use this before: wms_get_request, wms_post_get_map, wmts_request, wmts_get_standard_tile, wmts_get_simple_tile, find_nearest_candidates, search_at_location, overlap, summarize. Example Request: https://api.cloud.precisely.com/v1/spatial/products
Discovery tool: retrieve column names, data types, descriptions, bounding box, and row count for a specific spatial table. Call this before calling find_nearest_candidates, search_at_location, overlap, or summarize when you need to know which columns are available in a table. Use list_spatial_tables first if the tableName is not yet known. Returns: Object with table name, columns (name, type, description), spatial bounding box, and approximate row count. Note: The tableName parameter should NOT include a leading slash (e.g., 'properties/buildings', not '/properties/buildings'). Example Request: https://api.cloud.precisely.com/v1/spatial/tables/properties/buildings/metadata
Retrieve wildfire risk assessment data for a US address, including risk rankings, risk description, and other contributing factor ratings. Use this tool when you need to assess wildfire exposure for a property. Do NOT use if you need flood, fire (structural), earthquake, coastal, or weather risk — use the corresponding specific risk tool instead. Only works for US addresses. Output: Object with overall risk ranking, risk description for both baseline and extreme models, individual component ratings (severity, frequency, damage, community, vegetation, burn probability, ember risk, proximity factors, etc.) for each model, wildland-urban interface distance, distances to high/very-high/extreme risk zones, and nearest historical fire perimeter details.
Discovery tool: retrieve the full list of spatial table names available in the Precisely platform. Call this before calling find_nearest_candidates, search_at_location, overlap, summarize, or get_table_metadata when the correct tableName is not yet known. Do NOT use this if you already know the tableName — call get_table_metadata directly for column/schema details. Returns: List of spatial table path strings (e.g., ['/risks/flood_risk', '/properties/buildings', ...]). Example Request: https://api.cloud.precisely.com/v1/spatial/tables
Retrieve full address record(s) by one or more Precisely keys (internal system identifiers). Precisely keys are opaque string keys (e.g., 'P0000GL41OME') that uniquely identify a location in the Precisely data platform. Use this tool when you already have a Precisely key obtained from a prior call like geocode, ogc_collection_items, others. Do NOT use if you only have a human-readable address — use geocode instead. Supports batch lookup of multiple keys in a single call. Output: Array of full address records (one per key), each containing standardized address components, coordinates, and associated metadata.
Look up US tax jurisdictions (state, county, and other codes) for one or more addresses or geographic coordinates in a single call. Supports four usage patterns through one consistent interface: - Single address: input_type='address', records=[{addressLines: ['123 Main St, Boston, MA']}] - Multiple addresses: input_type='address', records=[{...}, {...}] - Single coordinate: input_type='location', records=[{longitude: -71.0589, latitude: 42.3601}] - Multiple coordinates: input_type='location', records=[{...}, {...}] Batch and single records use the same tool — pass 1 item for single lookup, N items for batch. Only works for locations within the United States. Output: For a single record, returns one tax jurisdiction object. For multiple records, returns an array of tax jurisdiction objects, one per input record. Each object contains tax type codes and full names (state, county, etc.).
Discovery tool: retrieve the full OpenAPI 3.0.1 specification for the OGC Enrich API. The specification describes all available endpoints, request/response schemas, and security configurations. Use this when you need to inspect full API capabilities programmatically. Do NOT use for listing feature collections — use ogc_collections instead. Returns: OpenAPI 3.0.1 specification document. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/api
Retrieve metadata for a specific OGC feature collection identified by collectionId. Returns title, description, item type, and links to items and schema for the collection. Use ogc_collections first if you do not yet know the collectionId. Do NOT use this to fetch actual features — use ogc_collection_items or ogc_feature_by_id instead. Do NOT use this for column/field schema — use ogc_collection_schema or ogc_collection_queryables instead. Returns: Collection metadata object with id, title, description, and navigation links. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings
Fetch features of the feature collection with id `{collectionId}` subject to parameters. Use ogc_collections tool to list all available collections and their ids, ogc_collection_queryables tool to get properties that can be used for filtering, and get_spatial_products tool to discover layer extents for bbox, data vintage, recommended label columns, and other metadata. Additional capabilities include: - **Filtering:** Supports attribute-based filtering using CQL (Common Query Language). - **Pagination:** Use `limit` and `offset` parameters to paginate results. - **Spatial Queries:** - **Bounding Box (bbox):** Retrieve features within a rectangular spatial extent (`minX, minY, maxX, maxY`). - **Spatial Filters:** Support for `contains`, `intersects`, and `within` (OGC Filter Encoding). Returns: GeoJSON FeatureCollection with features matching the query, and pagination links. Example 1 Request (Items without additional parameters): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items Example 2 Request (Items with limit): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?limit=5 Example 3 Request (Items with offset): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?limit=5&offset=10 Example 4 Request (Items with bbox): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?bbox=-74.013219,40.702976,-74.01162,40.70357&limit=100 Example 5 Request (Items with filter and s_contains): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?filter=s_contains(GEOM,POINT (-74.011728 40.701114))&limit=100 Example 6 Request (Items with filter and s_within): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?filter=s_within(GEOM,POLYGON ((-74.009523 40.703347, -74.010445 40.704257, -74.011078 40.704062, -74.011127 40.703363, -74.010526 40.702822, -74.009523 40.703347)))&limit=100 Example 7 Request (Items with filter and s_intersects): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?filter=s_intersects(GEOM,POLYGON ((-74.009523 40.703347, -74.010445 40.704257, -74.011078 40.704062, -74.011127 40.703363, -74.010526 40.702822, -74.009523 40.703347)))&limit=100 Example 8 Request (Items with filter and = operator): https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items?filter=bldgid%3D'B000CTPA4MY1'
Retrieve the filterable (queryable) fields for a specific OGC feature collection. Queryable fields are the subset of collection properties that can be used in CQL filter expressions when calling ogc_collection_items (e.g., filter=fieldName='value' or spatial filters). Use this tool before constructing filter queries for ogc_collection_items to verify which fields can be filtered. Call ogc_collections first if you do not yet know the collectionId. Do NOT use this if you need all fields including non-queryable ones — use ogc_collection_schema instead. Returns: List of queryable property definitions with field name, data type/format, and description. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/queryables
Retrieve the full schema (all field names, data types, and descriptions) for a specific OGC feature collection. Use this tool when you need to know all fields and their types for a collection, including non-queryable fields. Call ogc_collections first if you do not yet know the collectionId. Do NOT use this for filtering — for filterable/queryable fields only, use ogc_collection_queryables instead (ogc_collection_queryables is a subset of ogc_collection_schema focused on fields usable in CQL filter expressions). Returns: JSON schema with all field names, data types (string, integer, double, etc.), and descriptions. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/schema
Discovery tool: retrieve the list of all available OGC feature collections (spatial datasets) with metadata. Use this tool when you need to discover available datasets (collectionIds) before calling ogc_collection, ogc_collection_schema, ogc_collection_queryables, ogc_collection_items, or ogc_feature_by_id. Do NOT use this to fetch actual features — use ogc_collection_items or ogc_feature_by_id once you have the collectionId. Returns: List of feature collection metadata objects with id, title, description, item type, and navigation links. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/collections
Discovery tool: retrieve the conformance declaration listing all OGC API standards this server conforms to. Use this to verify whether the API supports specific OGC standards required by your client. Do NOT use to discover feature collections — use ogc_collections instead. Returns: Conformance declaration with a list of conformance class URIs. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/conformance
Retrieves a single feature having unique id `{featureId}` from collection with id `{collectionId}`. Returns: GeoJSON FeatureCollection with geometry and properties of the feature(s). Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/collections/properties/buildings/items/1
Discovery tool: retrieve a list of available spatial functions within the OGC Enrich API. Use this to discover what spatial functions (e.g., s_contains, s_within, s_intersects) can be used in filter expressions for ogc_collection_items queries. Returns: List of spatial functions with their names, argument types, and return types. Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/functions
Discovery tool: retrieve the OGC API landing page with links to essential API resources. Provides links to the API definition, conformance declaration, and feature collections. Use this as the entry point to navigate and explore OGC API capabilities. Call this first if you have no other OGC resource URLs and need to discover what is available. Returns: Object with links array (API definition, conformance, feature collections). Example Request: https://api.cloud.precisely.com/v1/ogcapi/enrich/
Returns geometries that represent the overlap of the input geometry/address with the geometries in the target table, along with the percentage and area/length of overlap/intersection. Input can also be an address, no need to geocode it. If input is an address, bufferDistance is required. Use list_spatial_tables tool to find available spatial tables/data, get_table_metadata tool for available columns and their metadata, and get_spatial_products tool to discover recommended summary attributes, label columns, and data vintage, layer extents, and other metadata. Returns: GeoJSON FeatureCollection with overlapping geometries, intersection area/length, and percentage of overlap with both target and input geometries. Example 1 Request (Geometry): {'tableName': '/risks/historical_weather_hurricanelines_world', 'uom': 'mi', 'attributes': ['stormname', 'windspeed'], 'location': {'format': 'wkt', 'value': 'POLYGON ((-74.286804 40.515887, -74.292297 40.478292, -73.66333 40.560765, -73.737488 40.839788, -74.002533 40.909361, -74.286804 40.515887))'}, 'totalAttributeName': 'tc'} Example 2 Request (Address): {'tableName': '/risks/wildfire_risk_fire_perimeter', 'uom': 'mi', 'attributes': ['state', 'riskdesc'], 'location': {'format': 'address', 'value': '1 Global View Troy NY', 'country': 'USA'}, 'bufferDistance': '5 km'}
Parse a single free-text address string into its individual structural components: house number, street name, street type, unit, city, state, postal code, and country. Use this tool when you need to decompose an address into parts for data processing or validation. Do NOT use if you need coordinates — use geocode instead. Do NOT use for multiple addresses in one call — use parse_address_batch instead. Output: Object with individual address components extracted from the input string (addressNumber, streetName, streetType, unitDesignator, unitValue, city, admin1, postalCode, country).
Parse multiple free-text address strings into their individual structural components in a single batch call. Each address is decomposed into house number, street name, street type, unit, city, state, postal code, and country. Use this tool when you have two or more addresses to parse (more efficient than repeated parse_address calls). Do NOT use for a single address — use parse_address instead. Maximum batch size: 10 addresses per call. Output: Array of parsed address objects (one per input), each with individual components (addressNumber, streetName, streetType, unitDesignator, city, admin1, postalCode, country). Each result includes the 'id' field from the corresponding input for correlation.
Parse a full personal name, or business name. Personal names parsed into: title/salutation, first name, middle name, last name, and suffix.Use this tool when you need to decompose a combined name string for data processing, personalization, or storage in structured fields. Do NOT use if you need address parsing — use parse_address or parse_address_batch instead. Works best with Western-style name formats; accuracy may vary for non-Western names. Output: Object with extracted name components: title (e.g., 'Dr.'), firstName, middleName, lastName, and suffix (e.g., 'Jr.').
Retrieve the PSAP (Public Safety Answering Point / 911 dispatch center) responsible for a given US address. Returns the PSAP name, phone number, fccId, and other information. Use this tool when you need to identify the correct 911 call center for a street address. Do NOT use if you also need AHJ (Authority Having Jurisdiction) data — use psap_ahj_address instead. Do NOT use if you have coordinates rather than an address — use psap_location instead. Only works for addresses within the United States. Output: Object with PSAP information.
Retrieve combined PSAP (Public Safety Answering Point / 911 dispatch center) and AHJ (Authority Having Jurisdiction) data for a given US address in a single call. PSAP identifies the emergency dispatch center; AHJ identifies the regulatory and code authority for the location. Use this tool when you need both PSAP and AHJ information for an address. Do NOT use if you only need PSAP data — use psap_address instead (lighter response). Do NOT use if you have coordinates rather than an address — use psap_ahj_location instead. Do NOT use if lookup is by FCC ID — use psap_ahj_fccid instead. Only works for addresses within the United States. Output: Object with PSAP name, phone, fccId, AHJ names and other details.
Retrieve PSAP (Public Safety Answering Point / 911 dispatch center) and AHJ (Authority Having Jurisdiction) details for a PSAP identified by its FCC (Federal Communications Commission) ID. Use this tool only when you already have a specific FCC PSAP ID and need its full record. Do NOT use if you are starting from an address — use psap_ahj_address instead. Do NOT use if you are starting from coordinates — use psap_ahj_location instead. FCC IDs are obtained from prior psap_address, psap_location, or related calls. Only works for US PSAP entities. Output: Object with PSAP name, phone, fccID, AHJ names and other details for the specified FCC ID.
Retrieve combined PSAP (Public Safety Answering Point / 911 dispatch center) and AHJ (Authority Having Jurisdiction) data for a given geographic coordinate in a single call. Use this tool when you have a coordinate pair (longitude, latitude) and need both PSAP and AHJ information. Do NOT use if you only need PSAP data — use psap_location instead (lighter response). Do NOT use if you have a street address rather than coordinates — use psap_ahj_address instead. Do NOT use if lookup is by FCC ID — use psap_ahj_fccid instead. Only works for coordinates within the United States. Output: Object with PSAP name, phone, fccId, AHJ names and other details.
Retrieve the PSAP (Public Safety Answering Point / 911 dispatch center) responsible for a given geographic coordinate. Returns the PSAP name, phone number, fccId, and other information. Use this tool when you have a coordinate pair (longitude, latitude) and need to identify the 911 center. Do NOT use if you also need AHJ (Authority Having Jurisdiction) data — use psap_ahj_location instead. Do NOT use if you have a street address rather than coordinates — use psap_address instead. Only works for coordinates within the United States. Output: Object with PSAP information.
Convert geographic coordinates (latitude, longitude) into a nearest matching street address. Use this tool when you have a lat/lon pair and need a human-readable address. Do NOT use when you have a text address — use geocode instead. Do NOT use when you need structured data beyond the address (e.g., property info)Output: Object with the nearest matching standardized address (street, city, state, postal code, country), distance from the input coordinate to the matched address, other details.
Searches for and returns detailed info about locations or points of interest when they're within the input geometry, or when they contain the input geometry, or when they intersect with the input geometry. Input can also be an address, no need to geocode it. Use list_spatial_tables tool to find available spatial tables/data, get_table_metadata tool for available columns and their metadata, and get_spatial_products tool to discover recommended summary attributes, label columns, and data vintage, layer extents, and other metadata. Spatial operation semantics — choose carefully based on the query intent: - Use 'contains' when the query asks for table features that ENCLOSE or SURROUND the input point/geometry. Natural language cues: "containing", "enclosing", "surrounding", "which X contains this address", "find the building/parcel/zone that contains this location". Example: "find the building containing this address" → the building (table feature) contains the address point → use 'contains'. - Use 'within' when the query asks for table features that are INSIDE the input geometry. Natural language cues: "within", "inside", "that fall within this area". Example: "find all parcels within this polygon" → parcels are within the polygon → use 'within'. - Use 'intersects' when the query asks for table features that INTERSECT, CROSS, TOUCH, OVERLAP or share any portion of the input geometry. Natural language cues: "intersecting", "crossing", "overlapping". Returns: GeoJSON FeatureCollection with matching features, recordsMatched, recordsReturned, and metadata. Example 1 Request (Geometry, WITHIN): {'spatialOperation': 'WITHIN', 'tableName': '/risks/flood_risk', 'attributes': ['statecode', 'type', 'mapname', 'incremental_s_no'], 'location': {'format': 'wkt', 'value': 'MULTIPOLYGON (((-122.399306 37.712211, -122.398975 37.712132, -122.399007 37.712049, -122.399338 37.712127, -122.399316 37.712185, -122.399306 37.712211)))'}, 'bufferDistance': '10 mi'} Example 2 Request (Address, WITHIN): {'spatialOperation': 'WITHIN', 'tableName': '/properties/parcels', 'attributes': ['prclid'], 'location': {'format': 'address', 'value': '1 GLOBAL VW, TROY NY 12180-8371, UNITED STATES OF AMERICA', 'country': 'USA'}, 'bufferDistance': '1 km'} Example 3 Request (Address, CONTAINS — find the building enclosing an address): {'spatialOperation': 'contains', 'tableName': '/properties/buildings', 'attributes': ['*'], 'location': {'format': 'address', 'value': '2286 JACKSON ST, SAN FRANCISCO CA 94115-1321, UNITED STATES OF AMERICA', 'country': 'USA'}}
Generates min, max, avg, sum, or median statistics for given columns of geometries fully within the input geometry, or intersecting the input geometry. Input can also be an address, no need to geocode it. Use list_spatial_tables tool to find available spatial tables/data, get_table_metadata tool for available columns and their metadata, and get_spatial_products tool to discover recommended summary attributes, label columns, and data vintage, layer extents, and other metadata. IMPORTANT — spatialOperation selection: - Use 'intersects' when you want features that TOUCH or OVERLAP the input geometry (partial overlap counts). - Use 'within' when you want features that are FULLY CONTAINED INSIDE the input geometry. The user's query keyword 'within' (e.g., "records within 10 miles") means spatialOperation='within'. Returns: Aggregate statistics for specified columns. Example 1 Request (Geometry, Intersects): {'spatialOperation': 'INTERSECTS', 'tableName': '/risks/historical_weather_windgrid', 'aggregateColumns': {'w9': ['min', 'max', 'avg', 'sum']}, 'location': {'format': 'wkt', 'value': 'GEOMETRYCOLLECTION (MULTIPOLYGON (((-122.399306 37.712211, -122.398975 37.712132, -122.399007 37.712049, -122.399338 37.712127, -122.399316 37.712185, -122.399306 37.712211))), LINESTRING (-121.756899 37.653383, -121.158302 37.304645, -121.690998 37.120906))'}, 'proportionalCalculation': true} Example 2 Request (Address, Intersects): {'spatialOperation': 'INTERSECTS', 'tableName': '/risks/flood_risk', 'location': {'format': 'address', 'value': '1 Global View Troy NY', 'country': 'USA'}, 'aggregateColumns': {'id': ['min', 'max', 'avg', 'sum']}, 'proportionalCalculation': true, 'bufferDistance': '10 km'} Example 3 Request (Geometry, Within): {'tableName': '/risks/wildfire_risk_fire_perimeter', 'location': {'format': 'WKT', 'value': 'POLYGON ((-122.766919 38.031512, -122.766919 38.051864, -122.741314 38.051864, -122.741314 38.031512, -122.766919 38.031512))'}, 'spatialOperation': 'within', 'proportionalCalculation': false, 'aggregateColumns': {'acres': ['min', 'MAX', 'avg', 'sum', 'MEDIAN']}} Example 4 Request (Address, Within): {'tableName': '/risks/wildfire_risk_fire_perimeter', 'location': {'format': 'address', 'value': '1 Global View Troy NY', 'country': 'USA'}, 'spatialOperation': 'within', 'proportionalCalculation': false, 'bufferDistance': '10 km', 'aggregateColumns': {'acres': ['min', 'MAX', 'avg', 'sum', 'MEDIAN']}}
Look up the timezone for one or more addresses, including UTC offset and DST status, at a specific UTC time. Returns the IANA timezone name (e.g., 'America/New_York'), UTC offset in hours and minutes, and whether daylight saving time (DST) is in effect at the given timestamp. Use this tool when you have street addresses and need timezone information. Do NOT use if you have coordinates instead of addresses — use timezone_locations instead. Supports multiple addresses in a single call. Output: Array of timezone result objects (one per input address), each containing the IANA timezone ID, UTC offset, DST status, and the input address id for correlation.
Look up the timezone for one or more geographic coordinates (longitude, latitude), including UTC offset and DST status, at a specific UTC point in time. Returns the IANA timezone name (e.g., 'America/Chicago'), UTC offset in hours and minutes, and whether daylight saving time (DST) is in effect at the given timestamp. Use this tool when you have coordinate pairs and need timezone information. Do NOT use if you have street addresses instead of coordinates — use timezone_addresses instead. Supports multiple coordinate pairs in a single call. Output: Array of timezone result objects (one per input coordinate), each containing the IANA timezone ID, UTC offset, DST status, and the input id for correlation.
Validate multiple phone numbers for format correctness, country assignment, and line type in a single batch call. Use this tool when you have two or more phone numbers to validate (more efficient than repeated validate_phone calls). Do NOT use for a single number — use validate_phone instead. Maximum batch size: 10 phone numbers per call. Output: Array of validation result objects (one per input), each containing validity status, formatted phone number, country code, line type, and carrier information. Each result includes the 'id' from the corresponding input for correlation.
Validate a single phone number for format correctness, country assignment, and line type (mobile, landline, VoIP, toll-free, etc.). Use this tool when you need to validate one phone number before storing or dialing it. Do NOT use for bulk validation of multiple numbers — use validate_batch_phones instead (more efficient for 2 or more numbers). Provide the country code to improve accuracy; without it, the service will attempt to infer the country. Output: Object with validation result including validity status, formatted phone number (E.164 or local format), country code, line type (mobile/landline/VoIP/toll-free), and carrier information where available.
Verify, standardize, and correct a postal address. Checks whether the address is deliverable, corrects formatting/spelling, and returns the standardized form including postal code and address components. Use this tool when address quality, deliverability, or standardization is the goal. Do NOT use if you only need coordinates — use geocode instead (geocode is optimized for coordinate resolution, verify_address is optimized for postal validation). Do NOT use for non-postal spatial queries — use geocode or spatial tools instead. Output: Object with standardized address components, deliverability indicators, and match confidence.
Verify multiple email addresses for deliverability and validity in a single batch call. Checks syntax, domain existence, and MX record reachability for each address. Use this tool when you have two or more email addresses to validate (more efficient than repeated verify_email calls). Do NOT use for a single email — use verify_email instead. Maximum batch size: 10 addresses per call. Does not send any email; this is a read-only verification call. Output: Array of verification result objects (one per input), each containing validity status, reason code. Each result includes the 'id' from the corresponding input for correlation.
Verify a single email address for deliverability, validity, and format correctness. Checks syntax, domain existence, and MX record reachability to determine whether the address is likely deliverable. Use this tool when you need to validate one email address before sending or storing it. Do NOT use for bulk validation of multiple emails — use verify_batch_emails instead (more efficient for 2 or more addresses). Does not send any email; this is a read-only verification call. Output: Object with verification result including validity status (e.g., valid, invalid, risky, unknown), reason code, and domain details.
Processes following WMS requests using HTTP GET: GetCapabilities, GetMap, or GetFeatureInfo. Use GetCapabilities to retrieve all available layers, their styles, CRS, and geographic bounding box. Use get_spatial_products tool to discover recommended styles, summary attributes, label columns, and data vintage, layer extents, and other metadata. Returns: For GetMap success: Dict with 'image_base64' (str), 'content_type' (str), 'size_bytes' (int). For GetCapabilities success: Dict with 'xml' (str), 'content_type' (str). For GetFeatureInfo success: JSON dict. On any error (auth, invalid params, or WMS ServiceException): Dict with 'error' (str) containing the error or ServiceExceptionReport XML. Example 1 GetCapabilities Request: https://api.cloud.precisely.com/v1/Spatial/WMS?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetCapabilities Example 2 GetMap Request (WMS version 1.1.1, SRS parameter for EPSG:4326, Axis order lon-lat for BBOX): https://api.cloud.precisely.com/v1/Spatial/WMS?VERSION=1.1.1&SERVICE=WMS&REQUEST=GetMap&SRS=EPSG:4326&BBOX=-125,24,-66,50&WIDTH=400&HEIGHT=300&Layers=census_state&STYLES=census_state&FORMAT=image/png Example 3 GetMap Request (WMS version 1.3.0, CRS parameter for CRS:84, Axis order lon-lat for BBOX): https://api.cloud.precisely.com/v1/Spatial/WMS?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&CRS=CRS:84&BBOX=-125,24,-66,50&WIDTH=400&HEIGHT=300&Layers=census_state&STYLES=census_state&FORMAT=image/png Example 4 GetMap Request (WMS version 1.3.0, CRS parameter for EPSG:4326, Axis order lat-lon for BBOX): https://api.cloud.precisely.com/v1/Spatial/WMS?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetMap&CRS=EPSG:4326&BBOX=24,-125,50,-66&WIDTH=400&HEIGHT=300&Layers=census_state&STYLES=census_state&FORMAT=image/png Example 5 GetFeatureInfo Request: https://api.cloud.precisely.com/v1/spatial/wms?VERSION=1.3.0&SERVICE=WMS&REQUEST=GetFeatureInfo&CRS=EPSG:4326&BBOX=29.19367847889249035,-98.56156199862394374,29.35037762857998089,-98.33146912069426548&WIDTH=400&HEIGHT=300&LAYERS=wildfire_risk&INFO_FORMAT=application/json&QUERY_LAYERS=wildfire_risk&I=1&J=1&PIXELSEARCHRADIUS=10
Processes WMS GetMap requests using HTTP POST. Supports both WMS 1.3.0 (use 'crs' param) and WMS 1.1.1 (use 'srs' param). Accepts SLD_BODY as a form parameter (URL-encoded JSON). Use wms_get_request GetCapabilities to retrieve all available layers, their styles, CRS/SRS, and geographic bounding box. Use get_spatial_products tool to discover recommended styles, and data vintage, layer extents, and other metadata. When the STYLES parameter is left empty, the styling defined in SLD_BODY (if provided) is applied. If the STYLES parameter specifies a server-side style, the SLD_BODY is ignored, even if it is included in the request. Returns: On success: Dict with 'image_base64' (str), 'content_type' (str), 'size_bytes' (int). On any error (auth, invalid params, or WMS ServiceException): Dict with 'error' (str) containing the error or ServiceExceptionReport XML. Example 1 Post Request for one layer (solid brown fill with darker brown outline for buildings): POST https://api.cloud.precisely.com/v1/spatial/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=37.78662956646336823%2C-122.2745967175037549%2C37.81410536165775227%2C-122.2403683391127061&CRS=EPSG%3A4326&WIDTH=1062&HEIGHT=853&LAYERS=buildings&STYLES=&FORMAT=image%2Fpng&TRANSPARENT=TRUE Content-Type: application/x-www-form-urlencoded BODY: SLD_BODY={"styleDetails": [{"themeList": {"theme": [{"type": "OverrideTheme","style": {"type": "MapBasicCompositeStyle","AreaStyle": {"type": "MapBasicAreaStyle","MapBasicPen": {"width": 1,"pattern": 2,"color": "#964B00","unit": "PIXEL"},"MapBasicBrush": {"pattern": 2,"foregroundColor": "#E0AB8B","backgroundColor": "#C0C0C0"}}}}]}}]} (SLD_BODY must be URL-encoded when sent as form data) Example 2 Post Request for two layers (solid brown fill for buildings, blue star icon for address_fabric points). Note: styleDetails is an array with one entry per layer, each entry containing the layer name and its themeList: POST https://api.cloud.precisely.com/v1/spatial/wms?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&BBOX=37.78662956646336823%2C-122.2745967175037549%2C37.81410536165775227%2C-122.2403683391127061&CRS=EPSG%3A4326&WIDTH=1062&HEIGHT=853&LAYERS=buildings,address_fabric&STYLES=&FORMAT=image%2Fpng&TRANSPARENT=TRUE Content-Type: application/x-www-form-urlencoded BODY: SLD_BODY={"styleDetails": [{"layer": {"name": "address_fabric","type": "NamedLayer"},"themeList": {"theme": [{"type": "OverrideTheme","style": {"type": "MapBasicCompositeStyle","PointStyle": {"type": "MapBasicPointStyle","MapBasicSymbol": {"type": "MapBasicFontSymbol","shape": 36,"size": 12,"color": "255","fontName": "MapInfo Symbols","rotation": 0,"bold": false,"dropShadow": false,"border": "NONE"}}}}]}},{"layer": {"name": "buildings","type": "NamedLayer"},"themeList": {"theme": [{"type": "OverrideTheme","style": {"type": "MapBasicCompositeStyle","AreaStyle": {"type": "MapBasicAreaStyle","MapBasicPen": {"width": 1,"pattern": 2,"color": "#964B00","unit": "PIXEL"},"MapBasicBrush": {"pattern": 2,"foregroundColor": "#E0AB8B","backgroundColor": "#C0C0C0"}}}}]}}]} (SLD_BODY must be URL-encoded when sent as form data)
Returns a map tile, using less parameters/simple approach. Use this tool when you do NOT need to specify Style or TileMatrixSet. RESTful encoding of WMTS service. Use wmts_request with Request=GetCapabilities to retrieve all available layers, their styles, tile matrix sets, and supported formats. Use get_spatial_products tool to discover recommended zoom levels, and data vintage, layer extents, and other metadata. Returns: Dict with 'image_base64' (str), 'content_type' (str), 'size_bytes' (int) containing the requested map tile. Example Request: https://api.cloud.precisely.com/v1/spatial/wmts/1.0.0/simpleProfileTile/tiles/wildfire_risk/12/1190/1550.png
Returns a map tile, using standard parameters/approach. RESTful encoding of WMTS service. Use wmts_request with Request=GetCapabilities to retrieve all available layers, their styles, tile matrix sets, and supported formats. Use get_spatial_products tool to discover recommended zoom levels, and data vintage, layer extents, and other metadata. Returns: Dict with 'image_base64' (str), 'content_type' (str), 'size_bytes' (int) containing the requested map tile. Example Request: https://api.cloud.precisely.com/v1/spatial/wmts/1.0.0/default/tiles/wildfire_risk/default/WorldWebMercatorQuad_0_to_19/12/1190/1550.png
Handles WMTS operations via the KVP (Key-Value Pair) query parameter interface. Use Request=GetCapabilities to retrieve all available layers, their styles, tile matrix sets, and supported formats. Use Request=GetTile to retrieve a map tile image by specifying Layer, Style, TileMatrixSet, TileMatrix, TileRow, TileCol, and Format. Use get_spatial_products tool to discover recommended zoom levels, and data vintage, layer extents, and other metadata. Returns: For GetCapabilities: Dict with 'xml' (str) containing the capabilities XML document and 'content_type' (str). For GetTile: Dict with 'image_base64' (str), 'content_type' (str), 'size_bytes' (int). Example 1 GetCapabilities Request: https://api.cloud.precisely.com/v1/spatial/wmts?SERVICE=WMTS&REQUEST=GetCapabilities&ACCEPTVERSIONS={version}
GraphQL-based tools (get_addresses_detailed, get_parcel_by_owner_detailed) expose lower-level schema complexity; agents must construct valid GraphQL queries without inline examples
Inconsistent parameter naming conventions: some tools use snake_case (fcc_id), others use camelCase (phoneNumber), others use nested objects with different conventions