Archello APIarchello.com ↗
Access Archello brand profiles, architecture firm directories, and full-text search across projects, products, and news via 4 structured API endpoints.
What is the Archello API?
The Archello API provides 4 endpoints for querying architecture brands, manufacturing firms, and design content indexed on Archello.com. Use list_brands_by_country to page through manufacturers filtered by ISO country code, sector, or product type, or call get_brand_detail to retrieve a specific brand's name, address, office locations, contact email, and website URL by slug. A search endpoint returns cross-content results spanning projects, news, firms, and products.
curl -X GET 'https://api.parse.bot/scraper/c42aa403-4a92-4afd-92f5-a94cd836a94a/list_brands_by_country?code=NL&page=1§or=residential&country=Netherlands&product_type=facades' \ -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 archello-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: Archello SDK — browse brands, firms, and search architecture content."""
from parse_apis.archello_api import Archello, BrandNotFound
client = Archello()
# List brands available in Netherlands, capped at 5
netherlands = client.country(name="Netherlands")
for brand in netherlands.brands(code="NL", limit=5):
print(brand.name, brand.slug)
# Drill into the first firm in the Netherlands
firm = netherlands.firms(code="NL", limit=1).first()
if firm:
detail = firm.details()
print(detail.name, detail.address, detail.description[:100])
# Search across all Archello content
result = client.searchresults.search(query="concrete", limit=1).first()
if result:
print(result.title, result.type, result.url)
# Direct brand lookup with typed error handling
try:
brand = client.brands.get(slug="grohe")
print(brand.name, brand.address)
except BrandNotFound as exc:
print(f"Brand not found: {exc.slug}")
print("exercised: country.brands / country.firms / firm.details / searchresults.search / brands.get")List manufacturers and brands filtered by country with optional sector or product type filters. Returns paginated results with brand names, slugs, and URLs. Use page parameter to navigate through results.
| Param | Type | Description |
|---|---|---|
| code | string | ISO country code. |
| page | integer | Page number for pagination. |
| sector | string | Sector filter (e.g., residential, commercial). |
| country | string | Country name for filtering brands. |
| product_type | string | Product type filter (e.g., facades, windows-and-doors). |
{
"type": "object",
"fields": {
"brands": "array of brand objects with name, slug, and url",
"country": "string country name used for the query",
"filters": "object containing the sector and product_type filters applied",
"total_items": "integer total number of brands matching, or null",
"current_page": "integer current page number"
},
"sample": {
"data": {
"brands": [
{
"url": "https://archello.com/brand/interface",
"name": "Interface",
"slug": "interface"
}
],
"country": "Netherlands",
"filters": {
"sector": null,
"product_type": null
},
"total_items": 1917,
"current_page": 1
},
"status": "success"
}
}About the Archello API
Brand and Firm Discovery
The list_brands_by_country endpoint returns paginated sets of 18 brand objects per page, each containing name, slug, and url. Filter results by passing an ISO code (e.g. NL, US, DE), a country name, a sector value such as residential or commercial, or a product_type like facades or windows-and-doors. The total_items field in the response reflects the full matching count across all pages, letting you plan iteration loops before fetching subsequent pages.
The list_firms endpoint follows the same pagination model and accepts a firm_type filter — for example architects or engineers — in addition to country-based filtering. Both endpoints return a current_page or page field alongside total_items so you can determine whether additional pages exist.
Detailed Brand and Firm Profiles
Passing a slug to get_brand_detail returns a fuller record: description, address, email, website_url, and an offices array of objects each carrying a name and address. The endpoint resolves slugs against both brand and firm URL paths automatically. When a slug does not match any known entity, the response returns an input_not_found status rather than a generic error, which lets downstream code distinguish missing records from network or parsing failures.
Search Across All Content Types
The search endpoint accepts a free-text query string and returns up to 24 result objects per page, each with a title, url, and type classification — values include project, news, brand, and similar categories. The total_results field gives the full match count. This makes it practical to locate firm or brand slugs by name before fetching detail records, or to surface project and news content tied to a keyword.
The Archello API is a managed, monitored endpoint for archello.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when archello.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 archello.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?+
- Build a supplier directory filtered by country and product type using list_brands_by_country with ISO code and product_type params
- Enrich CRM records for architecture firms by pulling address, email, and office locations from get_brand_detail
- Index Archello project and news content for a design research tool using the search endpoint's type-classified results
- Generate brand coverage reports per market by iterating list_brands_by_country pages and aggregating total_items counts by country
- Discover slugs for specific firms or brands by name before fetching full profiles via get_brand_detail
- Filter architecture firms by specialty type (e.g. engineers, architects) and country using list_firms with firm_type and code params
- Map office locations of global architecture firms by extracting the offices array from get_brand_detail responses
| 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.