Реестр Neuronto ARD: индекс Agentic Resource Discovery (ARD)
**Один поиск по всем общедоступным реестрам ARD и проверенный индекс того, что MCP-серверы
действительно предоставляют.**
neuronto.com · API · Добавить сервер · Тест производительности · Набор данных · Манифест
Что такое ARD?
ARD — сокращение от Agentic Resource Discovery — открытой спецификации, описывающей, как AI-агенты находят необходимые им инструменты, навыки, агентов и API. Спецификация опубликована в июне 2026 года рабочей группой, в которую вошли Google, Microsoft, Hugging Face, AWS, Cisco, GitHub, Nvidia, Salesforce и Snowflake.
Ресурс для агента — это всё, к чему AI-клиент может обратиться для выполнения задачи: MCP-сервер, агент A2A, навык, API или рабочий процесс.
ARD отвечает на один вопрос: «Что доступно для этой задачи?» — и не вмешивается в дальнейшую работу. Это не среда выполнения, и ARD не заменяет MCP или A2A. Спецификация сообщает агенту о существующих ресурсах; агент подключается к ним по собственным протоколам.
Какую проблему решает ARD
Сегодня агент может использовать только те возможности, которые ему заранее установили. Каждый инструмент приходится подключать вручную, а его описание занимает место в контекстном окне и конкурирует за него с самой задачей. Такая модель не выдерживает взаимодействия с экосистемой, насчитывающей тысячи, а тем более миллионы инструментов.
ARD выносит задачу выбора за пределы контекстного окна в поисковую службу. Это тот же переход, который в первые годы существования веба произошёл от каталогов ссылок, составленных вручную, к поисковым системам.
Для этого необходимы две стороны. Поставщики описывают свои ресурсы по известному адресу на собственном домене. Реестры индексируют эти описания и обрабатывают запросы. Neuronto выполняет обе функции.
Зачем нужен федеративный индекс
Спецификация определяет три режима федерации и устанавливает auto в качестве режима по умолчанию: реестр запрашивает данные у реестров-партнёров, объединяет результаты и возвращает единый набор.
На практике каждый общедоступный реестр ищет только в собственном каталоге. Поэтому один и тот же запрос в четырёх местах даёт четыре разных ответа, а клиенту приходится выбирать между ними. Neuronto создан, чтобы устранить эту проблему.
Достаточно одного запроса к Neuronto: он одновременно направляет его во все общедоступные реестры ARD. Результаты объединяются с помощью reciprocal rank fusion: этот метод сопоставляет порядок результатов, а не их оценки. Это важно, поскольку каждый реестр использует собственную шкалу оценивания, и заимствование оценок другого сервиса привнесло бы в результаты его предвзятость.
В ответе указано, какие реестры ответили, а какие превысили время ожидания. Поэтому вызывающая сторона всегда знает, какая часть федерации учтена в результатах.
Чем Neuronto отличается
Федерация включена по умолчанию. Режим federation: auto реализован в соответствии со спецификацией: одновременная рассылка запросов с жёстким ограничением по времени, объединение результатов и отчётность по каждому источнику. Медленный партнёр расходует только отведённое время, не создавая других проблем.
Полное соответствие спецификации. Официальный инструмент проверки соответствия спецификации подтверждает, что Neuronto работает и как реестр, и как поставщик: ошибок и предупреждений нет. Это касается и необязательного списка GET /agents, который возвращается в виде объекта с корректной пагинацией.
Нормализация типов. Для MCP-серверов используются три типа MIME (application/mcp-server, application/mcp-server+json, application/mcp-server-card+json), а в качестве идентификаторов обнаружения встречаются два префикса URN (urn:air: и urn:ai:). Поскольку фильтры требуют точного совпадения, некоторые записи незаметно исключаются из результатов. Neuronto нормализует оба значения при добавлении данных, поэтому фильтр для MCP-серверов находит их независимо от того, какой тип указал поставщик.
Проверенный индекс инструментов, а не только серверов. Все остальные реестры хранят название сервера и текстовое описание, предоставленное его поставщиком. Neuronto устанавливает соединение с каждой индексированной конечной точкой MCP и получает её tools/list. Благодаря этому в индексе содержатся реальные названия инструментов и схемы входных данных — именно по ним агенту нужно подбирать инструменты. Сейчас индекс включает 32 183 проверенных инструмента на 2 223 серверах, а также 1 918 конечных точек, для работы с которыми требуются учётные данные. Другие реестры такую информацию не предоставляют. Интроспекция выполняется только для чтения: инструменты не вызываются.
Гибридный поиск. Разреженные BM25 и плотные векторы объединяются с помощью того же reciprocal rank fusion, который применяется для федерации. Один запрос запускает лексический, семантический и федеративный поиск и возвращает единый упорядоченный список результатов. Векторная часть работает в рамках бюджета времени федерации и не влияет на результат, если недоступна. Поэтому быстрый лексический поиск не замедляется.
Проверка доступности. Neuronto проверяет индексированные конечные точки и понижает в ранжировании те, которые не отвечают. Реестры, основанные на манифестах, опубликованных самими поставщиками, быстро накапливают неработающие ссылки. Публикация таких ссылок — самый быстрый способ потерять доверие к индексу. Записи не удаляются, а понижаются в выдаче, поскольку сервисы могут снова заработать.
Манифесты создаются на основе проверенных данных, а не заполненной формы. Большинство доменов никогда не будут создавать манифест вручную. На них уже работают MCP-серверы, размещены документы OpenAPI или опубликованы файлы llms.txt; манифест лишь повторяет сведения, которые и так может найти сканер. Neuronto проверяет домен, добавляет запись только для каждого ресурса, который действительно ответил, фиксирует подтверждающие данные и размещает результат. Сведения не додумываются: сгенерированный манифест, содержащий предположения, приписал бы домену утверждения, которых его владелец не делал и за которые не может отвечать.
Приватная часть индекса. Список внутренних сервисов, к которым могут обращаться агенты организации, обычно хранится в системном промпте, где его нельзя ни найти поиском, ни проверить. Организация может зарегистрировать такие сервисы, подтвердив владение доменом через DNS. После этого один запрос вернёт вместе внутренние и общедоступные результаты, помеченные соответствующим образом. Приватные записи хранятся отдельно от общедоступного индекса, а не скрываются за флагом. Поэтому общедоступный поиск, подсчёты и страницы не могут получить к ним доступ по самой архитектуре системы.
Условия оплаты известны до вызова. Раньше платный ресурс обнаруживали и вызывали, и лишь после этого он отвечал 402 Payment Required. Neuronto получает сведения о стоимости ресурса из двух источников и хранит их раздельно: из манифеста (условия pay: из примера спецификации, schema:offers и форматы каталогов, содержащие цену) и из ответа самой конечной точки на запрос без оплаты (условия x402 в заголовке PAYMENT-REQUIRED или теле ответа 402 либо запрос MPP). Сервер, требующий оплату, учитывается как доступный, а не как неисправный. В результатах указываются pay:protocol, pay:price, pay:currency и pay:network; поле paymentEvidence сообщает, подтвердил ли их реальный ответ 402. По этим условиям можно фильтровать результаты:
curl -sS -X POST https://neuronto.com/search -H 'content-type: application/json' \
-d '{"query":{"text":"crypto token prices","filter":{"pay:protocol":["x402"],"maxPricePerCall":0.01}},"federation":"none"}'
Оплата ресурсоёмких запросов. При самостоятельном размещении Neuronto ничего не стоит. На neuronto.com запросы, которые выполняют внешнюю работу для пользователя, — федеративный поиск, аудит или создание манифеста, — бесплатны в пределах установленного лимита. После его превышения ответ 429 содержит цену x402 в заголовке PAYMENT-REQUIRED. Агент, который оплачивает запрос, получает результат сразу, не ожидая сброса лимита; клиент, отправляющий заголовок x-payment-protocol: x402, сразу получает ответ 402. Оплачивается только успешно выполненный запрос. Отправка сведений о ресурсе, подтверждение домена, включение в индекс и позиция в результатах всегда бесплатны. Действующие условия опубликованы на GET https://neuronto.com/x402.
Условия оплаты не влияют на оценку, а реестр не обрабатывает платежи: вызывающая сторона платит поставщику напрямую.
Приём платежей — если вам нужна и эта услуга. Получить сведения о цене — только половина задачи; вторая половина — принять оплату. Neuronto также поддерживает размещённый сервис x402 facilitator на pay.neuronto.com. Любой сервер x402 может подключить его одной строкой: сервис проверяет подписанный покупателем платёж в стейблкоинах и проводит расчёт в блокчейне. Он никогда не хранит чьи-либо средства, поскольку покупатель подписывает перевод, а facilitator только передаёт его в сеть. Сервис уже работает в сети Base и пока предоставляется бесплатно. Активная конечная точка взимает одну десятую цента и возвращает её в том же запросе, поэтому клиент может пройти весь процесс от начала до конца без затрат. На странице pay.neuronto.com/status опубликованы сведения о фактически наблюдавшейся работе сервиса, а не обещания.
Это отдельный размещённый сервис: он не входит в этот репозиторий, от него ничего здесь не зависит, самостоятельно размещённый Neuronto никогда к нему не обращается. Использование этого сервиса или отказ от него никак не влияет на ранжирование ресурсов.
Ранжирование с заметным отрывом. Оценка релевантности полезна только тогда, когда разница между первым и пятым результатами достаточно наглядна. Оценки масштабируются так, чтобы сохранять реальные различия, а не сжимать все результаты в узкий диапазон.
Где это пригодится
- Разработчикам агентов: перестаньте жёстко прописывать интеграции. Запрашивайте нужную возможность во время выполнения
и подключайтесь к тому сервису, который лучше всего её предоставляет в данный момент.
-
Поставщикам API и инструментов: разместите один манифест на собственном домене и станьте доступными для всех клиентов ARD — без подачи заявки в отобранный вручную каталог.
-
Командам платформ: организуйте поиск по внутренним сервисам, чтобы агенты внутри организации находили их так же, как общедоступные.
Использование
Ищите в этом индексе и во всей федерации одним запросом:
curl -s https://neuronto.com/search \
-H 'content-type: application/json' \
-d '{"query":{"text":"scrape a website behind cloudflare"},"federation":"auto"}'
Или установите сервер как MCP, чтобы агент мог выполнять поиск через уже привычный ему интерфейс:
claude mcp add --transport http neuronto https://neuronto.com/mcp
API реестра
| Endpoint | Назначение |
|---|---|
POST /search | Результаты, ранжированные по релевантности. Параметр federation: auto (по умолчанию), referrals, none. |
POST /explore | Подсчёт результатов по категориям индекса. |
GET /agents | Детерминированный список с постраничной выдачей — для просмотра, а не ранжирования. |
POST /mcp | Поиск, поиск инструментов, статистика индекса и публикация в виде инструментов MCP. Запросы GET и DELETE возвращают 405: сервер не инициирует поток передачи данных, каждый инструмент отвечает непосредственно в рамках запроса, который его вызвал. |
POST /a2a | Доступ к тому же индексу через A2A. message/send возвращает Message. Карточка доступна по адресам /.well-known/agent-card.json и /.well-known/agent.json. |
POST /tools, GET /tools?q= | Поиск на уровне инструментов: проверяются сами инструменты, а не серверы. |
POST /submit | Добавление в индекс endpoint MCP или домена, публикующего манифест. Ответ 200 означает, что данные добавлены в индекс; 202 — что запрос сохранён и будет обработан повторно. |
GET /submit/status/{id} | Статус отправки и последний ответ, полученный от endpoint. |
POST /audit | Отчёт о публикации: обнаружение, соответствие требованиям, охват и конкуренция. |
POST /manifest/build | Создание манифеста для домена на основе найденных на нём ресурсов. |
GET /m/{host}.json | Созданный манифест, доступный по указанному адресу. |
GET /agents.md | Инструкции о доступных вызовах и способах их использования для агента, который уже подключился. |
POST /claim, POST /claim/verify | Подтверждение владения доменом через DNS TXT и получение ключа. |
POST /private/entries | Регистрация внутренних сервисов. Требуется ключ. |
GET /bench, GET /adoption | Измерение качества поиска и информация о том, кто публикует манифест. |
GET /.well-known/ard.json | Манифест нашего издателя. |
GET /openapi.json | OpenAPI 3.1 для всех перечисленных выше функций. |
Как определить, что ответ слабый
Верхний результат всегда получает оценку, близкую к 100. Это сделано намеренно: оценка относительна лучшему результату в своей выборке, поскольку значения BM25 зависят от корпуса и запроса. Поэтому абсолютная шкала не имела бы смысла. Такой подход хорошо ранжирует результаты, но сам по себе может вводить в заблуждение. Запрос zzzz nonexistent capability qqqq тоже получит оценку 100, потому что какой-то результат всегда оказывается первым.
Поэтому вместе с относительными оценками в каждом ответе на поиск передаётся одно абсолютное значение:
"queryMatch": {
"coverage": 0.0,
"confidence": "none",
"matchedTerms": [],
"queryTerms": ["zzzz", "nonexistent", "capability", "qqqq"],
"note": "each result's `score` is relative to the best hit in this response ..."
}
coverage — это доля содержательных слов запроса, которым соответствует текст самого верхнего результата. Эта метрика не зависит от корпуса — в отличие от оценки, — поэтому позволяет отличить «лучший из нескольких хороших ответов» от «лучшего из отсутствующих».
Метрика показывает совпадение, а не правильность. Если все слова запроса есть в записи, описывающей противоположное действие, оценка всё равно составит 1.0. Считайте её лишь нижней границей уверенности, а не вердиктом и ни в коем случае не оценкой доверия или безопасности.
Для чтения общедоступного индекса ключ и регистрация не нужны. Ключ требуется только для добавления в индекс частных записей подтверждённого домена; его выдают исключительно после подтверждения владения через DNS.
Оценки релевантности отражают только семантическое соответствие и не являются оценкой доверия, соответствия требованиям или безопасности. В спецификации прямо указано, что оценка доверия отделена от поиска.
Поиск инструментов, а не серверов
Если вы уже знаете, какой вызов вам нужен, сервер, на котором он размещён, — лишь деталь реализации:
curl -s 'https://neuronto.com/tools?q=extract+text+from+a+pdf&limit=5'
Каждый найденный инструмент получен из tools/list соответствующего сервера. Агентам доступен тот же поиск через инструмент MCP find_tool, а также инструменты find_resource,
registry_stats и publish_resource. Только publish_resource изменяет данные и только он объявлен с параметром readOnlyHint: false. Поэтому клиент может определить по одному лишь списку инструментов, какой вызов вносит изменения.
Как оценить эффективность
В GET /bench публикуются результаты ARD-Bench — прямого сравнительного измерения качества поиска в общедоступных реестрах ARD. Endpoint GET /bench.json возвращает те же результаты в формате JSON с указанием их актуальности.
Скрипт тестирования находится в app/bench.py; данные обновляются еженедельно.
Набор задач хранится в файле и остаётся неизменным. В bench/declared-v1.json (файл также доступен по адресу /bench/tasks.json) содержится 192 задачи — по одной на каждого издателя. Каждый запрос дословно взят из манифеста на домене самого издателя. В задаче указаны URL этого манифеста и sha256 его исходного содержимого, поэтому любой желающий может проверить, что запрос составлен самим издателем, а не нами. Файл содержит контрольную сумму набора задач и никогда не изменяется на месте: новый набор получает новую версию. Задачи распределены по издателям между выборкой tune, которая является единственной выборкой для настройки параметров ранжирования, и выборкой holdout, по которой формируется результат тестирования.
В ответе отдельно указаны два показателя, которые легко спутать: coverage — содержит ли реестр целевой ресурс вообще, и recall@k_when_carried — находит ли его реестр, если ресурс в нём есть. Наш показатель coverage равен 1.0 по определению, поскольку задачи составлены на основе ресурсов этого индекса; это также указано в данных.
Веса ранжирования измеряются, а не назначаются произвольно: в app/rank.py каждый вес расположен рядом с таблицей, на основе которой он выбран. Скрипт scripts/evalgate.py ежедневно сравнивает результаты с зафиксированной базовой линией (bench/baseline.json). Проверяются recall@10 и MRR на выборке holdout, набор обычных запросов о возможностях (scripts/battery.py), в котором нельзя потерять ни один результат, а также правило, согласно которому поиск по федерации не должен работать хуже локального поиска. Ухудшение показателей приводит к провалу проверки.
Федерация расширяет охват, но не меняет ранжирование. При federation: auto запросы к другим реестрам отправляются только тогда, когда индекс не может уверенно ответить. Полученные от них результаты могут добавить ресурсы, отсутствующие в этом индексе, но не меняют порядок уже найденных результатов. На выборке holdout режимы auto и none обеспечивают одинаковый recall@10 — 0.934, однако у auto выше MRR. Медианная задержка составляет 177 мс против 121 мс.
Что происходит с запросом
В каждом ответе на поиск содержатся поля queryHandling и заголовок Neuronto-Query-Handling. Они сообщают, сохранялся ли текст запроса, каким реестрам он был отправлен для формирования ответа и создавалось ли для него векторное представление. При "federation": "none" запрос не покидает сервис. Запросы с API-ключом, а также запросы с заголовками Sec-GPC: 1 или DNT: 1 учитываются, но их текст не сохраняется. Записи о поиске удаляются через 90 дней. Полное описание приведено на странице /конфиденциальность.
Кто публикует манифест ARD
Endpoint GET /adoption отслеживает распространение самой спецификации: в нём приводится список организаций для наблюдения и доля манифестов среди всех доменов, обнаруженных сканером. На момент подготовки этого текста манифест публикуют три из двадцати организаций в списке: Hugging Face, Vercel и Zapier. Все три размещают его по адресу /.well-known/ai-catalog.json — пути, который появился в версии v0.91 после переименования. Из 178 обнаруженных сканером издателей 157 используют устаревший путь ai-catalog.json, и только 14 — ard.json. Поэтому система отслеживания проверяет оба пути: если измерять только использование пути, а не распространённость самой практики, результат будет неверным.
Открытый набор данных
Проверенный корпус инструментов опубликован как открытый набор данных по лицензии CC BY 4.0:
huggingface.co/datasets/AgenticResourceDiscovery/verified-mcp-tools
В tools.jsonl содержатся все 31 411 проверенных инструментов с их входными схемами. В servers.jsonl — 7 708 результатов интроспекции, включая сведения о требованиях к авторизации и типах ошибок. Набор создан потому, что исследования поиска инструментов (ToolRet, ACL Findings 2025) оценивались на собранных корпусах, а не на работающей экосистеме. Здесь же представлена работающая экосистема.
Значок
Если ваш MCP-сервер есть в реестре, значок показывает, что именно мы проверили: сколько инструментов ваш сервер вернул в tools/list и отвечает ли конечная точка.
Идентификатор издателя — это сегмент издателя в вашем URN или ваш домен. Значок сообщает только о том, что было обнаружено, и не является оценкой доверия, безопасности или качества. Вас ещё нет в реестре? Опубликуйте манифест, и поисковый робот его найдёт, или запустите проверку в консоли.
Публикация собственных ресурсов
Есть четыре способа добавить ресурс — от самого простого к более трудоёмкому. Ни для одного из них не нужны разрешение или регистрация.
Вы уже запустили MCP-сервер. Отправьте его конечную точку. Neuronto выполнит рукопожатие initialize и запросит у сервера его собственный список tools/list. Это более надёжное подтверждение, чем заявление в манифесте: сервер сам ответил на запрос.
curl -X POST https://neuronto.com/submit \
-H 'content-type: application/json' \
-d '{"endpoint":"https://example.com/mcp"}'
Вы работаете внутри агента. Это тот же процесс, что и вызов инструмента MCP: ресурс можно добавить прямо во время разговора, не выходя из него.
{"method":"tools/call","params":{"name":"publish_resource",
"arguments":{"endpoint":"https://example.com/mcp"}}}
Инструмент проверяет ресурс, а не доверяет заявленным данным, — точно так же, как HTTP-маршрут. Он вызывает этот маршрут, а не реализует проверку заново, поэтому результаты двух способов не будут расходиться.
Отправленная заявка не потеряется. Если конечную точку не удалось проверить в момент отправки по любой причине, сервер вернёт 202 со значением "status": "pending", идентификатором заявки и полем evidence. В нём указаны HTTP-статус, тип содержимого и первые байты фактического ответа конечной точки либо ошибка JSON-RPC, которую она вернула. Реестр сохраняет заявку и повторяет проверку по фиксированному расписанию: через 1 минуту, 5 минут, 15 минут, 1 час, 4 часа, 12 часов, 24 часа и ещё раз через 24 часа — пока проверка не пройдёт или попытки не закончатся. Текущий статус можно узнать через GET /submit/status/{id}. Отказ по причине на стороне реестра, например из-за высокой нагрузки на индекс, не расходует попытки. Поэтому сервер, который был в процессе развёртывания, запись DNS, которая ещё не распространилась, или клиент, прервавший запрос после первой попытки, всё равно попадёт в индекс — никому не придётся отправлять заявку повторно. Число заявок в очереди открыто публикуется в /metrics.json в поле submissions.
Другие маршруты для изменения данных сообщают о занятости индекса. Если индекс занят, POST /claim/verify, POST /private/add и POST /private/delete возвращают 503 с заголовком Retry-After и значением "status": "busy", а не завершаются без объяснения. Подтверждение DNS или запрос не теряются — повторите попытку через указанное количество секунд. POST /manifest/build в любом случае возвращает созданный манифест и, если не удалось сохранить только размещённую копию, указывает "hosted_at": null и добавляет пояснение.
У вас нет манифеста и вы не хотите его составлять. Попросите создать его на основе данных, которые уже доступны на вашем домене, а затем скопируйте манифест или разместите на него ссылку.
curl -X POST https://neuronto.com/manifest/build \
-H 'content-type: application/json' -d '{"domain":"example.com"}'
В манифест попадут только ресурсы, которые действительно ответили. Для каждого из них будет указано подтверждение, на основании которого он добавлен. В заголовках ответа для размещённой копии по адресу https://neuronto.com/m/example.com.json указано, что она создана автоматически, а не владельцем домена.
У вас уже есть манифест. Разместите его по адресу /.well-known/ard.json и отправьте домен или дождитесь поискового робота.
curl -X POST https://neuronto.com/submit \
-H 'content-type: application/json' -d '{"domain":"example.com"}'
Также разместите манифест по адресу /.well-known/ai-catalog.json. В версии спецификации 0.91 имя файла изменилось, но базовый путь в действующей реализации остался прежним. Большинство издателей ARD, которых удалось проверить, по-прежнему используют только старый путь. Поэтому потребитель, проверяющий только один вариант имени, пропустит большую часть экосистемы.
Добавьте representativeQueries в каждую запись. По этим терминам реестры строят семантический индекс. Запись без этого поля соответствует формату каталога, но поиск никогда её не вернёт.
Проверка результата
curl -X POST https://neuronto.com/audit \
-H 'content-type: application/json' -d '{"domain":"example.com"}'
Проверка показывает, доступен ли манифест по каждому из четырёх путей обнаружения и соответствует ли каждая запись спецификации. Кроме того, она сообщает, какие реестры действительно возвращают ваш ресурс и какие ресурсы показываются вместо него по запросам, для которых вы хотите быть найдены, а также чем эти записи могут превосходить вашу. Проверка бесплатна и не требует регистрации. Также доступна версия в браузере: /console.
Последний шаг — независимо от выбранного способа публикации — добавьте значок. Когда ресурс начнёт появляться в результатах реестра, разместите значок в README или на сайте. Он сообщает о результатах проверки, количестве подтверждённых инструментов и о том, ответила ли конечная точка. Если эти данные изменятся, значок обновится. Он бесплатный и никак не влияет на индексацию или ранжирование. Каждый ответ выше заканчивается одинаковой фразой и готовым к копированию фрагментом; форматы доступны на странице значка.
Приватные записи
Организация может зарегистрировать внутренние сервисы, к которым разрешено обращаться её агентам, и искать внутренние и общедоступные ресурсы одним запросом.
# 1. запросите запись для подтверждения и опубликуйте её как TXT-запись для корневого домена
curl -X POST https://neuronto.com/claim \
-H 'content-type: application/json' -d '{"domain":"example.com"}'
# 2. подтвердите домен — в ответе будет API-ключ
curl -X POST https://neuronto.com/claim/verify \
-H 'content-type: application/json' -d '{"domain":"example.com"}'
# 3. зарегистрируйте внутренний сервис
curl -X POST https://neuronto.com/private/entries \
-H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"entry":{"displayName":"Staff Directory","url":"https://internal/mcp",
"description":"Look up an employee record by name or badge number.",
"representativeQueries":["look up an employee record"]}}'
# 4. тот же ключ при поиске добавляет внутренние записи к общедоступным результатам
curl -X POST https://neuronto.com/search \
-H "authorization: Bearer $KEY" -H 'content-type: application/json' \
-d '{"query":{"text":"look up an employee record"}}'
Значение для подтверждения формируется на основе домена и не меняется, поэтому повторный запрос не аннулирует уже опубликованную запись. Проверка выполняется через DNS over HTTPS и проходит, как только авторитетная DNS-зона начинает предоставлять эту запись. Ключ выдаётся только после успешного подтверждения.
В каждом результате указано, получен ли он из общедоступного индекса или из ваших собственных записей. Приватные записи не ранжируются относительно общедоступных с использованием статистики корпуса: индекс одного клиента слишком мал, чтобы такая статистика имела смысл. Вместо этого записи упорядочиваются по тому, насколько их текст соответствует запросу. Такой подход работает независимо от размера индекса.
Спецификация
Лицензия
Apache-2.0