Twin Cities Salon and Barber Prices: Every Published Service Price, by Shop
Updated Oct 20, 2026
$250
Fixed price
Already have an account? Log in
Have an API key? Use the REST API →
Source, license and coverage
Supplier documentation. These claims are separate from the automated sample score. A listing edit date is not a data freshness date.
- License
- Brick & Mortar data licence: internal commercial use incl. model training, no redistribution
- Source / creator
- Public online booking pages (Booksy, Fresha, Vagaro) of Twin Cities shops, collected 2026-10-13.
- Collection method
- Every price a Twin Cities shop publishes on its online booking page, collected 2026-10-13. Where the shop's own service name maps to a common service (men's haircut, balayage, gel manicure, ...), `service` carries the normalised name so shops compare like for like; `price_type` says whether the figure is fixed, a 'from' floor, or a range. The benchmark table gives n shops, median and quartiles per service.
- Coverage start
- Not applicable
- Coverage end
- Not applicable
- Data last updated
- 2026-10-20
- Update schedule
- snapshot
Sample structure score: 90.3 / 100
This automated check describes the inspected sample, not factual accuracy, legal rights, representativeness, or the quality of the entire dataset. It is not a customer rating.
Assessed 10 sample records (CSV) on 2026-10-20. All records in the provided sample were checked.
| Check | Points | Evidence |
|---|---|---|
| Populated cells | 40.3 / 50 | 137 of 170 top-level cells contain a value. Null, absent and blank values count as missing; zero and false count as populated. |
| Consistent value types | 30 / 30 | 137 of 137 populated cells match their column's most common observed type. Types are inferred, not checked against real-world truth. |
| Consistent record shape | 20 / 20 | 10 of 10 records have the expected fields. CSV/TSV use the header width; JSON uses the union of observed keys. |
Field-level findings and improvements
Check missing cells and mixed types below. Document intentional missing values or mixed types in your field descriptions. Do not fill legitimate unknowns with invented values just to increase this score.
| Field | Missing cells | Most common type | Other populated types |
|---|---|---|---|
| price_id | 0 / 10 | string | 0 / 10 |
| shop | 0 / 10 | string | 0 / 10 |
| city | 0 / 10 | string | 0 / 10 |
| zip | 0 / 10 | number | 0 / 10 |
| lat | 0 / 10 | number | 0 / 10 |
| lon | 0 / 10 | number | 0 / 10 |
| shop_url | 0 / 10 | string | 0 / 10 |
| service_as_listed | 0 / 10 | string | 0 / 10 |
| service | 7 / 10 | string | 0 / 3 |
| service_family | 7 / 10 | string | 0 / 3 |
| price_usd | 0 / 10 | number | 0 / 10 |
| price_high_usd | 10 / 10 | unknown | 0 / 0 |
| price_type | 0 / 10 | string | 0 / 10 |
| duration_min | 0 / 10 | number | 0 / 10 |
| duration_max | 0 / 10 | number | 0 / 10 |
| provider_tier | 9 / 10 | string | 0 / 1 |
| observed_on | 0 / 10 | string | 0 / 10 |
About this data
12,883 published service prices from Twin Cities salons, barbers, nail and lash studios (October 2026): shop, location, service as the shop names it, our normalised service, price (fixed, 'from', or range), duration and stylist tier, plus metro benchmarks per service. One CSV, 12,883 rows; column meanings in the schema. Shops are named (they are businesses); no customer, stylist or owner names, phones or emails.
Retrieve with your agent or Python
Create an account and configure DATABAZAAR_API_KEY. This example retrieves free or already purchased data; it never makes a purchase. For a multi-file dataset, choose a file index from the manifest.
Download the Python examplepython3 retrieve-dataset.py ebbe92a0-e37e-48c2-821d-fa3e998c9099 --output dataset.bin
Schema
| Name | Type | Description |
|---|---|---|
| price_id | string | |
| shop | string | |
| city | string | |
| zip | number | |
| lat | number | |
| lon | number | |
| shop_url | string | |
| service_as_listed | string | |
| service | string | |
| service_family | string | |
| price_usd | number | |
| price_high_usd | unknown | |
| price_type | string | |
| duration_min | number | |
| duration_max | number | |
| provider_tier | string | |
| observed_on | string |
Sample Data
Download a free sample to inspect the data before purchasing.
Public sample only. Sign in to retrieve the full dataset, including free datasets.
For AI Agents
# 1. Add to your agent's MCP config (claude_desktop_config.json or similar):
{
"mcpServers": {
"databazaar": { "command": "npx", "args": ["databazaar-mcp"] }
}
}
# 2. Your agent can then call:
search_datasets({ query: "Twin Cities Salon and Barber P" })
// Found: ebbe92a0-e37e-48c2-821d-fa3e998c9099
buy_now({ dataset_id: "ebbe92a0-e37e-48c2-821d-fa3e998c9099" }) // uses your saved card# Authenticate with your API key:
curl https://api.databazaar.io/datasets/ebbe92a0-e37e-48c2-821d-fa3e998c9099 \
-H "Authorization: Bearer YOUR_API_KEY"
# Purchase:
curl -X POST https://api.databazaar.io/datasets/ebbe92a0-e37e-48c2-821d-fa3e998c9099/buy \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"dataset_id": "ebbe92a0-e37e-48c2-821d-fa3e998c9099"}'