Один токен, створений у панелі
Надсилається як bearer-токен. За бажанням обмежте його лише читанням або одним сервісом; токени не пов'язані з вашим паролем, а відкликання одного з них ніколи не завершує вашу сесію.
JSON поверх HTTPS. Без потреби в SDK, без окремого облікового запису розробника і без жодної кінцевої точки, яка існує в панелі, але не тут.
Створити сервер
curl -X POST https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN" \
-d '{"plan":"reef","image":"debian-13"}'Одразу повертає ідентифікатор конфігурації. Машина відповідає по SSH приблизно за шістдесят секунд, і адреса маршрутизується ще до відправлення облікових даних.
20 кінцевих точок
Базова URL-адреса https://api.vpsoffshore.com/v1. Версія вказана в шляху; v1 продовжує працювати, коли з'явиться v2, а дату припинення підтримки буде оголошено за рік наперед.
Сервери
Сховище
Мережа
Каталог
Рахунки
Усе, що вміє панель, є і тут, і тут немає нічого, чого не було б у панелі. Якщо вони розходяться — це помилка: повідомте нас через панель, і ми виправимо це, а не задокументуємо як задуману поведінку.
Як це працює
Про API судять за його поганими сценаріями, а не хорошими. Три з чотирьох пунктів нижче — про те, що відбувається, коли щось іде не так.
Один токен, створений у панелі
Надсилається як bearer-токен. За бажанням обмежте його лише читанням або одним сервісом; токени не пов'язані з вашим паролем, а відкликання одного з них ніколи не завершує вашу сесію.
JSON на вході, JSON на виході, без SDK
Звичайний HTTPS без власного конверта, без запасного варіанта на XML і без ритуалу підписування. Якщо це може зробити curl, у вас уже є клієнт. Офіційні бібліотеки існують для Go, Python і TypeScript, але жодна з них не є обов'язковою.
Ліміти запитів, які не вдасться перевищити випадково
600 запитів на хвилину на токен, 60 — для запитів на створення. Кожна відповідь містить залишок бюджету в заголовку, а перевищення повертає 429 із кількістю секунд очікування — ніколи мовчазне відкидання.
Помилки, які підказують, що робити
Код 4xx містить машинозчитуваний код, зрозуміле людині речення та поле, у якому сталася помилка. Ми радше повернемо довгу помилку, ніж коротку, яку доведеться вгадувати.
Дві речі, які ви пишете один раз
Обидва варто прочитати до того, як ви напишете перший виклик, а не після першого збою.
Автентифікуватися
curl https://api.vpsoffshore.com/v1/servers \
-H "Authorization: Bearer $TOKEN"
Токени створюються в панелі й можуть бути обмежені лише читанням або одним сервісом. Вони не залежать від вашого пароля, і відкликання одного з них ніде не завершує вашу сесію.
Дізнатися про ліміт запитів
X-RateLimit-Remaining: 574
X-RateLimit-Reset: 41
На кожній відповіді, а не лише на тій, що не вдалася. Перевищення ліміту повертає 429 із кількістю секунд очікування — ніколи мовчазне відкидання і ніколи скорочена відповідь.
Помилка вказує на конкретне поле
{"error":"plan_unknown",
"message":"No plan named 'reff'. Did you mean 'reef'?",
"field":"plan"}
Машинозчитуваний код, зрозуміле людині речення і поле, у якому сталася помилка. Довгі повідомлення про помилки обходяться дешевше за короткі, які доводиться вгадувати.
Опитування стану конфігурації
curl https://api.vpsoffshore.com/v1/servers/$ID \
-H "Authorization: Bearer $TOKEN" | jq .state
Переходить зі стану building у running. Не потрібно реєструвати жоден webhook, перш ніж щось створювати, а опитування раз на секунду вкладається в ліміт.
Нічого не потрібно подавати
Без облікового запису розробника, без погодження, без пісочниці, що поводиться інакше, ніж продакшн.