Машинный перевод
Эта страница была автоматически переведена ИИ и может содержать ошибки. Если что-то неясно, обращайтесь к английскому источнику.
Справочник API: GraphQL¶
1. GraphQL (персистентные запросы / APQ)¶
- Endpoint:
POST https://www.perplexity.ai/rest/perplexity_ask/graphql - Форма: персистентный запрос — тело содержит operationName + variables + хеш sha256 (текст запроса не требуется).
- Реализация:
pplx_export/sites/perplexity/graphql.py.
1.1 LibraryThreadsRelayQuery (список первой страницы)¶
- sha256:
a5229c390a6a00f81764187a21885cff655670029355c663fe393cc6e98f9ebe - Переменные:
{includeSearchPreview:false, searchTerm:null, sortOrder:"NEWEST", statuses:null, threadTypes:null, sources:null, includeTemporary:null} - Путь ответа:
data.viewer.recentGroup.threads{edges[].node, pageInfo{hasNextPage,endCursor}} - Поля узла (используемые адаптером):
name(title),entryId(entryUUID),slug(href),mode,displayModel.modelID,updatedAt(lastUpdated),status,space{spaceUuid,title,slug} - Контракт архивной стороны (2026-07-22 V5-01):
lastUpdatedизweb_archive/**/thread.jsonвсегда равен этому полю (записывается на диск с полной точностью ISO, дословно); сравнение идемпотентности пакетного/одиночного экспорта (is_unchanged) основано на нём, а не на формате представления слоя рендеринга (YYYY-MM-DD HH:MM UTC). - Обогащение архивной стороны (2026-07-23): ключ
search_modeстрок индекса (index/library_*.json) является полем обогащения архивной стороны — узел этого запроса не содержит search_mode; оно заполняетсяpplx-export search-mode-backfillиз данных уровня потока (entries[].search_modeизGET /rest/thread/<uuid>) (сначала локальные необработанные данные, затем онлайн-запасной вариант); обновлениеindexобъединяет и сохраняет его по entryUUID. Фильтрацияbatch --modeпредпочитает авторитетное отображение этого поля.
1.2 LibraryRecentThreadsPaginationQuery (пагинация)¶
- sha256:
4f6dfcb8e9d3c065aca20ca1e82ca7fe464aaffc1faefade295bb7e333199629 - Переменные: переменные первой страницы +
{cursor, count}(имена переменных — cursor/count, а не after/first) - Та же структура ответа, что и выше. Когда
hasNextPageравно true, ноendCursorпусто, остановиться (иначе та же страница повторяется).
1.3 Группа операций панели управления Computer (извлечена из чанка маршрута 2026-07-20, не зарегистрирована на сервере)¶
Чанк ComputerDashboardPage-*.js содержит полные тексты Relay-запросов + персистентные идентификаторы (метод извлечения в §7).
Структурные основы: viewer.threadGroup(type: RECENT|ARCHIVED|PINNED|NEEDS_ATTENTION|SCHEDULED|SPACE, filter:{modes:[COMPUTER]})
— т.е. список потоков, отфильтрованный по threadGroup + mode; узел содержит contextUUID/entryId/readWriteToken/isPinned/isArchived/isUnread.
| Операция | Персистентный идентификатор (первые 16 символов) |
|---|---|
| ComputerDashboardRecentThreadsPaginationQuery | d713e695c82e7927… |
| ComputerDashboardArchivedThreadsPaginationQuery | 1e9bcdb45cd611ca… |
| ComputerDashboardPinnedThreadsPaginationQuery | 814c1d1748157d57… |
| ComputerDashboardNeedsAttentionThreadsPaginationQuery | 2363d5af84392787… |
| ComputerDashboardScheduledThreadsPaginationQuery | 51b18409b05f2e43… |
| ComputerDashboardSpaceThreadsPaginationQuery | da08f207c2d8bbcd… |
| ComputerDashboardThreadGroupsUpdatesRelaySubscription | bcce76383fb03d7e… (подписка WebSocket) |
Проверено: вызов /rest/perplexity_ask/graphql с этими идентификаторами возвращает PERSISTED_QUERY_NOT_FOUND
(не зарегистрировано в текущем развёртывании — расхождение версий или требуется контекст панели управления; полные тексты запросов и идентификаторы хранятся в заметках исследования /tmp;
при необходимости отправьте текст запроса напрямую или извлеките заново из живого бандла).
1.4 Примечания¶
- На странице веб-пространства или домашней странице вызовов graphql не наблюдалось (все идут через /rest); graphql подтверждён для списка /library и панели управления Computer.
- Хеши sha256 могут меняться с версиями фронтенда; режим отказа —
PERSISTED_QUERY_NOT_FOUND— затем извлеките заново из сетевого захвата браузера (инструмент WebBridgenetworkс фильтромperplexity_ask/graphql) или из живого бандла (§7).
1.5 Извлечённые ключи соединений панели управления (ключи кэша Relay, для отладки)¶
ComputerDashboard(Recent|Archived|Pinned|NeedsAttention|Scheduled|Space)Threads_viewer_threads