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

# マップ

> ウェブサイト上のすべてのURLを取得します。

Olostepの`/v1/maps`エンドポイントを使用すると、ウェブサイト上のすべてのURLを取得できます。これは、コンテンツの発見、サイト構造の分析（例：SEO）、次にスクレイプしたいURLを決定するのに役立ちます。

* ウェブサイト上のすべてのURLを取得（サイトマップや発見されたリンクを含む）
* 特殊なパターンを使用してパスを含める/除外する（例：`/blog/**`）
* `cursor`を使用して大きなレスポンスをページネーション（1レスポンスあたり最大10MB）
* `top_n`でボリュームを制限

APIの詳細については、[マップエンドポイントAPIリファレンス](/api-reference/maps/create)を参照してください。

## インストール

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

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

  ```bash cURL theme={null}
  # curlはmacOS、Linux、Windowsでデフォルトで利用可能です
  ```

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

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

## 使用方法

ウェブサイトの`url`を指定してPOSTリクエストを送信します。オプションで`include_urls`、`exclude_urls`（グロブパターン）、および`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>

レスポンスタイムは通常数秒以内ですが、より複雑なウェブサイトの場合は最大120秒かかることがあります。ウェブサイトからすべてのURLを抽出でき、バックリンクやサイトマップに存在しないものも含まれます。また、レスポンスから含めたいまたは除外したいURLパスを決定することもできます。

デフォルトでは、エンドポイントは1回の呼び出しで約10万件のURLを返します（最大10MB）。レスポンスにより多くのデータが含まれている場合、APIはページネーションと後続のURLを取得するために使用できる`cursor`パラメータを返します。詳細については、[APIリファレンス](/api-reference/maps/create#body-cursor)を参照してください。

このエンドポイントは特に次のような場合に役立ちます：

* ウェブサイト上のすべてのコンテンツページを発見する
* サイト構造と階層を分析する
* バッチ処理のためにURLを準備する
* スクレイプする特定のURLを決定する

返されるURLをより細かく制御するには、`include_urls`および`exclude_urls`パラメータを使用できます。

### 例

例えば、[www.brex.comから](http://www.brex.comから)`/product/`以降のパスを持つすべてのURLを抽出したい場合、例：`https://www.brex.com/product/api/no-code`、さらに`www.brex.com/product`も含めたい場合、次のコードを使用できます：

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

## 結論

マップエンドポイントは、コンテンツの発見やサイト分析において強力なツールです。ウェブサイト上のURLの包括的なリストを提供し、特定のページからコンテンツを抽出したり、サイト構造を分析したりすることができます。このエンドポイントは、ウェブサイトのコンテンツや構造を分析する必要があるSEOプロフェッショナル、コンテンツマーケター、AIエージェントに特に役立ちます。

## 料金

マップは1クレジットかかります。その後、レスポンスで返される1000件ごとに追加のクレジットが請求されます。
