Adorama APIadorama.com ↗
Search Adorama's catalog, retrieve full product details by SKU, and browse electric guitars with brand filters and sorting via 4 structured JSON endpoints.
What is the Adorama API?
The Adorama API exposes 4 endpoints covering product search across the full Adorama catalog, category browsing for electric guitars, and per-SKU detail retrieval. The search_products endpoint queries the entire catalog — cameras, audio gear, computers, musical instruments, and more — returning fields like sku, price, you_save_percent, stock_status, and total_pages per call. The get_product endpoint adds GTIN, MPN, rating, is_used flag, and a full image gallery for any SKU.
curl -X GET 'https://api.parse.bot/scraper/1819ce27-9fd2-4713-8fea-f923e0461978/list_electric_guitars?page=1&brand=Ibanez&sort_by=relevancy' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace adorama-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Adorama SDK — search the catalog, drill into details, and browse electric guitars."""
from parse_apis.adorama_com_api import Adorama, SortBy, InputNotFound
client = Adorama()
# Search the full catalog for tripods, capped at 5 results
for item in client.product_summaries.search(query="camera tripod", limit=5):
print(item.title, item.price, item.stock_status)
# Take the first search hit and navigate to full product detail
hit = client.product_summaries.search(query="carbon fiber tripod", limit=1).first()
if hit:
product = hit.details()
print(product.title, product.brand, product.price, product.currency)
print("Includes:", product.includes)
for variant in product.variants:
print(variant.sku, variant.condition, variant.price)
# Browse electric guitars filtered by brand, sorted by price
for guitar in client.electric_guitar_summaries.list(brand="Ibanez", sort_by=SortBy.PRICE_LOW, limit=3):
print(guitar.title, guitar.price, guitar.you_save_dollar)
# Drill from a guitar summary into its full detail page
summary = client.electric_guitar_summaries.list(brand="Fender", limit=1).first()
if summary:
detail = summary.details()
print(detail.title, detail.stock_status, detail.is_discontinued)
for v in detail.variants:
print(v.sku, v.stock_status, v.price)
# Point-lookup a product by SKU discovered from a previous search
if hit:
try:
full = client.products.get(sku=hit.sku)
print(full.title, full.rating, full.review_count)
except InputNotFound:
print("Product not found")
print("exercised: product_summaries.search / products.get / electric_guitar_summaries.list / summary.details")
List electric guitar products from Adorama's catalog, one page (24 items) per call; `page` selects the page and `total`/`total_pages` come from the site's result count. Supports sorting (relevancy, price low/high, % savings, newest, rating) and filtering by brand. Each product summary carries pricing (price, list price, savings), stock status and label, category, highlights, rating and review count, and condition flags.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination (1-based). |
| brand | string | Filter results by brand name (e.g. Fender, Ibanez, Gretsch, Charvel, EVH, Jackson, Schecter, Washburn). Omitting returns all brands. |
| sort_by | string | Sort order for results. |
{
"type": "object",
"fields": {
"page": "integer",
"total": "integer, site-reported number of matching products",
"per_page": "integer",
"products": "array of product summaries (sku, title, brand, price, high_price, you_save_dollar, you_save_percent, stock_status, stock_label, badge_text, product_url, image_url, category_id, category_path, mfr, highlights, is_pre_order, is_used, is_refurbished, is_available_for_purchase, free_shipping, variant_count, rating, review_count)",
"total_pages": "integer"
},
"sample": {
"data": {
"page": 1,
"total": 175,
"per_page": 24,
"products": [
{
"mfr": "GRGM21WH",
"sku": "IBGRGM21WH",
"brand": "Ibanez",
"price": 199.99,
"title": "Ibanez miKro Series GRGM21 Electric Guitar, Rosewood Fretboard, White",
"rating": 5,
"is_used": false,
"image_url": "https://www.adorama.com/images/product/ibanez-mikro-grgm21-white_ibgrgm21wh.webp",
"badge_text": "30% Off",
"high_price": 285.7,
"highlights": [
"Ibanez GRGM21 Electric Guitar: Superior Playability.",
"Poplar Body Provides Balanced Tone for Electric Guitar."
],
"category_id": 232734,
"product_url": "https://www.adorama.com/ibanez-mikro-grgm21-electric-guitar-rosewood-white/p/ibgrgm21wh",
"stock_label": "On Backorder",
"is_pre_order": false,
"review_count": 2,
"stock_status": "Out",
"category_path": "Musical Instruments/Guitars/Electric Guitars",
"free_shipping": "Free Shipping",
"variant_count": null,
"is_refurbished": false,
"you_save_dollar": 85.71,
"you_save_percent": 30,
"is_available_for_purchase": true
}
],
"total_pages": 8
},
"status": "success"
}
}About the Adorama API
Catalog Search and Browsing
The search_products endpoint accepts a query string and returns up to 24 product summaries per page. The brand parameter filters results to a single brand as Adorama displays it (e.g. Sony, Canon), while sort_by controls ordering — relevancy, price ascending/descending, percent savings, newest, or rating. Each result in the products array includes sku, title, brand, price, high_price, you_save_dollar, you_save_percent, stock_status, and stock_label. The total, total_pages, and has_more fields let you paginate across the full result set.
Electric Guitar Category
The list_electric_guitars endpoint browses Adorama's electric guitar category with the same pagination model (24 items per page). The brand parameter accepts guitar-specific values like Fender, Ibanez, Gretsch, Charvel, EVH, Jackson, Schecter, and Washburn. You can combine brand filtering with any supported sort_by value. The get_electric_guitar_detail endpoint goes deeper on a single SKU, returning variants (each with individual pricing and stock status), a highlights array of feature descriptions, and product_url.
Per-SKU Product Details
The get_product endpoint works for any SKU from anywhere in Adorama's catalog, not just guitars. It returns price, currency, gtin (when published), mpn (manufacturer part number), rating, is_used, and an images array of gallery URLs for the active variant. The is_used boolean distinguishes used or open-box listings from new inventory. For guitar-specific listings, get_electric_guitar_detail additionally returns category_id, main_category, and a full variants array covering option-level stock and pricing.
The Adorama API is a managed, monitored endpoint for adorama.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when adorama.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official adorama.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Track price and stock changes for specific camera or lens SKUs using
get_producton a scheduled basis - Compare
you_save_percentacross electric guitar brands usinglist_electric_guitarswith thebrandfilter - Build a used gear monitor by filtering
get_productresults whereis_usedis true - Aggregate GTIN/UPC data from
get_productresponses for catalog enrichment or cross-marketplace matching - Surface
highlightsandvariantsfromget_electric_guitar_detailto power a guitar comparison tool - Index Adorama product titles, SKUs, and ratings via
search_productsfor a price-comparison site covering photography or audio equipment
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Adorama have an official public developer API?+
What does `get_product` return that `search_products` does not?+
get_product adds gtin (UPC), mpn (manufacturer part number), is_used, currency, images (full gallery URLs), and a numeric rating. The search_products and list_electric_guitars endpoints return summary-level data suited for listing pages, not full product identity or image sets.Does the electric guitar detail endpoint cover other instrument categories such as bass guitars or acoustic guitars?+
list_electric_guitars and get_electric_guitar_detail endpoints are scoped to the electric guitar category. For other instrument types you can use search_products with a relevant query. You can also fork this API on Parse and revise it to add a dedicated endpoint for bass or acoustic guitars.Are seller reviews or written customer review text available?+
rating field from get_product but does not return individual review text, reviewer names, or review counts. You can fork this API on Parse and revise it to add a reviews endpoint if that data is available on the product page.How does pagination work across endpoints?+
page numbering and return 24 items per page (per_page: 24). The total and total_pages fields come from Adorama's reported match count, so you can calculate how many calls are needed before fetching. search_products also includes a has_more boolean as a direct next-page signal.