Данные о визах и учебных разрешениях, с источниками, версиями и честными «неизвестно».
Один REST API для правил программ: требования, сборы, сроки рассмотрения и права. У каждого факта есть официальный источник, цитата и дата актуальности. Каждый ответ называет релиз, из которого он получен. Если источник молчит, API отвечает «неизвестно», а не угадывает.
- Только официальные источники, у каждого факта цитата
- Версионированные релизы, воспроизводимые ответы
- Неизвестное названо прямо · никаких вероятностей одобрения
- Данные на английском
Два способа подключиться, за обоими одни и те же данные.
REST API
Вызывайте со своего бэкенда. Быстрый старт на curl, JavaScript и Python, затем разбор модели данных на примере Франции.
MCP для агентов
Дайте Claude, Cursor, Copilot, Codex или Gemini те же ответы в виде инструментов. Настройка для каждого клиента и правила, которым агент обязан следовать.
Покрытие
Какие страны прошли контроль качества и чего ещё не хватает по каждой из них, факт за фактом.
Справочник API
Все эндпоинты, параметры, схемы и коды ошибок, построенные из документа OpenAPI, который отдаёт сам API.
Собственный ключ за минуту.
- 01
Создайте бесплатный аккаунт
Один вход в VisaPassage. Бесплатный тариф начинает действовать сразу: 500 единиц в месяц.
- 02
Создайте API-ключ
Назовите его по приложению или окружению. Полный ключ показывается один раз, мы храним только его хеш.
- 03
Вызовите /api/v1
Передайте ключ в заголовке Authorization: Bearer. В заголовках каждого ответа указаны остаток единиц и лимит запросов.
Тарифы
Расход считается в единицах: сопоставление стоит 5 единиц, любой другой вызов — 1. Free подходит для оценки. Starter рассчитан на продакшен: единицы сверх лимита стоят как на Apify, поэтому начиная с 14 500 единиц в месяц он не дороже оплаты за использование. Enterprise — для больших объёмов и особых условий.
Free
Без картыЧтобы оценить данные и собрать прототип.
$0/ мес.
- Единиц / мес.
- 500
- За 1 тыс. единиц
- —
- Сверх лимита
- Жёсткий лимит
- Запросов / мин
- 60
- API-ключей
- 2
Starter
Пет-проект или ранний продукт в продакшене.
$29/ мес.
- Единиц / мес.
- 15,000
- За 1 тыс. единиц
- $1.93
- Сверх лимита
- $2 / 1k
- Запросов / мин
- 300
- API-ключей
- 5
Enterprise
Больше 100 000 единиц в месяц, особые условия или оплата по счёту.
Индивидуально
Цена за объём, согласованный лимит запросов, оплата по счёту и договор об использовании данных для вашего юриста.
Написать нам
Какой тариф подойдёт?
Введите месячный трафик. Мы посчитаем стоимость на каждом тарифе с учётом оплаты сверх лимита и отметим самый дешёвый.
7,000 единиц / мес.
- FreeСверх лимита
- StarterДешевле всего$29/ мес.
Тот же объём на Apify: $14
- Сопоставление (POST /api/v1/match) стоит 5 единиц, любой другой эндпоинт — 1 единицу. openapi.json бесплатен.
- Учитываются только успешные ответы. Единицы за неудачный вызов возвращаются автоматически.
- Лимит единиц и лимит запросов относятся к аккаунту и общие для всех его ключей.
- Тариф Starter откроется в ноябре 2026 года, а пока все аккаунты работают на Free. Цены указаны в долларах США без налогов.
- Также доступно на Apify: $0,002 за единицу ($0,01 за сопоставление), оплата через Apify.
Один запрос — ответ с источниками.
- 01Создайте бесплатный аккаунт и API-ключ.
- 02Отправьте профиль заявителя POST-запросом на /api/v1/match.
- 03Прочитайте fit, costs и unknown_checks. У каждого значения есть источник.
curl -s https://visapassage.com/api/v1/match \ -H "Authorization: Bearer $VISAPASSAGE_KEY" \ -H "Content-Type: application/json" \ -d '{"purpose":"study.degree","scope":{"destinations":["FR"]},"citizenships":["UA"],"citizenships_complete":true,"languages":[{"language":"uk","native":true},{"language":"fr","cefr":"B2"}],"funds":{"min":"8400.00","currency":"EUR","forms":["bank_statement"]},"education_isced":6,"stay_months":12,"dependents":{"spouse":false,"children":0}}'const res = await fetch("https://visapassage.com/api/v1/match", { method: "POST", headers: { Authorization: `Bearer ${process.env.VISAPASSAGE_KEY}`, "Content-Type": "application/json", }, body: JSON.stringify({ "purpose": "study.degree", "scope": { "destinations": [ "FR" ] }, "citizenships": [ "UA" ], "citizenships_complete": true, "languages": [ { "language": "uk", "native": true }, { "language": "fr", "cefr": "B2" } ], "funds": { "min": "8400.00", "currency": "EUR", "forms": [ "bank_statement" ] }, "education_isced": 6, "stay_months": 12, "dependents": { "spouse": false, "children": 0 } }),});const result = await res.json();console.log(result.release_id, result.results);import os, requests res = requests.post( "https://visapassage.com/api/v1/match", headers={"Authorization": f"Bearer {os.environ['VISAPASSAGE_KEY']}"}, json={ "purpose": "study.degree", "scope": { "destinations": [ "FR" ] }, "citizenships": [ "UA" ], "citizenships_complete": True, "languages": [ { "language": "uk", "native": True }, { "language": "fr", "cefr": "B2" } ], "funds": { "min": "8400.00", "currency": "EUR", "forms": [ "bank_statement" ] }, "education_isced": 6, "stay_months": 12, "dependents": { "spouse": False, "children": 0 } },)result = res.json()print(result["release_id"], result["results"]){ "release_id": 17, "as_of": "2026-10-13", "engine_version": "1.3.0", "results": [ { "slug": "fr-visa-de-court-sejour-etudiant-concours", "fit": "all_met", "government_total": { "value_state": "unknown" }, "unknown_checks": [ "admission_letter", "financial_means", "health_insurance", "language_proficiency" ] }, { "slug": "fr-vls-ts-etudiant", "fit": "has_unmet", "government_total": { "value_state": "unknown" }, "unknown_checks": [ "health_insurance", "language_proficiency" ] } ]}Покрытие, по странам.
Покрыто: 1 · в работе: 31 · всего в первом срезе: 32
| Страна | Статус | Программы | Существенные факты | Сценарии | Подробно |
|---|---|---|---|---|---|
| Покрыто | 3 | 33/33 | 5/5 | Что у нас есть | |
| В работе | 1 | 6/9 | 0/5 | Что у нас есть | |
| В работе | 0 | — | — | Не начато | |
| В работе | 0 | — | — | Не начато | |
| В работе | 0 | — | — | Не начато | |
| В работе | 0 | — | — | Не начато | |
| В работе | 0 | — | — | Не начато | |
| В работе | 0 | — | — | Не начато |


