{"schema_version":"qphoto-surface-map-v1","service":"QPhoto","canonical_url":"https://qphoto.pro","language":"ru","last_updated":"2026-07-25","public_surfaces":[{"id":"search-workspace","url":"https://qphoto.pro/","kind":"html","auth":"public","purpose":"Основной интерфейс поиска и редакторской проверки фотографий."},{"id":"cms-picker","url":"https://qphoto.pro/picker","kind":"html","auth":"public","purpose":"Встраиваемый выбор изображения для CMS и редакционных инструментов."},{"id":"cms-picker-demo","url":"https://qphoto.pro/picker-demo","kind":"html","auth":"public","purpose":"Служебная noindex-страница для ручной проверки CMS picker callback contract."},{"id":"search-api","url":"https://qphoto.pro/search?q=<query>&limit=<n>","kind":"json","auth":"public","purpose":"Пакетный поиск изображений по готовым публичным провайдерам."},{"id":"search-stream","url":"https://qphoto.pro/search/stream?q=<query>&limit=<n>","kind":"event-stream","auth":"public","purpose":"Постепенная выдача результатов по мере ответа провайдеров."},{"id":"source-inventory","url":"https://qphoto.pro/search/sources","kind":"json","auth":"public","purpose":"Текущий список доступных и отключённых источников."}],"machine_surfaces":[{"id":"llms","url":"https://qphoto.pro/llms.txt","kind":"text"},{"id":"ai-index","url":"https://qphoto.pro/ai-index.json","kind":"json"},{"id":"sitemap","url":"https://qphoto.pro/sitemap.xml","kind":"xml"},{"id":"robots","url":"https://qphoto.pro/robots.txt","kind":"text"},{"id":"surface-map","url":"https://qphoto.pro/surface-map.json","kind":"json"},{"id":"qazstack-contract","url":"https://qphoto.pro/contracts/qazstack-consumer.json","kind":"json"},{"id":"avds-contract","url":"https://qphoto.pro/contracts/avds-consumer.json","kind":"json"},{"id":"health","url":"https://qphoto.pro/health","kind":"json"}],"protected_surfaces":[{"path":"/admin","auth":"X-Admin-Key","reason":"операторская панель"},{"path":"/admin/api/*","auth":"X-Admin-Key","reason":"административные данные"},{"path":"/api/video/generate","auth":"X-Admin-Key","reason":"дорогой AI workflow"}],"integration_boundaries":{"qazstack":"QazStack supplies deterministic primitives only; QPhoto owns providers, ranking weights and publication policy.","avds":"QPhoto consumes framework-neutral AV DS patterns without importing React into the static runtime.","qazlake":"QPhoto does not route public search through internal media storage; QazLake data quality must remain an explicit integration decision."},"seo_policy":{"indexable_pages":["https://qphoto.pro/"],"utility_pages":[{"url":"https://qphoto.pro/picker","robots":"noindex, follow"},{"url":"https://qphoto.pro/picker-demo","robots":"noindex, nofollow, noarchive"},{"url":"https://qphoto.pro/admin","robots":"noindex, nofollow, noarchive"}],"crawl_traps":["/search","/search/stream","/saved","/api/"]},"structured_data":{"root_types":["WebSite","Organization","SoftwareApplication"],"search_action":"https://qphoto.pro/search?q={search_term_string}","result_contract":"MediaObject with source, license, author, attribution and publication-readiness signals."},"ai_crawler_policy":{"allow":["/","/llms.txt","/ai-index.json","/surface-map.json","/search/sources"],"disallow":["/admin/","/admin/api/","/api/video/","/search","/search/stream","/saved"],"note":"robots.txt is the authoritative crawler policy; llms.txt and ai-index.json are discovery aids."}}