# Omnicost

Open construction cost catalog. Aggregates real-time material, labor, and equipment prices from procurement portals, vendor catalogs, and BC3/FIEBDC-3 files across 10+ countries.

## What's here

- **Canonical items**: `/api/v1/items` — one row per real-world product, with vendor breakdown and median price
- **Item detail**: `/api/v1/items/{id}` — vendor breakdown + 90-day price history. Send `Accept: text/markdown` for an LLM-readable rendering.
- **Search**: `/api/v1/search?q=...` — semantic search via Vectorize embeddings
- **Delta feeds**: `/api/v1/feeds/items.atom`, `/api/v1/feeds/items.rss`, `/api/v1/feeds/region/{ES|US|AR|MX|CL|CO|PE|BR|GB|EU}`
- **OpenAPI spec**: `/api/v1/openapi.json`
- **MCP server**: `/.well-known/mcp.json` → `/api/mcp`
- **OAuth discovery**: `/.well-known/oauth-authorization-server`, `/.well-known/oauth-protected-resource`
- **Blog**: `/en/blog` — product notes on live price crawling, AI budgets, catalog normalization, and construction cost intelligence.

## Authentication

Public read endpoints work without auth (60 req/min/IP).

For higher rate limits, sign up for a free developer key:

```
POST https://omnicost.com/api/v1/keys/signup
Content-Type: application/json

{ "email": "you@example.com", "name": "Your name" }
```

→ Returns `{ "key": "omc_pub_xxxx" }`. 200 req/min.

For higher production limits, create an Omnicost workspace and use an organization key. API, MCP, and in-app agents are included in the same workspace plans: https://omnicost.com/pricing.

Send the key as `Authorization: Bearer omc_pub_xxxx`.

## Common queries

| What you want | Endpoint |
| --- | --- |
| Spanish concrete prices | `GET /api/v1/search?q=hormigon%20HA-25&region=ES` |
| Recent updates in Brazil | `GET /api/v1/feeds/region/BR` |
| All vendors for an item | `GET /api/v1/items/ci_xxxx` (returns `vendors[]`) |
| 90-day price history | `GET /api/v1/items/ci_xxxx` (returns `price_history[]`) |

## Latest product articles

- Building the Construction Price Graph: https://omnicost.com/en/blog/building-the-construction-price-graph
- MCP and API Access for Construction Cost Data: https://omnicost.com/en/blog/mcp-and-api-for-construction-cost-data
- Budget Audits: Finding Missing Units, Quantities, and Prices Before They Hurt Margin: https://omnicost.com/en/blog/budget-audits-missing-units-quantities-prices
- CostBot: Crawling Construction Prices on Cloudflare Without Letting Costs Run Away: https://omnicost.com/en/blog/costbot-cloudflare-crawlers-cheap-price-intelligence
- Regional Price Benchmarks for Argentina, Spain, and Beyond: https://omnicost.com/en/blog/regional-price-benchmarks-argentina-spain
- From Spreadsheets to Agentic Construction Budgets: https://omnicost.com/en/blog/from-spreadsheets-to-agentic-budgets
- Construction Estimates Need Version Control: https://omnicost.com/en/blog/construction-estimate-version-control
- Catalog Normalization: Units, Prices, and Providers in One Model: https://omnicost.com/en/blog/catalog-normalization-units-prices-and-providers

## Data model

- Each `canonical item` aggregates N `vendor SKUs` (one per source)
- Each vendor SKU links to a `crawl_source` with a `trust_score` (0-100)
- `median_price_cents` is computed nightly, weighted by source trust
- `cpv_code` (EU CPV) is set when the source provides it; never AI-assigned

## Bot policy

We welcome AI crawlers on the public catalog + APIs. See https://omnicost.com/robots.txt for the allow/disallow rules. Authenticated AI agents get higher rate limits — set up a key as above.

## Contact

jorge@pox.me · https://github.com/omnicost (issues for partners)
