Substrata serves structured building product specification data via a REST API. All /v1/* endpoints require API key authentication. Responses are JSON.
All API endpoints require an API key. Include your key in every request via the Authorization header or X-API-Key header.
Authorization: Bearer sk_sub_your_key_here # or alternatively X-API-Key: sk_sub_your_key_here
| Code | Meaning | Response |
|---|---|---|
| 401 | Missing or invalid API key | {"error": "Authentication required"} |
| 429 | Rate limit exceeded | {"error": "Rate limit exceeded"} |
Every response includes rate limit headers:
| Header | Description | Example |
|---|---|---|
| X-RateLimit-Limit | Max requests per day | 100 |
| X-RateLimit-Remaining | Requests left today | 87 |
| X-RateLimit-Reset | Unix timestamp when limit resets | 1709337599 |
| Tier | Daily Limit | Price | Use Case |
|---|---|---|---|
| free | 100 requests/day | $0 | Evaluation & prototyping |
| starter | 5,000 requests/day | $49/mo | Small production apps |
| pro | 50,000 requests/day | $199/mo | High-volume integrations |
Upgrade at any time via GET /v1/subscription for payment link.
Check your own API key usage, rate limit status, and per-endpoint breakdown.
| Parameter | Description | Default |
|---|---|---|
| days | Number of days to include | 30 |
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/usage"
{
"data": {
"period_days": 30,
"summary": {
"total_requests": "142",
"requests_today": "23",
"requests_this_week": "89",
"unique_endpoints": "4",
"avg_response_ms": "45.2"
},
"rate_limit": {
"daily_limit": 100,
"used_today": 23,
"remaining": 77,
"resets_at": "2026-03-03T23:59:59.999Z"
},
"endpoints": [...],
"daily_breakdown": [...]
}
}
Check your current subscription plan and upgrade options.
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/subscription"
{
"data": {
"plan": "free",
"status": "active",
"name": "Free",
"daily_limit": 100,
"price": "$0",
"upgrade_to": {
"plan": "starter",
"price": "$49/mo",
"daily_limit": 5000,
"upgrade_url": "https://buy.stripe.com/6oU6oHeQm8RS8Jm56W3AY00"
}
}
}
Returns a paginated list of building products. Supports full-text search, filtering by category/manufacturer/performance specs, and sorting.
| Parameter | Description | Example |
|---|---|---|
| q | Full-text search | q=triple+pane |
| category | Product category | windows, doors, insulation |
| subcategory | Subcategory | casement, entry, spray-foam |
| manufacturer | Manufacturer (partial, case-insensitive) | andersen |
| min_u_value | Min thermal transmittance | 0.15 |
| max_u_value | Max thermal transmittance | 0.25 |
| min_r_value | Min thermal resistance | 15 |
| max_r_value | Max thermal resistance | 30 |
| min_shgc | Min solar heat gain coefficient | 0.20 |
| max_shgc | Max solar heat gain coefficient | 0.30 |
| energy_star | ENERGY STAR filter | true |
| min_price | Min price (USD) | 100 |
| max_price | Max price (USD) | 1000 |
| frame_material | Frame material (partial match) | vinyl |
| glazing_type | Glazing type (partial match) | triple |
| core_material | Core material (partial match) | polyurethane |
| sort | Sort field | name, u_value, price_min_usd |
| order | Sort direction | asc, desc |
| page | Page number (default: 1) | 2 |
| limit | Results per page (max: 100, default: 20) | 10 |
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/products?category=windows&energy_star=true&max_u_value=0.25&limit=3"
{
"data": [
{
"id": 6,
"name": "Andersen E-Series Triple Pane Casement",
"slug": "andersen-e-series-triple-casement",
"manufacturer": "Andersen",
"category": "windows",
"subcategory": "casement",
"description": "Premium architectural-grade casement...",
"width_mm": 762,
"height_mm": 1524,
"u_value": "0.170",
"shgc": "0.190",
"vt": "0.330",
"stc_rating": 37,
"frame_material": "Wood/Aluminum",
"glazing_type": "Triple Low-E",
"price_min_usd": "1200.00",
"price_max_usd": "2400.00",
"warranty_years": 20,
"energy_star": true,
"certifications": ["ENERGY STAR","NFRC","AAMA","PHI"],
"model_number": "AE-TC3060"
}
],
"pagination": {
"page": 1,
"limit": 3,
"total": 7,
"total_pages": 3,
"has_next": true,
"has_prev": false
},
"filters_applied": {
"category": "windows",
"energy_star": "true",
"max_u_value": "0.25"
}
}
Returns a single product by its URL slug. Returns 404 if not found.
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/products/andersen-400-casement"
{
"data": {
"id": 2,
"name": "Andersen 400 Series Casement Window",
"slug": "andersen-400-casement",
"manufacturer": "Andersen",
...all product fields
}
}
Returns all product categories with subcategories and product counts.
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/categories"
{
"data": [
{
"category": "doors",
"product_count": "16",
"subcategories": ["entry","patio","multi-slide","garage","interior","folding"]
},
{
"category": "insulation",
"product_count": "18",
"subcategories": ["fiberglass-batt","mineral-wool","rigid-board","blown-in","spray-foam",...]
},
{
"category": "windows",
"product_count": "19",
"subcategories": ["double-hung","casement","awning","sliding","picture",...]
}
]
}
Returns all manufacturers with product counts and which categories they produce.
curl -H "Authorization: Bearer sk_sub_your_key" \ "https://substrata-34wm.polsia.app/v1/manufacturers"
{
"data": [
{
"manufacturer": "Andersen",
"product_count": "4",
"categories": ["windows","doors"]
},
{
"manufacturer": "Owens Corning",
"product_count": "3",
"categories": ["insulation"]
},
...
]
}
Returns aggregate statistics about the product database.
{
"data": {
"total_products": "53",
"total_manufacturers": "35",
"total_categories": "3",
"energy_star_products": "26",
"avg_u_value": "0.259",
"avg_r_value": "13.40",
"avg_price_min": "919.41",
"avg_price_max": "2781.80"
}
}
Every product in the database has the following fields. Null values indicate data not applicable to that product type.
| Field | Type | Description |
|---|---|---|
| id | integer | Unique ID |
| name | string | Product name |
| slug | string | URL-safe identifier |
| manufacturer | string | Manufacturer name |
| category | string | windows, doors, insulation |
| subcategory | string | Product subcategory |
| description | string | Product description |
| width_mm | integer | Width in millimeters |
| height_mm | integer | Height in millimeters |
| depth_mm | integer | Depth in millimeters |
| thickness_mm | numeric | Thickness in millimeters |
| weight_kg | numeric | Weight in kilograms |
| u_value | numeric | Thermal transmittance (W/m²K) |
| r_value | numeric | Thermal resistance (m²K/W) |
| shgc | numeric | Solar Heat Gain Coefficient |
| vt | numeric | Visible Transmittance |
| stc_rating | integer | Sound Transmission Class |
| fire_rating | string | Fire resistance rating |
| wind_load_pa | integer | Wind load (Pascals) |
| air_leakage | numeric | Air leakage rate (L/s/m²) |
| frame_material | string | Frame material |
| glazing_type | string | Glazing type |
| core_material | string | Core/insulation material |
| finish | string | Surface finish |
| price_min_usd | numeric | Minimum price (USD) |
| price_max_usd | numeric | Maximum price (USD) |
| warranty_years | integer | Warranty period |
| energy_star | boolean | ENERGY STAR certified |
| certifications | array | List of certifications |
| model_number | string | Manufacturer model number |
Substrata is the developer-first construction data API. Unlike RSMeans (PDF books, no API) or 1build (enterprise-only), Substrata gives developers clean JSON access to building product specifications and pricing with a free tier and self-serve signup.
| Feature | Substrata | RSMeans | 1build |
|---|---|---|---|
| REST API | ✓ Yes | ✗ No | Enterprise only |
| Free tier | ✓ 100 req/day | ✗ No | ✗ No |
| Self-serve signup | ✓ Instant | ✗ Sales process | ✗ Sales process |
| Product specs (U/R/SHGC/STC) | ✓ Full data | ✗ No | ✗ No |
| Certifications (ENERGY STAR) | ✓ Yes | ✗ No | ✗ No |
| Machine-readable JSON | ✓ Always | ✗ PDF/Excel | Limited |
| OpenAPI spec | ✓ Available | ✗ No | ✗ No |
| Price | $0–$199/mo | $$$+ annual | Enterprise contract |
Get a free API key and start building in minutes. No sales call required.
Substrata is a REST API that provides structured building product specifications, technical performance data, and pricing. It covers 253+ products across 8 categories (windows, doors, insulation, roofing, flooring, siding, HVAC, structural) from 125+ manufacturers. It's designed for developers building construction estimating software, BIM tools, procurement platforms, and AI assistants for contractors.
RSMeans is a pricing publication (books and software) that costs thousands per year and requires enterprise contracts. Substrata is a developer API with a free tier, self-serve signup, and JSON responses. RSMeans focuses on labor cost data; Substrata provides product specifications and material pricing with technical performance data (U-values, R-values, certifications) not available in RSMeans.
The API covers building envelope products: windows (casement, double-hung, awning, sliding, skylights), doors (entry, patio, garage, multi-slide), insulation (fiberglass batt, mineral wool, spray foam, rigid board, blown-in), roofing, flooring, siding, HVAC systems, and structural components. Each product includes dimensions, technical specs, pricing, certifications, and manufacturer data.
Products include: U-value (thermal transmittance), R-value (thermal resistance), SHGC (Solar Heat Gain Coefficient), VT (Visible Transmittance), STC rating (Sound Transmission Class), fire rating, wind load, air leakage, frame material, glazing type, core material, price range (USD), warranty period, ENERGY STAR status, and full certifications list (NFRC, AAMA, LEED, Passive House, etc.).
Yes. Substrata provides the performance data energy modeling software needs: U-values, SHGC, VT, air leakage rates, and ENERGY STAR/PHI certification status. Filter products by performance thresholds to find code-compliant or Passive House-standard materials programmatically.
Yes. The full OpenAPI 3.0 specification is available at /openapi.json. Import it into Postman, Swagger UI, or any OpenAPI-compatible tool. Or try endpoints directly in the Interactive API Reference →
Sign up at substrata-34wm.polsia.app/signup. Free tier gives you 100 requests/day immediately with no credit card required. Upgrade to Starter ($49/mo, 5,000/day) or Pro ($199/mo, 50,000/day) via the GET /v1/subscription endpoint.
Any language that can make HTTP requests: Python, JavaScript/Node.js, Ruby, Go, PHP, Java, C#, etc. The API uses standard REST conventions with JSON responses. See the docs for curl examples you can adapt to any language.
Yes. The roofing category covers asphalt shingles, metal roofing, tile, flat/membrane systems, and synthetic materials. Each product includes price ranges, manufacturer specs, fire ratings, and wind load ratings — useful for roofing estimating software and contractor quoting tools.
Yes. Substrata is designed to be LLM-friendly: clean JSON output, consistent field names, filterable data, and comprehensive documentation. The OpenAPI spec lets AI coding assistants automatically generate correct API calls. The /llms.txt file provides a concise summary for LLM context windows.
Run real API queries against the live database. No sign-up required. 10 requests included.
LLM Discovery Files
/llms.txt — Concise summary for LLM context windows
/llms-full.txt — Full API reference optimized for LLMs
/openapi.json — OpenAPI 3.0 specification
Price Reference
/prices/index — Substrata Construction Price Index — public reference, no auth required
/prices — Price ranges by category