11880 API11880.com ↗
Access 11880.com's German business directory via API. Search companies, retrieve contact details, opening hours, reviews, and autocomplete trades and cities.
What is the 11880 API?
The 11880.com API provides 4 endpoints for querying Germany's 11880.com business directory, covering millions of company listings. Use search_companies to find businesses by keyword and location, get_company_details to retrieve full contact records including geo coordinates, opening hours, and reviews, and two autocomplete endpoints for trades and cities to power search interfaces.
curl -X GET 'https://api.parse.bot/scraper/094c1576-eea0-42e9-8009-bb32096fbd1d/search_companies?page=1&keyword=Restaurant&location=Berlin' \ -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 11880-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: 11880.com Business Directory SDK — search, autocomplete, drill-down."""
from parse_apis.eleventy_eight_eighty_com_business_directory_api import (
Directory, CompanySummary, Company, Trade, City, CompanyNotFound,
)
client = Directory()
# Discover trades matching a partial query — single-page autocomplete.
for trade in client.trades.autocomplete(query="pizz", limit=5):
print(trade.id, trade.name)
# Discover cities matching a prefix.
for city in client.cities.autocomplete(query="muen", limit=3):
print(city.name, city.slug, city.zipcode)
# Search for companies in Berlin — page-based pagination, capped.
listing = client.companysummaries.search(keyword="Restaurant", location="Berlin", limit=1).first()
if listing:
print(listing.name, listing.phone, listing.address)
# Drill into full details from the summary.
detail = listing.details()
print(detail.name, detail.email, detail.payment_methods)
for hour in detail.opening_hours[:2]:
print(hour.day_of_week, hour.opens, hour.closes)
# Direct company lookup by URL — typed error handling.
try:
company = client.companies.get(url="https://www.11880.com/branchenbuch/berlin/071364395B107275402/babu-restaurant.html")
print(company.name, company.address.street, company.address.city)
except CompanyNotFound as exc:
print(f"Company not found: {exc.url}")
print("exercised: trades.autocomplete / cities.autocomplete / companysummaries.search / details / companies.get")
Search for companies by keyword and location in the 11880.com directory. Returns paginated business listings with name, address, phone, and rating. The keyword matches trades or company names; the location scopes results to a city. Pagination is page-based starting at 1. An optional filters JSON string narrows results further (e.g. opening_hours, rating).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| filters | string | JSON string of filters to apply, e.g. {"opening_hours": "true", "rating": "4"}. |
| keyword | string | Industry or company name to search for. |
| location | string | City name to search in. |
{
"type": "object",
"fields": {
"page": "integer, current page number",
"results": "array of company summary objects with name, detail_url, address, phone, rating, and review_count",
"total_count_hint": "integer, number of results on the current page"
},
"sample": {
"data": {
"page": 1,
"results": [
{
"name": "BABU Restaurant",
"phone": "(030) 46994966",
"rating": null,
"address": "Treptower Str. 9512059Berlin(Neukoelln)",
"detail_url": "https://www.11880.com/branchenbuch/berlin/071364395B107275402/babu-restaurant.html",
"review_count": "5 von 5 Sternen(1 Bewertung)"
}
],
"total_count_hint": 50
},
"status": "success"
}
}About the 11880 API
Search and Company Data
The search_companies endpoint accepts a keyword (industry or company name), a location (city name), an optional filters JSON string, and a page integer for pagination. Each result object in the results array includes name, detail_url, address, phone, rating, and review_count. The total_count_hint field reflects how many results appear on the current page. Filters support parameters such as opening_hours and minimum rating to narrow results.
Company Details
get_company_details takes a url matching a detail_url from search results and returns a full company record. Fields include a structured address object (street, zip, city), phone, email, website, rating, review_count, and an opening_hours array with dayOfWeek, opens, and closes per entry. The geo object provides latitude and longitude for mapping, and the reviews array contains individual entries with author, rating, and description.
Autocomplete Endpoints
get_trades_autocomplete returns up to 10 trade or industry suggestions matching a partial query string, each with an id and name. get_cities_autocomplete returns matching German city records including name, slug, and zipcode for a partial city name query. Both endpoints support German umlauts, making it straightforward to handle inputs like "mün" for München. These are useful for building type-ahead inputs that feed into search_companies.
The 11880 API is a managed, monitored endpoint for 11880.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when 11880.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 11880.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 German business finder that filters results by minimum rating and opening hours availability
- Enrich a CRM with phone, email, and address data pulled from get_company_details for German companies
- Map competitor locations using geo coordinates (latitude/longitude) returned by get_company_details
- Aggregate and analyze customer reviews for businesses in a specific German city or trade category
- Power a type-ahead search field with trade and city suggestions using the two autocomplete endpoints
- Monitor opening hours changes for a list of businesses tracked by their 11880.com detail URLs
- Generate leads by scraping contact details for businesses in a given trade and location combination
| 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 11880.com offer an official developer API?+
What does get_company_details return beyond what search_companies provides?+
How does pagination work in search_companies?+
page integer parameter. The response includes a page field echoing the current page and a total_count_hint reflecting the number of results on that page — not a global total. To iterate through all results, increment page until total_count_hint drops to zero or fewer results are returned than expected.