Segugio APItariffe.segugio.it ↗
Search and compare Italian mobile SIM plans from Segugio.it. Filter by GB, 5G, provider, business plans, and more. Returns pricing, allowances, and offer links.
What is the Segugio API?
The Segugio.it Mobile Tariffs API provides access to Italian mobile SIM offers via a single search_mobile_offers endpoint that returns up to 100 plan records per page, each carrying 15+ fields including monthly price, data allowance, unlimited call flags, 5G availability, roaming GB, promo ribbons, and a direct partner offer link. It mirrors the filters and sort options available on the tariffe.segugio.it comparator.
curl -X GET 'https://api.parse.bot/scraper/3cb5b3a3-0bcc-4b18-8821-3b322d1292dc/search_mobile_offers?min_gb=any' \ -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 tariffe-segugio-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: Segugio.it mobile SIM offers — compare Italian plans."""
from parse_apis.tariffe_segugio_it_api import Segugio, OfferSort, MinGb, InputFormatInvalid
client = Segugio()
# Browse the cheapest plans with at least 150 GB included.
try:
for offer in client.offers.search(sort=OfferSort.PRICE, min_gb=MinGb.OVER_150, limit=5):
price = offer.monthly_price
tag = " [5G]" if offer.is_5g else ""
print(f"{offer.provider_name} — {offer.name}: €{price.value}/{price.period}, {offer.gb} GB{tag}")
except InputFormatInvalid as e:
print(f"Invalid filter value: {e.message}")
# Drill into the most popular 5G-only offer.
top_5g = client.offers.search(sort=OfferSort.POPULARITY, only_5g=True, limit=1).first()
if top_5g is not None:
print(f"\nTop 5G offer: {top_5g.name} by {top_5g.provider_name}")
print(f" €{top_5g.monthly_price.value}/mo · {top_5g.roaming_included_gb} GB roaming")
if top_5g.speed_5g is not None:
print(f" 5G speed cap: {top_5g.speed_5g}")
print(f" {top_5g.description}")
print("\nexercised: offers.search (price+min_gb filter, popularity+5G filter)")
Returns one page of mobile SIM offers from the Segugio.it comparator, one record per plan (name, provider, monthly price in EUR, included GB/SMS/minutes, unlimited flags, roaming GB, 5G availability and speed cap, promo ribbon, eligibility note and the partner offer link). Filters mirror the site's sidebar: minimum data allowance, unlimited calls only, 5G only, data-only plans, business (Partita IVA) plans, and a provider restriction by numeric provider_id as emitted in each offer's provider_id. Sort is by price (default), included GB or popularity; sponsored 'featured'/'recommended' plans are pinned by the site at the top of every result regardless of filter or sort (see feature_type). Pagination is offset-based: limit (1-100, default 100) and offset (default 0); count is the number of offers in the returned page, next_offset is the offset of the following page and has_more tells whether it exists. lowest_price/highest_price/providers summarise the returned page. An empty offers list with count 0 is a valid result when no plan matches the filters. One site round trip plus a small number of static-asset fetches per call. Invalid filter values return a stale_input error.
| Param | Type | Description |
|---|---|---|
| sort | string | Ordering of the non-sponsored offers: ascending monthly price, descending included GB, or the site's popularity ranking. |
| calls | string | Calls filter from the site's 'Chiamate al mese' control: all plans or only plans with unlimited minutes. |
| limit | integer | Offers per page, 1 to 100. |
| min_gb | string | Minimum monthly data allowance filter from the site's 'Giga al mese' control. |
| offset | integer | Zero-based index of the first offer to return; use next_offset from a previous response to continue. |
| only_5g | boolean | true keeps only plans with 5G access. |
| business | boolean | true returns business (Partita IVA) plans instead of consumer plans. |
| provider_ids | string | Comma-separated numeric provider ids to restrict results to, e.g. 443,16; values come from provider_id in this endpoint's offers. Omitted = all providers. |
| internet_only | boolean | true keeps only data-only (no calls) plans. |
{
"type": "object",
"fields": {
"count": "integer, number of offers in this page",
"limit": "integer page size applied",
"offers": "array of plan records: id (numeric plan id), name, provider_id, provider_name, logo_url, monthly_price {value, currency, period}, sms_unit_price / calls_unit_price (per-unit price objects or null when included), gb (0 when unlimited_gb is true), unlimited_gb, sms, unlimited_sms, call_minutes (0 when unlimited_calls is true), unlimited_calls, roaming_included_gb, is_5g, speed_5g (5G speed cap text or null), subscribable_by (eligibility note), description (plain text), ribbon (promo text), expire_date_time (null when none), feature_type (featured/recommended/new/default), availability (private/business), exclusive, offer_url (partner link)",
"offset": "integer offset requested",
"has_more": "boolean, whether another page exists",
"providers": "array of provider names present in the returned offers",
"next_offset": "integer offset for the next page",
"lowest_price": "cheapest monthly price object among the returned offers",
"highest_price": "most expensive monthly price object among the returned offers"
},
"sample": {
"data": {
"count": 36,
"limit": 100,
"offers": [
{
"gb": 100,
"id": 11998,
"sms": 200,
"name": "ho. 5,95",
"is_5g": true,
"ribbon": "Solo fino al 26/10! Disponibile anche in eSim a 0,05€",
"logo_url": "https://img.gruppomol.it/tariffe/loghi-svg/ho-mobile.svg",
"speed_5g": "30 Mbps",
"exclusive": false,
"offer_url": "https://track.adform.net/C/?bn=89574656",
"description": "ho. 5,95 da € 5,95 al mese con 100 Gb, chiamate illimitate, sms 200.",
"provider_id": 451,
"availability": "private",
"call_minutes": 0,
"feature_type": "featured",
"unlimited_gb": false,
"monthly_price": {
"value": 5.95,
"period": "monthly",
"currency": "EUR"
},
"provider_name": "ho.",
"unlimited_sms": false,
"sms_unit_price": null,
"subscribable_by": "Tutti",
"unlimited_calls": true,
"calls_unit_price": null,
"expire_date_time": null,
"roaming_included_gb": 6
},
{
"gb": 0,
"id": 11128,
"sms": 200,
"name": "Fastweb Mobile Ultra",
"is_5g": true,
"ribbon": "5G e FASTWEB PROTECT inclusi",
"logo_url": "https://img.gruppomol.it/tariffe/loghi-svg/fastweb.svg",
"speed_5g": "2 Gbps",
"exclusive": false,
"offer_url": "https://www.fastweb.it/landing/fastweb-mobile-ultra/sos-tariffe/",
"description": "Fastweb Mobile Ultra da € 19,95 al mese con illimitati, chiamate illimitate, sms 200.",
"provider_id": 22,
"availability": "private",
"call_minutes": 0,
"feature_type": "default",
"unlimited_gb": true,
"monthly_price": {
"value": 19.95,
"period": "monthly",
"currency": "EUR"
},
"provider_name": "Fastweb",
"unlimited_sms": false,
"sms_unit_price": {
"value": 0.05,
"period": "sms",
"currency": "EUR"
},
"subscribable_by": "Tutti",
"unlimited_calls": true,
"calls_unit_price": null,
"expire_date_time": null,
"roaming_included_gb": 30
}
],
"offset": 0,
"has_more": false,
"providers": [
"ho.",
"Spusu",
"Vodafone"
],
"next_offset": 100,
"lowest_price": {
"value": 3.98,
"period": "mese",
"currency": "EUR"
},
"highest_price": {
"value": 19.95,
"period": "mese",
"currency": "EUR"
}
},
"status": "success"
}
}About the Segugio API
What the API returns
The search_mobile_offers endpoint returns a paginated list of mobile SIM plans listed on the Segugio.it comparator. Each record in the offers array includes a numeric id, name, provider_name, logo_url, a structured monthly_price object (value, currency, period), included GB, SMS, and minutes, boolean flags for unlimited calls and 5G, a roaming_gb value, a promo ribbon string, an eligibility note, and a partner offer link. Page-level metadata includes count, has_more, next_offset, lowest_price, and highest_price across the returned page.
Filtering and sorting
The endpoint accepts several optional filter parameters that correspond directly to controls on the Segugio.it site. Use min_gb to set a minimum monthly data allowance, calls to restrict to plans with unlimited minutes, only_5g to keep 5G-capable plans only, and business to switch between consumer and Partita IVA (business) plan sets. Supply a comma-separated list of numeric provider IDs in provider_ids — values come from provider_id fields in prior responses — to target specific operators. The sort parameter accepts ascending monthly price, descending included GB, or the site's popularity ordering.
Pagination
Use limit (1–100) to control page size and offset to position within results. The response includes next_offset and the has_more boolean so you can walk through all matching plans in sequential requests. The providers array in each response lists the carrier names present on that page, which is useful for building filter UIs or grouping results by operator.
The Segugio API is a managed, monitored endpoint for tariffe.segugio.it — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tariffe.segugio.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 tariffe.segugio.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.
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 price-alert tool that polls for the cheapest Italian SIM plans using
monthly_price.valueand the ascending-price sort. - Aggregate 5G plan availability across all Italian carriers by filtering with
only_5g: trueand grouping byprovider_name. - Generate a side-by-side comparison table for business users by setting
business: trueand returningmonthly_price, GB, and unlimited-call flags. - Track roaming data allowances across plans over time using the
roaming_gbfield to identify changes in operator offerings. - Build a carrier-specific landing page by filtering with
provider_idsand displaying thelogo_url, plan names, and promo ribbons. - Identify entry-level data-only SIM options by filtering
min_gband checking for plans with no included minutes or SMS. - Monitor promo ribbon text across plans to detect limited-time offers before they expire.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does Segugio.it have an official developer API?+
How do I page through all available plans?+
limit (up to 100) in the first request. If the response returns has_more: true, pass the next_offset value as the offset parameter in the next request and repeat until has_more is false.What does the `providers` field in the response contain?+
providers array lists the carrier names (e.g. TIM, Vodafone, Iliad) present among the offers returned on that specific page. It reflects the current page only, not the full set of providers across all pages. To get provider IDs for filtering, read the provider_id field from individual offer records and pass them in the provider_ids parameter.Does the API cover fixed-line broadband or home internet plans?+
Are sponsored or featured listings separated from organic results?+
sort parameter (price, GB, popularity) applies to non-sponsored offers. Sponsored placements may appear in the dataset without a distinct flag separating them from organic results. Plan accordingly if you are using the data for unbiased price rankings.