Единый доступ ко всем данным Авторской Школы Жании Аубакировой: ученики, родители, учителя, классы, расписание и замены — одним запросом, из любого инструмента.
К каждому запросу нужен ключ. Передавайте его заголовком X-API-Key —
либо, если так удобнее, параметром ?api_key= прямо в адресе.
curl -H "X-API-Key: ВАШ_КЛЮЧ" https://api.a-school.space/v1/stats
Проверить, что сервис жив (ключ не нужен):
curl https://api.a-school.space/health
Список всех доступных адресов приходит по GET /v1.
| Что | Как |
|---|---|
limit, offset |
Постранично. По умолчанию 100 записей, максимум 1000. |
q |
Поиск по ФИО, ИИН и телефону. Понимает казахские буквы: «Дінмұхаммед» найдётся и по «Динмухаммед». |
include |
Догрузить чувствительные блоки: contract, passport, grades или all. |
| Телефоны | Принимаются в любом виде (+7 705…, 8705…), возвращаются как 77XXXXXXXXX. |
| Ответ | Всегда JSON: { total, limit, offset, count, data }. Пустые поля не приходят вовсе. |
curl --get --data-urlencode "klass=5Б" … — вручную кодировать не придётся.
Список учеников с фильтрами.
| Параметр | Значение |
|---|---|
klass | Класс с литерой: 5Б |
class / letter | Отдельно номер и литера: 5, Б |
decision | stay · thinking · leaving |
signed | true — договор подписан, false — нет |
cycle | БМЦ · ОМЦ · СМЦ |
curator | Часть фамилии классного руководителя |
Полная карточка: договор, паспорт родителя, оценки, братья и сёстры. Здесь всё отдаётся сразу, без include.
Расписание ученика на неделю — через его класс.
Дата рождения, возраст и пол не хранятся в базе — они вычисляются из ИИН и приходят готовыми.
Семьи. Фильтры: q, decision, has_iin, min_children.
Карточка семьи по телефону — со всеми детьми, их классами и суммами.
curl -H "X-API-Key: КЛЮЧ" \
https://api.a-school.space/v1/parents/77011110422
Семья определяется по платёжному телефону: один номер — одна семья, к ней привязаны все дети.
Педсостав с предметами, классами, нагрузкой и кураторством.
| Параметр | Значение |
|---|---|
subject | Предмет: математика, физика |
class | Ведёт в этом классе: 7Б |
curator_only | true — только классные руководители |
has_phone | true / false |
Карточка: расписание на неделю, отсутствия, проведённые замены.
phone_ambiguous: true, он привязан
сразу к двум людям и его стоит проверить вручную перед звонком.
Все 39 классов: сколько учеников, кто классный руководитель, разбивка по решениям.
Состав класса с родителями и телефонами.
Сотрудники школы вне педсостава: юрист, РОП и другие.
Определить незнакомый номер: родитель, учитель, сотрудник или контакт из общей книги.
Базовая неделя. Фильтры: class, teacher_id, day (0 = понедельник), subject.
Расписание класса, уже разложенное по дням недели.
Сетка звонков — начало и конец каждого урока.
Замены. Фильтры: date, date_from, date_to, class, teacher_id, status.
Отсутствия учителей. С date покажет тех, кто отсутствует именно в этот день.
Посещаемость учеников по датам и классам.
/v1/schedule показывает обычную неделю
без учёта замен. Чтобы узнать, как прошёл конкретный день, смотрите
/v1/substitutions?date=… — там правки на дату.
Ищет разом среди учеников, родителей, учителей и сотрудников. Принимает ФИО, ИИН или телефон.
curl -H "X-API-Key: КЛЮЧ" --get \
--data-urlencode "q=Абсаметов" \
https://api.a-school.space/v1/search
Вся школа одним запросом: сколько учеников, решения, подписанные договоры, циклы, финансы, педсостав.
Если данные нужны не программе, а человеку — есть готовые CSV. Файл открывается двойным кликом в Excel или Numbers: кириллица и столбцы уже настроены.
Все ученики: класс, дата рождения, руководитель, решение, договор, родитель, телефон, суммы. Принимает те же фильтры, что и /v1/students.
Педсостав с предметами, классами и нагрузкой.
Родители с детьми и ежемесячными суммами.
Готовый список класса для классного руководителя — с нумерацией.
Скачать список 7Б себе на компьютер:
curl -H "X-API-Key: КЛЮЧ" -O -J \
"https://api.a-school.space/v1/export/class/7Б.csv"
Скачать всех, кто ещё не подписал договор:
curl -H "X-API-Key: КЛЮЧ" -o недоговоры.csv \
"https://api.a-school.space/v1/export/students.csv?signed=false"
curl -H "X-API-Key: КЛЮЧ" \
"https://api.a-school.space/v1/students?signed=false&limit=1000"
curl -H "X-API-Key: КЛЮЧ" \
"https://api.a-school.space/v1/students?decision=leaving"
curl -H "X-API-Key: КЛЮЧ" --get \
--data-urlencode "klass=7Б" \
https://api.a-school.space/v1/classes/7Б
curl -H "X-API-Key: КЛЮЧ" --get \
--data-urlencode "subject=математика" \
https://api.a-school.space/v1/teachers
curl -H "X-API-Key: КЛЮЧ" \
"https://api.a-school.space/v1/substitutions?date=2026-07-27"
import requests, csv
r = requests.get(
"https://api.a-school.space/v1/students",
headers={"X-API-Key": "КЛЮЧ"},
params={"limit": 1000, "include": "contract"},
)
students = r.json()["data"]
with open("ученики.csv", "w", newline="", encoding="utf-8-sig") as f:
w = csv.writer(f)
w.writerow(["ИИН", "ФИО", "Класс", "Куратор", "Решение", "Родитель", "Телефон"])
for s in students:
p = s.get("parent", {})
w.writerow([
s["iin"], s.get("name"), s.get("klass"), s.get("curator"),
s.get("decision"), p.get("name"), p.get("phone"),
])
print(f"Готово: {len(students)} учеников")
| Данные | Источник | Обновление |
|---|---|---|
| Ученики, родители, договоры | school.sqlite | каждую ночь в 04:00 |
| Решения «остаётся / уходит» | opros.sqlite | раз в час |
| Учителя, расписание, замены | schedule.sqlite | при импорте из EduPage |
| Сотрудники | overrides.sqlite | вручную |
| Телефонная книга | phonebook.sqlite | синхронизация |
| Момент | Пояснение |
|---|---|
| Класс | Указан за текущий 2025/26 учебный год. На 2026/27 каждый ребёнок переходит на класс выше, а 11-й выпускается. |
| Решение родителя | Итоговое: сводит форму опроса, воронку CRM и отметки менеджеров. |
| ИИН родителей | Есть у 144 семей из 466 — остальные просто не собраны. |
| Даты рождения | Вычисляются из ИИН. Если ИИН нестандартный, приходит пусто, а не выдуманная дата. |
| ФИО учителей | В источнике порядок «Имя Отчество Фамилия», часть заглавными. API приводит к «Фамилия Имя Отчество». |
| Код | Что значит |
|---|---|
401 | Ключ не передан |
403 | Ключ неверный |
404 | Запись не найдена или адрес не существует |
429 | Много неудачных попыток — подождите 10 минут |
503 | База временно недоступна, смотрите /health |