Discover/Páginas Amarelas API
live

Páginas Amarelas APIpáginasamarelas.pt

Access Portuguese business listings from pai.pt. Search by keyword and location, browse categories, and retrieve contact details, hours, and coordinates.

Endpoint health
verified 3d ago
get_business_detail
get_business_by_id
browse_category
search_businesses
list_categories
5/5 passing latest checkself-healing
Endpoints
5
Updated
26d ago

What is the Páginas Amarelas API?

This API exposes 5 endpoints covering the pai.pt Portuguese Yellow Pages directory, returning business names, addresses, phone numbers, geo coordinates, opening hours, and category data. Use search_businesses to run keyword searches across all of Portugal or filter by city, and use get_business_detail to pull a full profile including website, logo, description, and latitude/longitude for any listed business.

Try it
Page number for pagination.
Search keyword (e.g., 'restaurante', 'hotel', 'dentista').
Location filter (e.g., 'Lisboa', 'Porto'). Omitting returns results across all of Portugal.
api.parse.bot/scraper/c13d65ce-1796-45fb-bd3d-d7db50135285/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/c13d65ce-1796-45fb-bd3d-d7db50135285/search_businesses?page=1&query=restaurante&location=Lisboa' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 p-ginasamarelas-pt-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.

from parse_apis.paginas_amarelas_portugal_pai_pt_api import PaginasAmarelas, Business, BusinessSummary, Category

client = PaginasAmarelas()

# Search for restaurants in Lisboa
for summary in client.businesses.search(query="restaurante", location="Lisboa", limit=5):
    print(summary.name, summary.address)

# Get full details for the first result
detail = summary.details()
print(detail.name, detail.phone, detail.website)
print(detail.opening_hours)

# List all top-level categories
for cat in client.categories.list(limit=5):
    print(cat.name, cat.slug, cat.result_count)

# Browse sub-categories of a category
food = client.category(slug="comer-beber")
for sub in food.sub_categories.list(limit=5):
    print(sub.name, sub.slug)

# Browse businesses in a leaf category
restaurants = client.category(slug="restaurantes")
for biz in restaurants.browse(location="Porto", limit=3):
    print(biz.name, biz.url)
All endpoints · 5 totalmissing one? ·

Full-text search over the pai.pt business directory. query matches business names and categories; location narrows geographically. Returns paginated results with business summaries including name, URL, ID, slug, category, and address. Pagination via page parameter. total_results reflects the server's count for the query/location combination.

Input
ParamTypeDescription
pageintegerPage number for pagination.
queryrequiredstringSearch keyword (e.g., 'restaurante', 'hotel', 'dentista').
locationstringLocation filter (e.g., 'Lisboa', 'Porto'). Omitting returns results across all of Portugal.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "query": "string, the search keyword used",
    "location": "string or null, the location filter used",
    "businesses": "array of business summary objects with keys: url, name, id, slug, category, address",
    "total_results": "integer, total number of results found"
  },
  "sample": {
    "data": {
      "page": 1,
      "query": "restaurante",
      "location": "Lisboa",
      "businesses": [
        {
          "id": "4132",
          "url": "https://www.pai.pt/paginas/4132-restaurante-bar-caldeiras-vulcoes",
          "name": "Restaurante-Bar Caldeiras & Vulcoes",
          "slug": "restaurante-bar-caldeiras-vulcoes",
          "address": "4435-665 BAGUIM DO MONTE",
          "category": "restaurantes"
        }
      ],
      "total_results": 500
    },
    "status": "success"
  }
}

About the Páginas Amarelas API

Search and Browse

The search_businesses endpoint accepts a required query string (e.g., 'dentista', 'hotel') and an optional location filter such as 'Lisboa' or 'Porto'. Results are paginated via the page parameter and each item in the businesses array includes name, address, category, id, slug, and url. The total_results field tells you how many records match before fetching subsequent pages. The browse_category endpoint mirrors this structure but navigates by category slug: top-level slugs like 'comer-beber' return a sub_categories array, while leaf slugs like 'restaurantes' return a businesses array with the same summary fields.

Category Discovery

Before calling browse_category, use list_categories to retrieve all top-level categories from the pai.pt homepage. Each entry exposes name, slug, url, and result_count. Pass a slug directly into browse_category to drill down. The two-level hierarchy (parent → leaf) means a single intermediate call is often needed to reach listable businesses.

Business Detail

Both get_business_detail (takes a full url) and get_business_by_id (takes a numeric id from search results) return the same 10-field profile: name, address, phone, website, description, logo, image, categories (array of tag strings), geo (object with latitude and longitude), and the canonical url. Opening hours are returned by day, making these endpoints useful for time-sensitive queries. The numeric id field surfaced in search_businesses results feeds directly into get_business_by_id, so no URL construction is needed.

Reliability & maintenanceVerified

The Páginas Amarelas API is a managed, monitored endpoint for páginasamarelas.pt — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when páginasamarelas.pt 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 páginasamarelas.pt 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.

Last verified
3d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a local business finder for Portugal using search_businesses with location filtering by city
  • Geocode Portuguese business addresses by extracting geo.latitude and geo.longitude from get_business_detail
  • Aggregate contact data (phone, website) for businesses in a specific category using browse_category + get_business_by_id
  • Generate a structured category tree for pai.pt by combining list_categories with recursive browse_category calls
  • Check opening hours for businesses in a given sector before routing field sales teams across Portuguese cities
  • Enrich a CRM with verified Portuguese business profiles by matching names and pulling full detail via get_business_by_id
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does pai.pt (Páginas Amarelas Portugal) have an official developer API?+
No public developer API is documented or listed on pai.pt. This Parse API provides structured programmatic access to the directory's business data.
What does get_business_detail return beyond what search_businesses shows?+
search_businesses returns summary fields: name, address, category, id, slug, and url. get_business_detail adds phone, website, description, logo, image, a categories array of tag strings, opening hours broken down by day, and a geo object with latitude and longitude. Use the detail endpoint whenever you need contact or location data.
Does browse_category always return a list of businesses?+
Not for parent-level slugs. When slug is a top-level category (e.g., 'comer-beber'), the response populates sub_categories instead of businesses. You need to pass one of those sub-category slugs back into browse_category to reach actual business listings. Leaf-level slugs (e.g., 'restaurantes') return the businesses array directly.
Does the API cover user reviews or ratings for listed businesses?+
Not currently. The API covers contact details, opening hours, categories, geo coordinates, descriptions, and images. You can fork this API on Parse and revise it to add an endpoint that retrieves review data for individual business pages.
Is pagination supported across all listing endpoints?+
Yes, search_businesses and browse_category both accept a page integer parameter. search_businesses also returns total_results so you can compute how many pages exist before iterating. get_business_detail and get_business_by_id operate on a single business and have no pagination parameter.
Page content last updated . Spec covers 5 endpoints from páginasamarelas.pt.
Related APIs in B2b DirectorySee all →
paginasamarillas.es API
Search and discover Spanish businesses with detailed information including contact details, social links, and customer reviews, with specialized features for finding restaurants and getting search suggestions. Access comprehensive business profiles to find exactly what you're looking for in Spain's leading business directory.
paginasamarillas.com.pe API
Search and discover Peruvian businesses with instant access to their contact details, including phone numbers, emails, WhatsApp, websites, social media profiles, addresses, and operating hours. Find verified reviews and comprehensive business information all in one place to easily connect with companies across Peru.
paginasamarillas.com.mx API
Access Mexico's largest business directory to find company profiles, browse business categories, search for specific services, and discover industry insights from curated blog content. Build applications that help users discover and learn about Mexican businesses all in one place.
yellowpages.com API
Search and retrieve business listings, contact info, hours, categories, and customer reviews from YellowPages.com. Browse by category or location across the US.
olx.pt API
Search and monitor real estate listings and business advertisements from OLX Portugal with advanced filtering and pagination options. Get detailed information about specific listings including prices, descriptions, and seller details to find exactly what you're looking for.
seccionamarilla.com.mx API
Search for Mexican businesses and get their detailed contact information, hours, and locations from Sección Amarilla's comprehensive directory. Browse popular business categories to discover services and companies across Mexico.
pagesjaunes.fr API
Search for business listings across France on PagesJaunes.fr and access customer reviews and detailed location information. Find businesses by keyword and location, and retrieve comprehensive details including addresses, ratings, and reviews.
yellowpages.in API
Search for businesses across India and discover detailed information like contact details, addresses, and services from YellowPages.in's comprehensive business directory. Find relevant business categories with autocomplete suggestions to quickly locate the leads and companies you're looking for.