Somosbelcorp APIcatalogodigital.somosbelcorp.com ↗
Retrieve Belcorp product data, pricing, and catalog pages across 13 countries and 3 brands (Ésika, L'Bel, Cyzone) via 6 structured endpoints.
What is the Somosbelcorp API?
The Belcorp Digital Catalog API exposes 6 endpoints covering products, catalogs, and pricing from Belcorp's digital catalog platform across 13 countries and three brands: Ésika, L'Bel, and Cyzone. Starting with select_country to retrieve valid country codes, you can chain through get_catalogs to obtain the active campaign, then pull full product details — including pricing tiers, variant images, and linked promotional strategies — via get_product_detail.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/33d6321a-2b61-4fee-afdf-3bd79f234151/select_country' \ -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 catalogodigital-somosbelcorp-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: Belcorp Catalog SDK — browse catalogs, search products, get details."""
from parse_apis.belcorp_catalog_api import Belcorp, CountryCode, BrandCode, ResourceNotFound
client = Belcorp()
# List available countries
for country in client.countries.list(limit=5):
print(country.name, country.code)
# Get active campaign for Mexico — needed to query products
campaign = client.campaigns.get(country_code=CountryCode.MX)
print(f"Campaign: {campaign.name} (code={campaign.code}), catalogs={len(campaign.catalogs)}")
# Browse catalog pages for the first catalog
catalog = client.catalogs.get(catalog_id=campaign.catalogs[0].id, country_code=CountryCode.MX)
print(f"Catalog brand: {catalog.brand.name}, pages: {len(catalog.pages)}")
# Search for perfume products
product = client.products.search(query="perfume", country_code=CountryCode.MX, campaign_code=campaign.code, limit=1).first()
if product:
print(f"Found: {product.name} — {product.pricing.currencyCode} {product.pricing.normalPrice}")
# Get product detail with error handling
try:
detail = client.products.get(cuv="99999", brand_code=BrandCode.E, country_code=CountryCode.MX, campaign_code=campaign.code)
print(detail.name, detail.pricing.offerPrice)
except ResourceNotFound as exc:
print(f"Product not found: {exc}")
# List products by catalog brand
for item in client.products.list_by_catalog(brand_code=BrandCode.E, country_code=CountryCode.MX, campaign_code=campaign.code, limit=3):
print(f"CUV={item.cuv} SKU={item.sku} page={item.pageNumber}")
print("exercised: countries.list / campaigns.get / catalogs.get / products.search / products.get / products.list_by_catalog")
Returns the list of available countries for the Belcorp catalog platform. Each country carries an ISO code usable as input for all country-scoped endpoints, plus a flag image URL. The list is stable across campaigns.
No input parameters required.
{
"type": "object",
"fields": {
"countries": "array of country objects with id, code, name, and flag URL"
},
"sample": {
"data": {
"countries": [
{
"id": "9",
"code": "MX",
"flag": "https://belc-catalogodigital-data-prd.s3.amazonaws.com/services/countries/images/flags/FlagMX.png",
"name": "México"
},
{
"id": "4",
"code": "CO",
"flag": "https://belc-catalogodigital-data-prd.s3.amazonaws.com/services/countries/images/flags/FlagCO.png",
"name": "Colombia"
}
]
},
"status": "success"
}
}About the Somosbelcorp API
Country and Campaign Discovery
select_country returns all supported countries, each with an ISO country code and a flag image URL. These codes are required inputs for every subsequent endpoint. get_catalogs accepts one of those codes and returns the active campaign object — including a code field (e.g., 202609) that must be passed to all product-level endpoints. Campaigns rotate periodically, so fetching the current campaign before any product queries ensures you are working with live data. Each campaign response also includes an array of catalog objects with brand details and category listings.
Catalog Structure and Product Mappings
get_catalog_detail takes a catalog_id from get_catalogs and returns the full page structure of that catalog, including page images, product positions per page, and associated materials and notes. get_products_by_catalog accepts a brand_code (E for Ésika, L for L'Bel, C for Cyzone), a country code, and a campaign code, and returns an array of product mapping objects containing cuv, sku, pageNumber, and productId. The cuv field from this response is the required input for individual product lookups.
Product Detail and Search
get_product_detail returns the most granular data: product name, description, category, brand object, main and variant image URLs, and a pricing object with currencyCode, normalPrice, offerPrice, and tierPrices. It also returns a strategy object linking any promotional offers or bundled products, and a variants array for products sold in multiple options. search_products accepts a free-text keyword along with a country code and campaign code, returning matching products across all three brands with the same field set as the detail endpoint.
Coverage Scope
The platform covers 13 countries including MX, CO, PE, BO, CL, CR, EC, SV, GT, PA, PR, DO, and US. All pricing is campaign-specific and denominated in the local currency indicated by currencyCode. Categories and brand assignments are returned at both the catalog and product level, allowing products to be grouped without additional lookups.
The Somosbelcorp API is a managed, monitored endpoint for catalogodigital.somosbelcorp.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when catalogodigital.somosbelcorp.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 catalogodigital.somosbelcorp.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 active campaign pricing across all Belcorp countries by comparing
normalPriceandofferPricefromget_product_detail. - Build a cross-brand product database by ingesting
get_products_by_catalogfor brand codes E, L, and C across multiple country codes. - Map which catalog page a product appears on using the
pageNumberfield fromget_products_by_catalogfor planogram or layout analysis. - Monitor promotional strategies and bundled offers by parsing the
strategyobject returned inget_product_detail. - Power a multilingual product search interface using
search_productswith country-scoped results and image URLs. - Audit catalog coverage per category by combining the
categoriesarray fromget_catalogswith product counts fromget_products_by_catalog. - Detect variant product availability per campaign by examining the
variantsarray inget_product_detailfor a given CUV.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Belcorp provide an official public developer API for its digital catalog?+
What does `get_catalog_detail` return beyond basic catalog metadata?+
get_catalog_detail returns the full page-level structure of a catalog: each page object includes images, sort order, status, product position mappings, materials, and notes. This makes it possible to reconstruct the visual layout of a catalog and associate page numbers with specific products.Are historical campaigns accessible, or only the current one?+
get_catalogs returns the active campaign for a given country. Past campaign codes are not surfaced through any endpoint, and product detail endpoints are campaign-specific, requiring a valid current campaign code. You can fork this API on Parse and revise it to add an endpoint that tracks and archives campaign codes as they rotate.Does the API return customer reviews or ratings for products?+
Does `search_products` support filtering by brand or category?+
search_products endpoint accepts a keyword, country code, and campaign code, but does not expose a brand or category filter parameter. Results span all three brands and include brand and category fields in each result object, so filtering can be applied client-side. You can fork this API on Parse and revise it to add server-side brand or category filtering if needed.