!

Houski API Skill: Help Your AI Coding Assistant Integrate Our Property Database

Photo of Alex Wilkinson
Alex Wilkinson
CEO of Houski
2026-04-17

Summary: Download our skill file to teach Claude Code, GitHub Copilot, Cursor, and other AI coding assistants how to integrate the Houski API. The skill follows the Agent Skills open standard, so it works across multiple tools without modification.


Model Context Protocol (MCP) Server vs Skill: Which Do You Need?

SkillMCP Server
PurposeAI helps you write code that calls our APIAI queries our database directly for you
Use whenBuilding an app that needs property dataResearching properties or analyzing markets
OutputCode you can deployAnswers and data in the conversation
SetupAdd a file to your projectConfigure Claude's MCP settings

Use both together: MCP for research and prototyping, the skill when you're ready to build.


What's a Skill?

AI coding assistants write code well but don't know every API's specifics. A skill is a small instruction file that teaches them.

Without a skill, you'd explain it yourself: "Use the /properties endpoint with bedroom_gte=3 and property_type_eq=House, and add select= to reduce costs..."

With our skill, just say "Add property search to my app" and your AI knows how to use our API, including cost optimization.

Works Across Multiple Tools

Our skill follows the Agent Skills standard, supported by:

  • Claude Code - Drop the skill folder into .claude/skills/ at your project root
  • GitHub Copilot - Copy the contents into .github/copilot-instructions.md
  • Cursor - Drop the skill folder into .cursor/rules/ at your project root
  • Gemini CLI - Add to project root
  • OpenAI Codex CLI - Add to project root

Write once, use everywhere. No modifications needed.

What's Included

The skill teaches your AI assistant:

All 9 Endpoints

EndpointPurpose
/propertiesQuery 19M+ properties with filtering, sorting, and field selection
/searchFuzzy address lookup (handles typos and partial addresses)
/aggregateStatistics: median, mean, count, min, max, quantiles
/mapPins, clusters, and heatmaps for map displays
/geocodingFind properties near coordinates with radius search
/predictHistorical and projected property values over time
/locationList provinces, cities, and communities hierarchically
/avmAutomated valuations with comparables ($5/request)
/authValidate API keys (does not bill per call)

Filter Operators

Your AI knows the filter syntax:

OperatorMeaningExample
_eqequalsproperty_type_eq=House
_neqnot equalsproperty_type_neq=Apartment
_gte>=bedroom_gte=3
_lte<=estimate_list_price_lte=500000
_gt>interior_sq_m_gt=100
_lt<construction_year_lt=2000
_inin listcommunity_in=Kensington,Beltline
_regexregex matchaddress_regex=^123

200+ Fields

Organized into categories your AI understands:

  • Physical: bedrooms, bathrooms, square footage, construction year, property type, storeys
  • Financial: estimated prices, estimated property taxes (mill rate times assessed value), assessment values, cap rates, return on investment (ROI)
  • Location: coordinates, postal codes, city, community, province
  • Scores: walkability, transit, flood safety, fire safety, air quality, education, safety (all higher is better)
  • Demographics: income levels, age distributions, household types, employment industries

Advanced Features

Expand syntax for related data:

expand=permits
expand=listings
expand=listings_rent
expand=assessments

Map modes:

  • Pins for individual properties
  • Clusters for zoomed-out views
  • Heatmaps with density or value-based coloring
  • Polygon and bounding box queries

Predict scenarios: Override property characteristics to see how changes affect values, useful for renovation or investment modeling.

Batch aggregates: Query multiple statistics in a single request using agg0_, agg1_ prefixes.

Cost Optimization

The skill teaches your AI to:

  • Use select= to return only needed fields
  • Use price_quote=true to estimate costs
  • Filter early to reduce result sets
  • Paginate with results_per_page and page

Getting Started

1. Get an API Key

Get your API key, or grab an existing one from your dashboard. Pricing: $99/month minimum for pay-as-you-go, charged on data returned. Full pricing

2. Download the Skill

Download houski-api-skill.zip

3. Install

Unzip and add SKILL.md to your project:

Claude Code: Per Anthropic's Claude Code documentation, drop the unzipped skill folder into .claude/skills/ at your project root (each skill lives at .claude/skills//SKILL.md).

GitHub Copilot: Copy contents into .github/copilot-instructions.md.

Cursor: Drop the skill folder into .cursor/rules/ at your project root.

Other AI Assistants: Most Agent Skills tools pick up instruction files in your project root.

4. Use It

Describe what you want to build.

Example Prompts by Use Case

Property Search Features

"Add a property search page with filters for bedrooms, price, and type. Include pagination."

"Build an autocomplete search box using fuzzy matching."

"Create a property detail page showing full info including scores and demographics."

Market Analysis

"Query median home prices by neighbourhood in Calgary as a bar chart."

"Get aggregate stats for houses vs condos: median price, average bedrooms, count."

"Compare cap rates between communities to find investment opportunities."

Maps and Visualization

"Display properties on a map within a bounding box. Cluster when zoomed out."

"Build a heatmap of median property prices."

"Find properties within 2km of these coordinates, sorted by price."

Permits and Development

"Find Toronto properties with renovation permits in the last 2 years."

"Show properties where permits mention 'basement development' or 'garage'."

"Build a permit search page filtered by date and type."

Investment Analysis

"Calculate ROI metrics: cap rate, cash-on-cash return, price per square meter."

"Find undervalued properties where list price is below estimated value."

"Show properties with low flood or fire safety scores."

Historical and Predicted Values

"Get the price history for this property over 2 years."

"Show projected rent for the next 6 months."

"Model how adding a bedroom would affect this property's value."

Understanding API Responses

All endpoints return:

JSON
{
  "data": [...],
  "error": "",
  "time_ms": 45,
  "cost_cents": 0.5,
  "cache_hit": false,
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "page_total": 10
  }
}
  • cache_hit - Served from cache
  • cost_cents - Request cost
  • time_ms - Server processing time
  • pagination - For paginated results

Cost Optimization Tips

The API charges on data returned. Your AI knows these techniques:

1. Always Use select=

Specify only needed fields, not all 200+:

select=address,bedroom,bathroom_full,estimate_list_price

2. Use price_quote=true

Get the cost before executing. The block below is a live call against the real API, the request code and the JSON response are regenerated every time this page is rendered:

API request
TypeScript code
const houski_data = async (): Promise<PropertiesResponse> => {

    // You must copy the PropertiesResponse type declarations from the 
    // Houski API documentation to strongly type the response

    const url = new URL('https://api.houski.ca/properties');
    url.searchParams.set('api_key', 'YOUR_API_KEY');
    url.searchParams.set('city', 'calgary');
    url.searchParams.set('country_abbreviation', 'ca');
    url.searchParams.set('price_quote', 'true');
    url.searchParams.set('province_abbreviation', 'ab');

    const response = await fetch(url);
    const data = await response.json();

    return data;
}

(async () => {
let data: PropertiesResponse = await houski_data();

// Log the response
console.log(data);
})();
API response
JSON
{
  "cache_hit": false,
  "cost_cents": 0.119999997317791,
  "data": [
    {}
  ],
  "error": "",
  "pagination": {
    "current_page": 1,
    "has_next_page": true,
    "has_previous_page": false,
    "page_total": 113490
  },
  "price_quote": true,
  "result_total": 680936,
  "time_ms": 98,
  "ui_info": {}
}

Returns cost in cents without charging.

3. Paginate

Use results_per_page (max 1000) and page to fetch in chunks.

4. Filter Early

Reduce the result set before return:

bedroom_gte=3&estimate_list_price_lte=500000

5. Batch Aggregates

Multiple statistics in one request:

agg0_field=estimate_list_price&agg0_aggregation=median&agg1_field=bedroom&agg1_aggregation=mean

Troubleshooting

"My AI doesn't know the Houski API"

  • Verify SKILL.md is in your project root
  • For Claude Code, name it SKILL.md or include in CLAUDE.md
  • Mention "Houski" explicitly in your prompt

"Generated code uses wrong endpoints"

  • Skill file may not be loaded. Check location and naming.
  • Try: "Use the Houski API skill to..."

"API returns errors"

  • Verify your key at your dashboard
  • Include country_abbreviation=ca for Canadian data
  • Filter syntax: field_operator=value

"Costs are higher than expected"

  • Add select= to limit fields
  • Use price_quote=true to preview costs
  • Check usage at your dashboard

Customizing the Skill

The skill file starts with a plain-text configuration header, written as YAML frontmatter:

yaml
---
name: houski-api
description: Integrate the Houski property database API...
---

Modify the description or add project conventions to the instructions section.


Resources: API Documentation | Quick Start Guide | Pricing | Contact