> ## Documentation Index
> Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Mappe

> Ottieni tutti gli URL su un sito web.

Attraverso l'endpoint `/v1/maps` di Olostep puoi ottenere tutti gli URL su un sito web. Questo è utile per la scoperta di contenuti, l'analisi della struttura del sito (ad esempio, SEO), o per decidere quali URL vuoi estrarre successivamente.

* Ottieni tutti gli URL su un sito web (inclusi sitemaps e link scoperti)
* Usa pattern speciali per includere/escludere percorsi (es. `/blog/**`)
* Pagina risposte grandi con `cursor` (fino a 10MB per risposta)
* Limita il volume con `top_n`

Per i dettagli sull'API, consulta la [Riferimento API dell'Endpoint Mappa](/api-reference/maps/create).

## Installazione

<CodeGroup>
  ```python Python theme={null}
  pip install olostep
  ```

  ```javascript Node theme={null}
  npm install olostep
  ```

  ```bash cURL theme={null}
  # curl è disponibile di default su macOS, Linux e Windows
  ```

  ```javascript Node (API) theme={null}
  npm install node-fetch
  ```

  ```bash Python (API) theme={null}
  pip install requests
  ```
</CodeGroup>

## Utilizzo

Invia una richiesta POST con l'`url` del sito web. Facoltativamente passa `include_urls`, `exclude_urls` (pattern glob), e `top_n`.

<CodeGroup>
  ```python Python theme={null}
  from olostep import Olostep

  client = Olostep(api_key="YOUR_REAL_KEY")

  sitemap = client.maps.create(url="https://docs.olostep.com")

  for url in sitemap.urls():
      print(url)
  ```

  ```js Node theme={null}
  import Olostep from 'olostep'

  const client = new Olostep({ apiKey: 'YOUR_REAL_KEY' })

  const map = await client.maps.create({ url: 'https://docs.olostep.com' })

  for await (const url of map.urls()) {
    console.log(url)
  }
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.olostep.com/v1/maps" \
    -H "Authorization: Bearer $OLOSTEP_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://docs.olostep.com"
    }'
  ```

  ```js Node (API) theme={null}
  const res = await fetch('https://api.olostep.com/v1/maps', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer <YOUR_API_KEY>',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ url: 'https://docs.olostep.com' })
  })
  console.log(await res.json())
  ```

  ```python Python (API) theme={null}
  import requests
  import json

  endpoint = "https://api.olostep.com/v1/maps"

  payload = {
      "url": "https://docs.olostep.com"
  }
  headers = {
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
  }

  response = requests.post(endpoint, json=payload, headers=headers)
  print(json.dumps(response.json(), indent=2))
  ```
</CodeGroup>

Il tempo di risposta è tipicamente di pochi secondi ma può richiedere fino a 120 secondi per siti web più complessi. Può estrarre tutti gli URL da un sito web, inclusi i backlink e quelli non presenti nei Sitemaps. Puoi anche decidere i percorsi degli URL che vuoi includere o escludere dalla risposta.

Di default l'endpoint restituisce circa 100k URL in una singola chiamata (massimo 10MB). Se la risposta include più dati, l'API restituisce un parametro `cursor` che può essere utilizzato per la paginazione e per ottenere gli URL successivi. Per maggiori dettagli consulta la [Riferimento API](/api-reference/maps/create#body-cursor).

Questo endpoint è particolarmente utile quando hai bisogno di:

* Scoprire tutte le pagine di contenuto su un sito web
* Analizzare la struttura e la gerarchia del sito
* Preparare URL per l'elaborazione in batch
* Decidere quali URL specifici estrarre

Per un controllo più dettagliato sugli URL restituiti puoi usare i parametri `include_urls` e `exclude_urls`.

### Esempio

Supponiamo che da [www.brex.com](http://www.brex.com) tu voglia estrarre tutti gli URL che hanno i percorsi dopo `/product/` ad esempio `https://www.brex.com/product/api/no-code` ma anche includere `www.brex.com/product`.
Puoi usare il seguente codice:

<CodeGroup>
  ```python Python theme={null}
  from olostep import Olostep

  client = Olostep(api_key="YOUR_REAL_KEY")

  sitemap = client.maps.create(
      url="https://www.brex.com/",
      include_urls=["/product", "/product/**"],
      top_n=100000,
  )

  for url in sitemap.urls():
      print(url)
  ```

  ```js Node theme={null}
  import Olostep from 'olostep'

  const client = new Olostep({ apiKey: 'YOUR_REAL_KEY' })

  const map = await client.maps.create({
    url: 'https://www.brex.com/',
    includeUrls: ['/product', '/product/**'],
    topN: 100000,
  })

  for await (const url of map.urls()) {
    console.log(url)
  }
  ```

  ```bash cURL theme={null}
  curl -s -X POST "https://api.olostep.com/v1/maps" \
    -H "Authorization: Bearer $OLOSTEP_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "url": "https://www.brex.com/",
      "include_urls": ["/product", "/product/**"],
      "top_n": 100000
    }'
  ```

  ```js Node (API) theme={null}
  const endpoint = 'https://api.olostep.com/v1/maps'

  const res = await fetch(endpoint, {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer <YOUR_API_KEY>',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'https://www.brex.com/',
      include_urls: ['/product', '/product/**'],
      top_n: 100000
    })
  })
  console.log(await res.text())
  ```

  ```python Python (API) theme={null}
  import requests

  endpoint = "https://api.olostep.com/v1/maps"

  payload = {
      "url": "https://www.brex.com/",
      "include_urls": ["/product", "/product/**"],
      "top_n": 100000
  }

  headers = {
      "Authorization": "Bearer <YOUR_API_KEY>",
      "Content-Type": "application/json"
  }

  response = requests.post(endpoint, json=payload, headers=headers)

  print(response.text)
  ```
</CodeGroup>

## Conclusione

L'endpoint delle mappe è uno strumento potente per la scoperta di contenuti e l'analisi del sito. Fornisce un elenco completo di URL su un sito web, permettendoti di estrarre contenuti da pagine specifiche o analizzare la struttura del sito. Questo endpoint è particolarmente utile per i professionisti SEO, i content marketer, gli agenti AI che devono analizzare il contenuto o la struttura del sito web.

## Prezzi

La mappa costa 1 credito. Poi, per ogni 1000 URL extra restituiti nella risposta, viene addebitato un credito aggiuntivo.
