L'endpoint /v1/places/details riceve l'id di un suggerimento del completamento automatico e restituisce la scheda completa: l'intera gerarchia, il formato del codice postale del paese e i dati di cui un modulo ha di solito bisogno subito dopo — prefisso telefonico, valuta, fusi orari.
GET https://api.countrydataapi.com/v1/places/details
| Parametro | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
apikey |
string | Sì | La tua chiave di autenticazione API |
id |
string | Sì | L'id restituito da /v1/places/autocomplete |
type |
string | Sì | country, state o city — il type del suggerimento |
lang |
string | No | Lingua dei nomi restituiti. Predefinito: en |
sessiontoken |
string | No | Il token di sessione usato durante il completamento automatico. Rende questa chiamata gratuita |
curl "https://api.countrydataapi.com/v1/places/details?apikey=la-tua-chiave-api&id=66c7a6c9e4bda21f4ab1a0f1&type=city&lang=it"
async function getDetails(suggestion, sessionToken) {
const params = new URLSearchParams({
apikey: 'la-tua-chiave-api',
id: suggestion.id,
type: suggestion.type,
lang: 'it',
sessiontoken: sessionToken,
});
const response = await fetch(
`https://api.countrydataapi.com/v1/places/details?${params}`
);
const { place } = await response.json();
return place;
}
const { place } = await api.places.details({
id: suggestion.id,
type: suggestion.type,
sessiontoken: session,
});
place.components.country?.phone_code; // "+34"
place.postal.regex; // "^\\d{5}$"
{
"success": true,
"place": {
"id": "66c7a6c9e4bda21f4ab1a0f1",
"type": "city",
"name": "Madrid",
"description": "Madrid, Comunità di Madrid, Spagna",
"components": {
"city": { "id": "66c7a6c9e4bda21f4ab1a0f1", "name": "Madrid" },
"state": { "id": "66c7a6c9e4bda21f4ab10a22", "name": "Comunità di Madrid" },
"country": {
"id": "66c7a6c9e4bda21f4ab10ef2",
"name": "Spagna",
"iso2": "ES",
"iso3": "ESP",
"phone_code": "+34",
"flag": "🇪🇸"
}
},
"postal": {
"format": "#####",
"regex": "^\\d{5}$",
"example": "12345"
},
"location": null,
"country_info": {
"currencies": [{ "code": "EUR", "name": "Euro", "symbol": "€" }],
"languages": ["Spagnolo"],
"timezones": ["UTC+01:00"],
"continent": "EU",
"region": "Europe"
}
},
"tokens_used": 0,
"remaining_tokens": 4871
}
| Campo | Tipo | Descrizione |
|---|---|---|
place.components |
object | Gerarchia completa: city, state, country |
place.postal.format |
string | Modello: # è una cifra, @ è una lettera |
place.postal.regex |
string | Espressione regolare ufficiale del codice postale del paese |
place.postal.example |
string | Valore di esempio ricavato da format e verificato contro regex |
place.location |
object | Coordinate — vedi la nota qui sotto |
place.country_info |
object | Valute, lingue, fusi orari, continente e regione |
locationlocation è valorizzato solo per type=country, dove contiene il centroide del paese e "precision": "country".
Per regioni e città vale null. Il set di dati è amministrativo e non ha coordinate per singola città, e restituire il centroide del paese spacciandolo per la città sarebbe peggio che non restituire nulla. Se ti servono coordinate a livello di città o geocodifica, questo endpoint non è lo strumento giusto.
sessiontoken corrisponde a una sessione di completamento automatico aperta. La sessione è già stata addebitata al primo tasto, e questa chiamata la chiude.Vuol dire che un campo indirizzo completo — tutti i tasti che servono più la consultazione finale del dettaglio — costa un solo token.
{
"success": false,
"error": {
"code": "NOT_FOUND",
"message": "No city found with id \"abc\".",
"status": 404
},
"message": "No city found with id \"abc\"."
}