Discover/Altroconsumo API
live

Altroconsumo APIaltroconsumo.it ↗

Look up Italian broadband coverage by address, check FTTH/FTTC/FWA/ADSL availability per operator, and retrieve activable home internet offers from Altroconsumo.

Endpoint health
verified 1h ago
search_addresses
check_coverage
get_internet_offers
3/3 passing latest checkself-healing
Endpoints
3
Updated
2h ago

What is the Altroconsumo API?

The Altroconsumo API exposes 3 endpoints for querying Italian home internet coverage and offers. Starting with search_addresses to resolve a free-text Italian address into a canonical geocoded form, you can then call check_coverage to see which fixed-line technologies and operators are activable at that location, and get_internet_offers to pull the full filtered list of home internet plans Altroconsumo's comparison tool shows for that address.

This call costs1 credit / call— charged only on success
Try it
Free-text address fragment, at least 4 characters, e.g. a street, civic number and town in one shape such as 'Via Roma 1, Milano'.
→ api.parse.bot/scraper/64f0227f-541d-401c-9c93-6099c3b4149d/<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/64f0227f-541d-401c-9c93-6099c3b4149d/search_addresses?query=Via+Roma+1%2C+Milano' \
  -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 altroconsumo-it-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: Altroconsumo internet-offer comparison by Italian address."""
from parse_apis.altroconsumo_it_api import (
    Altroconsumo, SortBy, InputNotFound,
)

client = Altroconsumo()

# Autocomplete an address fragment to get geocoded suggestions.
suggestion = client.addresses.search(query="Via Roma 1, Milano", limit=3).first()
if suggestion is None:
    print("no address matched")
    raise SystemExit

print(f"Matched: {suggestion.address}  ({suggestion.locality})")

# Check broadband coverage at the matched address.
try:
    coverage = suggestion.check_coverage()
except InputNotFound:
    print("address not recognised by the coverage database")
    raise SystemExit

print(f"Available: {coverage.available}  Best speed: {coverage.max_download_mbps} Mbps")
for tech in coverage.technologies or []:
    print(f"  {tech.code} ({tech.label}): {tech.max_download_mbps} Mbps  "
          f"infra={tech.infrastructures}")

# List internet offers at the same address, cheapest first.
catalog = suggestion.list_offers(sort_by=SortBy.PRICE, page_size=5)
print(f"\n{catalog.total_matched} offers matched "
      f"(out of {catalog.total_offers_in_catalog} in catalogue)")
for offer in catalog.offers or []:
    print(f"  {offer.provider.name} – {offer.name}: "
          f"€{offer.monthly_price}/mo  ↓{offer.download_speed} {offer.download_speed_unit}")

print("\nexercised: addresses.search / check_coverage / list_offers")
All endpoints · 3 totalmissing one? ·

Returns address suggestions for a free-text Italian address fragment (street, civic number, town), one row per matching geocoded address. Each suggestion carries a canonical `address` string that check_coverage and get_internet_offers accept unchanged; `lat`/`lon` are geocoder coordinates. Up to a handful of suggestions are returned in one round trip; an unrecognised fragment returns an empty `suggestions` list. The site rate-limits this lookup to roughly 20 calls per minute, after which it answers with an error status passed through as an upstream error.

Input
ParamTypeDescription
queryrequiredstringFree-text address fragment, at least 4 characters, e.g. a street, civic number and town in one shape such as 'Via Roma 1, Milano'.
Response
{
  "type": "object",
  "fields": {
    "count": "number of suggestions returned",
    "query": "the trimmed query that was searched",
    "suggestions": "array of geocoded address suggestions: address (canonical string accepted by the other endpoints), street, locality (postcode, town, province), display_name (full geocoder label), has_street_number, lat, lon"
  },
  "sample": {
    "data": {
      "count": 1,
      "query": "Via Roma 1, Milano",
      "suggestions": [
        {
          "lat": 45.5373311,
          "lon": 9.1883962,
          "street": "Via Roma, 1",
          "address": "Via Roma 1, 20091 Bresso, MI",
          "locality": "20091 Bresso (MI)",
          "display_name": "Chiesa parrocchiale dei Santi Nazario e Celso, 1, Via Roma, Bresso, Zona Omogenea Milano Nord, Milano, Lombardia, 20091, Italia",
          "has_street_number": true
        }
      ]
    },
    "status": "success"
  }
}

About the Altroconsumo API

Address Resolution and Coverage

search_addresses accepts a free-text Italian address fragment of at least 4 characters and returns an array of geocoded suggestions. Each suggestion includes a canonical address string, a street, a locality field containing postcode and town, and lat/lon coordinates. That canonical address value is designed to be passed directly to the other two endpoints, reducing geocoding mismatches.

check_coverage takes that address and returns a per-technology breakdown: for each of FTTH, FTTC, FWA, and ADSL it reports availability, maximum download speed in Mbps where known, the underlying infrastructure name, and a list of operators each with an activable flag. The response also includes a top_tier speed-tier label (e.g. gigabit), a data_date field showing when the coverage data was last published (DD/MM/YYYY format), a precision label (e.g. building), and a data_source attribution.

Offer Listing and Filtering

get_internet_offers combines a coverage check with offer catalogue filtering in one call. It accepts the same address input plus optional filters: technologies (comma-separated codes from FTTH, FTTC, FWA, ADSL), providers (comma-separated operator slugs matching those emitted by check_coverage), modem, calls (landline plan type), sort_by, limit (capped at 100), and offset for pagination. The response includes an offers array where each entry carries id, name, slug, provider (with id, name, slug, website, and an altroconsumo_ratings map of satisfaction scores), and offer-level details. The coverage summary embedded in the response reports available_technologies, max_download_mbps, and top_tier for the resolved address. total_matched, count, offset, and has_more support paginating through results, while total_offers_in_catalog shows the unfiltered catalogue size (typically around 50 offers).

Reliability & maintenanceVerified

The Altroconsumo API is a managed, monitored endpoint for altroconsumo.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when altroconsumo.it 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 altroconsumo.it 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
1h ago
Latest check
3/3 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
  • Check whether FTTH is available at a specific Italian street address before recommending fiber plans.
  • Build an address-aware broadband comparison tool filtering offers by technology and operator using get_internet_offers.
  • Display Altroconsumo satisfaction ratings per provider alongside plan pricing for Italian consumers.
  • Identify which operators have activable infrastructure at a given location via check_coverage's per-operator flags.
  • Power an autocomplete address search for Italian addresses using search_addresses with a 4-character minimum query.
  • Audit broadband coverage gaps across Italian localities by iterating addresses and recording data_date and available fields.
  • Filter home internet offers by modem type or landline call plan to match specific household requirements.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 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.

Frequently asked questions
Does Altroconsumo offer an official public developer API for their comparison tools?+
Altroconsumo does not publish a documented public developer API for their broadband comparison or coverage tools. The data is available through their website at altroconsumo.it.
What does check_coverage return beyond a simple yes/no availability answer?+
check_coverage returns a per-technology breakdown (FTTH, FTTC, FWA, ADSL) with availability status, maximum download speed in Mbps where known, infrastructure name, and an operator list each carrying an activable flag. It also returns top_tier, data_date (DD/MM/YYYY), precision (e.g. building), data_source, and a site disclaimer.
How does pagination work in get_internet_offers?+
get_internet_offers supports limit (capped at 100) and offset parameters. The response includes count (offers on this page), total_matched (offers matching all active filters at the address), offset (applied skip), and a has_more boolean that is true when offset + count is below total_matched.
Does the API return mobile or SIM-only plans in addition to fixed-line offers?+
Not currently. The API covers fixed-line technologies (FTTH, FTTC, FWA, ADSL) and home internet offers activable at a street address. Mobile or SIM-only plan data is not exposed. You can fork this API on Parse and revise it to add an endpoint targeting mobile offer listings.
Is coverage data available for addresses outside Italy?+
The API is scoped to Italian addresses only. search_addresses resolves Italian street addresses, and check_coverage uses coverage data published by Altroconsumo for the Italian market. Non-Italian addresses are not supported. You can fork the API on Parse and revise it to point at a different national coverage source if needed.
Page content last updated . Spec covers 3 endpoints from altroconsumo.it.
Related APIs in Maps GeoSee all →