Skip to main content
GET
/
ObtenirMunicipis
ObtenirMunicipis
curl --request GET \
  --url https://api.example.com/ObtenirMunicipis
{
  "ArrayOfActualitzacioMunicipi": [
    {
      "ActualitzacioMunicipi": {
        "Cdclie": "<string>",
        "TipusActualitzacio": "<string>",
        "cine10": "<string>",
        "dsnomc": "<string>",
        "dsnom1": "<string>",
        "dsnom2": "<string>"
      }
    }
  ]
}

Overview

The ObtenirMunicipis endpoint retrieves the complete list of municipalities with their ORGT codes and corresponding INE (National Statistics Institute) codes. This endpoint does not require authentication and returns all municipalities in a single response.

Authentication

No authentication required. This is a public endpoint.

Query Parameters

This endpoint does not require any query parameters.

Response Schema

ArrayOfActualitzacioMunicipi
array
Root element containing the complete list of municipalities
ActualitzacioMunicipi
object
Municipality information
Cdclie
string
required
Municipality code according to ORGT codification (3 digits in string format)Example: 093, 094, 100
TipusActualitzacio
string
Update type. For this endpoint, always returns Alta (active/new)Possible values:
  • Alta (0): Active record
  • Baixa (1): Deleted record
  • Modificacio (2): Modified record
cine10
string
required
INE code (Instituto Nacional de Estadística) - 10 digitsExample: 0809450006, 0809580001
dsnomc
string
required
Short municipality nameExample: LA GRANADA, GRANERA
dsnom1
string
Municipality name part 1 - typically includes “AJUNTAMENT DE” or similar prefixExample: AJUNTAMENT DE, AJUNTAMENT
dsnom2
string
Municipality name part 2 - typically the actual municipality nameExample: LA GRANADA, DE GRANERA

XML Response Example

<ArrayOfActualitzacioMunicipi xmlns="http://schemas.datacontract.org/2004/07/WcfMultesPDA" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<ActualitzacioMunicipi>
		<Cdclie>093</Cdclie>
		<TipusActualitzacio>Alta</TipusActualitzacio>
		<cine10>0809450006</cine10>
		<dsnom1>AJUNTAMENT DE</dsnom1>
		<dsnom2> LA GRANADA</dsnom2>
		<dsnomc>LA GRANADA</dsnomc>
	</ActualitzacioMunicipi>
	<ActualitzacioMunicipi>
		<Cdclie>094</Cdclie>
		<TipusActualitzacio>Alta</TipusActualitzacio>
		<cine10>0809580001</cine10>
		<dsnom1>AJUNTAMENT</dsnom1>
		<dsnom2> DE GRANERA</dsnom2>
		<dsnomc>GRANERA</dsnomc>
	</ActualitzacioMunicipi>
</ArrayOfActualitzacioMunicipi>

Municipality Code Format

The Cdclie field uses ORGT’s internal municipality codification:
  • Format: 3-digit string
  • Leading zeros: Required (e.g., 088, not 88)
  • Usage: This code is used throughout the API to identify municipalities in other endpoints

Common Municipality Codes

CodeMunicipalityINE Code
088Santa Coloma de Gramenet0819860008
093La Granada0809450006
094Granera0809580001
100L’Hospitalet de Llobregat0810190003

Usage Patterns

Building a Municipality Lookup

Create a lookup table for municipality codes:
const buildMunicipalityLookup = async () => {
  const response = await fetch('/ObtenirMunicipis');
  const xmlText = await response.text();
  const parser = new DOMParser();
  const xmlDoc = parser.parseFromString(xmlText, 'text/xml');
  
  const municipis = {};
  const items = xmlDoc.getElementsByTagName('ActualitzacioMunicipi');
  
  for (let item of items) {
    const cdclie = item.getElementsByTagName('Cdclie')[0].textContent;
    const dsnomc = item.getElementsByTagName('dsnomc')[0].textContent;
    const cine10 = item.getElementsByTagName('cine10')[0].textContent;
    
    municipis[cdclie] = {
      name: dsnomc,
      ineCode: cine10,
      fullName: item.getElementsByTagName('dsnom1')[0].textContent + 
                item.getElementsByTagName('dsnom2')[0].textContent
    };
  }
  
  return municipis;
};

Validating Municipality Codes

Use this endpoint to validate municipality codes before submitting fines:
const validateMunicipalityCode = async (cdclie) => {
  const municipis = await buildMunicipalityLookup();
  
  if (!municipis[cdclie]) {
    throw new Error(`Invalid municipality code: ${cdclie}`);
  }
  
  return municipis[cdclie];
};

Populating Dropdown Selectors

Create user interface elements with municipality options:
const populateMunicipalitySelector = async (selectElement) => {
  const municipis = await buildMunicipalityLookup();
  
  Object.entries(municipis).forEach(([code, data]) => {
    const option = document.createElement('option');
    option.value = code;
    option.textContent = `${data.name} (${code})`;
    selectElement.appendChild(option);
  });
};

Converting Between ORGT and INE Codes

const convertORGTtoINE = async (orgtCode) => {
  const municipis = await buildMunicipalityLookup();
  return municipis[orgtCode]?.ineCode || null;
};

const convertINEtoORGT = async (ineCode) => {
  const municipis = await buildMunicipalityLookup();
  
  for (let [code, data] of Object.entries(municipis)) {
    if (data.ineCode === ineCode) {
      return code;
    }
  }
  
  return null;
};

Caching Recommendations

Since municipality data changes infrequently:
  1. Cache the response locally after first retrieval
  2. Refresh daily or when specifically notified of changes
  3. Store in application state to avoid repeated API calls
  4. Use local storage in web applications for persistence
const CACHE_KEY = 'municipis_cache';
const CACHE_DURATION = 24 * 60 * 60 * 1000; // 24 hours

const getCachedMunicipis = async () => {
  const cached = localStorage.getItem(CACHE_KEY);
  
  if (cached) {
    const { data, timestamp } = JSON.parse(cached);
    
    if (Date.now() - timestamp < CACHE_DURATION) {
      return data;
    }
  }
  
  // Fetch fresh data
  const municipis = await buildMunicipalityLookup();
  
  localStorage.setItem(CACHE_KEY, JSON.stringify({
    data: municipis,
    timestamp: Date.now()
  }));
  
  return municipis;
};
  • ObtenirActualitzacions - Get master data updates including municipality changes
  • FerLogin - Login endpoint that requires valid municipality codes
  • AltaMulta - Submit fine that requires municipality code (Cdclie)

Build docs developers (and LLMs) love