Краткое руководство. Создание первых вызовов API Web IQ

За несколько минут выполните первый вызов REST API Microsoft Web IQ. Вы будете искать в Интернете, проверять ответ, а затем извлекать содержимое из известного URL-адреса.

Ключи API — это самый быстрый способ оценки веб-IQ. Для промышленных рабочих нагрузок используйте Microsoft Entra ID.

Prerequisites

Tip

Используйте Web IQ Playground для отправки запросов из браузера и создания кода в cURL, Python, JavaScript, C#, Java, Go и Ruby.

1. Храните свой ключ API

Поместите ключ в переменную среды, чтобы примеры запросов не повторяли его и не помещали его в исходный код.

macOS или Linux

export WEBIQ_API_KEY="your-api-key"

Windows PowerShell

$env:WEBIQ_API_KEY="your-api-key"

Предупреждение

Не добавляйте ключ в систему контроля версий и не раскрывайте его в браузере или клиентском коде. Храните рабочие учетные данные в менеджере секретов.

2. Искать в Интернете

Используйте веб-поиск, если у вас есть вопрос или запрос и требуется, чтобы Web IQ обнаруживал и ранжировал соответствующие страницы.

Мы рекомендуем задать параметр maxResults = 10, contentFormat = passage и maxLength = 3000 для каждого запроса как оптимальную рабочую конфигурацию. Оттуда вы можете точно настроить эти параметры на основе вашего варианта использования.

Конечная точка:POST https://api.microsoft.ai/v3/search/web

cURL

curl --request POST "https://api.microsoft.ai/v3/search/web" \
  --header "x-apikey: $WEBIQ_API_KEY" \
  --header "content-type: application/json" \
  --data '{
    "query": "latest developments in retrieval augmented generation",
    "maxResults": 10,
    "contentFormat": "passage",
    "maxLength": 3000
  }'

Python

import os
import json
import requests

response = requests.post(
    "https://api.microsoft.ai/v3/search/web",
    headers={
        "x-apikey": os.environ["WEBIQ_API_KEY"],
        "content-type": "application/json",
    },
    json={
        "query": "latest developments in retrieval augmented generation",
        "maxResults": 10,
        "contentFormat": "passage",
        "maxLength": 3000,
    },
    timeout=30,
)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))

Javascript

Сохраните этот пример как search.mjs и запустите его с помощью node search.mjs.

const response = await fetch("https://api.microsoft.ai/v3/search/web", {
  method: "POST",
  headers: {
    "x-apikey": process.env.WEBIQ_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    query: "latest developments in retrieval augmented generation",
    maxResults: 10,
    contentFormat: "passage",
    maxLength: 3000,
  }),
});

if (!response.ok) {
  throw new Error(`Web Search failed: ${response.status} ${await response.text()}`);
}

console.log(JSON.stringify(await response.json(), null, 2));

3. Поймите ответ

Успешный веб-поиск возвращает массив webResults. В этом сокращённом примере показаны поля, которые вы будете использовать чаще всего:

{
  "webResults": [
    {
      "title": "Example result",
      "url": "https://example.com/article",
      "content": "The query-relevant passage extracted from the page...",
      "crawledAt": "2026-07-18T12:00:00Z"
    }
  ],
  "traceId": "00000000000000000000000000000000"
}
  • title и url определяют источник.
  • content содержит фрагмент, релевантный запросу, так как в запросе использовался contentFormat: "passage".
  • traceId помогает Web IQ Support изучить запрос.

В ответах REST и результатах инструмента MCP поля модели со значениями null, пустой строки ("") или пустого списка/массива ([]) опускаются, включая поля вложенных объектов результатов. Обработайте отсутствующее строковое поле как недоступное и отсутствующее поле списка как не содержащее элементов. Строки, состоящие только из пробелов, 0, false, пустые словари, отдельные элементы массива/словаря и внедренные необработанные JSON сохраняются. Корневые массивы и коллекции конвертов протокола, такие как MCP content , не изменяются.

Ознакомьтесь со справочником по Web Search API с описанием всех параметров и полей ответа.

4. Выберите веб-поиск или просмотр

Начать с Использовать Что вы получаете
Вопрос или поисковый запрос Поиск в Интернете Ранжированные страницы с контентом, соответствующим запросу
Конкретный URL-адрес Просмотреть Извлеченное содержимое с той страницы

Типичный процесс заземления использует обе конечные точки: найдите соответствующие источники, выберите URL-адрес результата, а затем просмотрите этот URL-адрес, если требуется более полное содержимое страницы.

5. Извлечение содержимого из URL-адреса

Используйте Просмотр, когда вы уже знаете, какую страницу вы хотите прочитать. liveCrawl: "fallback" запрашивает у Web IQ обход страницы, когда страница еще недоступна в индексе.

Конечная точка:POST https://api.microsoft.ai/v3/browse

cURL

curl --request POST "https://api.microsoft.ai/v3/browse" \
  --header "x-apikey: $WEBIQ_API_KEY" \
  --header "content-type: application/json" \
  --data '{
    "url": "https://news.microsoft.com/source/",
    "contentFormat": "markdown",
    "maxLength": 3000,
    "liveCrawl": "fallback"
  }'

Python

import os
import json
import requests

response = requests.post(
    "https://api.microsoft.ai/v3/browse",
    headers={
        "x-apikey": os.environ["WEBIQ_API_KEY"],
        "content-type": "application/json",
    },
    json={
        "url": "https://news.microsoft.com/source/",
        "contentFormat": "markdown",
        "maxLength": 3000,
        "liveCrawl": "fallback",
    },
    timeout=30,
)
response.raise_for_status()
print(json.dumps(response.json(), indent=2))

Javascript

Сохраните этот пример как browse.mjs и запустите его с помощью node browse.mjs.

const response = await fetch("https://api.microsoft.ai/v3/browse", {
  method: "POST",
  headers: {
    "x-apikey": process.env.WEBIQ_API_KEY,
    "content-type": "application/json",
  },
  body: JSON.stringify({
    url: "https://news.microsoft.com/source/",
    contentFormat: "markdown",
    maxLength: 3000,
    liveCrawl: "fallback",
  }),
});

if (!response.ok) {
  throw new Error(`Browse failed: ${response.status} ${await response.text()}`);
}

console.log(JSON.stringify(await response.json(), null, 2));

Успешный 200 результат включает страницу url, title, извлечённые content и traceId. Во время динамического обхода может быть возвращён результат retryAfter с 202; подождите в течение этого времени, а затем снова отправьте тот же запрос. См. справочник по Browse API для полного описания структуры ответа.

Troubleshooting

Status Что требуется проверить
401 Unauthorized Убедитесь, что WEBIQ_API_KEY задан и запрос отправляет его в заголовке x-apikey.
415 Unsupported Media Type Отправить content-type: application/json.
429 Too Many Requests Подождите перед повторной попыткой и уменьшите частоту запросов.
Выбрать 404 Not Found Убедитесь, что URL-адрес является общедоступным и допустимым. Используйте liveCrawl: "fallback", если индексированное содержимое может быть недоступно.
Выбрать 202 Accepted Подождите в течение времени, указанного в ответе retryAfter, а затем повторите тот же запрос.

Для других сбоев сохраните файл traceId и просмотрите сведения об обработке ошибок или обратитесь в службу поддержки Web IQ.

Дальнейшие действия