Spytay
Документація API
Доступ лише для читання до звітів, які ви вже замовили: висновок, місце серед брендів, таблиці за асистентами, відповіді дослівно та план дій. Видимість, перше місце й інтервали — частки від 0 до 1. Ключ створюється в кабінеті, розділ «API». Версія 1.0.0, адреса: https://spytay.com/api/v1. Специфікація OpenAPI 3.1: /api/v1/openapi.json.
Ключ
Створіть ключ у кабінеті: Кабінет → API. Ми показуємо його лише один раз. Передавайте ключ у заголовку Authorization; cookie кабінету API не приймає.
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/me"
Помилки
Помилка завжди приходить як JSON із кодом англійською та поясненням українською:
{"error": {"code": "not_found", "message": "Звіт не знайдено."}}
Коди: unauthorized (401, є заголовок WWW-Authenticate: Bearer), not_found (404; чужий звіт теж 404), method_not_allowed (405), validation_error (422), rate_limited (429, є заголовок Retry-After), internal_error (500).
Ліміти
60 запитів за хвилину і 1000 за годину на ключ; кожен запит рахується. Невдалі спроби без чинного ключа — до 30 за хвилину з однієї адреси. Усі відповіді мають Cache-Control: no-store.
GET /api/v1/me
Поточний ключ і кабінет. Хто ви для API: номер кабінету, адреса, префікс ключа, ліміти та кількість звітів.
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/me"
{
"customer_id": 12,
"email": "name@example.com",
"key_prefix": "spk_AbCdEf12",
"reports_count": 3,
"limits": {
"per_minute": 60,
"per_hour": 1000
}
} Коди відповіді: 200, 401, 404, 429.
GET /api/v1/reports
Список звітів. Звіти кабінету, найновіші перші: статус, категорія, бренд, асистенти, k і публічне посилання.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
limit | запит | integer (≥ 1, ≤ 100, типово 50) | Скільки звітів повернути (до 100). |
offset | запит | integer (≥ 0, ≤ 1000000, типово 0) | Скільки звітів пропустити. |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports"
{
"reports": [
{
"id": 41,
"status": "done",
"created_at": "2026-10-12T09:00:00Z",
"finished_at": "2026-10-12T09:20:00Z",
"category": "сухий корм для котів",
"focal_brand": "Мурка",
"package": "report",
"assistants": [
{
"id": "openai/gpt-5.5",
"name": "ChatGPT"
}
],
"k": 5,
"answers_total": 176,
"report_url": "https://spytay.com/r/<token>"
}
],
"total": 1,
"limit": 50,
"offset": 0
} Коди відповіді: 200, 401, 404, 422, 429.
GET /api/v1/reports/{report_id}
Звіт з усіма числами. Усе, що показує звіт у кабінеті: висновок, місце, лідера, найважливіше, таблиці за асистентами, план дій.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
report_id * | шлях | integer (≥ 1, ≤ 2147483647) | Номер звіту з кабінету. |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports/41"
{
"id": 41,
"status": "done",
"ready": true,
"brand": "Мурка",
"k": 5,
"category": {
"visibility": 0.42,
"lo": 0.35,
"hi": 0.49,
"first_place": 0.1,
"mean_rank": 2.8,
"n": 120
},
"verdict": "…",
"severity": "warning",
"rank": 3,
"rank_total": 8,
"leader": {
"name": "Конкурент",
"visibility": 0.71,
"is_focal": false
},
"highlights": [
{
"title": "…",
"meaning": "…",
"numbers": {
"brp": 0.42
}
}
],
"leaderboard": [
{
"name": "Конкурент",
"visibility": 0.71,
"is_focal": false,
"discovered": false
}
],
"conditions": {
"category": {
"label": "Запити про категорію",
"assistants": [
{
"id": null,
"name": "Усі"
},
{
"id": "openai/gpt-5.5",
"name": "ChatGPT"
}
],
"rows": [
{
"brand": "Мурка",
"is_focal": true,
"cells": [
{
"assistant": null,
"n": 120,
"visibility": 0.42,
"lo": 0.35,
"hi": 0.49,
"mrr": 0.2,
"mrr_lo": 0.15,
"mrr_hi": 0.26,
"first_place": 0.1,
"mean_rank": 2.8
}
]
}
],
"takeaway": "…"
}
},
"explain": [
"…"
],
"actions": [
{
"code": "…",
"title": "…",
"why": "…",
"what": "…",
"effect": "…",
"package": "actions"
}
],
"next_date": "12 листопада 2026",
"measured_at": "2026-10-12T09:20:00Z",
"report_url": "https://spytay.com/r/<token>"
} Коди відповіді: 200, 401, 404, 422, 429.
GET /api/v1/reports/{report_id}/answers
Відповіді асистентів дослівно. Відповіді асистентів: питання, текст, згадані бренди та місце вашого бренду.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
report_id * | шлях | integer (≥ 1, ≤ 2147483647) | Номер звіту з кабінету. |
assistant | запит | string (типово ) | Ідентифікатор моделі зі списку assistants звіту. |
condition | запит | string (типово ) | category, needs або probe. |
mentions | запит | string (типово ) | yes — лише відповіді з вашим брендом, no — без нього. |
page | запит | integer (≥ 1, ≤ 1000000, типово 1) | Номер сторінки. |
page_size | запит | integer (≥ 1, ≤ 200, типово 50) | Розмір сторінки (до 200). |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports/41/answers"
{
"answers": [
{
"id": 9001,
"assistant": "openai/gpt-5.5",
"condition": "category",
"scenario": null,
"prompt": "Який сухий корм для котів обрати?",
"answer": "…",
"brands_mentioned": [
"Мурка",
"Конкурент"
],
"focal_mentioned": true,
"rank": 1
}
],
"page": 1,
"page_size": 50,
"total": 176
} Коди відповіді: 200, 401, 404, 422, 429.
GET /api/v1/reports/{report_id}/answers.csv
Відповіді у CSV. Той самий файл, що й у кабінеті: усі відповіді звіту.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
report_id * | шлях | integer (≥ 1, ≤ 2147483647) | Номер звіту з кабінету. |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports/41/answers.csv"
Файл CSV у кодуванні UTF-8 з BOM, той самий, що в кабінеті.
Коди відповіді: 200, 401, 404, 422, 429.
GET /api/v1/reports/{report_id}/metrics.csv
Показники у CSV. Той самий файл, що й у кабінеті: показники кожного бренду за асистентами й типами запитів.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
report_id * | шлях | integer (≥ 1, ≤ 2147483647) | Номер звіту з кабінету. |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports/41/metrics.csv"
Файл CSV у кодуванні UTF-8 з BOM, той самий, що в кабінеті.
Коди відповіді: 200, 401, 404, 422, 429.
GET /api/v1/reports/{report_id}/plan
План дій. Лише план дій звіту: кроки, дата наступного вимірювання та пакет.
| Параметр | Де | Тип | Опис |
|---|---|---|---|
report_id * | шлях | integer (≥ 1, ≤ 2147483647) | Номер звіту з кабінету. |
curl -H "Authorization: Bearer $SPYTAY_API_KEY" "https://spytay.com/api/v1/reports/41/plan"
{
"actions": [
{
"code": "…",
"title": "…",
"why": "…",
"what": "…",
"effect": "…",
"package": "actions"
}
],
"next_date": "12 листопада 2026",
"package": "report"
} Коди відповіді: 200, 401, 404, 422, 429.
Агенти
Агент читає /SKILL.md один раз і далі працює сам; список адрес — у /llms.txt. Та сама інформація доступна через MCP: https://spytay.com/mcp. Помилка — isError: true і той самий об'єкт {"error": {"code", "message"}}, що в REST.