Spec's API
Spec's Wines, Spirits & Finer Foods data as structured JSON: product search with the online price, case price and stock; product detail with the price and stock at every Spec's store in one call; and a store locator for its 7 Texas regions.
50 free credits on signup. No card, no Spec's account.
{ "data": { "query": "titos", "page": 1, "total_results": 62, "total_pages": 3, "count": 24, "products": [ { "position": 1, "sku": "181081", "upc": "61994700003", "slug": "titos-texas-vodka-5", "name": "Tito's Handmade Vodka", "brand": "Tito's", "size": "1.75L", "category_group": "Vodka", "subcategory": "Texas Vodka", "price": 3155, "case_price": null, "case_quantity": null, "on_promo": false, "keyclub_offer": false, "in_stock": true }, { "position": 2, "sku": "920629", "upc": "61994700002", "slug": "titos-texas-vodka-4", "name": "Tito's Handmade Vodka", "brand": "Tito's", "size": "750ML", "category_group": "Vodka", "subcategory": "Texas Vodka", "price": 1892, "case_price": null, "case_quantity": null, "on_promo": false, "keyclub_offer": false, "in_stock": true } ] }, "response_time": 6244}Live call against the real endpoint. 2 free runs, then it's your own key.
What is the Scavio Spec's API?
The Scavio Spec's API is a REST API that returns Spec's Wines, Spirits & Finer Foods data as structured JSON. Its 3 POST endpoints cover product search with the online price, case price and stock; product detail with the price and stock at every Spec's store in a single call; and a store locator by Texas region.
- 3
- endpoints, all live in production
- 5
- credits per call, every endpoint
- 195
- store prices for Tito's 1.75L in one call
The Spec's data buyers actually need
What a bottle costs at each store, not just the online price.
Every store's price
POST /api/v1/specs/productOne call returns the product's price and stock at every Spec's store that lists it, about 200 across Texas, plus the online price and details: ABV, proof, origin, region, vintage and tasting notes. Pass a store_id to put that store's price at the top.
Search
POST /api/v1/specs/searchKeyword search across Spec's wine, spirits, beer and finer foods. Every result carries the online price, case price and case quantity, promotion and Keyclub flags, stock, size, category, SKU, UPC and the slug the product call takes.
Store locator
POST /api/v1/specs/storesSpec's stores in each of its 7 Texas regions, with the store number that keys every store price, plus address, phone, coordinates, opening hours for each day and status.
All 3 Spec's API endpoints
Every route is a POST, returns JSON, and takes the same API key. 5 credits per successful call.
| Endpoint | Returns | Credits |
|---|---|---|
Search/api/v1/specs/search | Keyword search with the online price, case price and quantity, promotion and Keyclub flags, stock, size, SKU and UPC | 5 |
Product detail/api/v1/specs/product | Every Spec's store's price and stock for one product in a single call, plus ABV, origin, tasting notes and the online price; optional store_id puts one store on top | 5 |
Store locator/api/v1/specs/stores | Spec's stores in a Texas region with store number, address, phone, coordinates, opening hours and status | 5 |
50 free credits on signup covers 10 Spec's calls. See plans
Search Spec's and price a product at every store
Search returns the online price and a slug; the product call turns that slug into every store's price. The response on the right is a real capture.
from scavio import ScavioClient
client = ScavioClient(api_key="sk_live_your_key")
# Search Spec's - 5 credits
res = client.specs.search("titos")
slug = res["data"]["products"][0]["slug"]
# Every store's price for that product, with store 169 on top - 5 credits
p = client.specs.product(slug=slug, store_id="169")["data"]
print(p["name"], p["price"], "online", p["online"]["price"], "stores", p["store_count"])
cheapest = min(p["store_prices"], key=lambda s: s["price"])
print("cheapest store", cheapest["store_id"], cheapest["price"])
# Store numbers, names and addresses - 5 credits
stores = client.specs.stores("san-antonio")["data"]["stores"]{
"data": {
"query": "titos",
"page": 1,
"total_results": 62,
"total_pages": 3,
"count": 24,
"products": [
{
"position": 1,
"sku": "181081",
"upc": "61994700003",
"slug": "titos-texas-vodka-5",
"name": "Tito's Handmade Vodka",
"brand": "Tito's",
"size": "1.75L",
"category_group": "Vodka",
"subcategory": "Texas Vodka",
"price": 3155,
"case_price": null,
"case_quantity": null,
"on_promo": false,
"keyclub_offer": false,
"in_stock": true
},
{
"position": 2,
"sku": "920629",
"upc": "61994700002",
"slug": "titos-texas-vodka-4",
"name": "Tito's Handmade Vodka",
"brand": "Tito's",
"size": "750ML",
"category_group": "Vodka",
"subcategory": "Texas Vodka",
"price": 1892,
"case_price": null,
"case_quantity": null,
"on_promo": false,
"keyclub_offer": false,
"in_stock": true
}
]
},
"response_time": 6244
}Why not scraping Spec's directly?
Spec's has no public API, and its store prices are buried in the product page's component data.
DIY Spec's scraping
- Spec's offers no public API for product, price or store data
- Store prices are keyed by internal store numbers inside the page's streamed data
- Mapping those numbers to real stores means crawling every region's store pages
- Pages are slow to load and occasionally fail, so you need retries
Scavio Spec's API
- Three POST endpoints returning clean JSON with consistent field names
- Every store's price and stock for a product in one call
- Store numbers, addresses and hours from the store locator
- One key, 50 free credits on signup, the same JSON envelope as every Scavio platform
Scavio returns publicly available data only.
What developers build with it
Restaurant and bar purchasing
See what the spirits, wine and beer you buy cost at the Spec's stores near you, next to your distributor, Total Wine and grocery prices.
stores + productStore-to-store price comparison
Spec's prices differ by store. One product call returns every store's price, so finding the cheapest store for a bottle is a single request.
productTexas liquor price tracking
Track Spec's online and per-store prices over time for a list of products, and catch promotions and Keyclub offers as they start.
search + productRetail competitive intelligence
Compare Spec's prices against Total Wine, HEB and Costco for the same brand and size, on one API key.
product + Total Wine + HEB + CostcoAgent shopping tools
Give an AI agent Spec's as a callable tool through the MCP server: search the catalog, find the cheapest store, check stock before a trip.
MCP + RESTHow to get Spec's data as JSON
- 1
Get an API key
Sign up for a Scavio account and copy your key from the dashboard. You get 50 credits free on signup, with no card required and no Spec's account.
- 2
Search for products
Send {"query": "titos"} to https://api.scavio.dev/api/v1/specs/search with an Authorization: Bearer header. Each result carries the online price, stock and a slug.
- 3
Get every store's price
Pass a result's slug to /api/v1/specs/product. The response lists the price and stock at every Spec's store that carries the item. Look up store numbers with /api/v1/specs/stores.
Spec's API FAQ
Does Spec's have a public API?
+
No. Spec's Wines, Spirits & Finer Foods does not offer a public API for product, price or store data. The Scavio Spec's API fills that gap with 3 POST endpoints that return Spec's data as structured JSON: product search, product detail with every store's price, and a store locator.
What is the Scavio Spec's API?
+
It is a REST API that returns public specsonline.com data as structured JSON. Three POST endpoints cover keyword search with the online price, case price and stock; product detail with the price and stock at every Spec's store; and a store locator by Texas region.
Are Spec's prices the same at every store?
+
No. Spec's prices differ by store. In our capture, Tito's Handmade Vodka 1.75L was 3155 cents online and ranged from 3155 to 3620 cents across 195 stores, with 3260 cents at store 169 (Stone Oak).
How do I get one store's price?
+
Pass store_id to /api/v1/specs/product. The top-level price and stock become that store's, and available_at_store tells you whether the store lists the item at all. Every store's price is still in store_prices.
How do I find a Spec's store number?
+
POST one of the 7 regions (austin, corpus-christi, dallas, el-paso, fort-worth, houston, san-antonio) to /api/v1/specs/stores. Every store comes back with its store_id, name, address, phone, coordinates and hours. The san-antonio region returned 14 stores in our capture, including Kerrville and Boerne.
Does search return store prices?
+
Search returns Spec's online price for each result, plus case price, case quantity, promotion and Keyclub flags and stock. Per-store prices come from the product endpoint, which returns all of them in one call.
What are on_promo and keyclub_offer?
+
on_promo is true when Spec's is running a promotion on the item, and keyclub_offer is true when a Keyclub member offer applies. Keyclub is Spec's free loyalty program.
How much does a Spec's request cost?
+
Every Spec's endpoint costs 5 credits, including the product call that returns every store's price. New accounts get 50 free credits on signup, one time, with no card required. Paid plans start at $30 per month for 7,000 credits.
How are prices formatted?
+
Prices are integers in cents: 3155 means $31.55. case_price is the price of a full case when Spec's sells one, with case_quantity bottles in it.
How fresh is the data?
+
Every request fetches the page live from Spec's at the moment you call it, and nothing is cached. Each response carries fetched_at, the time Spec's answered.
Which languages and tools are supported?
+
Every endpoint is a plain HTTPS POST with a JSON body, so any language works. Scavio also ships Python and JavaScript SDKs, a remote MCP server at mcp.scavio.dev for AI agents, and an n8n community node, all on the same API key.
Is using Spec's data legal?
+
Scavio returns publicly available Spec's data and does not access accounts or order history. You remain responsible for how you use the data, including compliance with Spec's terms. Talk to your own counsel for your specific use case.
Explore more of Scavio
Total Wine API
Store-level prices, units in stock and aisle data.
HEB API
Store-level grocery prices, SNAP eligibility and aisle locations.
Costco API
Warehouse prices, gas, coupons and clearance.
Kroger API
Search and product detail across Kroger banners.
Walmart API
Search, product, reviews and store-level pricing.
Spec's API docs
All 3 endpoints with params and real responses.
Try the Spec's API free
50 free credits on signup, no card. Your first request is a POST with a product name in it.