> ## 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.

# Cartes

> Obtenez toutes les URL d’un site web.

Grâce à l’endpoint Olostep `/v1/maps`, tu peux obtenir toutes les URL d’un site web. Cela est utile pour la découverte de contenu, l’analyse de la structure du site (par exemple, SEO), ou pour décider quelles URL tu souhaites extraire ensuite.

* Obtenez toutes les URL d’un site web (y compris les sitemaps et les liens découverts)
* Utilisez des motifs spéciaux pour inclure/exclure des chemins (par exemple, `/blog/**`)
* Paginer les réponses volumineuses avec `cursor` (jusqu'à 10 Mo par réponse)
* Limiter le volume avec `top_n`

Pour les détails de l'API, consulte la [Référence de l'API de l'Endpoint Carte](/api-reference/maps/create).

## Installation

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

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

  ```bash cURL theme={null}
  # curl est disponible par défaut sur macOS, Linux et Windows
  ```

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

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

## Utilisation

Envoie une requête POST avec l’`url` du site web. Optionnellement, passe `include_urls`, `exclude_urls` (motifs globaux), et `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>

Le temps de réponse est généralement de quelques secondes mais peut prendre jusqu'à 120 secondes pour des sites web plus complexes. Il peut extraire toutes les URL d’un site web, même les backlinks et celles non présentes dans les Sitemaps. Tu peux aussi décider des chemins d'URL que tu veux inclure ou exclure de la réponse.

Par défaut, l'endpoint renvoie environ 100k URL en un seul appel (10 Mo max). Si la réponse inclut plus de données, l'API renvoie un paramètre `cursor` qui peut être utilisé pour la pagination et obtenir les URL suivantes. Pour plus de détails, consulte la [Référence de l'API](/api-reference/maps/create#body-cursor).

Cet endpoint est particulièrement utile lorsque tu as besoin de :

* Découvrir toutes les pages de contenu d’un site web
* Analyser la structure et la hiérarchie du site
* Préparer les URL pour un traitement par lots
* Décider quelles URL spécifiques extraire

Pour un contrôle plus précis des URL retournées, tu peux utiliser les paramètres `include_urls` et `exclude_urls`.

### Exemple

Disons que depuis [www.brex.com](http://www.brex.com) tu veux extraire toutes les URL qui ont les chemins après `/product/` par exemple `https://www.brex.com/product/api/no-code` mais aussi inclure `www.brex.com/product`.
Tu peux utiliser le code suivant :

<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>

## Conclusion

L'endpoint des cartes est un outil puissant pour la découverte de contenu et l'analyse de site. Il fournit une liste complète des URL d’un site web, te permettant d'extraire du contenu de pages spécifiques ou d'analyser la structure du site. Cet endpoint est particulièrement utile pour les professionnels du SEO, les spécialistes du marketing de contenu, les agents d'IA qui ont besoin d'analyser le contenu ou la structure d’un site web.

## Tarification

La carte coûte 1 crédit. Ensuite, pour chaque 1000 URL supplémentaires retournées dans la réponse, un crédit supplémentaire est facturé.
